
MyMachine LED cap
BrnoMarsRover/myMachine-LED-cap
Repository for my Machine LED Cap project, including software, PCBs, and documentation.

Real-time Edge AI firmware & desktop studio for STM32H533 and VL53L8CH 8x8 multi-zone dToF sensor. On-device 3D gesture recognition, surface texture classification, hand posture detection, and raw CNH optical histogram processing.
TOF SCANNER is an open-source printed circuit board by Circuit-Digest, from the Circuit-Digest/EdgeSense repository on GitHub. It is a 2-layer board of 38.5 × 31 mm with 58 parts on 74 nets, routed with 521 tracks and 99 vias.
It is built around the LD1117V18, ST1L08SPU33R and STM32H533CEU6. Its parts include 25 capacitors, 17 resistors, 6 ICs, 4 connectors and 2 diodes. It belongs with the sensors and measurement boards and the STM32 boards of this library.
███████╗██████╗ ██████╗ ███████╗███████╗███████╗███╗ ██╗███████╗███████╗
██╔════╝██╔══██╗██╔════╝ ██╔════╝██╔════╝██╔════╝████╗ ██║██╔════╝██╔════╝
█████╗ ██║ ██║██║ ███╗█████╗ ███████╗█████╗ ██╔██╗ ██║███████╗█████╗
██╔══╝ ██║ ██║██║ ██║██╔══╝ ╚════██║██╔══╝ ██║╚██╗██║╚════██║██╔══╝
███████╗██████╔╝╚██████╔╝███████╗███████║███████╗██║ ╚████║███████║███████╗
╚══════╝╚═════╝ ╚═════╝ ╚══════╝╚══════╝╚══════╝╚═╝ ╚═══╝╚══════╝╚══════╝EdgeSense is a compact, high-performance edge artificial intelligence platform that performs on-device 3D gesture recognition, surface/texture classification, static hand posture detection, and optical obscuration sensing.
Powered by the STM32H533CEU6 (ARM Cortex-M33 running at 250 MHz) and the ST VL53L8CH 8x8 direct Time-of-Flight (dToF) sensor, EdgeSense executes quantized neural networks entirely on-chip in real time with sub-7 ms inference latency.
EdgeSense features a runtime multi-model execution engine (pipeline_manager.c) allowing dynamic model switching over USB CDC:
3D Gesture Recognition (8x8 ToF, 15 FPS):
SWIPE_LEFT, SWIPE_RIGHT, SWIPE_UP, SWIPE_DOWN, and IDLE.Distance-Invariant Surface Classifier (4x4 CNH, 48 Bins):
HARD_FLOOR (tile/wood), CARPET (subsurface scattering), SPECULAR (mirrors/polished metal), and VOID (drop-offs/cliffs).Static Hand Posture Classifier (8x8 Depth + Signal Intensity):
FLAT_HAND, LIKE, DISLIKE, BREAK_TIME, FIST, and NONE.Optical Obscuration & Smoke Detector:
| Component | Specification |
|---|---|
| Microcontroller | STMicroelectronics STM32H533CEUx (ARM Cortex-M33, 250 MHz, TrustZone, FPU, DSP) |
| On-Chip Memory | 512 KB Flash ROM, 256 KB SRAM |
| ToF Sensor | STMicroelectronics VL53L8CH / VL53LMZ Direct Time-of-Flight |
| Sensor FoV | 65° Diagonal Field of View |
| Spatial Resolution | 8x8 (64 zones) or 4x4 (16 zones with 48-bin CNH histograms) |
| Ranging Distance | 20 mm to 4000 mm |
| Host Connectivity | High-Speed USB 2.0 CDC (Virtual COM Port @ 921600 baud) |
| Communication Bus | Dedicated Fast-mode Plus (Fm+) 1 MHz I2C bus |
| Power Supply | 5V via USB-C or 3.3V external rail |
EdgeSense/
├── Core/ # STM32H533 HAL drivers, ISRs, and main loop
├── Drivers/ # CMSIS and STM32H5xx HAL libraries
├── Middlewares/ # ST X-CUBE-AI runtime v10.2.1 & USB Device stack
├── USB_Device/ # USB CDC Virtual COM Port descriptors & handlers
├── VL53LMZ_ULD/ # Ultra-Lite Driver & CNH Histogram Plugin
├── X-CUBE-AI/ # Edge AI Pipeline Manager & Active Networks
│ └── App/ # pipeline_manager, model_gesture, model_posture, model_surface, model_smoke
│
├── Models/ # Pre-trained production ONNX models & datasets
│ ├── gesture_nn_model.onnx # 5-class 2D-CNN Gesture Classifier
│ ├── posture_nn_model.onnx # 6-class 2D-CNN Posture Classifier
│ ├── surface_nn_model.onnx # 4-class 1D-CNN Surface Classifier
│ ├── gesture_dataset.npz # Default Gesture training dataset
│ ├── posture_dataset.npz # Default Posture training dataset
│ ├── surface_dataset.npz # Default Surface training dataset
│ └── Archive/ # Intermediate training iterations
│
├── Tools/ # Python Studio, GUIs, and deploy automation
│ ├── Studio/ # 4-in-1 EdgeSense Neural Network Studio
│ │ ├── run_nn_studio.bat # Double-click to launch Studio GUI
│ │ ├── deploy_to_project.bat # Unified model conversion & firmware build
│ │ ├── edgesense_nn_studio.py
│ │ ├── requirements.txtstedgeai) v10.2.1+Install the required dependencies for the EdgeSense AI Studio:
cd Tools/Studio
pip install -r requirements.txtDouble-click Tools/Studio/run_nn_studio.bat or run:
python Tools/Studio/edgesense_nn_studio.pyFrom the Studio, you can:
deploy_to_project.bat.make -C Debug allThe compiled binary will be located at Debug/EdgeSense.elf and Debug/EdgeSense.bin.
Choose your preferred flashing method:
SW2 (BOOT0), press and release SW1 (RESET), then release SW2.Tools/Flashing/flash_firmware_usb.batTools/Flashing/flash_firmware.batConnect to the USB CDC COM port at 921600 baud, 8-N-1.
| Command | Action |
|---|---|
AT | Verify connection (returns OK) |
AT+MODE=? | List available modes: (0:GESTURE, 1:SURFACE, 2:POSTURE, 3:SMOKE) |
AT+MODE? | Query currently active mode |
AT+MODE=0 | Switch to 3D Gesture Recognition mode |
AT+MODE=1 | Switch to Surface / Texture Classifier mode |
AT+MODE=2 | Switch to Hand Posture Classifier mode |
AT+MODE=3 | Switch to Optical Smoke / Obscuration mode |
AT+STREAM=1 | Enable real-time 8x8 JSON depth streaming |
AT+STREAM=0 | Disable streaming |
AT+STATUS | View sensor health, frame counts, and FPS |
AT+RESET | Software system reboot |
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 9 | 100nF | Capacitor_SMD:C_0603_1608Metric | C12, C13, C14, C15, C16, C27, C28, C29, C30 |
| 6 | 1uF | Capacitor_SMD:C_0603_1608Metric | C1, C3, C4, C5, C6, C20 |
| 6 | 47K | Resistor_SMD:R_0603_1608Metric | R8, R9, R10, R14, R15, R16 |
| 2 | 0.1uF | Capacitor_SMD:C_0603_1608Metric | C21, C22 |
| 2 | 10K | Resistor_SMD:R_0603_1608Metric | R6, R11 |
| 2 | 18pF | Capacitor_SMD:C_0603_1608Metric | C23, C24 |
| 2 | 2.2uF | Capacitor_SMD:C_0603_1608Metric | C18, C19 |
| 2 | 220R | Resistor_SMD:R_0603_1608Metric | R5, R7 |
| 2 | 5K1 | Resistor_SMD:R_0603_1608Metric | R12, R13 |
| 2 | 9pF | Capacitor_SMD:C_0603_1608Metric | C25, C26 |
| 2 | LED | LED_SMD:LED_0603_1608Metric | D1, D2 |
| 2 | SW_Push | Button_Switch_SMD:SW_SPST_TS-1088-xR025 | SW1, SW2 |
| 1 | 10nF | Capacitor_SMD:C_0603_1608Metric | C2 |
| 1 | 10uF | Capacitor_SMD:C_0603_1608Metric | C17 |
| 1 | 12K | Resistor_SMD:R_0603_1608Metric | R1 |
| 1 | 1K | Resistor_SMD:R_0603_1608Metric | R3 |
| 1 | 32KHz | Crystal:Crystal_SMD_3215-2Pin_3.2x1.5mm | Y1 |
| 1 | 3K3 | Resistor_SMD:R_0603_1608Metric | R2 |
| 1 | 470R | Resistor_SMD:R_0603_1608Metric | R4 |
| 1 | 7K5 | Resistor_SMD:R_0603_1608Metric | R17 |
| 1 | BAT | Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical | J2 |
| 1 | Crystal_GND24_Small | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y2 |
| 1 | L6924D013TR | L6924D013TR:VFQFPN-16_STM | U2 |
| 1 | LD1117V18 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U3 |
| 1 | ST1L08SPU33R | ST1L08PU33R:DFN_SPU33R_STM | U1 |
| 1 | ST2378ETTR | ST2378ETTR:TSSOP20_4P4X6P5_STM | U4 |
| 1 | STLINK | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J3 |
| 1 | STM32H533CEU6 | STM32H533CEU6:UFQFPN-48_STM | IC1 |
| 1 | UART | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J5 |
| 1 | USB_C_Receptacle_USB2.0_16P | Connector_USB:USB_C_Receptacle_HCTL_HC-TYPE-C-16P-01A | J4 |
| 1 | VL53L8CHV0GC_1 | VL53L8CHV0GC_1:VL53L8CHV0GC1 | IC2 |
It measures 38.5 × 31 mm and has 2 copper layers, 1.6 mm thick.
58 parts, built around the LD1117V18, ST1L08SPU33R and STM32H533CEU6. 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 Circuit-Digest/EdgeSense repository on GitHub, at the commit this page was made from: the board is Hardware/Schematics/TOF SCANNER.kicad_pcb and its schematic Hardware/Schematics/TOF SCANNER.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask Circuit-Digest before reusing the design.

BrnoMarsRover/myMachine-LED-cap
Repository for my Machine LED Cap project, including software, PCBs, and documentation.



zynthian/zynthian-hw
Zynthian hardware stuff: PCBs, schemes, parts specifications, pin assignment, ...


Hack-a-Day/2025-Communicator_Badge
The 2025 Hackaday Supercon RF Communicator Badge


rheslip/2HPico-Eurorack-Module-Hardware
2HP Eurorack module based on Raspberry Pi Pico 2