M5StickC: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
Created page with " [https://github.com/m5stack/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 4MB of RAM. It's supposed to be a wearable so it has a battery. This MCU uses more power than an ESP32S3 if that mat..."
 
Brian Wilson (talk | contribs)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:


[https://github.com/m5stack/M5StickC M5StickC] orange and wearable.
[https://github.com/m5stack/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.
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 4MB of RAM. It's supposed to be a wearable so it has a battery.
It uses an [https://www.espressif.com/sites/default/files/documentation/esp32-pico_series_datasheet_en.pdf ESP32-PICO] 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.
This MCU uses more power than an ESP32S3 if that matters to you.


Line 24: Line 23:


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.
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.
== Peripherals ==
Grove port GND 5V G32 G33 from the datasheet : '''GPIO32''', ADC1_CH4, TOUCH9, RTC_GPIO9 '''GPIO33''',
ADC1_CH5, TOUCH8, RTC_GPIO8
LCD display
6-axis IMU
PMIC
MIC
RTC
IR LED G9
Red LED G10
Button1 = Power on / off / reset
Button2 = G37
Button3 = G39
Pin header (used for add-ons such as the PIR Hat) -- GND 5VOUT G26 G36 G0 BAT 3V3 5VIN
'''GPIO26''', DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1
SENSOR_VP 5 I '''GPIO36''', ADC1_CH0, RTC_GPIO0
'''GPIO0''', ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1, EMAC_TX_CL
Temperature


== Projects ==
== Projects ==


Motion sensor -- I have had one deployed for months in our bedroom, it switches on a light in the evening. Works via MQTT
Motion sensor -- ESPhome + PIR Hat + a spare phone charger = a cheap motion sensor that reports over WiFi + 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.
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.
== CircuitPython ==
All the same things, but now in Python. That's the goal.
Download it from [https://circuitpython.org/board/m5stack_stick_c/ Circuit Python site]
Install it; use
esptool.exe --port COM6 --chip esp32 erase_flash
esptool.exe --port COM6 --chip esp32 write_flash -z 0x0 adafruit.......bin
Open the COM port in Putty, set the settings.toml file to allow WiFi,
restart and connect over web interface.
Load in my program, setting up the Grove connector to be a UART.
Connect my GPS over Grove.


== Resources ==
== Resources ==
https://docs.m5stack.com/en/core/m5stickc
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/core/esp32-pico-d4_datasheet_en.pdf


[https://docs.m5stack.com/en/quick_start/m5stickc_plus/mpy Micropython]
[https://docs.m5stack.com/en/quick_start/m5stickc_plus/mpy Micropython]


[https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/UIFlow-StickC-Book-English.pdf UIFlow guidebook]
[https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/UIFlow-StickC-Book-English.pdf UIFlow guidebook]

Latest revision as of 04:49, 2 April 2024

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.

It uses an ESP32-PICO 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.

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.

Peripherals

Grove port GND 5V G32 G33 from the datasheet : GPIO32, ADC1_CH4, TOUCH9, RTC_GPIO9 GPIO33,

ADC1_CH5, TOUCH8, RTC_GPIO8

LCD display

6-axis IMU

PMIC

MIC

RTC

IR LED G9

Red LED G10

Button1 = Power on / off / reset

Button2 = G37

Button3 = G39

Pin header (used for add-ons such as the PIR Hat) -- GND 5VOUT G26 G36 G0 BAT 3V3 5VIN

GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1

SENSOR_VP 5 I GPIO36, ADC1_CH0, RTC_GPIO0

GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1, EMAC_TX_CL

Temperature

Projects

Motion sensor -- ESPhome + PIR Hat + a spare phone charger = a cheap motion sensor that reports over WiFi + MQTT.

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.

CircuitPython

All the same things, but now in Python. That's the goal.

Download it from Circuit Python site

Install it; use

esptool.exe --port COM6 --chip esp32 erase_flash
esptool.exe --port COM6 --chip esp32 write_flash -z 0x0 adafruit.......bin

Open the COM port in Putty, set the settings.toml file to allow WiFi, restart and connect over web interface.

Load in my program, setting up the Grove connector to be a UART.

Connect my GPS over Grove.

Resources

https://docs.m5stack.com/en/core/m5stickc

https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/core/esp32-pico-d4_datasheet_en.pdf

Micropython

UIFlow guidebook