Getting MacOS BigSur + ESP8266 to Play Nice

I ran across The "do not be alarmed" clock on HackerNews and thought that would be a fun little project to play around with. It's been an awful long time since I've done anything with hardware and I haven't played with anything "Arduino" yet so I made my way over to Amazon and picked up:

The only thing that has come in the mail thus far was the immediately useful thing, the Mini D1 board. Getting that to work on my MacOS (running BigSur) wasn't uneventful but as far as these things go it was relatively easy.

First, download and install the Arduino IDE for MacOS.

So far, so good.

Second, Download and install the WeMos D1 Mini Drivers

MacOS is going to complain that it blocked an extension from being installed. I went down a long rabbit trail here worried that something wasn't installed. If you do some digging you'll find a ReadMe.PDF with the driver download that mentions usbserial.kext in /Library/Extensions and /System/Library/Extensions.

It seems like the extension was installed in Library/Extensions and wasn't in /System/Library/Extensions. Don't worry though, it turns out that it doesn't matter and things will just work. Don't waste time, like I did, trying to get the .kext into the System directory. I didn't have much luck but I think I probably needed to disable the System Integrity Protection. Meh.

Third, setup your Arduino IDE to work with the ESP8266:

Add the following URL to Arduino -> Preferences -> Additional Board Manager URLs:

Screen Shot 2021-01-29 at 10.50.00 PM.png

Fourth, install the ESP8266 "board" using Tools -> Board: -> Board Manager. Search for "ESP8266" (you might need to do this a couple times) and then a single entry should pop up called "esp8266" by "ESP8266 Community".

Screen Shot 2021-01-29 at 10.48.43 PM.png

Fifth, we need to do some patching to some random ESP8266 python code.

vi ~/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/pyserial/serial/tools/

Comment out lines 29 and 30 and add the following afterwards:

iokit = ctypes.cdll.LoadLibrary('/System/Library/Frameworks/IOKit.framework/IOKit')
cf = ctypes.cdll.LoadLibrary('/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation')

Finally, you can test your board by loading the Blink example sketch via File -> Examples -> ESP8266 -> Blink. Click the right arrow near the top left and your ESP8266 board should start blinking after a few moments.

Special thanks to AverageMaker's WeMos D1 Mini guide and the Arduino forums for making this setup take ~15 minutes.

Show Comments