Yeah if anyone is just looking to get started tinkering with embedded hardware I'd say this is the way to go. The chips were made popular by NodeMCU which uses Lua, but you can easily run Arduino or write plain C on the same hardware.
I've tried a few breakout boards and my favourite is the WEMOS D1 Mini. All you need to supply is a MicroUSB cable. You can get them shipped from China for under $3: https://wiki.wemos.cc/products:d1:d1_mini
FWIW, based on recommendations here at HN, I went with the WEMOS D1 Mini early this year when I decided to replace all the electronics in my kids' RC trucks. The project went amazingly well. In each of the 2 trucks, I wired it up with a WEMOS motor controller driving a 9V/2A motor, a smaller motor for turning, and some LEDs. I 3D printed new shells with Lego compatible studs on top. I hot glued the electronics inside. I wrote mostly-ordinary Arduino code. All of this took only about 2 weeks in my spare time.
So now my kids have 2 wifi-tablet-controlled trucks with very custom programming (for N-point turns, playing music through the motor windings, headlight blinking, etc.) and the ability to update the program over the air at any time. It's basically magic. I spent only about $8 per truck.
Yeah, the WEMOS D1 is the real deal. I love it so much that I bought a pile of them before I've even decided what I want to use them for.
Absolute favorite for me too. ESP32 is now also widely available and pretty cheap for it's performance.
My second favorite ESP8266 hardware are the "Sonoff" brand WLAN mains power switches. I especially like the Sonoff S20 for its form factor, and the Sonoff POW for it's power metering capability. They contain an ESP8266 and can be reflashed with different firmware that does not need the vendors cloud services to work.
Oooh, ITEAD make sockets now? I got a bunch of switches a while ago, wrote my own firmware for them, and today I saw their wifi-enabled light switch and got one of those too. I love love love their stuff, they make it super easy to retrofit my house with "smart" devices where I can control every line of code.
I can vouch for the D1 mini also. It's the one you want, by far. It has an on board programmer so you can power and program it from USB, while being the smallest board in size out of the popular ones.
Have you tried the NodeMCU? (Not suggesting it, as I actually killed mine when trying to program it, but more curious about whether you’ve compared it to the Wemos D1.)
Yes and no. ESP8266 would typically survive 5V applied on any pin, and sometimes even sort-of work with 5V power applied (although with much higher power consumption and no WiFI).
But there is a catch. Pretty much all CMOS chips (ESP8266 inclided) have body diodes from each IO pin to power/ground. This means - you can't have voltage higher than VCC+0.6v or lower than GND-0.6v on any pin. So what happens when you have ESP8266 powered from 3.3v and connected to 5V I/O is - ESP will get (partially) powered via I/O pin. Depending on what 5V part is connected to that I/O, that might be bad for that part (excess of I/O sink current). And in extreme cases (5V I/O pin that can deliver high current, or ESP is in deep sleep), this will supply current into 3.3V VCC rail, bringing it up as high as 5 - 0.6 = 4.4v potentially. Which could be bad for anything else on that rail.
As a practical example - let's say we have ESP8266 powered by a switching supply with MP2307DN [1] chip delivering 3.3v, and connected to a 5v AVR. In normal operation, ESP takes ~70mA, which exceeds 40mA driving capability of AVR, so it's all good [2]. However once ESP8266 goes to deep sleep, all 40mA from AVR's I/O go via ESP's body diode back to MP2307DN switch, which usually would fail catastrophically and end up shorting input to output, supplying 12 (or whatever the input is) volts to ESP's VCC. Which is likely to fail as well, sending 12v further and frying the whole thing.
[1] MP2307DN is widely and cheaply available on "Mini360 DC-DC buck convertor" boards and it really doesn't like current being back-fed into its output
[2] Except I/O drive transistor in AVR is overloaded, which might or might not lead to its failure eventually.
I was somewhat surprised that ESP32 not only survived being powered from 5V, but worked somewhat reliably while so and I only noticed that the software issues I was debugging were caused by that from the smoke coming off the paper label on breakout module.
>The chips were made popular by NodeMCU which uses Lua, but you can easily run Arduino or write plain C on the same hardware.
I'm pretty sure that its the work done to make these into $3 wifi arduinos that is what made them popular. That's why wemos literally sells one that is shaped like, and has the same header spacing as, an arduino uno.
There is some really incredible stuff coming out based on the ESP8266 and ESP32 right now. IMO completely blows all of the normal arduino stuff out of the water.
What's really interesting going on right now is that adafruit/sparkfun have become radioshack, and aliexpress has become my go to place to find interesting new stuff.
I will say that whenever I'm doing a commercial project[2], however, I still use the more expensive adafruit/fry's/genuine arduino boards.
[1]: I help run a hackerspace in Phoenix, and I do all sorts of maker workshops all over the world, so having a bunch of weird dev boards and parts and stuff is pretty important to me. If those don't end up working, it was worth the $40 to find out.
[2]: Part of my life is helping create one-off experiential advertising installations. Usually these things have a stack of arduinos in them controlling lights, sensors, motors, etc.
It (the ESP32) is right in the middle of the bottom view photo. The actual SX1278 is smaller, on the right. On the bottom, you have the SPI flash for the ESP32.
Ah, interesting, I thought the ESP32 had the same layout as the ESP8266 (processor + flash storage) so I got confused. I guess the ESP8266 storage is embedded in the chip. Very nice breakout, I'll have to look around for a 864 MHz one.
It fails the "only" criterion (it costs more than $2.20, whereas the author had a strict $1 cut-off precisely stating that a huge field opens up above that price range.)
Fom "the rules":
>While some projects that come across my desk are complex enough to require a hundreds-of-MHz microcontroller with all the bells and whistles, it’s amazing how many projects work great using nothing more than a $1 chip — so this is the only rule I established for the shoot-out.
>I wanted to explore the $1 pricing zone specifically because it’s the least amount of money you can spend on an MCU that’s still general-purpose enough to be widely useful in a diverse array of projects.
>Any cheaper, and you end up with 6- or 8-pin parts with only a few dozen bytes of RAM, no ADC, nor any peripherals other than a single timer and some GPIO.
>Any more expensive, and the field completely opens up to an overwhelming number of parts — all with heavily-specialized peripherals and connectivity options.
Of course, the ESP8266 is precisely this "hundreds of megahertz" chip (160 Mhz) with "heavily specialized connectivity options" and peripherals (wifi and, in the case of ESP8265, a full megabyte of flash memory). While all this is interesting, at the $2+ price there are "an overwhelming number of parts."
https://en.wikipedia.org/wiki/ESP8266