[HN Gopher] ESP32 Buyer's Guide: Different Chips, Firmware, Sensors
___________________________________________________________________
ESP32 Buyer's Guide: Different Chips, Firmware, Sensors
Author : eitherway
Score : 343 points
Date : 2023-02-04 11:48 UTC (11 hours ago)
(HTM) web link (eitherway.io)
(TXT) w3m dump (eitherway.io)
| knaik94 wrote:
| I have been interested in Lilygo products does anyone have any
| experience using specific Lilygo esp32 boards?
| toast0 wrote:
| I built a clock with iCal support with the LILY Pi. Everything
| seemed to work, although I found it challenging to reproduce
| the example application, but once I did, things were fine.
| Eventually, I rearranged to build in Visual Studio with
| platform.io which I like a lot more; I feel there's more
| clarity than the Arduino IDE.
|
| Currently I have one device at home, and a second in the field,
| which a friend is planning to use once I make some timezone
| adjustments (Google stopped providing vtimezone data for new
| calendars, apparently, so I need to get it somewhere else).
| kelchm wrote:
| They have been quite good in my experience. I particularly like
| the T5 4.7 and 2.13 which include integrated e-paper displays.
| thenthenthen wrote:
| I have used and deployed the ttgo lora boards. The boards are
| a bit cramped, soldering the headers requires you to remove
| the screen in order not to melt the ribbon cable (w I didnt
| try). But they work. Zero problems in the field but two out
| if 20~ died on my bench while just coding/out of nowhere.
| Furthermore, IIRC, the default i2c pins used in many
| libraries are used for lora/oled so you need to define two
| custom pins using TwoWire for example.
| doubleg72 wrote:
| I used a couple for automated garage doors and I also build a
| little CDP/LLDP query tool to determine what switch port
| unlabeled Ethernet drops are connected to. The door openers are
| bulletproof and haven't had any issues with my tool either.
| zdw wrote:
| Is your CDP/LLDP hardware tool public?
| wepple wrote:
| I experimented with their TTGO LoRa boards and gave up out of
| frustration. That said, folks (including less technical) seem
| to have success with them for things like the meshtastic
| project, so they can't be terrible. YMMV
| brk wrote:
| They're hit or miss. I've used a few of their various boards
| successfully, but you usually wind up hunting down random
| libraries or having to tweak old code examples.
|
| I wouldn't use them for my first foray into ESP32, but if
| you're fairly decent at debugging C, you'll probably be fine.
| mhb wrote:
| This guy has some good videos using Lilygo stuff:
| https://www.youtube.com/watch?v=FHCYOlqoSUo
| deeesstoronto wrote:
| I've been very happy with their esp32 boards. Easy, cheap, well
| integrated.
|
| The only issue I've had is the battery charger circuit on some
| boards has a fuse instead of a diode making it a hazard
| (realized pretty quickly while testing). This is supposedly
| fixed on newer revisions but there's always a chance of getting
| an old one through some sources....
| pantalaimon wrote:
| RIOT-OS has pretty good support for all of those btw
|
| https://doc.riot-os.org/group__cpu__esp32.html
| eitherway wrote:
| Thank you for posting the link. I've seen this, but lost the
| link.
|
| Would you mind explaining what the advantage is over the ESP-
| IDF or the Arduino-SDK?
| pantalaimon wrote:
| You are using a vendor agnostic API, so your code will also
| work on a e.g. a STM32 or nRF52.
|
| e.g. the Bluetooth examples will run without modification on
| an nRF52 or ESP32 board.
| mmoskal wrote:
| The article doesn't mention plain ESP32 - the first in family,
| dual core. These are the most popular on Amazon etc. There is
| also ESP32-S0WD single core version.
| xchip wrote:
| In general this guide is too high level.
|
| For example: what does it mean "Built-in battery support."?
|
| - will it allow you to monitor the battery charge? - can I charge
| it using the micro-USB - does it have undervoltage protection? -
| what is its quiescent voltage? - what is its consumption in deep
| sleep mode?
|
| As for the Esp32-Cam, those little camera modules are flawed, one
| of the pins act as a 20Mhz antenna and causes interference
| everywhere including itself, and your board might or might not
| work.
| russianGuy83829 wrote:
| yeah, also the wroom wrover confusion
| analog31 wrote:
| Good point. Indeed, a closer look is needed in order to make
| use of any feature of a MCU board that's not built into the MCU
| itself. I've gotten in the habit of going straight to the
| schematic, e.g., for the Wemos C3 pico:
|
| https://www.wemos.cc/en/latest/_static/files/sch_c3_pico_v1....
|
| Battery charging is handled by an external chip, so I've looked
| up its datasheet when I needed (for instance) to reduce the
| charging current. The schematic shows a voltage divider feeding
| one of the ADC inputs for battery monitoring.
|
| Also, no schematic, no buy. I've had good results with stuff
| from Wemos. I've also gotten boards that were definitely
| copies, worked fine, but _caveat emptor_.
| WaitWaitWha wrote:
| Thanks for the article.
|
| I really enjoy using ESP32 devices in Home Assistant with
| ESPHome.
|
| From the add-on:
|
| > [ESPHome] add-on allows you to manage and program your ESP8266
| and ESP32 based microcontrollers directly through Home Assistant
| with no programming experience required. All you need to do is
| write YAML configuration files; the rest (over-the-air updates,
| compiling) is all handled by ESPHome.
|
| You can also add that a lot of commercial home automation devices
| use ESP chips. This often allows the open source [Tasmota][0]
| firmware to be flashed on them and make the devices compatible
| with Home Assistant or alike.
|
| Some points that could be improved:
|
| The article reads like someone is talking. For me that style of
| writing is bit off-putting, i.e. too much fluff.
|
| I am surprised the manufacturer of the chip Expressif is not
| mentioned, as both ESP8266 and and ESP32 are by them.
|
| > The ESP has no integrated firmware.
|
| then near after this, you write
|
| > This firmware is then flashed to the ESP Chip with the help of
| a "burned into the chip" ROM bootloader (more info).
|
| That means there is a firmware, the bootloader. Expressif gives a
| really good [explanation][1] how this bootloader firmware works.
|
| [0]: https://tasmota.github.io/docs/
|
| [1]: https://docs.espressif.com/projects/esp-
| idf/en/latest/esp32/...
| shoelessone wrote:
| Can somebody tell me the difference between `ESP32-WROOM-02` and
| `ESP32-WROOM-02-H4`?
| antoniuschan99 wrote:
| the H is usually the flash size I think?
| nabakin wrote:
| I'm working on a network-level AdBlocker project functionally
| similar to Privoxy which requires 2 Ethernet ports. One
| connecting to the modem and the other connecting to the router so
| that it's possible to MITM the traffic, but I don't see any
| boards with 2 Ethernet ports. Should I:
|
| - buy 2 ESP32s with an Ethernet port on each and communicate
| between them over serial
|
| - buy an ESP32 with Ethernet and USB and use an Ethernet to USB
| adapter
|
| - or is there a better option?
| vkdelta wrote:
| I don't think it will be good option. I think RPi is better for
| your usecase.
|
| I believe pihole works with just 1 eth port as you are just
| using it for dns queries and not actually NAT'ing traffic
| through it.
| nabakin wrote:
| Yeah, I know a lot about PiHole and how it works, but I'm
| creating a MITM AdBlocker like Privoxy. For that, I need 2
| Ethernet ports. Raspberry Pis also cost a ton right now
| because they have been heavily affected by the silicon
| shortage. Also, I want to develop for a platform which is
| cheaper than the Raspberry Pi at MSRP.
| m3koval wrote:
| It should be possible to do that using one Ethernet port
| using VLANs. You could buy a cheap L2 managed switch and
| use it to trunk two different Ethernet networks on the same
| port. Then you would configure the Linux networking stack
| to split the VLANs into separate interfaces.
|
| I am by no means a networking expert and was able to use
| technique to work around a similar issue in the past. It
| was easier than I expected!
| nabakin wrote:
| Awesome, I didn't know this was an option! Is there a
| cheap L2 managed switch? I'm only seeing $100+ boards
| with a cursory search
| vkdelta wrote:
| try ebay or newegg to get used or refurb ones. a lot of
| switches last really long.
| johnny_canuck wrote:
| This is great. I tried to spin up a small project over the
| Christmas break and got bogged down with so many options for
| buying an esp32 and then struggled working through the docs. I
| previously worked with an Arduino Uno years ago and that thing
| felt like it had a better UX for someone that is a real amateur
| when it comes to hardware. Glad to see a resource like this cut
| through the fog.
| eitherway wrote:
| Thank you for the nice compliment. I have felt exactly the same
| way and that's why I've written this post.
| amelius wrote:
| Do these boards include a Qualcomm Wifi chip? Or is the entire
| design made in China, including the CPU? Is the Wifi certified by
| the FCC?
| spicyjpeg wrote:
| The whole point of the ESP32 family is that the WiFi radio is
| integrated into the microcontroller itself, so the only
| external part required is some SPI flash memory for firmware
| storage. CE/FCC certification doesn't apply to chips, only to
| modules and products that include them, and there are several
| vendors (including well known names such as u-blox) offering
| pre-certified ESP32 modules that can be easily integrated into
| a custom design. Most of the development boards linked in the
| article are basically breakout boards for these modules.
| theatrus2 wrote:
| No, the SoC is all inclusive.
|
| Various modules do carry FCC modular approval. The whole
| product needs to be certified of course.
| antoniuschan99 wrote:
| it's based on tensilica xtensa and newer ones are risc-v. The
| Wroom-32 are the ones that are fcc certified
| jvm___ wrote:
| I want to build a game with - a wireless led (a 5-light length of
| a led strip would work) - a camera or other module to tell what
| color ball is in front of it
|
| And a controller to change multiple of the wireless LED lights
| based on different cameras...
|
| Is ESP32 suitable?
| dvh wrote:
| Esp32-cam has 4 available gpio pins (there are 2 more pins but
| one is used by SD card and one is connected to built-in flash)
| plus 2 uart pins. With narrow angle camera it costs around $6.
| Wide angle camera costs $4 or so. You need serial port to
| program it. There are some other limitations you'll only find
| when you start playing with it like DAC not working when wifi
| is on. So theoretically you can control 6 LEDs directly. On one
| 18650 battery it lasts 2 hours.
| -------------- | SDCARD |
| 5V -|1 16|- 3V3 GND -|2
| CAMERA 15|- GPIO_16 (useless, can't be used for anything)
| A GPIO_12 -|3 14|- GPIO_0, connect to GND during
| programming, used by camera, don't use! A GPIO_13 -|4
| 13|- GND A GPIO_15 -|5 12|- 3V3/5V
| A GPIO_14 -|6 11|- UART RX, GPIO_3 A
| GPIO_2** -|7 10|- UART TX, GPIO_1 A GPIO_4*
| -|8 9|- GND (weird, don't use)
| | LED | --------------
|
| - A=analog input 0..4096
|
| - GPIO_4 is connected to FLASH LED, if you want to use as input
| you need to desolder resistor R13 that goes to base of npn
| transistor
|
| - GPIO_2 is HS2_DATA0 for SD card, it has 47k pullup
| squarefoot wrote:
| You may want to check out the ESP-EYE module.
|
| https://www.espressif.com/en/products/devkits/esp-eye/overvi...
| jvm___ wrote:
| Any suggestions for remotely switching LEDs on and off within
| a system that can also read the camera.
| Saris wrote:
| You could use addressable RGB LEDs, like the WS2812B. You
| just need to supply power and a single IO line to control
| them so you don't need any external hardware like MOSFETs.
|
| The ESP32 can read the camera, recognize objects/colors,
| and control the LEDs without any external systems.
| jvm___ wrote:
| So we want to build a simple game.
|
| Light up one tube out of 10.
|
| Ball needs to pass through tube.
|
| Once the ball has gone through another tube lights up.
| Goto step 1...
|
| More can be added to the game, but that's the starting
| basis.
|
| How would I coordinate the various ESP32? I'd need a
| raspberry pi, no?
| Saris wrote:
| Ah ok I see.
|
| Using ESP32s connected via Wifi and MQTT to a host (Pi or
| something) would be the easiest way I can think of to
| coordinate that.
|
| You could also go without a host, by having the ESP with
| the ball randomly choose another and send the command to
| it, and connect them all together with ESP-NOW which is
| direct P2P communication.
| martin_a wrote:
| ESP32s are _sick_!
|
| I've only been building things with Arduino Uno/Nano/Mega
| (clones) so far and they are kind of limited. Those ESP32 I've
| now got seem to have _everything_ onboard: lots of IO pins,
| hardware PWM (although I do not understand that fully yet), WiFi,
| Bluetooth, hall and temperature sensor onboard.
|
| All of that for 8 Euro/piece. It's sick for IoT projects, really
| looking forward to doing more of that.
|
| I've got these: https://www.amazon.de/dp/B074RGW2VQ
|
| edit: I'd love if Arduino et. al. would start using USB-C plugs
| though. I've got everything from USB-A to micro USB around here
| and I'm constantly looking for the right cable to use a board.
| Does anybody know why they haven't switched to USB-C yet?
| skybrian wrote:
| Shop around, there are boards that have USB-C connectors. I've
| seen some on Adafruit.
| martin_a wrote:
| Thanks, I'll have a look around!
| Gigachad wrote:
| I suspect USB-C connectors just cost 5 cents more so they
| aren't used on most dirt cheap dev boards. I've seen adafruit
| update their stuff to USB-C but they also charge a good premium
| over the generic ebay clones.
| Saris wrote:
| The S3 also has RGB display support which is great for projects
| with a display.
|
| The IPS version of this is my current favorite:
| https://www.aliexpress.us/item/3256804766379290.html
| joemi wrote:
| What does that mean? You can hook and RGB display up to pretty
| much any microcontroller, as far as I know.
| Saris wrote:
| Normally only if the display has its own controller, and you
| talk to it via SPI, i2c, or an 8 or 16 bit interface.
|
| But those methods are slower and if you're doing a higher
| resolution user interface, the RGB interface lets you drive
| stuff like an 800x480 display at well over 60 fps.
| joemi wrote:
| Ah, I see. I didn't get that it meant it had a controller
| built in. Interesting!
| Saris wrote:
| They're pretty neat! I've been playing around with one of
| these lately, it uses the ESP32-S3:
| https://www.aliexpress.us/item/3256804766379290.html
| elliottkember wrote:
| https://shop.m5stack.com/products/atom-lite-esp32-developmen...
|
| I cannot recommend the M5 stack highly enough. I did a lot of
| ESP32 programming for my LED art hobby projects from 2016-2020
| and these are amazing.
| _spduchamp wrote:
| I've been using Wemos and other various 8266 and ESP32 boards
| but recently picked up a M5StickC PLUS and i dont think I'll
| ever go back to those little standalone boards. Having
| everything in a nice little case with battery and most of the
| sensors i need, it is def a good way to go. Poked around with
| that FlowUI stuff and it was just too creepy to have to have my
| microcontroller connect to a server across the globe to program
| it, so a switched back to Arduino and using OTA.
|
| The whole M5Stick ecosystem of addons it awesome too.
| mrandish wrote:
| For those who want to start experimenting with a fully loaded
| device ready to go, the M5Stack Core2 is a great option because
| it includes a ~2-inch color touch screen, soft buttons, 16 MB
| flash and 8 MB PSRAM, a speaker with I2S amplifier, PDM
| microphone, 10 programmable LEDs, vibration motor, RTC, microSD
| slot, lithium battery, 6-axis IMU, M-Bus Socket, and Grove
| connector for $50 delivered.
|
| https://www.amazon.com/dp/B08VGRZYJR
|
| M5Stack makes a huge ecosystem of >100 add-on modules that snap
| onto the bottom of the Core2's form factor, including a wide
| range of sensors, LoRa & cellular radios, I/Os, interfaces,
| servo drivers, GPS, cameras, HMDI, RJ45, UWB, RFID, etc. It's
| quite a clever modular expansion system that makes prototyping
| (or just playing around) super easy.
|
| https://shop.m5stack.com/collections/all-products/m5stack-co...
|
| Note: I linked (and have) the AWS IoT Devkit version of the
| Core2 which comes with an upgraded battery module on the bottom
| vs the standard Core2 (a bit more Mah plus ten RGB LEDs built-
| in). It's also $10 cheaper than the base Core2 on Amazon thanks
| to AWS subsidy. The only difference is it comes with AWS Fire
| IoT Devkit firmware pre-flashed but it only takes a minute to
| flash it back to stock Core2 firmware.
| balloob wrote:
| Yep, these are the way to go. Small and with a case, so ready
| to put around the house.
|
| Using just your browser you can transform these into Bluetooth
| proxies for Home Assistant with
| https://esphome.github.io/bluetooth-proxies/
| briHass wrote:
| For those looking for cheap dev boards, I've had good luck with
| 'HiLetgo' on Amazon. The WROOM-32S is my go-to, but I also use
| the WROOM-32U when I need an external antenna (it _must_ be
| connected) or the 32S+CAM module for the camera. I haven't gotten
| a DOA component yet.
|
| The Ali prices aren't significantly cheaper than many of the
| sellers on Amazon (at least in small quantities), you don't have
| to wait a month, and if you get a dud, replacements are easy.
|
| Even though I started with the 8266, as the article mentions,
| there's little reason to choose that outdated board at this
| point. It's worth the extra $1 to get the 32 in a DEV board
| configuration. Having the CP210x and USB onboard is also worth it
| for the hobbyist.
| JOnAgain wrote:
| With a data point of 1, I had a bad HiLetgo ESP32 dev board,
| and I now avoid them.
| tazard wrote:
| Amazon is giving me prices of $25-$35 for all the esp32,
| including the hitletgo you mentioned. Ali is $1.5-$2. Amazon
| also says 2+weeks deliver for many, Ali says 3 weeks. I'm in
| Canada
| mitthrowaway2 wrote:
| Amazon seems to charge at least $25 for _everything_ in
| Canada, even stuff I can get from the dollar store.
| Saris wrote:
| Digikey stocks Espressif boards for $8+ depending on the
| model.
|
| No point in ordering random ones from Amazon IMO.
| [deleted]
| tazard wrote:
| I ordered from ali, but this is good to know, thanks
| JKCalhoun wrote:
| Looks like the HiLetgo also has an ESP32 board with integrated
| LCD display. Boards with integrated displays I found to be very
| cool when beginning to play with. My "Hello World" was a
| graphical traffic light (bonus using the integrated buttons to
| simulate car-over-sensor or pedestrian hitting crossing
| button).
| Saris wrote:
| ESP32 dev kits are $8 on digikey, and directly from Espressif
| Systems: https://www.digikey.com/short/zz709bvv
|
| The ESP32-C3 dev board is around $8 too, and the ESP32-S3
| around $15 if you need tons of IO and an RGB interface.
| DannyBee wrote:
| ESP32 is nice in that a lot of things you might have to fiddle
| with elsewhere just work. They have a good ecosystem that they've
| spent time on. So things like auto-reconnecting wifi just works
| (it's been ported from ESP32 elsewhere but is a bit hit or miss).
| Same with bluetooth and OTA upgrades, and you name it.
|
| Especially coming from some other board types, it was like "oh i
| guess that just worked the first time" for a lot of things.
|
| I have a bunch of ESP32-S3's locked in some woodworking machine
| cabinets (they are used to monitor the machines for dust
| collection control/failure/etc.). It's trivial to make them do
| firmware reprogramming over bluetooth. You could do over wifi
| too, but in my case, the machines are too RF noisy (VFD's, etc)
| and enclosed to make it work. bluetooth only works because i'm
| like 2 feet away, but it works and i don't have to open the
| cabinet to update the programming.
|
| I also use one to broadcast a stupid bluetooth beacon that my
| garage door opener uses for "UL compliance" - It has bluetooth
| lights, and it won't let you open/close the door remotely unless
| it detects them, because UL requires they visually signal the
| open/close when done over wifi. Which again, just works. I never
| had that experience outside of the nRF52/nRF53 series
|
| There are some good low-power boards with the S3's, though it can
| be hit or miss (IE assuming you really want the 20ua deep sleep
| to be ~20ua).
|
| If you want something like a remote running off a small battery
| for 10 years, you may be better off with the heltec cubecell's or
| something. (They really easily get 3.5ua in sleep)
| farkanoid wrote:
| I honestly had a hard time getting started with ESP32-C3 (my
| first ESP device). Admittedly all of it was my fault, I got too
| cocky and assumed things based on previous work with competing
| devices that I shouldn't have.
|
| Once up and running they really are quite pleasant to use, and
| pretty damn cheap.
|
| The issues that hurt me the most were:
|
| 1/ It doesn't come preloaded with 'AT' firmware, it took me a
| while to figure this out as well as a PCB respin.
|
| 2/ The clearly labelled TX and RX pins are for flashing and
| debug output only, not for communication with an an external
| microcontroller. Two to four GPIO pins (decided by the AT
| firmware) are used for communication in 'AT' mode
|
| 3/ Two GPIO pins need to be asserted high and low on startup to
| enter flash mode. This fine when you figure it out, however the
| flash tool still tries to upload the firmware and 'fails
| successfully' with the correct upload delay.
| devwastaken wrote:
| Coming from the rpi platform one thing I miss is there's no
| standard UI configurator or desktop OS. For wifi credentials or
| cloud authentication and such it ends up getting programmed in,
| or you have to build a UI yourself that is specific. But if it
| doesn't include all the amenities an OS would have like
| mouse/keyboard, USB file transfer, corporate wifi setup, etc -
| it's not useable for environments where IT has to co figure it.
| zamadatix wrote:
| Anyone have a recommendation for something that can take 2 USB in
| and be the USB device to 2 separate up stream systems? I'd like
| to build something can pass through a keyboard and mouse to 2
| systems but also embed some hot key actions and the like so it
| always works regardless if my preferred OS install is configured
| and booted.
| tyingq wrote:
| The Teensy is very popular for acting as either USB host or
| peripheral and there's lots of projects to draw ideas and code
| from. The latest one only has 2 physical USB ports, so you
| would have to use a hub for your use case. I don't think you'll
| find a microcontroller with 4 physical ports anyway.
|
| https://www.pjrc.com/store/teensy41.html
| zamadatix wrote:
| Hub for the inputs is fine but I think I'd need 3 physical
| ports in that case - 1 for the hub and 2 for the separate
| outs.
|
| However... it just occurred to me I could connect 2 together
| for cross signaling over the other pins and have 2 in and 2
| out that way.
| tyingq wrote:
| Another idea, STM32Fxxx...3 physical USARTS in at least
| some of them.
|
| A project using it:
| https://github.com/satoshinm/pill_serial
|
| Specs for one with 3 usbs:
| https://www.st.com/en/microcontrollers-
| microprocessors/stm32...
| michaelt wrote:
| Why not have two microcontrollers, and have them talk to one
| another over serial?
|
| I've never heard of a microcontroller that provided the feature
| you're looking for, unfortunately.
| pomatic wrote:
| You want 2 or more off CH9350 - HID mouse/keyboard to serial
| adapters - they are designed for exactly your application. Wire
| back-to-back and piggyback an ESP of your choice on the serial
| ports to eavesdrop/intercept/augment. Available from Ali.
| robbs wrote:
| RaspberryPi can be both a USB host and a HID device. Sounds
| like a fun project!
| zamadatix wrote:
| I thought about a Pi running a RTOS but I couldn't find a way
| to get it to be a HID device to two different computers at
| the same time.
| iamflimflam1 wrote:
| ESP32s are great devices - I've done a whole bunch of projects
| including voice recognition on device. Really great fun.
| brainzap wrote:
| for playing around you probably want one with USB mount and
| circuitpython
| nicpottier wrote:
| I really like the LilyGo boards. This one in particular is
| awesome if you aren't looking for battery power:
| https://www.amazon.com/LILYGO%C2%AE-T-Display-RP2040-Raspber...
| jw_cook wrote:
| If you're willing to spend a little more for extra features, it's
| worth mentioning the S3 boards by Unexpected maker:
| https://esp32s3.com
|
| They have some nice improvements over the generic boards you'll
| find on Amazon, etc., like extra flash, extra GPIO pins, USB
| Serial JTAG pins, multiple LDO regulators, and multiple
| Qwiic/Stemma QT connectors (4-pin JST PH-compatible connectors
| used by I2C devices made by Sparkfun and Adafruit).
| pomatic wrote:
| And really annoying physical layouts - it's impossible to get
| the LED arrays flush with a front panel because USB connectors
| etc. are significantly taller.
| crims0n wrote:
| My new HomePod was delivered yesterday and while exploring I
| discovered HomeKit now has Matter support. I have a few ESP 32s
| lying around and wondered if I could connect them directly
| instead of bridging through ESPHome / Home Assistant. Apparently
| you can! Will be trying it out later:
| https://docs.espressif.com/projects/esp-matter/en/main/esp32...
| MegaDeKay wrote:
| Whoa. You can also use their ecosystem to put together a Thread
| border router! I think your HomePod might integrate that
| functionality already, but this is super interesting for
| someone like me and my old trusty Asus wifi router.
|
| https://github.com/espressif/esp-idf/tree/master/examples/op...
| balloob wrote:
| It's possible. We've published a couple of example apps for
| ESP32 variants build from the official SDK. You can find them
| at https://nabucasa.github.io/matter-example-apps/
| beardyw wrote:
| I did some playing around with ESP8266 and found dealing with
| HTTPS to be a pain when certificates changed. Have things
| improved?
| realharo wrote:
| If you're just making HTTPS requests to your own servers, you
| can simply include the root certificate of the CA you're using,
| pass it to the config when calling `esp_http_client_init`
| (https://docs.espressif.com/projects/esp-
| idf/en/latest/esp32c...) and then you probably don't have to
| worry about it for a long time, it will work through your
| regular certificate rotation.
|
| See https://docs.espressif.com/projects/esp-
| idf/en/latest/esp32c...
|
| If you need to make requests to other people's servers, there
| is a tool to generate and include a bundle from Mozilla, that
| you can update in the future as part of an OTA update
| (https://docs.espressif.com/projects/esp-
| idf/en/latest/esp32c...).
| eitherway wrote:
| Encryption in General on the ESP32 is difficult.
|
| I haven't used it, but there now seems to be some good support
| in the ESP-IDF Framework:
| https://docs.espressif.com/projects/esp-idf/en/latest/esp32/...
| worldmerge wrote:
| The eye in the corner is cute, nice job.
| eitherway wrote:
| Thank you!
| karmicthreat wrote:
| I have been using the M5Stack Tough for a product. It has worked
| reasonably well, though I have had a 10% defect rate on the touch
| digitizers. I will probably end up switching over to a product
| from https://www.makerfabs.com/ for a larger display.
|
| But it has worked fairly well. The stack was: -Platform.io -ESP-
| IDF framework -LVGL an embedded ui framework that is pretty
| simple to use. -FreeRTOS
|
| Works great, its been reliable and it will probably remain my
| choice for the next couple years.
|
| One thing I would like is better Rust support. I have taken a
| look around and everything is just out of date bindings to C/C++
| projects. Not a whole lot of native Rust, so I don't really feel
| the need to switch until that changes.
| fIREpOK wrote:
| > ESP32-C6 If you need Wi-Fi 6 or ZigBee Support, this is the SoC
| you want to look for.
|
| I don't think that you can buy this one yet..
| knaik94 wrote:
| It was actually launched in Jan 2023. It's been mostly out of
| stock, but a bare module with 4mb spi flash is in stock right
| now. However, currently populated dev boards are overpriced.
|
| https://www.adafruit.com/product/5670
|
| edit: I'd wait to buy it regardless, software and sdk is still
| under active development.
|
| https://github.com/espressif/esp-idf/issues/10423
| https://www.reddit.com/r/esp32/comments/10pkuin/esp32c6_real...
| moffkalast wrote:
| Right now it's the best time to buy "obsolete" Devkit V1
| boards ;)
| fIREpOK wrote:
| great to know, thanks.
|
| I'm surprised that they don't talk about OTG in this
| article... Maybe only the S-series supports it
| codingninja wrote:
| I've bought 6 of these direct from Espressif on Aliexpress,
| highly recommend!
| turtlegrids wrote:
| It's in stock right now. I've bought 3 of them from Espressif
| on aliexpress. You should too.
|
| https://www.aliexpress.us/item/3256804900845431.html
|
| (in stock as of 9:56AM PST Feb 4 2023)
| sowbug wrote:
| Does anyone know of a nicely packaged US smart plug that's not
| actually smart, but instead has an external input that I can plug
| a GPIO output into, and that has a solid-state relay so that I
| can PWM the plug?
|
| This is the closest I could find, but it uses a physical relay,
| so it would be loud and probably incapable of any reasonable PWM
| rate: https://www.amazon.com/gp/aw/d/B00WV7GMA2
|
| I'm interested in playing around with sous vide. I realized I
| have all the parts (anything Arduino-like, basic AC immersion
| heater, water pump, thermocouple with MAX6675 interface) except
| the SSR. I could buy a $15 SSR, but if I'm adding one to my
| collection of tools for this and future projects, I'd prefer it
| look more like a smart plug than a mess of wires and terminals
| that could be a hazard in the kitchen.
|
| (Sorry to hijack, but can't resist this gathering of IoT
| enthusiasts.)
| fotta wrote:
| Shelly makes smart relays that you can put behind a standard
| plug.
| sowbug wrote:
| Thanks. I'm looking for something that can be put away when
| the project is done and that can be moved to other places and
| used in different projects. I could spend a weekend figuring
| out how to build something safe with a quad box, or I could
| give $20 to someone who's already done it.
| jareklupinski wrote:
| I'm not sure I would use PWM to control the flow of power to an
| AC appliance. That's more of a technique for getting analog
| approximations from digital sources.
|
| If the purpose is to make a temperature-controlled water
| heater, you would probably be alright with just using that
| regular relay and switching power on/off to the element every
| few seconds. It takes a while for electricity to heat up water,
| and with some hysteresis / a PID loop you will get very
| accurate results, even switching once every five seconds.
| petre wrote:
| One could definitely use PWM on AC with a triac.
|
| For the water heater he doesn't need PWM, Tasmota has a
| thermostat mode with hybrid PID control. There's Sonoff TH2
| device that can do that. Dunno what temperatures does sous
| vide use but it can be definitely done with a Pt1000 or a
| thermocouple if not the regular digital sensors.
| sowbug wrote:
| Thanks (and thanks to petre down below). The Arduino PID
| libraries I found want to use PWM, but part of the appeal of
| the project was understanding PID in the first place, so
| perhaps I could adapt it to something like a 0.1Hz modulation
| rate and see where that gets me.
|
| I assume it's hard to do proper AC PWM if you don't know when
| the AC sine wave's phase starts, preventing you from
| maintaining a consistent pulse amplitude over time. But I was
| hoping that something simple like a resistive heater wouldn't
| be too fussy about it.
|
| And then there's the small matter of my home being
| constructed from flammable materials....
| coupdejarnac wrote:
| You can do PID using a discrete output instead of
| analog/PWM. It's a common use case. I think I've seen an
| Arduino library that allows for this. Or, you can use
| whatever library you're already using and convert the PWM
| value to OFF or ON. Slow down the loop so you don't get a
| lot of chatter on the output; add hysteresis if necessary.
|
| If you actually want to do AC "PWM" (it's not really PWM),
| use a triac as suggested by another poster, and make sure
| it does zero crossing detection.
| synergy20 wrote:
| Just got into IOT devices and I am using RP2040 boards(with wifi
| and without wifi, bluetooth is enabled now I think), what's the
| advantage of ESP32 to RP2040 these days? It's $4 ~ $6 a piece and
| also is _solder-able_ to your base-board if you need make your
| own, it of course runs on its own without any base-board
| perfectly fine.
| Saris wrote:
| Compared to the ESP32-S3, the RP2040 doesn't have Wifi/BT,
| doesn't have an RGB display controller, has slower clocks, and
| has less RAM and Flash.
|
| For most IoT devices the ESP32-S3 is overkill unless running a
| large display, and you could use the cheaper ESP32-C3, which
| has 1 core instead of 2, no RGB interface, and less GPIO. These
| run about $2 each for a solder-able module with built in
| antenna: https://www.digikey.com/short/cttthh0h
|
| Or $6 for a dev board with USB built in:
| https://www.digikey.com/short/9rp1zbb3
|
| I'd compare the RP2040 more to your classic STM32 arduino dev
| board, with the ESP series in another class above those.
| skybrian wrote:
| The RP2040 _chip_ doesn 't have WiFi but the Pico-W board
| certainly does and we've used it:
|
| https://www.adafruit.com/product/5526
|
| Bluetooth support is supposed to be added in the next version
| of the SDK.
| Saris wrote:
| Interesting, to me that seems like a downside having
| external Wifi/BT over SPI
| mmoskal wrote:
| It could be an advantage if the rp2040 had a decent low
| power mode - then you could only turn on the wifi when
| you need it (eg data upload every few hours) and run for
| a year on battery. Alas it doesn't...
|
| I think the main advantage (to some, in the current
| geopolitical climate) is that it's not Chinese.
| Saris wrote:
| Not being based out of China is good yeah.
|
| The ESP series can disable wifi/bt entirely if needed,
| their low power sleep is pretty good. IIRC someone got a
| year or more out of a single 18650 cell doing very slow
| updates.
| 1023bytes wrote:
| RP2040 itself definitely doesn't have WiFi or Bluetooth
| scotty79 wrote:
| There's a really cool language for programming ESP32 which feels
| like crossbreed of Python and Ruby with smallest possible syntax
| for that semantics:
|
| https://docs.toit.io/language/#toit-language-basics
| kasperl wrote:
| Thank you for the mention!
|
| I have been working on the Toit language for the ESP32 for a
| number of years now -- and it has been an enjoyable challenge
| to build an open source stack capable of supporting live
| reloading on a micro-controller that can run for years on
| batteries.
|
| https://github.com/toitlang/toit
| skybrian wrote:
| FYI the board the Toit website links to on Digikey is out of
| stock.
| kasperl wrote:
| Thank you! I'll try to get that updated.
| sircastor wrote:
| I had been using the 8266 in a personal project and this past
| year moved it over to the c3. I was excited to use a RISCV chip.
| That doesn't really make a difference in the end, but I'm really
| pleased with it, especially after I stopped fighting the Arduino
| IDE and moved to PlatformIO - I had been reluctant to do so, but
| it's really matured.
|
| Hunting around for answers about how the c3 works can be rough.
| There's still not a lot of info about its quirks written up yet.
| But once you get into it, it's great. And quite affordable.
| realharo wrote:
| ESP32 also has pretty good Rust support https://github.com/esp-rs
| brink wrote:
| Support for the ESP8266 I had sitting in my desk drawer is a
| little rough, the code templates they provide don't seem to
| work out of the box. I gave up and am just buying an ESP32.
| Should be a much better experience, I'm hoping.
| mytailorisrich wrote:
| The ESP32-C3 has a limited number of IOs but it is very small and
| has a connector for an external antenna (At least the Seeed Xiao
| ESP32-C3 does). It's great for many applications when a bit of
| Wifi range is needed.
| myself248 wrote:
| The -S2 (and -S3?) have native USB so you don't need a USB-UART
| chip on-board, and they can thus emulate other classes of USB
| devices. That's something I was hoping to find mentioned in this
| guide, but nope.
| tomn wrote:
| Yeah, this is great if you're making your own PCBs -- all you
| need is the ESP32 module, power supply and a USB connector.
|
| There's no need for a usb-serial converter, JTAG connector (you
| can debug over USB), or a serial header with yet another random
| pinout that you have to figure out every time you want to
| program the thing...
| sowbug wrote:
| I haven't followed QMK recently, but I assume someone is
| working on an ESP32 port, now that some chips have USB device
| support. I'm not sure what I'd do with a keyboard that has
| WiFi, but I'm sure cool (and non-nefarious) ideas will emerge.
| eitherway wrote:
| Thank you! Honestly, I didn't realize that.
|
| I added a note to the Article.
| realharo wrote:
| ESP32-C3 also has built-in USB serial/JTAG functionality
| (https://docs.espressif.com/projects/esp-
| idf/en/latest/esp32c...).
|
| Unlike the ESP32-S ones though, that's all it does on the C, so
| you can use it to program and debug the thing, but you cannot
| make your own USB device with it.
| doug_life wrote:
| Do you have any more information on this? It would be great
| to get this running in PlatformIO
| realharo wrote:
| Not much to be said, it should "just work" out of the box.
| You plug a board in (for example this one
| https://www.dfrobot.com/product-2566.html, I've seen it in
| a bunch of online stores in Europe), and it should give you
| a COM port on Windows, a `/dev/cu.usbmodem...` device on
| macOS, and something similar on Linux. Then all the usual
| tools should work as normal, at least the ones that come
| with ESP-IDF.
|
| On the chip or the modules, this is pins GPIO18 and GPIO19
| that just need to be directly connected to USB D- and D+.
| Of course the chip still needs between 3.0V and 3.6V for
| power, so you can't power it from USB directly. If the
| firmware is just rebooting all the time (sometimes the case
| on a fresh module), you may need to pull GPIO9 low to enter
| bootloader instead (https://docs.espressif.com/projects/esp
| tool/en/latest/esp32c..., there is a button for this on
| some boards), but otherwise you can just flash it in normal
| mode too.
| doug_life wrote:
| Oh, so this isn't full in circuit debugging like ESP-PROG
| would enable, correct? These parts just have built in
| USB-Serial for programming and printing to the terminal
| without an external IC.
|
| Edit: Never mind, it does appear to allow full in circuit
| debugging. I'll have to do some more research.
| realharo wrote:
| As far as debugging goes, you basically need to run
| `idf.py openocd` to start OpenOCD, and then connect to it
| with the gdb that's part of the ESP-IDF SDK, by default
| it should be listening on port 3333. At least that's how
| I have it set up in CLion.
|
| There is more info here
| https://docs.espressif.com/projects/esp-
| idf/en/v5.0/esp32c3/..., the ESP-IDF VS Code extension
| should have this doable with one button click.
| pantalaimon wrote:
| S2 and C2 are not _old_ versions of S3 and C3 (C2 isn 't even
| released yet), they are just cut down/lower cost version (but
| also with some added features for low power operation).
| eitherway wrote:
| Uups. You are right. Although, in my defence the S2 was
| released prior to the S3.
|
| Corrected it.
| antoniuschan99 wrote:
| also s2 only has wifi
| pantalaimon wrote:
| and H2 only has 802.15.4 (but also not released yet)
| efraim wrote:
| If it's a guide maybe you should mention that the original
| ESP32 is still for sale and still faster than some of the
| newer alternatives. There is also a new faster risc-v based
| variant without wifi/bt that was recently presented called
| ESP32-P4.
|
| All current variants:
| https://www.espressif.com/en/products/socs
| eitherway wrote:
| What use case does the ESP32 have?
|
| Wouldn't it be better to just recommend the S3, where there
| is currently only one version available?
|
| There are like a dozen different versions for the ESP32.
|
| "Two or one CPU core(s) with adjustable clock frequency,
| ranging from 80 MHz to 240 MHz"
|
| In this case it seems to be the better choice to just use
| the ESP-S3 with better encryption support and support for
| Cameras.
| efraim wrote:
| There are many different boards with ESP32 on them and
| lots of old projects that use it. The extra speed and
| features of the S3 is often not needed, so the cheaper
| ESP32 is a good option. And they both support cameras.
| https://docs.espressif.com/projects/esp-
| idf/en/stable/esp32s...
| https://github.com/espressif/esp32-camera
| JoeAltmaier wrote:
| I wish the BSP was more robust. You try much, it dies. E.g.
| open/close connections to an IoT server out there repeatedly. Or
| try to talk to two endpoints over network with any kind of
| bandwidth. Even the serial code is fragile.
|
| It's good for proof-of-concept hobby projects. But on the job
| we've had to repair the BSP each time.
| eitherway wrote:
| Could you elaborate what a BSP is?
|
| I am only starting in the IOT Hardware World.
| JoeAltmaier wrote:
| 'Board Support Package'. The library that FreeRTOS links to
| or whatnot, custom to each board shipped (a board being, SOM
| on a little dev card etc)
|
| They vary massively. Usually written in a sweatshop in the
| far east by students, pushed out and forgotten because they
| are table stakes but not a profit center.
|
| They usually include support for board boot, threads, timers,
| and something that looks like networking.
|
| I say 'looks like' because they are often paper-thin
| implementations of a familiar API, with little or nothing
| inside. No proper flow control; no dynamic anything. Not even
| thread-safe as a rule.
| mkoryak wrote:
| I tried to setup esp32-cam as a cheap security cam for my yard,
| but had a bad experience:
|
| - There are no good tutorials on how to have the cam save to SD.
|
| - streaming it is easy with esphome, but there is no easy way to
| save it since it doesn't use a normal streaming protocol
|
| - the camera image quality sucks. I got some 5mp cameras to use
| instead of stock camera, but the chip can't stream that
| resolution at anything above 2-3fps
| spicyjpeg wrote:
| The ESP32 is not really meant to be used with a camera. It has
| no hardware acceleration for the task, only ~500 KB of RAM (it
| can use external SPI PSRAM but not without massive performance
| penalties) and its radio is inadequate for high-bandwidth
| streaming. All those camera boards are basically a hack, they
| leverage the chip's parallel bus interface to receive data from
| a camera module with a built-in MJPEG encoder which does the
| heavy lifting; the data is then piped out as fast as the
| networking stack and radio can handle (i.e. not particularly
| fast).
|
| A proper SoC with a dedicated camera interface and an external
| WiFi chip is going to do a far better job than pretty much any
| of these microcontrollers; even the low-end Allwinner V3 often
| used in cheap Chinese IP cameras can run circles around the
| ESP32, even with the overhead of a full Linux kernel.
| Microcontrollers with hardware camera acceleration (including a
| soon-to-be-released ESP32 variant) are slowly becoming more
| common, but the original ESP32 isn't one of them.
| le-mark wrote:
| The allwinner socs aren't nearly as plentiful as they were,
| prices on ali are significantly higher than a year or two
| ago.
| mkoryak wrote:
| Thanks for the reply, I did not know this, and given that
| esp-cam is a thing, I thought it was not going to suck.
| pantalaimon wrote:
| The problem with ESP8266 is that the toolchain is not updated
| anymore, so you will forever be stuck with GCC 5.2
| rwaksmunski wrote:
| On the other hand the RISC V ones are good for decades to come.
| cmason wrote:
| If you're into e-paper check out this board based on ESP32-S3
| from Lily Go. They also have a touch screen for it.
|
| https://www.lilygo.cc/products/t5-4-7-inch-e-paper-v2-3
|
| I'm working on a rust-based information display browser for it.
| doug_life wrote:
| There is a newer v3 out
| https://www.lilygo.cc/products/t5-4-7-inch-e-paper
| jw_cook wrote:
| Question for anyone else using an ESP32 to build a USB input
| device (macropad, game controller, sim button box, control panel,
| etc.):
|
| Is there a generic library, config file format, host application,
| or other tool you use for configuring keypresses and macros? I'm
| currently doing that manually with hardcoded mappings, but it
| seems like there must be a better way. I'd really like to use
| something like QMK, but that's fairly specific to keyboards and
| doesn't support ESP32.
| jareklupinski wrote:
| Are you already using TinyUSB? The examples are still pretty
| involved but it got me 95% of the way to a wireless USB game
| controller:
| https://github.com/hathach/tinyusb/blob/master/examples/devi...
| wepple wrote:
| "ESP32-S2 Old version of the ESP32-S3. ESP32-S3 Low power. Dual-
| core. Wi-Fi and Bluetooth LE. 45 GPIOs. Camera Support. AI
| Support."
|
| That's weird phrasing to say that the S2 is the older version,
| rather than the S3 is newer.
|
| Also, the AI links to a GitHub for doing ML on all versions -
| exactly what is this "AI support"?
|
| IMO the most interesting thing between the ESP32-Cx and ESP32-Sx
| is that the C is a RISC-V architecture
| wepple wrote:
| This is a better overview of the hardware:
|
| https://gist.github.com/sekcompsci/2bf39e715d5fe47579fa184fa...
| eitherway wrote:
| This guide was mainly intended for beginners like me who didn't
| know the ESP platform yet (like me a few months ago).
|
| I'm also working on my writing skills. So forgive me for
| styling errors.
|
| I know the ESP32-Cx is based on the RISC-V architecture. Could
| you elaborate why this is a feature or in what way this is an
| advantage?
| [deleted]
| [deleted]
| mordae wrote:
| You don't need xtensa toolchain and use whatever your distro
| ships for one.
|
| A drawback is that ESP32 RISCV cores don't feature FPU, if I
| am remembering correctly.
| wepple wrote:
| I realized after posting that this is a personal blog, not a
| corporate one - so I do regret and apologize for being rather
| blunt.
|
| (I think the .io and me misreading as "etherway" made me
| think it was company-published and for right or wrong I
| assume companies only ever blog for brand recognition, so am
| probably over critical of them)
|
| That's partly a big compliment - your blog is really well
| styled and easy to read.
|
| RISC-V is a fairly popular topic on HN, and for me at least
| it's really interesting as both a low-level nerd, as well as
| curiosity about what impact it may have given we lived in an
| x86 world for a long time, before ARM really took hold, and
| now that there's a new player and it's an open standard is
| really interesting.
|
| Could it be the "Linux kernel" of the hardware world? I have
| probably 20x ESP8266s doing various things in my life, maybe
| 5x ESP32-Sx, and will probably pick up a few -Cx, and they'll
| be the first RISC-V device I own.
| eitherway wrote:
| Ah ok, I see. Although I don't fully comprehend what you
| are saying.
|
| The main feature seems to be that it's an open
| architecture, so you don't have to rely on the things that
| a manufacturer provides you.
|
| I also added your comparison table to the article.
|
| And thank you for the compliment!
| snvzz wrote:
| >I know the ESP32-Cx is based on the RISC-V architecture.
| Could you elaborate why this is a feature or in what way this
| is an advantage?
|
| Long term support. As Espressif has publicly declared their
| intent to fully move to RISC-V, it is not in your interest
| long-term to base your designs on the ISA that's been
| deprecated.
| spookthesunset wrote:
| How does dual core work on these microcontrollers? Do you have to
| deal with scheduling between both cores or is it magic?
|
| It would seem that it would be up to me to figure out which CPU
| something should run on, right?
|
| So if you aren't doing a workload that requires it, is there a
| point? Or does it use one of the cores to offload managing
| networks, Bluetooth's and whatnot?
| jareklupinski wrote:
| A little bit of both. The simplest way that I like use is by
| creating a seperate function that you want to run
| asynchronously, then linking it to a callback that is scheduled
| to run by the FreeRTOS scheduler:
| https://savjee.be/blog/multitasking-esp32-arduino-freertos/
|
| As long as you don't create too many long-running tasks and be
| mindful of which core is running what, it's been incredibly
| reliable in my experience.
|
| My biggest use case for this is keeping an active display, like
| those 64x64 RGB LED Panels, fed with pixel data from a display
| buffer using one core fully pegged to the task, then using the
| second core for wifi and display buffer updates. In Arduino
| land, since loop runs on a specific core, you can basically put
| your 'constantly running code' in the loop, and schedule the
| tasks to run on the other core in setup().
| troysk wrote:
| ESP32 are great! The best use case for me is using them as
| bluetooth repeaters. I use ESPHome and its configs for most
| devices. For some ble devices, I use nrglogger on my Android to
| reverse engineer the commands and then feed that into an ESPHome
| config. It has helped to connect many devices which don't have
| WiFi anywhere in the house.
___________________________________________________________________
(page generated 2023-02-04 23:00 UTC)