8 ms·
ESP32-C3 Wireless Adventure: A Comprehensive Guide to IoT [pdf]
- iamflimflam1 3y agoOne of my favourite series of chips. Use them in pretty much every project I do. The combination of a pretty powerful processor along with built in wifi and Bluetooth is perfect.
- mdrzn 3y agoI know ZERO about Hardware and IoT, but I would love to learn to tinker with these things like ESP32 and Arduinos, is this guide comprehensive and easy enough to follow to go from zero to building something?
- mankyd 3y agoThe fastest way I've found is https://esphome.io/ https://esphome.io/. You can literally flash an esp32/esp8266 and have a device up and running in minutes. You of course need some central server to collect and act upon the data. I use HomeAsssistant, but I am sure other options work as well.
- mdrzn 3y agoI managed to install HA on a Raspberry 2, but after that I got lost very quick with all the integrations and stuff. I'll give it a try, thanks!
- mankyd 3y agoIn that case, make sure you check out https://esphome.io/guides/getting_started_hassio.html https://esphome.io/guides/getting_started_hassio.html Once setup, you can open any HA on a computer of your choice, plug in an esp* via usb, and flash it from your browser. Once it's flashed over usb once, you can disconnect from your computer and flash it via OTA (i.e. remotely) in the future. You can connect whatever sensors or outputs you want and change it at any time.
- zeekaran 3y agoHA has made massive strides in the last few years. Depending on how long ago you tried that, it might be a lot more user friendly now.
- iamflimflam1 3y agoI would probably start with the Arduino framework to begin with. It works well on ESP32 dev boards and there are a lot of tutorials out there.
- therealmocker 3y agoWhat does AIoT stand for? It is used throughout the document -- Something like "Artificial Intelligence of Things" ?
- upon_drumhead 3y agoWhat an amazing resource. I look forward to reading it.
- sircastor 3y agoI moved to the ESP32-C3 after using the 8266 for a while, and the C3 is a great chip. It's small, power-efficient, has bluetooth and wifi onboard. It's got USB pins so you can connect it up to USB and program it, and connect to Serial (no USB device though, sadly) It's got a really full feature set, and a really strong Arduino community to boot. Probably best of all, it's inexpensive and in-stock. While so many other chips have been unavailable, the C3 can be had just about anywhere at very reasonable prices. And if the chip isn't quite your thing, the modules available are _excellent_.
- XorNot 3y agoThe utility of these chips just make me a little sad we don't quite have the same thing for hard-wired ethernet. The size you can hit with these is so small that the bigger component is always getting power to them - which is something which a similar cost/performance marker would be able to hit if you could hardwire them and run PoE.
- MayeulC 3y agoSomething like 10BASE-T1S (802.3cg) would be nice. Single-pair Ethernet with PoE (PoDL) and bus-like connectivity (from what I've read, I haven't had the opportunity to try it in practice). https://www.ieee802.org/3/cg/public/Jan2019/Tutorial_cg_0119_final.pdf https://www.ieee802.org/3/cg/public/Jan2019/Tutorial_cg_0119...
- thesh4d0w 3y agoLike the ESP32-POE? https://www.mouser.ca/ProductDetail/Olimex-Ltd/ESP32-POE-ISO?qs=unwgFEO1A6vVfCRbLeeCIw%3D%3D https://www.mouser.ca/ProductDetail/Olimex-Ltd/ESP32-POE-ISO...
- avsteele 3y agoThis is interesting, thanks for posting.
- squarefoot 3y agocnlohr managed to add Ethernet to a esp8266 module (1) using the i2s signals also present in the esp32-c3 and a driver plus magnetics. Once the transformer is in place, passive PoE can be added with a regulator connected to the relevant transformer pins, probably 2 and 7 in the schematic at (2), but yeah, the size grows significantly. 1- https://github.com/cnlohr/espthernet https://github.com/cnlohr/espthernet 2- https://github.com/cnlohr/espthernet/blob/gh-pages/hardware/esp12e-ethernet.pdf https://github.com/cnlohr/espthernet/blob/gh-pages/hardware/...
- deleted 3y ago[deleted]
- ahaucnx 3y agoWe do use the ESP-32-C3-MINI module in our open source / open hardware air quality monitor [1]. We used the ESP8266 before and the C3 is a great replacement and big improvement. The direct programming through the USB works great and our makers can actually directly flash it from the Chrome browser [2]. So the complexity of the BOM is greatly reduced. Having two real hardware serials is a great improvement over the ESP8266 as the software serial with the ESP8266 was never 100% reliable. So far we have produced a few hundred boards with the ESP-C3 and they all seem to work stable and reliable and we are planning to use it also for our indoor air quality kits. [1] https://www.airgradient.com/outdoor/ https://www.airgradient.com/outdoor/ [2] https://www.airgradient.com/open-airgradient/instructions/diy-open-air-presoldered-v11/#software https://www.airgradient.com/open-airgradient/instructions/di...
- numlock86 3y agoLove ESPs, especially the C3. The general lack of DACs with a lot (well, almost all) of the chip models is quite sad, though.
- sgt 3y agoDoesn't the ESP32-C3 have DAC's?
- numlock86 3y agoNo, the ESP32-C3 sadly doesn't have any DACs.
- sgt 3y agoDoes the S3? I looked at the sheet and I see ADC Edit: apparently it doesn't. ESP32 however does. Why is the major use case for going S2/S3/C3 again ? Seems regular ESP32 has it all, and price is excellent.
- numlock86 3y agoESP32 is pretty old and will reach EOL "soon". At least when you are thinking on larger scale and long product lifecycles. You wouldn't design it in for a product you start developing now and want to put into the market by the end of next year for at least 3 to 5 years. Also things get better. You really don't want to release a product next year that still sits on Bluetooth 4.2 for example. https://www.espressif.com/en/products/longevity-commitment https://www.espressif.com/en/products/longevity-commitment
- sgt 3y agoYeah, so what are other reasonable options. Going TI? Or sticking with the latest DAC-less ESP32-model and just adding an external one?
- 3y ago
- n8henrie 3y agoI haven't done much with it yet, but I'm excited about the bare-metal (no_std) rust support for the esp32c3 (as opposed to some other variants that require a custom toolchain as I understand it). Lots of details at <https://mabez.dev/blog/posts/ https://mabez.dev/blog/posts/>, and some examples of wifi on bare-metal at <https://github.com/esp-rs/esp-wifi https://github.com/esp-rs/esp-wifi>. I hope to eventually get it working with MQTT (there may be examples already, I haven't yet looked in-depth), at which point I think this will be my go-to for the majority of my IOT projects going forward!
- lelanthran 3y agoThe IDF for the c3 already comes with libraries for client mqtt. In fact it comes with libraries for most useful things. Don't think those libraries will be callable from plain rust. Might need some elbow grease to use all the bundled C3 functions from rust.
- bryal 3y agoThey are callable from plain Rust. See the crate `esp-idf-sys` [1]. I'm using ESP32-C3, Rust, and the IDF for a DIY RGB room lighting solution [2]. Convenient MQTT and OTA updates -- it's great! Espressif and the Rust community have done an amazing job. But I'd also love to be able to do the project without ESP IDF, using `no_std` and smaller specific crates instead. The solution for using ESP IDF in Rust is fairly convenient, but it does require some extra steps and the disk usage is not insignificant. A pure Rust solution would be more elegant. [1] https://esp-rs.github.io/esp-idf-svc/esp_idf_svc/mqtt/client/index.html https://esp-rs.github.io/esp-idf-svc/esp_idf_svc/mqtt/client... [2] https://git.sr.ht/~jojo/huelia/tree/esp32-c3_and_mqtt/item/performer https://git.sr.ht/~jojo/huelia/tree/esp32-c3_and_mqtt/item/p...
- anujdeshpande 3y agoThe 8266 was based off an xtensa core instead of an Arm core which is the norm in the industry. Espressif created a replacement for this wildly popular chip with the C3 and based it off RISC-V to keep up with the times and the community. No more toolchain complaints from the community, plus they get to use open standards like RISC instead of xtensa from Tensilica. The never-ARM approach from Espressif has worked out well for them over multiple other alternatives that they chose over the years. If someone writes a book on the downfall of Arm in a few years, this is going to be a very interesting chapter IMO. disclaimer - worked at Espressif for a bit (2017-2019)
- ta988 3y agoThe RP2040 shows that Arm is far from dead in the space of tiny microcontrollers. And more are coming.
- catiopatio 3y agoThe downfall of ARM? What? Are you kidding?
- adrianpike 3y agoI believe OP is speaking specifically to the IoT space, which is still a bit of a stretch - but slightly more accurate than the massive ARM dominance we're seeing elsewhere.
- m00x 3y agoRISC-V is a much better ISA for IoT since it's so much better aligned. You just need to use the parts that you want instead of having to put in the whole package. Plus, it's free!
- michaelt 3y agoI think the ESP8266 in a way shows the opposite. ST, Atmel and Microchip maintain massive product catalogues so users can choose between 4MHz, 10MHz, 16MHz and 20MHz for their 8-bit, 8-pin microcontroller, and choose whether they want 1750 bytes of program memory or 3500 - but for the same price customers can get a 160 MHz, 32-bit microcontroller with built in wifi? Why would expressif pay the engineering costs and supply chain complexity costs to make worse products, when their flagship product is already a great price?
- anujdeshpande 3y agoEspressif is taking quite a radical approach as compared to other semiconductor companies. They provide everything from a Cloud SaaS for their chips, to open source phone apps that connect over BLE/WiFi to their chips, reference hardware designs, integrations with voice assistants, and more. Typically, semiconductor companies have shied away from providing anything comprehensive because they don't want to upset their distributors and partners who provide the missing services - but not Espressif. I think if the US-China chip war hadn't been going on, and customers wouldn't have been paranoid of using a Chinese chip (and being in a tough spot like Huawei customers), Espressif chipsets would be waaaaay more popular. Disclaimer/source - worked at Espressif for a bit (2017-2019)
- tyingq 3y agoWouldn't the newer RISCV based ESP32 models eventually add to the commercial popularity? Maybe some commercial users stayed away from the Xtensa powered ones, especially if they would have needed to do lower level work?
- kps 3y agoESP32s aren't really ‘lower level’ in the sense that anyone is likely to write assembly code for them (compared to, say, 8051 or PIC), other than maybe some driver author at Espressif. The big win from using RISC-V, other than name recognition, is mainstream compiler support (which is nothing to sneeze at, especially when it's largely funded by someone else). When I worked on Matter¹, the Xtensa and RISC-V versions were basically fungible from the software point of view. (And really, so were other vendors' various ARMs.) We did find that Bloaty McBloatface² didn't support Xtensa, so I had to write an alternative. ¹ https://github.com/project-chip/connectedhomeip/ https://github.com/project-chip/connectedhomeip/ ² https://github.com/google/bloaty https://github.com/google/bloaty
- auxym 3y agoA lot of grey-beard type embedded programmers, who programmed in assembly through the 80s and 90s, really got attached to their architecture of choice, whether that is AVR or MSP430 or 8051. That crew tends to be very conservative with tech choices, for both good and bad reasons. Some then learned to tolerate ARM Cortex M. But Espressif, this weird new and unknown Chinese manufacturer, came out with their own arch and instruction set that no one else uses (xtensa). A lot of old timers were wary. Their price to feature ratio is unbeatable though. That go them in the maker/hobby community fast, and lately I've heard of more and more companies using esp32 for actual professional products.
- 037 3y agoThis looks like an excellent resource! As someone who primarily specializes in programming and only understands the basics of electronics, I often use esphome[1] for my home automation projects. I want to mention it here as it significantly lowers the entry barrier for creating functional (and funny!) projects quickly, focusing on code and capabilities (with one click, you can update any esp chip wirelessly, after the initial firmware upload via USB that you can do via a web interface too). Working at a lower level and with code more closely tied to the machine can definitely be rewarding. Yet, it’s esphome that has revived my pleasure of working with electronics and enabled numerous complex projects that I wouldn't have even begun otherwise. It's also incredibly powerful, and if you wish, you can write libraries to add more features. It seamlessly integrates with Home Assistant (auto-discovering the devices), but it can also be used with other interfaces. I trust it to not disappear because I think Home Assistant acquired the project. Oh, and it's open source too (MIT + GNU GENERAL PUBLIC LICENSE)! [1] https://esphome.io/ https://esphome.io/
- euroderf 3y agoThe document does not mention the Matter protocol. An interesting omission ?
- achates 3y agoThey do have example Matter projects for the ESP32-C3/S3. I assume it's over WiFi and not thread. https://github.com/project-chip/connectedhomeip/tree/master/examples/lighting-app/esp32 https://github.com/project-chip/connectedhomeip/tree/master/...
- moontear 3y agoWhy should it? It is neither talking about Zigbee specifically for example.
- euroderf 3y agoWell, it seems pretty comprehensive, and includes home automation. And Matter/Thread is what all the cool kids are using.
- m00x 3y agoESP32-C3 does not have zigbee/thread capabilities, only the upcoming C6 and H2 have it.
- 037 3y agoI regard the ESP32-C3 as the natural successor to the ESP8266, but considering the relatively minor price differences on sites like Aliexpress, I'd opt for a more robust option like ESP32-S3, which offers significantly fewer limitations. However, I'm personally anticipating the upcoming releases of zigbee/matter compatible chips for my home automation endeavors (such as the ESP32-H2, ESP32-C6) and possibly their esphome support. I'm enthusiastic about building low power devices that can operate efficiently for up to a year on simple alkaline batteries. While these chips already have an effective sleep mode with low power consumption, the Wi-Fi component remains a notable energy drain.
- MSFT_Edging 3y agoI've been developing my home automation stuff recently. I have a esp32 calling home over wifi about every minute, and I wanted to try a battery version. I just happened to have two rechargable AA and a AA battery holder. You're very correct the wifi is a huge drain. I configured it to go into sleep mode between measurements and I was able to get 3x the life out of it, but for 2 AAs without a real battery circuit, it just meant about 36 hours. I'm excited for the zigbee/matter chips, I'd like to really get power down so I can embed sensors in things like guitar cases.
- luma 3y agoWould BLE work for your use case? I have a few ESP32 projects that fire out occasional sensor readings using BLE advertisements which is a lot faster and also lower power than trying to hook up to WiFi on every wake cycle.
- kkielhofner 3y agoHave you tried ESP-NOW[0]? It's been a while since I used it but from what I remember it works really well between ESP devices and you can certainly do a many to one/gateway approach. The range and power consumption is outstanding all things considered. [0] - https://www.espressif.com/en/news/ESP-NOW https://www.espressif.com/en/news/ESP-NOW
- deleted 3y ago[deleted]
- Reventlov 3y agoNot exactly related, but I tried using the ESP32-S3 ftm functionality, and it's totally broken…
- girvo 3y agoThrough ESP-IDF? Which version?
- Reventlov 3y agoThe latest, but it was a few months ago. The results were off by 50 meters or so, and many persons have the same problems : https://github.com/espressif/esp-idf/issues/8976 https://github.com/espressif/esp-idf/issues/8976
- girvo 3y agoDamn! That’s good to know, we’ll be tackling that on our board soon. Wonder what’s causing it? Driver bugs is my guess Edit: hah if I read the GitHub link, my guess was right. Seems they have a patch there for you to try? Fingers crossed they fix it
- SethTro 3y agoI love my ESP32-S series. I use them in tons of LED projects[1]. Sadly it seems WS2812b are fundamentally incompatible, under FreeRTOS, with wifi due to timing glitches from interrupts. In my next two project I'm going to have to run two 30ft cables because I can figure out how to get low latency wifi to work on a Raspberry Pi 2040 (where PIO is fabulous, but 500ms request latency is killing me) or without glitches on a ESP32. [1] https://anima.haus/events/seacompression https://anima.haus/events/seacompression
- leptons 3y agoBeen using ESP32 to drive WS2812b LEDs for years. You need to use the SPI peripheral to drive the LEDs, using a driver that outputs the data format the LEDs understand. The SPI peripheral uses DMA and does not glitch when wifi is accessed at the same time.
- bryal 3y agoAnother alternative is to use the RMT (remote control module). I've had success with that. There's a driver for it in Rust: https://lib.rs/crates/ws2812-esp32-rmt-driver https://lib.rs/crates/ws2812-esp32-rmt-driver
- leptons 3y agoRMT glitches when wifi is accessed. I started with RMT, it was a big fail for me.
- rostakagmfun 3y agoEspressif's software support for their chips is incredible, and they are actively collaborating with the open-source community to fix bugs and implement feature requests. The fact that their SDK supports all major features of an embedded device out of the box (e.g. OTA, clients and servers for application-level protocols like HTTP and MQTT, file system and kv storage over flash and sd memories) makes it a compelling choice for many commercial use cases. Add a wide selection of FCC-certified modules with embedded PSRAM and Flash memories, that are also cheap and available in high quantities from multiple suppliers, including LCSC, DigiKey, and Mouser. And, their higher-performance options, like ESP32S3 can also be used to run low-complexity image classification CNNs. Source: have been working on an ESP32-based camera devkit (shameless plug) https://www.crowdsupply.com/maxlab/tokay-lite https://www.crowdsupply.com/maxlab/tokay-lite and a few commercial devices that use ESP32 as well.
- agys 3y agoI use the ESP32 in many of my art-projects and it works perfectly: enough memory, compact, cheap and the “fuses” that I use to engrave the edition number and signature. Programming through Arduino works well. LCD driver for ASCII art (there is an image of the back with the chip visible): https://lcd.ertdfgcvb.xyz https://lcd.ertdfgcvb.xyz LED matrix driver: https://twitter.com/andreasgysin/status/1666092173794906114 https://twitter.com/andreasgysin/status/1666092173794906114
- tambourine_man 3y agoThe animations on the site and on the actual hardware look awesome. Congratulations
- agys 3y agoThank you! I hired a photographer specialized in jewelry to take a few studio shots of the object, and he made the electronics look precious!