Badge is a wearable LED matrix display system for communicating visually.
The current prototype is built with a few inexpensive, readily available components. See separate document for details.
Development is via the Espressif ESP-IDF toolchain. The Get Started guide provides all the details for setting up the toolchain on Windows, Linux, or MacOS.
Depending on the hardware, make the following configuraton settings using idf.py menuconfig
- Component config > ESP32 specific > CPU frequency: 240 MHz
- Component config > ESP32 specific > Main XTAL frequency: 26 MHz
- Serial flasher config > Flash SPI speed: 40 MHz
- Component config > ESP32 specific > CPU frequency: 240 MHz
- Component config > ESP32 specific > Main XTAL frequency: 40 MHz
- Serial flasher config > Flash SPI speed: 80 MHz
- Serial flasher config > idf.py monitor baud rate: 115200 bps
USB Silicon Labs CP210x USB to UART bridge
As of April 2021, much of this is obsoleted. After the ESP_IDF toolchain is setup, this project can be flashed to an ESP32 device as follows:
- open a command shell
- navigate to this project where it's been cloned from GitHub
- attach the device via USB
- determine the USB device address, depending on the host platform being used (on MacOS,
/dev/cu.SLAB_USBtoUART
) - run
make menuconfig
- navigate to Serial flasher config > Default serial port
- enter the appropriate serial port and press Enter
- press Q, to update the ESP-IDF project configuration
- run
make flash
- a lot of compiling is done the first time
- eventually, the following output indicates the device is flashed:
Hard resting via RTS pin...
Since ESP_IDF 4.4.2, the flash command figures out the COM port on Windows 10.
Once the project is setup, the following elements comprise the workflow:
- viewing the application log stream
- modifying the code
- flashing the code
- testing the code
- synchronizing (push/pull) with the GitHub repository
Run the following to view the application log steam make monitor
TBD
TBD
It is intended that the device wiil be controlled from a mobile phone. For testing, the following tools can be used. There are many other tools with similar capabilities.
Full access to the GATT characteristics.
List of the GATT characteristics: TBD
Update firmware on device from bin file. On Windows. Download the ESP GUI
- run "flash_download_tools_vn.n.n"
- select SPIDownload tab
- in first row, click "..."
- navigate to and select "badge.bin" file
- after the "@", enter "0x10000"
- select the checkbox for the first row
- power up the badge device
- connect the device to the computer via USB
- select the COM port
- click Start
- wait until "Finish" is displayed in the Download Panel 1
Conversation about reliably driving WS2812B with ESP32 RMT with Bluetooth: https://www.reddit.com/r/esp32/comments/e7ixoh/adjust_ble_priority_or_synchronize_advertising/
https://www.esp32.com/viewtopic.php?t=576
C++ example code: https://openlabpro.com/guide/ble-uart-on-esp32-controller/
###Eclipse GDB Hardware Debugging https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/jtag-debugging/using-debugger.html#jtag-debugging-using-debugger-eclipse