
PcbMotori
Dragonyx118/LagmaBills
A Mecanum-wheeled robot for civil protection, powered by a Raspberry Pi orchestrating two custom ESP32 PCBs, sensors, a robotic arm, and a drone companion over MQTT.

A Mecanum-wheeled robot for civil protection, powered by a Raspberry Pi orchestrating two custom ESP32 PCBs, sensors, a robotic arm, and a drone companion over MQTT. It navigates autonomously, maps its environment, avoids obstacles, and is controlled via voice AI, a MAUI app, or browser dashboard.
PCBsens is an open-source printed circuit board by Dragonyx118, from the Dragonyx118/LagmaBills repository on GitHub. It is a 2-layer board of 90.1 × 85.5 mm with 41 parts on 39 nets, routed with 128 tracks and 9 vias.
Its parts include 19 connectors, 16 resistors and 2 capacitors. It belongs with the home automation and IoT and robots and motor control boards and the ESP32 boards of this library.
Land And Ground-to-Midair Agent — Built for Intelligent Linked Local Support
A Mecanum-wheeled robot for civil protection, powered by a Raspberry Pi orchestrating two custom ESP32 PCBs, sensors, a robotic arm, and a drone companion over MQTT. It navigates autonomously, maps its environment, avoids obstacles, and is controlled via voice AI, a MAUI app, or browser dashboard.
Presentato ad Arduino Day 2025.
| Repo | Contenuto |
|---|---|
lagmabills (questo) | Firmware ESP32, codice Python Raspberry Pi, PCB (KiCad), modelli 3D |
lagmabills-app | App companion LagmaIpp (.NET MAUI, Windows + Android) |
lagmabills-web | Sito web del progetto |
lagmabills/
├── firmware/
│ ├── firm_esp32_motori/ # Firmware PCBmotori (PlatformIO)
│ └── firm_esp32_sensori/ # Firmware PCBsensori (PlatformIO)
├── raspberry/
│ ├── odometria.py # Odometria encoder Mecanum
│ ├── occupancyGrid.py # Mappatura locale log-odds
│ ├── navigator.py # Navigazione autonoma Potential Field
│ ├── GPS.py # Lettura NEO-6M → MQTT
│ ├── myViewerServer.py # Dashboard web (HTTP + WebSocket + Leaflet)
│ ├── rasp_cam/ # Streaming camera OV5647
│ ├── odo_module/ # Moduli navigazione/mappatura aggiuntivi
│ └── Bamberg/
│ ├── ESP-IDF/ # Firmware ESP-Drone (ESP-IDF)
│ └── firm_drone/ # Bridge MQTT ↔ CRTP/UDP drone + test
├── AI_Bepo/ # Server AI vocale (wakeword, STT, LLM, TTS)
├── AmazingArm/ # Modelli e risorse braccio robotico
├── PCB/
│ ├── PCBmotori/ # KiCad — ESP32 motori (4-layer)
│ ├── PCBsensori/ # KiCad — ESP32 sensori
│ └── PCBalim/ # KiCad — distribuzione alimentazione
├── Hardware/ # Datasheet, pinout, power budget, BOM
├── models_3d/ # Modelli 3D stampabili
└── docs/
├── img/ # Foto e video dimostrativi
└── LAGMABILLS.pptx # Presentazione progetto| Componente | Descrizione |
|---|---|
| Raspberry Pi 4B (4GB) | Cervello centrale, broker MQTT, Tailscale VPN |
| PCBmotori (ESP32, 4-layer) | 4× JGA25-370 Mecanum + encoder, 2× TB6612FNG, I2C slave 0x08 |
| PCBsensori (ESP32) | 6× HC-SR04, MPU-6050, 3× TCRT5000, PCA9685 → braccio 6DOF, I2C slave 0x09 |
| PCBalim | Distribuzione alimentazione custom, 2× LiPo 3S 5500mAh |
| ESP-Drone (ESP32-S2) | Ricognizione aerea, CRTP/UDP |
| OV5647 CSI | Camera RPi, stream MJPEG |
| ReSpeaker 2-Mic HAT | WM8960, wakeword ONNX, DOA GCC-PHAT |
| NEO-6M GPS | Tracciamento posizione world frame |
| Display 7" HDMI | Faccia animata responsiva (RPi) |
| Speaker Bluetooth | Audio stereo, musica / sirene / TTS |
Dettagli completi in Hardware/BOM.xlsx e Hardware/pinoutEsp32.xlsx.
Tutto comunica via MQTT (Mosquitto su RPi, localhost:1883, accessibile anche via Tailscale).
┌─────────────────────────┐
│ Mosquitto Broker (RPi) │
└────────────┬────────────┘
┌──────────┬──────────┼──────────┬──────────┐
│ │ │ │ │
odometria occupancy navigator drone_bridge GPS
│ grid.py .py .py .py
│ │
robot/ robot/
motori/ mappa/
stato grid| Topic | Direzione | Descrizione |
|---|---|---|
robot/motori/cmd | Pi → ESP32 | Comandi movimento |
robot/motori/stato | ESP32 → Pi | Encoder + PWM |
robot/sensori/distanze | ESP32 → Pi | Distanze HC-SR04 (cm) |
robot/sensori/imu | ESP32 → Pi | Accelerometro + giroscopio |
robot/odometria | Pi → tutti | Posa X, Y, θ |
robot/mappa/grid | Pi → viewer | Occupancy grid JSON |
robot/cliff/stato | Pi → tutti | Stato sensori cliff |
robot/nav/cmd | app → Pi | start / stop / reset_goal |
robot/nav/goal | app → Pi | Goal {x, y} in world frame |
drone/cmd/rpyt | app → Pi | Roll, pitch, yaw, thrust |
# Dipendenze Python
pip install paho-mqtt numpy sounddevice onnxruntime websockets \
flask flask-socketio pyserial pynmea2 faster-whisper psutil
# Mosquitto broker
sudo apt install mosquitto mosquitto-clients
sudo systemctl enable mosquitto
# Driver ReSpeaker 2-Mic HAT
# Seguire istruzioni in Hardware/ o repo seeed-voicecard
# Avviare i moduli (esempio)
python3 raspberry/odometria.py &
python3 raspberry/occupancyGrid.py &
python3 raspberry/navigator.py &
python3 raspberry/GPS.py &
python3 raspberry/myViewerServer.py &Dashboard web: http://<ip-pi>:8080
Le cartelle in firmware/ sono progetti PlatformIO completi e pronti da compilare (pio run).
Librerie richieste (platformio.ini):
Le credenziali WiFi e broker MQTT vengono salvate in NVS e possono essere aggiornate via I2C dal Pi senza reflashare.
📦 Non vuoi compilare tu stesso? Scarica le cartelle sorgente aggiornate automaticamente ad ogni modifica dalla sezione Releases.
ReSpeaker mic → wakeword ("hey nova") → DOA GCC-PHAT (stima direzione)
→ WebSocket stream PCM16 raw
→ Whisper STT → LLM (Ollama) → Piper TTS (voce "Miro" italiano)
→ audio risposta → Speaker BluetoothPrimi test di movimento
https://github.com/Dragonyx118/LagmaBills/raw/main/docs/img/first_test_move.mp4
Prototipo in movimento
https://github.com/Dragonyx118/LagmaBills/raw/main/docs/img/proto_move.mp4
Test braccio robotico
https://github.com/Dragonyx118/LagmaBills/raw/main/docs/img/test_arm.mp4
Struttura in legno
https://github.com/Dragonyx118/LagmaBills/raw/main/docs/img/wood_body.mp4
GitHub riproduce automaticamente i link diretti
.mp4di un repository quando incollati su una riga propria nel README, mostrando un player inline.
Hippocratic License 3.0 (HL3-CL-ECO-LAW-MIL-SV) — © 2025 Dragonyx
| Qty | Value | Footprint | References |
|---|---|---|---|
| 6 | 10kOhm | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R7, R8, R9, R10, R11, R12 |
| 6 | 20kOhm | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1, R2, R3, R4, R5, R6 |
| 4 | 4.7kΩ | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R13, R14, R15, R16 |
| 1 | 100nF 50V | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C2 |
| 1 | 100µF 25V | Capacitor_THT:CP_Radial_D8.0mm_P3.50mm | C1 |
| 1 | AlimServo | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal | J19 |
| 1 | Alimentazione | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal | J17 |
| 1 | Giroscopio/Accelerometro | Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical | J10 |
| 1 | MG996R conn | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-3_1x03_P5.00mm_Horizontal | J12 |
| 1 | MG996R conn2 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-3_1x03_P5.00mm_Horizontal | J18 |
| 1 | PCA9685 (1) | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-4_1x04_P5.00mm_Horizontal | J8 |
| 1 | Pompa | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-3_1x03_P5.00mm_Horizontal | J16 |
| 1 | SensSeguiLineaCEN | Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_Vertical | J14 |
| 1 | SensSeguiLineaDX | Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_Vertical | J15 |
| 1 | SensSeguiLineaSX | Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_Vertical | J13 |
| 1 | SensUltraDestra | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J3 |
| 1 | SensUltraFronte | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J1 |
| 1 | SensUltraFronteGiù | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J2 |
| 1 | SensUltraRetro | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J4 |
| 1 | SensUltraRetroGiù | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J6 |
| 1 | SensUltraSinistra | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J7 |
| 1 | Socket Esp32 1 | Connector_PinSocket_2.54mm:PinSocket_1x15_P2.54mm_Vertical | J5 |
| 1 | Socket Esp32 2 | Connector_PinSocket_2.54mm:PinSocket_1x15_P2.54mm_Vertical | J9 |
| 1 | i2c | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-3_1x03_P5.00mm_Horizontal | J11 |
The 37 most common of 41 parts.

Dragonyx118/LagmaBills
A Mecanum-wheeled robot for civil protection, powered by a Raspberry Pi orchestrating two custom ESP32 PCBs, sensors, a robotic arm, and a drone companion over MQTT.

Dragonyx118/LagmaBills
A Mecanum-wheeled robot for civil protection, powered by a Raspberry Pi orchestrating two custom ESP32 PCBs, sensors, a robotic arm, and a drone companion over MQTT.


VoronDesign/Voron-Hardware
Cool Hardware designed by the Voron Design group

hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

openwch/ch32v003
CH32V003 is an ultra-cheap RISC-V MCU with 2KB SRAM, 16KB flash, and up to 18 GPIOs that sells for under $0.10

imchipwood/dumbpad
Simple 4x4 numpad with rotary encoder. Powered by QMK via ATmega32u4 Pro Micro

jrsteensen/OpenHornet
OpenHornet 1:1 F/A-18C Simulator Repository


fabiansteiner/OpenValve
3D-printable pinch valve for irrigation and sensor-driven liquid control.
It measures 90.1 × 85.5 mm and has 2 copper layers, 1.6 mm thick.
41 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 Dragonyx118/LagmaBills repository on GitHub, at the commit this page was made from: the board is PCB/PCBsens/PCBsens.kicad_pcb and its schematic PCB/PCBalim/PCBalim.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 Dragonyx118 before reusing the design.