Espressif

From Wildsong
Jump to navigationJump to search

See also ESP8266 and ESP-C3.

Hardware

ESP-C3-12F - These are in the old ESP12F form factor but have a RISC-V processor. I will put them in a page on the C3, here ESP-C3.

ESP12F and programmer, see docs at Amazon

Wemos D1 R1 - ESP8266 board in Arduino form factor. Purchased from MPJA for about $13, available on eBay for $7.

Espressif WROVER-DEVKITC-VIE boards (2) from Digikey ($11). Great except they are too wide to use on a breadboard. This device has 520KB RAM + 4MB Flash + 8MB PSRAM making it a good choice for Micropython.

I have a some Home control stuff deployed around my house that's based on ESP8266 chips including FEIT dimmers and Martin Jerry switches. I intend to reflash them all soon to get them off the IoT and onto the local network. There are more details on the ESP8266 page.

ESP-PROG / JTAG board. https://www.digikey.com/en/products/detail/espressif-systems/ESP-PROG/10259352 Flash download tools: https://www.espressif.com/en/support/download/other-tools There is no install step, you just run it.

M5 hardware

520 kB RAM, 4MB flash; really not enough RAM to mess around with Micropython.

M5 Atom Matrix grey with 5x5 Neopixel LED matrix and a 6-axis IMU

M5 Atom Echo white, with a speaker and microphone. It also has a Neopixel.

M5StickC

Toolchains

Right now it's a blob in my mind so I am here writing this to sort it out. I got some nRF52840's and that's just added to the confusion.

Arduino, Espressif IDF, FreeRTOS Visual Studio Code, PlatformIO

I have been using Arduino but I really want to try out working with RTOS and I want to use VSCode as my IDE, I am getting comfortable with it at work.

There is a tutorial here: https://randomnerdtutorials.com/vs-code-platformio-ide-esp32-esp8266-arduino/

  • Visual Studio Code (VSCode) is an IDE. It is far more useful than Arduino's IDE.
  • PlatformIO is an extension for VSCode.
  • There is also an Espressif IDF extension.
  • PlatformIO adds the "alien" icon in the left bar.
  • ESP-IDF adds a bunch of tools to the blue bar at the bottom.

VSCode + PlatformIO + Arduino framework

When creating a project with PlatformIO you can pick Arduino as the Framework if you don't need the ESP-IDF platform.

I put all my source code in ~/source/platformio/.

I cloned the M5Stack repo https://github.com/m5stack/M5Stack.git The Examples/ are great. I just built and uploaded a Blink program and it worked flawlessly on the first try. In the blue bar there are build and upload tools.There is a "serial monitor" tool in the blue bar too; output goes to a Terminal window.

So far I find this experience much better than using Arduino IDE, perhaps because I already use VS Code, also partly because the project is organized more the way I'd want. I like having one window for everything, I've never liked how Arduino opens a new window for each "sketch". Also I never liked the word "sketch", lol.

VSCode + PlatformIO + ESP-IDF framework

I followed this tutorial. https://docs.platformio.org/en/latest/tutorials/espressif32/espidf_debugging_unit_testing_analysis.html#

It worked fine, I tested it on an M5 Atom Matrix. I got a soft AP running.

2024-03-30 I am stumbling through the Stamp-C3 demo.

Libraries

PlatformIO has its own library manager and when you add a library, the library is downloaded and referenced in the platformio.ini in the current project.

Projects

I have done so many that they are scattered hither and thither. Herein I am trying to pull them together. Starting with this one.

ESP32 Red Box

Called the "red box" because it's in a Hammond box that's translucent red.

hello_world

This project is set to use VSCODE and esp-idf

I had to finagle settings to get the serial port selected. I changed the user profile setting idf.portWin on Pearl to be "COM6". This fixed both the programmer and the serial monitor.


Output in the serial monitor looks like this. It counts to zero then reboots.

Hello world!
This is esp32 chip with 2 CPU core(s), WiFi/BT/BLE, silicon revision v3.0, 2MB external flash
Minimum free heap size: 300868 bytes
Restarting in 10 seconds...
Restarting in 9 seconds...
Restarting in 8 seconds...
Restarting in 7 seconds...
esp_motion

The project "esp_motion" is VSCODE+PlatformIO+Arduino

Source location, on Pearl at ~/Documents/source/platformio/esp_motion and it's in github here: brian32768/esp_motion.git

The current version right here in front of me currently has

  • Espressif Wrover dev kit board
  • External WiFi antenna
  • PIR motion sensor
  • Piezo buzzer
  • Neopixel
  • I used to have a radar sensor on there too. Not sure why I removed it.
  • I see a TO-92 on there. I think it's a Dallas 18B20 temperature sensor.
  • IR receiver so that I can make this board read IR remote codes for a light fixture we got a few weeks ago.

The build is failing to find "Arduino.h" and "Wifi.h" hmmm where'd it go?

JTAG debugging

Example of JTAG debugging

JTAG debugging

https://mcuoneclipse.com/2019/10/20/jtag-debugging-the-esp32-with-ft2232-and-openocd/

Books and resources

Espressif modules and boards

Neil Kolban

Random Nerd