
Schematics w display
xtrinch/esp32s2-bme280-webusb
A web-usb enabled application running on ESP32S2 supporting displaying sensor data on a Waveshare e-paper display / sending sensor data to the cloud

A web-usb enabled application running on ESP32S2 supporting displaying sensor data on a Waveshare e-paper display / sending sensor data to the cloud
Schematics v2 is an open-source printed circuit board by xtrinch, from the xtrinch/esp32s2-bme280-webusb repository on GitHub. It is a 2-layer board of 34.2 × 73.3 mm with 3 parts on 6 nets, routed with 15 tracks and 0 vias.
It belongs with the lEDs and displays and sensors and measurement boards and the ESP32 boards of this library.
Sends periodic bme280 humidity, temperature, pressure and battery voltage data from esp32s2 development board to sensor dashboard backend via Wi-Fi.
Is configurable via a web interface using webusb. Since the board uses native usb communication, the serial output will also be emulated via USB so it may not work as you would expect a regular serial connection - if it's configured wrongly, there will be no output in your serial monitor. If the board sleeps, when you connect it to USB, you will not be able to flash it. Board needs to be wide awake and listening to USB commands for flashing to work. When the board is connected to the computer - the neopixel of the esp32s2 will light up and the display should display PC instead of the usual measurements.
If you botch the code and manage to put it to sleep when on USB, boot the board into bootloader mode by holding the button BUT1 on the board when connecting to USB, then you will be able to flash via USB again.
Currently, this firmware can make it around 7 months on a 1200mA battery connected to the dev board. The board can be configured to send the measurements to the server once every N times via the parameter maxRtcRecords to optimize battery time.
Built with PlatformIO.
See also backend and frontend repo, or see it live with some sensor data from my living room.
LED1_ENABLE SMD jumper (i.e. open it) on the ESP32S2, because it consumes a large currentBAT_SENS and PWR_SENS jumpers on the ESP32S2, to be able to detect battery voltage levelsmain.cpp that routes VREF to a GPIO on the ESP32S2. Program the board, measure VREF and input it into import_env.py under REF_VOLTAGE (if it's e.g. 1.1, input 1100). This will be needed for accurate battery measurement and you cannot skip this step.import_env.example.py to import_env.py and define your sensor dashboard url.pio run -t buildfs && pio run -t uploadfs to upload the icons the display uses for humidity/temperatureIf you cannot upload to your board on linux, input sudo chmod a+rw /dev/ttyUSB0.
To monitor across reboots, as uploading and monitoring does not work, use the following command on Linux:
while [ true ]; do cat /dev/ttyACM0; done
To check out the usb descriptors, run lsusb -v. To check out the kernel logs for errors, run dmesg.
convert temperature-2-48.png -background white -alpha remove -alpha off -compress none -depth 24 -resize 48x48 temp-final.bmp
Make sure to turn off DEBUG to save power.
See schematics-w-display folder for full project. It was drawn in KiCad and it's a two sided PCB.

Casing is parametric and drawn in FreeCad 0.19. It is made to fit the above PCB. For FreeCad project, see casing-w-display folder.

| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | Conn_01x21_Female | Connector_PinHeader_2.54mm:PinHeader_1x21_P2.54mm_Vertical | J1, J3 |
| 1 | Conn_01x06_Female | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J2 |
It measures 34.2 × 73.3 mm and has 2 copper layers, 1.6 mm thick.
3 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the xtrinch/esp32s2-bme280-webusb repository on GitHub, at the commit this page was made from: the board is schematics-v2/schematic.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask xtrinch before reusing the design.

xtrinch/esp32s2-bme280-webusb
A web-usb enabled application running on ESP32S2 supporting displaying sensor data on a Waveshare e-paper display / sending sensor data to the cloud


hzeller/rpi-rgb-led-matrix
Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO


atopile/atopile
Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in hardware; starting with electronics ⚡️




hackclub/sprig
🍃 Learn to code by making games in a JavaScript web-based game editor.