Skip to the content
2 layers42 × 42 mmControllerBoardSingle v1, the printed circuit board in 3D

ControllerBoardSingle v1

0x23/BallJointEmbossingMachine9

A motorized linear embossing machine designed to precisely press ball joints. It was designed to automate the production of balljoint linkages for the Open-Micro-Manipulator.

Size
42 × 42 mm
Copper layers
2
Thickness
1.6 mm
Parts
20
Nets
32
Pads
80
Tracks, vias
156, 69
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
29 May 2026
Updated
29 May 2026

Overview

ControllerBoardSingle v1 is an open-source printed circuit board by 0x23, from the 0x23/BallJointEmbossingMachine repository on GitHub, published under the MIT licence. It is a 2-layer board of 42 × 42 mm with 20 parts on 32 nets, routed with 156 tracks and 69 vias.

It is built around the ROB-14450, RP2040-ZERO and PMEG4010CEJ. Its parts include 5 capacitors, 5 connectors, 2 resistors, 2 ICs and 1 diode. It belongs with the RP2040 boards of this library.

Main components

3

README

README.md

Ball Joint Embossing Machine

CAD render of the embossing machine

Work in Progress — This project is not in a finished, well-documented, or ready-to-replicate state. It is shared as a starting point for anyone who wants to build upon it. Expect incomplete documentation, rough edges, and parts that may require adaptation.

Overview

A motorized linear embossing machine designed to precisely press ball joints. It was designed to automate the production of balljoint linkages for the Open-Micro-Manipulator. It uses a NEMA 17 stepper motor driving a leadscrew on an MGN9 linear rail, with closed-loop position feedback from an MT6835 magnetic encoder. The tool head position is controlled in real time by firmware running on an RP2040 microcontroller.

Watch the video on YouTube

Hardware

  • Microcontroller: RP2040-ZERO / RP2350-ZERO
  • Motor: NEMA 17 stepper (1.8°, 50 pole pairs)
  • Motor driver: TB6612
  • Position sensor: MT6835 magnetic encoder (SPI)
  • Linear guide: MGN9 rail + carriage
  • Drive: Leadscrew with 3 mm magnet pitch, 48/20 gear ratio

Electronics

WARNING: The electronics must be powered by no more than 5 V. Supplying a higher voltage will risk damaging the USB port on your Computer.

The custom controller board (electronics/ControllerBoardSingle_v1/) is designed around the RP2040-ZERO / RP2350-ZERO and the TB6612 dual motor driver. Open the project with KiCad 10 or later. There is alwas a physical button to start the embossing process - please look at the firmware for finding the correct pin.

Firmware

The firmware is built with PlatformIO.

Build & upload:

bash
cd firmware
pio run --target upload

Linux note: udev rules must be installed before the upload will work:

bash
sudo curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/develop/platformio/assets/system/99-platformio-udev.rules \
  -o /etc/udev/rules.d/99-platformio-udev.rules
sudo service udev restart
# replug the device, then run pio run --target upload

License

MIT — see LICENSE for the full text.

Parts

20
QtyValueFootprintReferences
510uF 6VCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C3, C4, C5
4MountingHole_PadMountingHole:MountingHole_3.2mm_M3_ISO7380_PadH1, H2, H3, H4
24K7Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R2
2MotorConnector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_VerticalJ2, J3
1Conn_01x05_PinConnector_PinSocket_2.00mm:PinSocket_1x05_P2.00mm_VerticalJ5
1Conn_01x06_PinConnector_JST:JST_PH_B6B-PH-K_1x06_P2.00mm_VerticalJ4
1PMEG4010CEJDiode_SMD:D_SOD-123FD1
1Power 5VConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_HorizontalJ1
1ROB-14450ROB-14450:MODULE_ROB-14450U2
1RP2040-ZERORP2040-ZERO:MODULE_RP2040-ZEROU1

The 19 most common of 20 parts.

Similar boards

  • 4 layers40 × 60 mmControl board v2.0, the printed circuit board in 3D

    Control board v2.0

    0x23/nmWave-Interferometer

    An Open Source Interferometer for Accurate Distance Measurements

    106 parts151MIT
  • 2 layers55 × 100 mmESP32AY revD2, the printed circuit board in 3D

    ESP32AY revD2

    djspawnbrest/ESP32AY

    ZxPod - ESP32 based AY multiformat player

    138 parts59GPL-3.0
  • 2 layers17.4 × 12.6 mmTC4056-Bypass, the printed circuit board in 3D

    TC4056-Bypass

    DoImant/TP4056-Power-Path-PCB

    TP4056 Power Sharing PCB. Charge battery despite connected load.

    8 parts52CC-BY-SA-4.0
  • 2 layers72.6 × 65.5 mmFDC, the printed circuit board in 3D

    FDC

    MichaelM4/Floppy80-M1

    Floppy controller and disk emulator for the TRS-80 Model 1

    26 parts10
  • 4 layers278 × 93.5 mmCorne cherry, the printed circuit board in 3D

    Corne cherry

    yangxing844/corne-wireless

    corne-like wireless keyboard, WIP

    244 parts3GPL-3.0
  • 2 layers304.9 × 120.7 mmKeyboard75, the printed circuit board in 3D

    Keyboard75

    benzooku/comp75

    Keyboard Project with PCB design. 75% layout

    386 parts1GPL-3.0
  • 4 layers145.5 × 107.5 mmCorne cherry, the printed circuit board in 3D

    Corne cherry

    yangxing844/keyboard

    this stores some of my files for keyboards building

    208 parts1
  • 4 layers58 × 35 mmESP HI PLUS, the printed circuit board in 3D

    ESP HI PLUS

    dyu134/ESP-HI-PLUS

    The Robot sub-module is a high-performance actuator and sensing expansion board for the ESP-HI-PLUS, designed to transform the device into a mobile or interactive robotic platform.

    88 parts

Questions

How big is the ControllerBoardSingle v1 PCB?

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

What parts does the ControllerBoardSingle v1 use?

20 parts, built around the ROB-14450, RP2040-ZERO and PMEG4010CEJ. 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 ControllerBoardSingle v1 KiCad files?

From the 0x23/BallJointEmbossingMachine repository on GitHub, at the commit this page was made from: the board is electronics/ControllerBoardSingle_v1/ControllerBoardSingle_v1.kicad_pcb and its schematic electronics/ControllerBoardSingle_v1/ControllerBoardSingle_v1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ControllerBoardSingle v1 design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).