ESP32-C3: Difference between revisions
Brian Wilson (talk | contribs) mNo edit summary |
Brian Wilson (talk | contribs) |
||
(17 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=== ESP-C3-12F === | |||
[[File:esp-c3-12f.jpg|left]] | [[File:esp-c3-12f.jpg|left]] | ||
I am interested in [https://riscv.org/ RISC V] and this seemed like a good way to get my hands on one. (Or 5) | I am interested in [https://riscv.org/ RISC V] and this seemed like a good way to get my hands on one. (Or 5 in this case) | ||
I have 5 ESP-C3-12F | I have 5 AI-Thinker ESP-C3-12F (model C3FN4 = 4MB flash) and a DOITING programmer thingie that I can pop them into. It's like [https://www.aliexpress.com/i/2255800096034921.html?gatewayAdapt=4itemAdapt this one], I don't remember where I bought it. Probably Amazon. It came with 5 ESP12F's. | ||
It breaks out the pins and has a ESP-01S 2x4 pin socket and gives me a USB connection. | It breaks out the pins and has a ESP-01S 2x4 pin socket and gives me a USB connection. | ||
I think it fails with the C3. See "Using programmer" below. | |||
Single core processor, 4MB flash, 400K ram | |||
<br clear=all/> | <br clear=all/> | ||
=== M5Stack C3U Stamp === | |||
After getting the 12F chips, I got a few of these. I think I have 2? | |||
They are programmable over a USB cable. Since getting them I have not touched the 12F's. | |||
== Development options == | |||
Suggestions https://github.com/laris/rust-embedded-study-esp32-c3 | |||
Rust and Tock https://github.com/tock/tock | Rust and Tock https://github.com/tock/tock | ||
Looks interesting but clearly it's early days for this one. I will | |||
get my feet under me first. | |||
Micropython https://micropython.org/download/esp32c3-usb/ | Micropython https://micropython.org/download/esp32c3-usb/ | ||
This is the obvious starting point for me because it's Python. | |||
ESP-IDF | ESP-IDF | ||
This is probably the best option for serious work for example | |||
sticking a C3 in a light switch. | |||
Arduino https://github.com/espressif/arduino-esp32 | Arduino https://github.com/espressif/arduino-esp32 | ||
The Arduino option is the most practical but dull. :-) | |||
=== Using programmer === | |||
I think this page is probably more accurate than the rest of this section and I will have to cobble something together. https://www.esp32.com/viewtopic.php?t=24511 | |||
"I couldn't find any docs either but it's pretty basic. Plug the esp into the programmer, plug the programmer into your computer, then hold down the flash button and press/release the reset button then you can remove your finger from the flash button, this combo of buttons will put the esp into flash mode. You then use your IDE of choice to upload code to the esp | |||
By Amazon Customer on December 9, 2021" | |||
That's wrong, it only works that way with an ESP8266 based ESP-12F. | |||
The ESP32-C3-12F needs three pins conditioned, I think 2 pulled high and one low? Observe here | |||
https://www.esp32.com/viewtopic.php?f=12&p=87403 | |||
Or if you prefer video, https://www.youtube.com/watch?v=YjKEpQDj8S0 | |||
=== Micropython === | |||
Download esptool.py from [email protected]:espressif/esptool.git | |||
Plug in the board and figure out what port it shows up on. | |||
==== Windows ==== | |||
On Windows, after installing the CP2102 driver from Silicon Labs, | |||
and the pyserial module, | |||
conda activate esphome | |||
conda install pyserial | |||
python esptool.py --chip esp32c3 --port com4 erase_flash | |||
Same error, strike 2! | |||
A fatal error occurred: Failed to connect to ESP32-C3: Serial data stream stopped: Possible serial noise or corruption. | |||
==== Linux ==== | |||
Just plug it in and check the last few lines of 'dmesg'. It showed up on /dev/ttyUSB2. | |||
If you get "permission denied" make sure you are a member of the "dialout" group. (How quaint!) | |||
[983962.208723] usb 1-3: Product: CP2102 USB to UART Bridge Controller | |||
[983962.208727] usb 1-3: Manufacturer: Silicon Labs | |||
[983962.208730] usb 1-3: SerialNumber: 0001 | |||
[983962.213333] cp210x 1-3:1.0: cp210x converter detected | |||
[983962.215605] usb 1-3: cp210x converter now attached to ttyUSB2 | |||
conda activate esphome | |||
conda install pyserial | |||
python esptool.py --chip esp32c3 --port /dev/ttyUSB2 --baud 115200 erase_flash | |||
...and STRIKE 3! It works equally badly on all three operating systems. | |||
This widget is looking pretty hopeless to me so far. | |||
=== Arduino === | |||
Set up the environment, follow these instructions. | |||
https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/ | |||
Set the board to "ESP32C3 Dev Module". | |||
Set comm port to com4 (or whatever your board installed at from the Micropython failure above.) | |||
I created a "BasicOTA" sample, and compiled it. | |||
I try the upload option and see it's using esptool, that can't be good. I set speed to 115200. | |||
I get the same error as in running esptool myself. At least it's all consistent. | |||
Maybe this programmer is just a write-off for programming ESP32C3 chips, and it's a whiz at ESP12F?? Do I have one of them??? | |||
== Coolest feature of this chip? == | |||
I2S | |||
Compatible with old Esp12F? | |||
6 channels of PWM | |||
BLE 5.0? | |||
RTC + 4 different power modes | |||
Temperature sensor | |||
[[Category: Espressif]] | [[Category: Espressif]] | ||
[[Category: Embedded]] | [[Category: Embedded]] |
Latest revision as of 01:53, 12 June 2024
ESP-C3-12F
I am interested in RISC V and this seemed like a good way to get my hands on one. (Or 5 in this case)
I have 5 AI-Thinker ESP-C3-12F (model C3FN4 = 4MB flash) and a DOITING programmer thingie that I can pop them into. It's like this one, I don't remember where I bought it. Probably Amazon. It came with 5 ESP12F's. It breaks out the pins and has a ESP-01S 2x4 pin socket and gives me a USB connection.
I think it fails with the C3. See "Using programmer" below.
Single core processor, 4MB flash, 400K ram
M5Stack C3U Stamp
After getting the 12F chips, I got a few of these. I think I have 2?
They are programmable over a USB cable. Since getting them I have not touched the 12F's.
Development options
Suggestions https://github.com/laris/rust-embedded-study-esp32-c3
Rust and Tock https://github.com/tock/tock Looks interesting but clearly it's early days for this one. I will get my feet under me first.
Micropython https://micropython.org/download/esp32c3-usb/ This is the obvious starting point for me because it's Python.
ESP-IDF This is probably the best option for serious work for example sticking a C3 in a light switch.
Arduino https://github.com/espressif/arduino-esp32 The Arduino option is the most practical but dull. :-)
Using programmer
I think this page is probably more accurate than the rest of this section and I will have to cobble something together. https://www.esp32.com/viewtopic.php?t=24511
"I couldn't find any docs either but it's pretty basic. Plug the esp into the programmer, plug the programmer into your computer, then hold down the flash button and press/release the reset button then you can remove your finger from the flash button, this combo of buttons will put the esp into flash mode. You then use your IDE of choice to upload code to the esp By Amazon Customer on December 9, 2021"
That's wrong, it only works that way with an ESP8266 based ESP-12F.
The ESP32-C3-12F needs three pins conditioned, I think 2 pulled high and one low? Observe here https://www.esp32.com/viewtopic.php?f=12&p=87403
Or if you prefer video, https://www.youtube.com/watch?v=YjKEpQDj8S0
Micropython
Download esptool.py from [email protected]:espressif/esptool.git
Plug in the board and figure out what port it shows up on.
Windows
On Windows, after installing the CP2102 driver from Silicon Labs, and the pyserial module,
conda activate esphome conda install pyserial python esptool.py --chip esp32c3 --port com4 erase_flash
Same error, strike 2!
A fatal error occurred: Failed to connect to ESP32-C3: Serial data stream stopped: Possible serial noise or corruption.
Linux
Just plug it in and check the last few lines of 'dmesg'. It showed up on /dev/ttyUSB2. If you get "permission denied" make sure you are a member of the "dialout" group. (How quaint!)
[983962.208723] usb 1-3: Product: CP2102 USB to UART Bridge Controller [983962.208727] usb 1-3: Manufacturer: Silicon Labs [983962.208730] usb 1-3: SerialNumber: 0001 [983962.213333] cp210x 1-3:1.0: cp210x converter detected [983962.215605] usb 1-3: cp210x converter now attached to ttyUSB2
conda activate esphome conda install pyserial python esptool.py --chip esp32c3 --port /dev/ttyUSB2 --baud 115200 erase_flash
...and STRIKE 3! It works equally badly on all three operating systems.
This widget is looking pretty hopeless to me so far.
Arduino
Set up the environment, follow these instructions. https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/
Set the board to "ESP32C3 Dev Module".
Set comm port to com4 (or whatever your board installed at from the Micropython failure above.)
I created a "BasicOTA" sample, and compiled it.
I try the upload option and see it's using esptool, that can't be good. I set speed to 115200. I get the same error as in running esptool myself. At least it's all consistent.
Maybe this programmer is just a write-off for programming ESP32C3 chips, and it's a whiz at ESP12F?? Do I have one of them???
Coolest feature of this chip?
I2S
Compatible with old Esp12F?
6 channels of PWM
BLE 5.0?
RTC + 4 different power modes
Temperature sensor