
Type d
google/mozc-devices
Circuit diagrams and firmware source code for Gboard DIY keyboards

Designing and Building a mini version of a Swerve drive, commonly used in FRC, FTC, and VEX Robotics competitions. Utilizing custom circuitry and software in order to replicate the FRC Environment at a smaller scale.
Swerve carrier board is an open-source printed circuit board by Eventide-03, from the Eventide-03/Mini-Swerve repository on GitHub. It is a 2-layer board of 120 × 120 mm with 14 parts on 51 nets, routed with 104 tracks and 0 vias.
Its parts include 6 connectors, 2 capacitors and 1 switch. It belongs with the computers and single-board computers boards of this library.
A fully custom four-module swerve drivetrain built to replicate the FRC/FTC swerve drivetrains. Every part of this project was designed/planned by me.
Swerve drive is an omnidirectional drivetrain, which means each wheel module can independently steer and drive, allowing a robot to move and rotate at the same time. I thought it would be nice to make a tinier at-home version for my own enjoyment, normally they are pretty big, but this one is fun sized.
This build has the full swerve control system on a 12.25 × 12.25 inch chassis with four independent modules. Each module uses 5010 brushless motors for driving and steering, using gear reductions to achieve the required torque. This leaves us with a miniature platform that actslike a full-size competition swerve, but small enough to use in my own house.
In order to save money I designed a custom PCB in order to hold everything, making it much easier to wire. In addition I will be using my SpeedyBee f405 to control the drive motors to avoid having to pay for 4 extra motor controllers.
| Attribute | Detail |
|---|---|
| Chassis footprint | 12.25 × 12.25 in |
| Modules | 4 (independent steer + drive) |
| Motors | 8 × 5010 360 kV brushless (4 drive, 4 steer) |
| Reduction | 8:1 per axis |
| Master controller | ESP32-S3-DevKitC-1 |
| Steering control | 2 × Makerbase (MKS) ESP32 Dual FOC ESC, controlled over UART via SimpleFOC Commander |
| Drive control | SpeedyBee F405 4-in-1 ESC (DSHOT600) |
| Steering feedback | 4 × AS5600 magnetic encoders (I²C) |
| Radio control | RadioMaster Pocket ELRS (TX + receiver) |
| Power | 4S LiPo (14.8 V) → Mini-360 buck converter (5 V) for logic |
The ESP32-S3-DevKitC-1 runs most of the code and is the brain reading commands from the ELRS receiver, and running the swerve kinematics, and sending the commands to the two motor-control subsystems:
All of this lives on the carrier PCB that seats the ESP32-S3 and breaks out clean, labeled connectors for the ESC, MKS boards, encoders, receiver, and power.
Important: The steering magnets must be diametrically magnetized (poles across the diameter, not top-to-bottom), 6 × 2.5 mm, and mounted on the steering rotation axis, not the motor shaft or drive shaft. The AS5600 reports an absolute 0–360°, so it must rotate 1:1 with the module's steering angle.
Work through these in order. Use the CAD exploded views go to the assembly and click the exploded views to the left.
Order everything on the BOM and 3D-print the printed components from the CAD. Confirm you have all fasteners, belts, bearings, and magnets before starting.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | C | Capacitor_THT:CP_Radial_D5.0mm_P2.50mm | C1, C2 |
| 1 | Conn_01x22_Pin | Connector_PinSocket_2.54mm:PinSocket_1x22_P2.54mm_Vertical_SMD_Pin1Right | J6 |
| 1 | Conn_01x22_Pin | Connector_PinSocket_2.54mm:PinSocket_1x22_P2.54mm_Vertical_SMD_Pin1Left | J5 |
| 1 | DSHOT to SpeedyBee | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J_DSHOT1 |
| 1 | Power input from battery | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J_VBAT1 |
| 1 | RX_ELRS | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J_ELRS1 |
| 1 | SW_Push | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW1 |
| 1 | TL Steering Controller | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J_STEER1 |
| 1 | TR Steering Controller | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J_STEER2 |
| 1 | VIN+ | Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical | J1 |
| 1 | VIN- | Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical | J2 |
| 1 | VOUT+ | Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical | J3 |
| 1 | VOUT- | Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical | J4 |

google/mozc-devices
Circuit diagrams and firmware source code for Gboard DIY keyboards


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



Twotoz/C5VRX
Ultra-minimal, zero-CPU 5.8 GHz analog FPV video receiver using ESP32-C5 Wi-Fi 6 PHY MODEM_DIAG, BitScrambler WBFM demodulation & resistor DAC CVBS


It measures 120 × 120 mm and has 2 copper layers, 1.6 mm thick.
14 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 Eventide-03/Mini-Swerve repository on GitHub, at the commit this page was made from: the board is PCB/swerve carrier board.kicad_pcb and its schematic PCB/swerve carrier board.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 Eventide-03 before reusing the design.