M5StickC
M5StickC orange and wearable. I have a few of these because they are cheap, come with lots of sensors, a tiny 80x160 LCD, and are nicely enclosed in a little case. Also has a 6-axis gyro/accelerometer, and a microphone. Also it can detect alien lifeforms in a 100 meter radius.
It uses an ESP32-PICO-M4 processor with 520KB of RAM and 4MB of FLASH. It's supposed to be a wearable so it has a battery. This MCU uses more power than an ESP32S3 if that matters to you.
Initially I set up one with a PIR hat and used it to control a light for about a year. Currently it's offline due to household politics. It works really perfectly for this with an MQTT connection to Home Assistant.
- What can I do with the internal temp sensor? There are sensors in both the PMIC and the MEMS sensors
- What can I do with its RTC? Datasheet https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/Stamp/StampTimerPower/RTC8563.pdf
- What can I do with the accel/gyro? Detect vibration or change of direction in a car? Step count? It supports "wake on motion". You can find its orientation by reading the accelerometer. "Down" is usually Z=1g for example.
- What can I do with the mic? Make lights blink? https://www.hackster.io/esikora/audio-visualization-with-esp32-i2s-mic-and-rgb-led-strip-4a251c
- Can I turn off TV's with the IR LED? https://www.hackster.io/alessandro-polselli/turn-m5stickc-into-universal-ir-remote-home-automation-d3ec0d
Internal photos (This "plus" version has bigger screen) https://www.gwendesign.ch/kb/m5stack/m5stickcplus/ and https://www.gwendesign.ch/kb/m5stack/m5stickc/
It has some magnets in it so you can stick it to things! Cool.
Batteries - it has an RTC button cell and a tiny (95mAH) LiPo. More of a UPS than a power supply.
Looks like taking it apart is a waste of time, things are pretty packed in there. Don't bother. Have lots of other ESP32 things already.
Development environment
So far I have tried ESPHome, CircuitPython and UIFlow on it so far. I have no interest in UIFlow, but I think since it runs on MicroPython you can ignore "flows" and load code.
Since this board has only 520KB of RAM I will probably not go much further with MicroPython and just break down and use C. ESPHome worked fine for my PIR sensor / MQTT IoT project, that's an option still for C programming.
Projects
Motion sensor -- I have had one deployed for months in our bedroom, it switches on a light in the evening. Works via MQTT I used a RADAR sensor that is too good, it can see through drywall and picks up motion everywhere. I am switching to PIR sensors soon.
LED strip controller -- working on this soon, to control RGBW strips over WiFi, or maybe I will press on with the Nordic nRF52840's and Zigbee.