Skip to the content
2 layers84.8 × 97.8 mmLethe, the printed circuit board in 3D

Lethe is an educational device aimed at reducing student's screen times by using a speaker to ask questions / convey informations, and using tilts to get user input.

Size
84.8 × 97.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
18
Nets
43
Pads
104
Tracks, vias
216, 31
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
29 Jul 2026
Updated
19 Aug 2026

Overview

Lethe is an open-source printed circuit board by VulcanWM, from the VulcanWM/lethe repository on GitHub. It is a 2-layer board of 84.8 × 97.8 mm with 18 parts on 43 nets, routed with 216 tracks and 31 vias.

It is built around the BMI270. Its parts include 4 capacitors, 3 ICs, 2 switches, 1 resistor and 1 connector. It belongs with the ESP32 boards of this library.

Main components

1

README

README.md

Lethe

Lethe is an educational device aimed at reducing student's screen times by using a speaker to ask questions / convey informations, and using tilts to get user input.

How it works

  • load flashcard sets or MCQ sets onto the ESP32's USB-C connector (it must be in the JSON format expected by Lethe)
  • select the flashcard set or MCQ set on the device by tilting through the list of all sets
  • if in MCQ mode, a question will be spoken and each different direction responds an option, so to answer you tilt the device in a direction.
  • the round will keep on going until all of the questions have been answered correctly
  • if in flashcard mode, each flashcard's front side will be spoken out loud
  • you can tilt up and down to flip the card and read the other side
  • then you tilt left/right to signal whether you want it to be repeated or not

Inspiration and component reasoning

I made it because high screen time is a problem I face myself, and this device means I can move around while studying. I also wanted to experiment and see if listening rather than reading helps to remember stuff more or not.

Some of the components I'm using and why:

  • Seeed Studio XIAO ESP32-S3 Plus rather than not Plus because it has higher Flash and I'm using that to store all the flashcard sets.
  • OLED display rather than a colour one because the screen will not be in use during the actual modes because I want the user to focus on sound rather than screens.
  • An IMU (BMI270) so that I can accurately detect motions like tilting and flicking in all directions. This means I can use gestures instead of button clicking for user input.
  • 1000 mAh LiPo Battery so that there is a reasonable battery life (5 hours) but it doesn't take too long to charge (10 hours).
  • JST-PH 2-pin connector so that I can change the battery without needing to remove the solder.

Hardware

This repository contains all the hardware files you would need to replicate this project. The PCB + schematics was done in the KiCad, and the enclosure was designed in Fusion 360.

The pcb-files folder contains the KiCad source files (.kicad_sch, .kicad_pro, .kicad_pcb) and the gerbers.zip which was used to manufacture the PCB.

The cad-files folder contains .step, .stl and .f3d files for both the top and bottom cases of the enclosure for lethe.

Firmware

There are 2 main components of the firmware: the code that will be uploaded onto the ESP32, and the code that will be used to transmit json sets on the user's device to the ESP32 when connected to the user's device via USB-C.

Both are located in the firmware-files folder: lethe.ino refers to the ESP32 code, and upload.py refers to the file transmission code.

Assembly

The PCB is mounted to the bottom enclosure using three M2 self-tapping screws through the 2.2 mm mounting holes on the PCB and into standoffs printed as part of the enclosure. Then, the top and bottom parts of the enclosure are fitted together.

Images

This is what the schematic looks like: schematic

This is what the PCB looks like: pcb

This is what the enclosure (top and bottom case) looks like: enclosure

BOM

Also in the BOM.csv file.

NameQuantityLink To BuyCost (USD)
Seeed Studio XIAO ESP32-S3 Plus1Seeed Studio$7.90 (+$3.80 shipping)
Bosch BMI2701LCSC$3.64
MAX98357A1LCSC$1.34
1.3" SH1106 OLED1AliExpress$4.17 (shipping unknown)
JST-PH 2-pin Connector1LCSC$0.71 for 20
20 mm 8Ω Speaker1LCSC$0.85
Button2LCSC$0.97 for 50
620 kΩ Resistor1LCSC$0.01
100 nF Ceramic Capacitor3LCSC$1.81 for 50
10 µF Ceramic Capacitor1LCSC$1.95 for 20
1000 mAh LiPo Battery1AliExpress$6.87
Total$34.02 (excluding unknown AliExpress shipping)

Parts

18
QtyValueFootprintReferences
3100nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1, C2, C3
2SW_PushButton_Switch_THT:SW_PUSH_6mm_H5mmSW1, SW2
2TestPointTestPoint:TestPoint_THTPad_D1.5mm_Drill0.7mmTP_GND1, TP_VBAT1
110µFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC4
1620kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1
1BMI270footprints:BMI270_BOSU2
1Conn_01x02Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ1
1MAX98357APackage_DFN_QFN:TQFN-16-1EP_3x3mm_P0.5mm_EP1.23x1.23mmU3
1OLED_128X64_1.3_I2Cfootprints:LCD_OLED_128X64_1.3_I2CDS1
1Speakerlethe:Speaker_HDK2008AA_1P2_20mmLS1
1XIAO-ESP32-S3-Plus-SMDfootprints:XIAO-ESP32-S3-Plus-SMDU1

The 15 most common of 18 parts.

Similar boards

  • 4 layers100 × 70 mmZSWatch Watch DevKit, the printed circuit board in 3D

    ZSWatch Watch DevKit

    ZSWatch/Watch-DevKit-HW

    The hardware repo for the ZSWatch Development Kit.

    132 parts188GPL-3.0
  • 6 layers26.9 × 26.9 mmOpenFC, the printed circuit board in 3D

    OpenFC

    OpenDrone-hw/OpenFC-Lite-Mini

    Open-source Betaflight flight controller. RP2354A, 20x20 mm, 6-layer, 3-6S, CERN-OHL-S-2.0.

    131 parts147CERN-OHL-S-2.0
  • 6 layers37.9 × 37.9 mmOpenFC, the printed circuit board in 3D

    OpenFC

    OpenDrone-hw/OpenFC-Lite

    Open-source Betaflight flight controller. RP2354B, 30.5x30.5 mm, 6-layer, 3-8S, CERN-OHL-S-2.0.

    164 parts85CERN-OHL-S-2.0
  • 4 layers75.2 × 99.5 mmFOC, the printed circuit board in 3D

    FOC

    nordstream3/FOC

    Date | Manufacturer | amount | includes | shipping & tax | price | -------- | -------- | -------- | -------- | -------- | -------- | 2024-01-17 | JLCPCB | 10 boards | All assembled excl fets and caps | YES, to EU |…

    261 parts81
  • 4 layers90.2 × 95.9 mmADCS board, the printed circuit board in 3D

    ADCS board

    onionharvester/boardwalk

    A little gathering place for my PCBs. This is their favourite hangout spot! 🪼⋆.ೃ࿔*:・

    205 parts55
  • 4 layers83.1 × 92.5 mmTildagon base, the printed circuit board in 3D

    Tildagon base

    emfcamp/badge-2024-hardware

    183 parts40
  • 8 layers35 × 35 mmOpenAIO, the printed circuit board in 3D

    OpenAIO

    OpenDrone-hw/OpenAIO

    Open-source AIO for 2-6S toothpick quads: flight controller, 4-in-1 AM32 ESC and ExpressLRS receiver, 25.5x25.5 mm.

    343 parts19CERN-OHL-S-2.0
  • 4 layers46 × 46 mmU anemometer, the printed circuit board in 3D

    U anemometer

    PandoroML/LOAF

    LOAF (Local Observations and Atmospheric Forecasting) is an open source hyperlocal weather forecasting combining gridded forecasts with local station observations using machine learning and open-source hardware.

    144 parts14MIT

Questions

How big is the Lethe PCB?

It measures 84.8 × 97.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Lethe use?

18 parts, built around the BMI270. 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.

Where can I download the Lethe KiCad files?

From the VulcanWM/lethe repository on GitHub, at the commit this page was made from: the board is pcb-files/lethe.kicad_pcb and its schematic pcb-files/lethe.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Lethe design in my own project?

Its repository states no licence, so its author keeps all rights: ask VulcanWM before reusing the design.