NodeMCU ESP32-C3 WiFi and BLE IoT boards show up for about $4
cnx-software.com
cnx-software.com
Datasheet: https://www.espressif.com/sites/default/files/documentation/...
There is an awesome library (https://github.com/boarchuz/HULP) which makes using the ULP much easier so that things like software i2c and ADC multisampling are trivial.
My biggest wishlist item for Espressif would be to make a solid WiFi/BT part with SDIO interface that can be used as a radio for a Linux host SoC. Espressif provides a hosted version of the firmware for previous ESP boards ( https://github.com/espressif/esp-hosted#12-supported-esp-boa... ) but it doesn’t integrate as cleanly as standard SDIO WiFi parts and their latest boards don’t support SDIO.
There are many cheap WiFi/BT SDIO modules on the market, but I’d like to have one go-to solution that is known to work well, readily available, and cheap like the ESP parts are as wireless micros.
$ sudo apt install pio
[sudo] password for dheera:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package pio
Nope, pio isn't convenient. If I have to google for how to install it, it's not convenient. Googling for "pio" also gives a lot of seemingly irrelevant things, adding to the inconvenience. By the time I find it on Google, my FeatherS2, that presents itself as a USB drive, is flashed and ready to go.Software installation, of all things, should be L5 autonomous in 2021.
Mind you, I built my own PIC programmer back in the day. It's just that we're in 2021 now, and I expected progress.
You still need a toolchain, compiler, drivers, operating system. Arduinos won't read your mind and neither will Debian.
Having said that, since you are knowledgable in these things you can absolutely package PlatformIO as a Debian package and maintain it. I would certainly use that. As is, just head over to https://docs.platformio.org/en/latest/core/installation.html... and you'll see the one line you need to install it. It's literally easier than installing the Arduino IDE.
The US is quickly becoming a wasteland of angry IP lawyers who love to stifle innovation. Pay a fee to use a goddamn plug? It's as ridiculous as if you had to pay a fee to implement 120VAC or 12VDC power.
I might pull the trigger and buy 10 of these for all sorts of purposes.
On a side note, these made a bad taste in my mouth for Arduino. It's making me think all Brand names should be a red flag.
Why?
Ten years ago, I happily paid for an Arduino. I was interested in microcontrollers for about a decade at that point. Even though microcontrollers were inexpensive, I didn't get into them previously since I needed that extra support. Yet the Arduino development board and IDE provided that support in a form I found palatable at a price I could bear. (There were certainly alternatives that provided something similar, but they were expensive. There were certainly alternatives that were inexpensive, but they lacked support.)
Ten years later, the situation is different. More experience means that I don't need as much support. For the most part, I just want a development board that I can solder a header onto. It's something that I may be willing to pay $10 for, but it is much harder to justify at twice the price. It looks like this is something that the Raspberry Pi Foundation realized with the Pico. The development tools are better compared to those provided by a microcontroller vendor than with those provided by Arduino. The board's price is better compared to those of eastern companies than western ones.
The reality is that we need both. The reality is that western boards will probably be more expensive than eastern ones, but the price differential need not be so large when similar products are offered.
EDIT: clarification.
In some cases what you say is true, the cheap clone is piggybacking on the R&D of someone else. Yet the situation is definitely not so clearcut in the case of many development boards.
The heart of a development board is the MCU. Assuming a genuine component is being used, the software stack is typically provided by the vendor of the MCU. The supporting circuitry is either well known or provided in the vendor's datasheets. In the case of basic boards, there is not much R&D happening.
It is also worth noting that the software stack for many boards is open source. Let's ignore the compilers. They're typically based upon GCC, thus open source, but they are typically supported by the MCU vendor which is supported by MCU sales. Consider something like Arduino and MicroPython. Some board vendors undoubtedly invest in them, but it is open source. Others can use the products of their labours. Equally important, others can contribute to them. The board vendors who invest in the software also benefit from contributions.
On top of all of that, Chinese firms aren't the only ones making clones and Chinese firms do more than create clones. For example: I haven't heard anything about Espressif parts being clones of original brands.
But if you succeed in offering an inexpensive good product, people will do things for you. Espressif did that and what people are doing with these modules and boards is amazing.
First of all the cheap Chinese boards are far more innovative than what I see coming out of the US. If there is something you can imagine doing with an ESP32, there is a good chance somebody in China is making a pre fabbed dev board for you that has exactly the peripherals you already need on it
And they’re selling it for $8.
The US equivalents which seem to do way less, last cost $50-100.
I get it, and I do try to support those US companies as much as I can, but when I’m putting together a workshop and need 10 boards, it goes from impossible to “I can give every student their own board and they can keep it at the end”.
These things are educational tools for me. The cost matters a lot.
They do sell more expensive boards but those generally have detachable programmers, capacitive touch and lots of extra hardware.
NodeMCU ESP32-C3S_KIt
Specifications: Wireless module – AI Thinker ESP32-C3S (footprint compatible with ESP32-S / ESP32-WROOM-32D) with ESP32-C3 RISC-V processor @ 160 MHz, 2.4 GHz WiFi, Bluetooth 5.0 LE, 4MB flash, on-board PCB antenna, and IPEX connector (which may be soldered or not). USB – Micro USB port for power and programming via CH340C USB to TTL chip Expansion – 2x 15-pin headers with GPIO, SPI, UART, ADC, I2S, 3.3V, GND Misc – RGB LED, Reset key, user-programmable key Dimensions – 49 x 26 mm
Full data sheet: https://www.espressif.com/sites/default/files/documentation/...
September 2019: ESP32-S2. Single core Xtensa LX7.
November 2020: ESP32-C3. Single core RISC-V.
December 2020: ESP32-S3. Dual core Xtensa LX7.
April 2021: ESP32-C6: Single core RISC-V.
Major differences:
Xtensa® dual-core 32-bit LX6 vs LX7 (better FPU I think?)
BR/EDR + Bluetooth LE v4.2 vs Bluetooth LE v5.0
SRAM 520 vs 512
ROM 448 vs 384
USB OTG none vs 1
Plus some minor differences in the peripherals.
X marks the spot.
But I can't recommend 16MB WROVER based boards enough for people making one-off projects.
https://www.digikey.com/en/products/detail/espressif-systems...
16MB of flash lets you use sooo many "creature comforts", and as an added bonus, a lot of them tend to be a more breadboard friendly width since the module itself is thinner and longer than the WROOM.
Like with 4MB of flash, even something as simple a <sstream> is off limits, because that pulls in locale data, and that in turn blows up your binary size budget unless you turn off OTA
(If you're making an actual product, then yeah obviously trading some creature comforts for a simpler codebase and a cheaper product is on the table)
Are you sure that the integrated one doesn't? It just seems like an odd thing to leave out.
Usually those MCUs don't have much memory protection, so when your app crashes down goes the whole thing. Writing UART is usually just writing data to a single register, fire and forget. This will still work if everything else is burning. (unless you screwed with the clocks)
Now USB on the other hand is a complex best, you have to keep state and do two way communication. If you corrupted your memory, you won't be able to get a debug message out over USB.
But with these little embedded systems, I know the software stack typically heavily limits throughput. Can anyone comment on real world data rates this can achieve?
1. Home automation
2. Garden management
3. Vehicle data logger incl OBD2 via CAN
4. Open wifi-based services like a bulletin board for a cafe
5. Mesh sensor network
6. Retro gaming
7. Autonomous vehicle experiments (ESP32 can run TensorFlowLite)
* Connected an accelerometer and hall effect sensor, used to know when the washing machine is in use and the state of the lid. I taped a magnet to the lid so that it can be sensed with the hall sensor, so no wires are moving / need to be managed. Sends a message if we've left clothes in the wash.
* Fish tank lights with WS2812B strips
* Water softener brine level sensor using an IR transmitter / receiver in the lid of the brine tank, lets me know when to add salt.
* Plant moisture sensor, lets me know when to water.
* 1x4 WS2812B lights that we can all use to mark ourselves as on a call, either through a web page or Telegram, so that we know to be quiet because someone is on some sort of video call.
If you're using esp32 or esp8266 take a look at esphome.io for ideas -- you can do a ton of stuff without writing much code at all. Most of my projects are done with the Nodemcu framework because I have a soft spot for Lua, but I do use esphome.io to interact with some Mijia BLE temperature and humidity sensors.The accelerometer is a GY-521 breakout board. It was a little tricker to work with because orientation is important and they are sensitive. Different cycles on my washer result in different vibration patterns, and the "bulky" setting rests for several minutes with no motion.
Overall, it's the one project which gets used the most and has saved us from having to re-wash stuff because it was forgotten and got kinda funky.
Best of luck!
It's hooked up to the ADC of the ESP8266, and thankfully the output was between 0 and 3.3V since that's the range that the Wemos D1 boards can accept, as they have a built in voltage divider. It's measuring the distance between the lid and whatever reflects the IR back.
There are a few analytics modules that report back which integrations are in use so that they can help focus dev efforts but those are optional. They also have a cloud service that can be used to help expose your instance externally if you don't want to run a local nginx and expose your home network to the outside world, but even that is not a way for them to monitor the devices you're running.
Plenty of people run HA with absolutely no access to the outside internet (like, the host is firewalled from communicating outside the local network). Plus it's all open source so you don't need to trust anyone, you can look at the code if you want.
I've only recently gotten into the whole topic, and have yet to see the benefit of dealing with micro-controller toolchains, MicroPython etc. if power consumption is not a big factor. Seems like a full Raspbian offers a lot more flexibility.
I've used a Pi Zero W that runs regular Python and sends messages to a REST API on my home server (little go thing) + MariaDB + Grafana, for similar use case (although I will now need to build the washer/dryer idea :)).
esp8266 and esp32 boot almost instantly and don't really have a file system. My issue with Pi setups is that they eventually fail due to SD card corruption.
One big driver for microcontroller use is power, as you've suggested. A quick look on Google shows that the Pi Zero uses about 100mA at idle, and even its "sleep" mode uses 30 mA. In contrast, the esp32-c3 datasheet lists power consumption at 130 micro-Amps for light sleep and 5 micro-amps for deep sleep. If you want to run something on battery or small solar, you can go a lot farther with a microcontroller using power-efficient sleep.
One other thing that might be relevant to some use-cases is deterministic realtime control. When your program is the only thing running on the processor, with no OS involved, you can have much more reliably control over your timing and latency. This isn't an area I know much about.
You've got the supply, that's good!
Now, if you have the interest, then asking your dad to show how these components could be practically used for something interesting could as well be a beginning of a wonderful journey.
Perhaps, your dad just needs such a signal from you. In my own experience, Snap Circuits set is currently providing this journey.
To be honest I understand more on how these components work than my dad does, he usually just clicks on the first results on Google and glues together Arduino/Hackaday projects. Whenever I talk to him about doing real low level stuff and writing actual drivers, it always goes over his head.
It also shows examples of projects to learn the use of the board.
Also, another two to use as an alternative controller (with opensource firmware) on a video conversion board; but I only installed one, because it didn't satisfy my hopes.
There really needs to exist an alternative WiFi chip from another manufacturer. It would significantly drive the price down due to competition. Currently there's no competition to Espressif in this segment. Maybe Raspberry Pi should come up with RP2040 WiFi chip. That would be amazing.
While we are on this topic I did a lockdown project based on ESP8266 thought I had share :p
https://www.ankshilp.com/monitoring_solar_panel_output_over_...
ESP8266 don't have secure boot or flash encryption so it's not good for production.
C3 doesn't have Risc-V ULP, whereas the S2 does, but the S2 doesn't have BLE!
I'm waiting for a RISC-V ESP with ULP and an actual low power consumption BLE.
Espressif also announced the ESP32-WROOM-DA which is has dual antenna configuration, can't wait to see how it handles!
Very cool project, I want to play with Solar Panels as well it looks very fun :).
Please check out my project too :P https://www.kokonaut.com
BTW cool project.
The S2 is more of a direct upgrade as it has ULP and only wifi. Surprising the c3 is that much cheaper, the release is also much more recent. Wonder why that's the case?
ESP32 is around 1.5 times of the 8266.
>Wonder why that's the case?
Probably they are realizing they need to capture market before other player jump in.
I wouldn't think it would be too difficult to get QMK running on these.
It doesn't look like these are close to the Pro Micro pinout though, so perhaps a shim PCB to wire things up correctly?
https://beta.docs.qmk.fm/developing-qmk/c-development/compat... list of things QMK supports.
There are a few bluetooth keyboard controllers that already fit the bluetooth controller niche and are pin compatible (nice!nano). This having a microusb port would make it less appealing as well.
Personally I'm more interested in the RP2040 Pro Micro variant. It uses KMK, works with circuit python and can have its keymap changed by editing a file on it rather than reflashing or being limited by Via/Vial.
If you're used to the plug-and-play Arduino, be ready to spend quite a bit of time on setup before even connecting to a WIFI.
Surely that is nowhere near enough to meet the FCC requirements to still operate when faced with other unrelated radio transmissions?
1. https://www.espressif.com/sites/default/files/documentation/... 2. https://docs.espressif.com/projects/esp-idf/en/latest/esp32/...
Of course. In power we need specific features in the PWM peripheral. In particular complementary pairs with programmable dead tine. It is also customary to have an interrupt every cycle to do measurement and control. Control output is the new duty cycle for the next period - we typically compute a new duty cycle every period. Weather this chip can handle that type of thing is what I was after in my original question. It seems like the answer is no.
This does not look at all like the work of pick-and-place machines. No solder paste was used, much less flow soldering. This is all done by hand, by incompetent workers.
That implies Xinjiang.
BTW Look at the price of a good soldering paste: EUR100 and wait-time 2 months.
Would you rather sit in a factory soldering RISC-V boards without pay or wait for your turn in a concentration camp where you can get indiscriminately beaten, raped, tortured and killed?
What's the purpose of it? Does it have to be recorded & kept (in case police want to ask 'who bought x' or 'what did y buy' or something?) or is it just to check that the purchaser matches the billing details (fraud prevention?)?
I found the ratings on aliexpress to be completely useless. as compared to aliexpress, even amazon ratings feel legit (which has probably the lowest reputation from my experience).
I had way better experience with local vendors here in Switzerland or even shipped from Germany for all kinds of qualities.
The local vendors here also have way better support and very quick shipping times.
I would only use AliExpress to buy things you can't find anywhere else, which should help with counterfeit issues, AliExpress has seller ratings and what not, too. I've had some luck with BangGood.com for randomly produced NodeMCU style boards, and they have a US warehouse which helps with shipping speed (at additional cost).
A lot of the time though, Amazon is O(tens of pence) more expensive, and I just view it as a cheap insurance. (Amazon's returns/replacements is great IME; AliExpress's is unknown to me and frankly I assume it's bad, and for the sake of tens of pence don't want to find out.)
As for the sellers, I either know them due to their other online presence, or I select them based on how good the descriptions are on the items they sell from a technical perspective. Reviews are also useful, especially those with more text, photos, and some technical comments.