Open-source 5-axis CNC controller based on the Raspberry Pi RP2350B microcontroller running grblHAL firmware. Designed for hobby and workshop applications.
π rectabot.org β product, documentation and firmware configurator.
RectaBot is the first piece of an open CNC ecosystem we're actively building. New parts are shared here as they're finished and verified β no roadmaps, no dates, just working hardware and software.
| Current version | v1.0 |
| Status | β v1.0 β running a machine: homing, probing, Modbus spindle, Ethernet, SD. One interface not yet exercised: the RS-422 pendant header |
| First production batch | 5 boards (JLCPCB Economic PCBA + ENIG finish) |
| Firmware | grblHAL fork for RP2350B |
| Software | RectaControl β desktop sender built for this board |
| Form factor | 150 Γ 100 mm, 4-layer PCB, 1.6mm |
A 5-axis CNC controller with optical input isolation, integrated Ethernet, and a VFD interface.
- π§© Single-board, fully integrated β no add-on driver boards, breakout modules, or level-shifter add-ons to wire up. Every active part is soldered down (only the field-wiring terminals plug in), so vibration can't work a module loose over time; high-speed step/dir and comms lines are laid out for EMI immunity. Stepper drivers stay external β this board commands DM556-class drivers rather than replacing them β and coolant needs 2β3 optocoupler-input relay modules on
CN40(which ones) - βοΈ 5-axis stepper control (X, Y, Z, A, B) β PIO-based step generation up to 300kHz per axis
- π Spindle 0-10V interface with overvoltage protection β compatible with Huanyang/Lapond/Delta/Hitachi VFDs
- π‘οΈ Optically isolated inputs β all 10 field inputs through LTV-217-B-G optocouplers on a dedicated 24V_ISO rail (input side only)
- π On-board Ethernet 10/100 Mbps β a discrete W5500 PHY laid out to WIZnet's reference design and their engineers' recommendations (not a plug-on module), with J1B1211CCD integrated magnetics + Bob Smith termination and controlled 100Ξ© differential pairs
- πΎ MicroSD slot for G-code files and configuration
- π 24V DC power input (buck-regulated to 5V) β ORing Schottky diodes let the 24V supply and USB-C stay connected at the same time and hand off the 5V rail automatically; no VBUS/5V select jumpers to flip by hand (also blocks USB-C back-feed)
- π‘ RS-485 Modbus + RS-422 Pendant interfaces
- π¦ 10 isolated inputs + 3 auxiliary 5 V outputs (Mist M7 / Flood M8 / Vac M62) β signal level, ~4 mA, for optocoupler-input relay modules
Detailed specification: Docs/Reference/Product_Specification_v1.0.md
RectaBot/
βββ Docs/ # π All documentation (read first!)
β βββ Assembly/ # Build & first power-on
β β βββ Quick_Start_Guide.md # From unboxing to first motor (2-3h)
β β βββ First_Power_On_Procedure.md # Safe first power-on with a multimeter
β β βββ Hand_Solder_Components.md # 28 TH components for hand-soldering
β βββ Reference/ # Electrical & design reference
β β βββ Product_Specification_v1.0.md # Complete datasheet/spec
β β βββ Pinout.md # RP2350B pinmap (GP0-GP47)
β β βββ Schematic_References.md # Reference schematics for all ICs
β β βββ Hardware_Design_Guidelines.md # PCB layout guidelines
β β βββ VFD_Wiring_Guide.md # VFD connection guide (analog 0-10V)
β β βββ VFD_Modbus_Setup.md # VFD spindle control over RS-485/Modbus
β βββ Manufacturing/ # Send-to-fab production data
β β βββ BOM_v1.0_final.csv # Bill of Materials (~80 components)
β β βββ CPL_RectaBot_V1.0.csv # Component Placement List for JLCPCB
β β βββ LCSC_Additional_Order.csv # TH parts for a separate LCSC order
β β βββ Gerber_RectaBot_1.0/ # Production-ready Gerber files
β βββ Brand_Assets/ # Logo files (SVG) β brand reserved, not open-licensed
βββ website/ # rectabot.org β landing page, deployed by Actions
β βββ configurator/ # Firmware picker: machine layout β the matching .uf2
β
βββ (Submodules live in separate repos β see below)
RectaBot is split across separate GitHub repos for better modularity:
| Repo | Contents |
|---|---|
| rectabot/RectaBot (this one) | Hardware design (Gerber), docs, BOM, brand assets, configurator tool |
| rectabot/RectaBot-firmware | grblHAL fork with RectaBot board map + pre-built UF2 |
| rectabot/RectaControl | Desktop sender (Electron) β settings, probing, 3D toolpath, firmware flashing |
Clone everything at once:
git clone https://github.com/rectabot/RectaBot.git
git clone https://github.com/rectabot/RectaBot-firmware.git
git clone https://github.com/rectabot/RectaControl.git| Component | Role |
|---|---|
| Raspberry Pi RP2350B (QFN-80) | Dual ARM Cortex-M33 @ 150MHz, 48 GPIO, 12 PIO state machines |
| WIZnet W5500 | Hardware TCP/IP stack, 10/100 Ethernet |
| 74HC14D Γ3 | Schmitt-trigger inverters for 3.3Vβ5V level shift (all step/dir/en signals) |
| LTV-217-B-G Γ10 | Optocouplers for all input signals (limit switches, ESTOP, probe, controls) |
| LM358DR2G | Op-amp for PWMβ0-10V spindle interface |
| 2N7002 Γ2 | Open-drain MOSFETs for VFD EN/DIR signals |
| SP3485EN-L/TR Γ3 | 3.3V native RS-485/RS-422 transceivers (1 Modbus + 2 Pendant) |
| B2424S-2WR3 | Isolated 24Vβ24V DC/DC for opto LED supply |
24V DC IN βββ¬βββΊ TPS5430 buck βββΊ +5V (3A)
β β
ββββΊ B2424S-2WR3 isolation βββΊ +24V_ISO (opto LEDs)
β
ββββΊ LM358 (op-amp supply, 24V rail-to-rail)
+5V βββΊ AMS1117-3.3 LDO βββΊ +3.3V (MCU, W5500, SP3485)
βββββββββββββββββββββββββββββββββββββββ
β RectaBot v1.0 β RP2350B MCU β
β (Dual Cortex-M33 @ 150MHz) β
βββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββ¬ββββββββ΄ββββββββ¬ββββββββββββββββββββββββ
β β β β
βΌ βΌ βΌ βΌ
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β MOTION β β SPINDLE β β AUX (RELAY) β β I/O & COMM β
β β β β β β β β
β PIO step gen β β PWM @ 25kHz β β GP0-2 β β β SPI0 W5500 β
β GP8-22 β β β GP27 β β β 74HC14D β β UART1 RS485 β
β 74HC14D Γ3 β β LM358 op-amp β β Mist/Flood/ β β UART0 RS422 β
β (Schmitt inv)β β + 2N7002 Γ2 β β Vacuum β β SPI1 microSD β
ββββββββ¬ββββββββ ββββββββ¬ββββββββ ββββββββ¬ββββββββ ββββββββ¬ββββββββ
β β β β
βΌ βΌ βΌ βΌ
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β CN34-CN38 β β CN39 (VFD) β β CN40 (AUX) β β RJ45 + USB-C β
β 5Γ Stepper β β 0-10V analog β β Mist/Flood/ β β + CN32 RS485 β
β STEP/DIR/EN β β EN/DIR open- β β Vacuum + β β + CN41 RS422 β
β (5V CMOS) β β drain MOSFET β β 5V/VAC/GND β β + microSD β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β β β β β β β β β β β INPUT-SIDE ISOLATION (10Γ OPTO) β β β β β β β β β β β
βββββββββββββββββββββββ
β 10Γ ISOLATED β
β INPUTS β
β β
β LTV-217-B-G opto β
β + 24V_ISO domain β
β (B2424S-2WR3 DC/DC) β
β β
β Limits, ESTOP, β
β Probe, Controls β
β β
β β CN22-CN31 β
βββββββββββββββββββββββ
Note: v1 isolates the input side only.
π¦ Status: The first batch of five v1.0 boards has been assembled, and a board has been driving a machine since: homing and hard limits, probing cycles, a Modbus VFD spindle, Ethernet, the SD card and the coolant outputs. Everything documented below is verified on hardware, with one exception β nothing has yet been connected to the RS-422 pendant header (CN41). Its transceivers are populated and its pins are documented, but the link has never carried traffic, so treat that one interface as untested. Follow the assembly and wiring guides below.
Main guides:
- Quick_Start_Guide.md β Complete walkthrough from unboxing to first motor (estimated: 2-3h)
- First_Power_On_Procedure.md β Safety procedure for the first power-on with a multimeter
Main steps (summary):
- Visual inspection of the board (10 min)
- Hand-soldering 28 TH components (list, 60-90 min)
- Pre-Power-On continuity tests (15 min)
- First Power-On + LED + voltage verification (10 min)
- Firmware flash via BOOTSEL+USB (15 min) β the configurator names the
.uf2your motor layout needs - grblHAL configuration (
$$parameters for RectaBot, 20 min) β RectaControl's Settings panel, with a steps/mm calculator - First axis test with a DM556 driver (10 min)
- VFD wiring β analog 0-10V or RS-485/Modbus
- grblHAL community β for the incredible open-source firmware
- Raspberry Pi Foundation β for the RP2350 chip and accessible pricing
- JLCPCB & LCSC β for accessible prototype manufacturing
- EasyEDA β for the CAD tool that made this project possible for a solo developer
- Code, documentation: MIT (see LICENSE)
- Hardware design files (Gerber, BOM, CPL): CERN-OHL-S v2 (see LICENSE.hardware)
- Brand assets (the name "RectaBot" + logo SVGs): reserved β all rights reserved, not open-licensed (see Docs/Brand_Assets/README.md)
- grblHAL firmware fork: GPL-3.0 (inherits from upstream, in the separate RectaBot-firmware repo)
- RectaControl sender: GPL-3.0 (separate RectaControl repo)
Project lead: Filip PeriΔ Website: rectabot.org Email: hello@rectabot.org Location: Kragujevac, Serbia

