Just two weeks ago our favorite supplier of cheap ESP8266 boards, WeMos, released the long-awaited LOLIN32 ESP-32 board, and it’s almost a killer. Hackaday regular [deshipu] tipped us off, and we placed an order within minutes; if WeMos is making a dirt-cheap ESP32 development board, we’re on board! It came in the mail yesterday. (They’re out of stock now, more expected soon.)
If you’ve been following the chip’s development, you’ll know that the first spin of ESP-32s had some silicon bugs (PDF) that might matter to you if you’re working with deep sleep modes, switching between particular clock frequencies, or using the brown-out-reset function. Do the snazzy new, $8, development boards include silicon version 0 or 1? Read on to find out!
The Good News
The board design is basically perfect. It takes more than a little inspiration from Adafruit’s Feather series. Imitation is the sincerest form of flattery. It has 4 MiB flash memory onboard, a USB-serial adapter (cp210x), and a LiPo battery charger and connector. All the relevant pins are broken out and well-labeled, especially on the bottom. It has a nice central reset button, and even a single user LED for your blinking pleasure.
The default firmware seems to be stuck in a loop scanning our WiFi network, and it doesn’t seem to be running a soft AP like some ESP8266 firmwares do either. We couldn’t figure out how to make it associate. That’s cool, we’ll be flashing our own firmware soon enough anyway.
For the price, it has one more feature (the LiPo) than we’d ask for. It even (barely) fiits into a standard breadboard. Can’t beat that with a stick. No wonder they stocked out in the first week.
The Bad News
You know this means that the WeMos LOLIN32 is populated with ESP32 rev 0 silicon, right? Well, yeah. To test it, you can download the whole SDK (here), set up the compile toolchain, write a small program to test a particular bit in extended fuse memory, and flash it in.
But then we remembered that we discovered a “secret” BASIC interpreter inside the ESP32 and, with a little syntax help from [Sprite_tm], even got PEEK and POKE working on the little beasties. So we tested bits like it’s 1988!
Pulling pin 12 up to 3.3 V and hitting reset brings up the Easter-Egg BASIC interpreter. Connect to the ESP32 at 115,200 baud and you’re in business.
# Check a fuse register that should contain data a = peek(&H3FF5A008) print(a) 15213578 # Check the fuse register with the version information a = peek(&H3FF5A00C) print(a) 0
Sigh. There you have it, folks, the saddest 32 bits in black and white: old silicon in the WeMos LOLIN32. We’re not 100% sure how much the bugs affect the average use case, and we’ll be figuring that out in the next week or so. Stay tuned.