Hands-On the Hot New WeMos ESP-32 Breakout

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)

# Check the fuse register with the version information 
a = peek(&H3FF5A00C)

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.

38 thoughts on “Hands-On the Hot New WeMos ESP-32 Breakout

        1. Had not seen that — it’s fantastic! Enough nerd tears to fill a swimming pool.

          We were recently thinking the units thing over here, and decided to go with whatever the US NIST thinks is right. (https://www.nist.gov/physical-measurement-laboratory/special-publication-811) And unfortunately, that includes mebibytes. Sigh.

          It _does_ have the advantage of being unambiguous. But it just sounds so dumb. (It sounds less dumb if you think of them as “mega binary bytes”, I suppose.)

        1. ESP32 will dominate eternally. Its domination will be absolute and I shall yield its power to rule the world.
          Those who don’t like it can go fornicate with themselves

  1. Thanks for the tip. Got some ESP32’s in the mail now that they are under $10 each, this will be a way to test. (Don’t plan to use the deep sleep, I want POWER, but good to know.)

    1. I assume it charges from the 5V USB supply.

      You could put a 5V DC-DC converter on the solar panel but it may oscillate in low light when the voltage collapses under load. Probably still manageable though.

      1. That’s not classical oscillation, but due to peak loads hitting the dropout Voltage. Just use some bulk capacitors or better yet, supercaps to fix it. WiFi has high peak current demands and long lines or marginal ESR in the battery can lead to dropouts.

    2. No clue. My guess is that the charge controller is the one labelled “16”. (Thanks, anonymous manufacturer!) I don’t know those circuits well enough. It could also be the one labelled “A9t” for all I know.

      As for solar, these things are usually good to charge between 4.5 V and 6.5 V or so. Try it out, but it’s not designed for it and might not make very good use of whatever light you’ve got.

    1. Wow, I went over to ST’s website and checked out the datasheet for that one. Amazing looking module!

      Then I went to buy one — 0 stock, 25 week lead time at Mouser, and $15 singly, before pricing any of the dev-board frills like a voltage regulator or USB/serial converter.

      If the Nucleo boards are any indication, ST will make a dev board for this, and it’ll probably also come in around $15-20, and I’ll absolutely buy one when it comes out. OTOH, for $15 you can DIY yourself an ESP8266 / ARM Cortex combo board and still have some money left in your pocket. Or buy two of these WeMos boards.

      1. Look guys, I have a friend who works at ST. He does SW & HW. And yes, he’s a real master at using ST microcontrollers and loves them. But concerning the Wi-Fi modules by ST, I was told not to use them since they are a bogus.

  2. I wanted to buy one but hesitated because I don’t have much time to tinker with it at the moment… a few hours later, they ware out of stock and I had a lot of regrets ;-)

  3. Still don’t understand the hype. It appears to me, and sorry if I’m misreading this, that mostly programmer-hobbiest-types love this kind of part. That is, people who like to solve electronic problems with code instead of hardware. The types that don’t mind struggling with free/cheap tools/parts since this is their hobby and therefore they place no monetary value on their time. Not saying that’s a bad thing, just not my bag.

    1. I happened to be interested in IoT platforms when the ESP8266 first came out. It was rough and little support but for $5, why not have a play? Fast forward – a community grew around the things, knowledge was gained, libraries created… they are now madly useful. Wifi on any project for under $5? What’s not to like?

      I don’t quite get your comment about hardware, cost, and time. First, thanks to community efforts, you can use the Arduino IDE to bang out a useful ESP8266 app in an afternoon. They are being used commercially. Finally, I don’t know of any comparable hardware that’s easier or faster to apply. They all require some programming somewhere, if it’s for something more complex than Lego.

    2. I started in WiFI with the moderately expensive Texas Instruments CC3000. It was full of undocumented glitches. TI had a ‘see no issues, hear no issues’ mentality on the product. I spent over a year intermittently working on projects involving the CC3000, never was able to overcome the crappy implementation of the TCP/IP stack in it. TI’s solution? “You should spend time and money on their new 3200, it’s great!” The heck with that.

      Switched to the dirt cheap ESP8266, some issues, but there was lots of knowledge and workarounds on the Internet, I was much more successful in my endeavors with this device.

      Moral of the story? Paying big bucks to an established company does not guarantee that you will not waste a lot of time trying to decipher junk that they prematurely kicked out the door. Sometimes the smaller relatively unknown guy does actually produce the better working product.

        1. Yep. Not that long ago, they had a wonderful RTC. It had many features, fairly big SRAM for storing your data (used in 8051 project). However, until you programmed it for the first time, its consumption was many orders higher than in normal mode. And yes, it was a bug, this shouldn’t have been happening. The effect was that hundreds of boards that were made had to be manually repaired (desolder RTC battery, solder new one and run the board).
          And some of their processors tend to malfunction in freezing conditions (-5°C and less). One manufacturer found this out too late and had to hot-glue a resistor to the processor to heat it.

  4. I’ve been thinking of purchasing an ESP32 module to play with. I have a question that I can’t find an answer to. Maybe someone here might know. Is is possible to program one of the GPIO pins as TX/RX indicator in order to control an external TR switch?

  5. Those boards seem to be available on eBay, albeit for $14.95. But if you want one to play with right now, search for “ESP32 ESP-WROOM-32 Wemos D1 LOLIN32 WIFI+BT 2.4GHz Dual Mode Develope Board”. (sic on the “Develope”) speaker_joe sells them and shipping will set you back another $2.69. But if you want one right now …

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s