Shard is an open source ESP32 S3 board that I designed as a summer project to learn more about electronics and PCB design.
- 16 MB Flash storage
- 8 MB RAM
- WiFi and Bluethoot capabilities
- Built-in Neopixel RGB LED
- 21 configurable GPIO pins
- Up to 16V for external Power supply
- UART & Configurable SPI and I2C pins
The board itself is pretty small, 4.6x4.8cm and doesn't have mounting holes unfortunately. It is designed to be an all-feature development board for prototyping.
The board doesn't come with a USB-UART bridge, so the firmware uploading requires user input:
- When the uploading process starts, hold the RESET button
- Immediately after you pressed it, press the BOOT button and then release the RESET button
- After the code is uploaded, press the RESET button again to exit Download Mode, so that the board can execute the code.
To program this board with the Arduino IDE, you have to:
- Install the "esp32" board manager.
- then select the UM-PROS3 board
- when uploading, follow the steps listed in the Uploading section.
I first programmed this board using PlatformIO and I used this platformio.ini file:
[env:esp32-s3-devkitc-1]
platform = espressif32
board = um_pros3
framework = arduino
board_build.flash_mode = dio
board_build.flash_size = 16MB
board_build.partitions = default_16MB.csv
build_flags =
-DCORE_DEBUG_LEVEL=5
I specified the flash size and the flash partition just to make sure everything worked as expected, but the UM-PROS3 board should be configuring these by default.
Also, this is the partition I used:
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x700000,
app1, app, ota_1, 0x710000,0x700000,
spiffs, data, spiffs, 0xe10000,0x1F0000,
PlatformIO should find the board automatically. When uploading, still follow the steps in the Uploading section.
To design this board, I mainly referred to the Espressif's ESP32-S3 Hardware Design Guidelines.