
En mostic test
sps-EmLogic/spscnc
CNC Controller board for FluidNC and TMC2160 controllers

CNC Controller board for FluidNC and TMC2160 controllers
Spscnc is an open-source printed circuit board by sps-EmLogic, from the sps-EmLogic/spscnc repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 297.5 × 187.5 mm with 491 parts on 410 nets, routed with 5,158 tracks and 1,478 vias.
It is built around the ESP32-WROOM-32D, TMC2160-TA and FT232RL, with the IR2104PBF, LM2596S-5.0 and 74HC595 among its other parts. Its parts include 197 resistors, 88 capacitors, 56 diodes, 41 transistors and 19 ICs. It belongs with the ESP32 boards of this library.
There are multiple options for FluidNC, however, this project deliver a relatively low cost version of a board with Trinamic drivers, and external MOSFET's.
The board integrates components which should tolerate 20A operation on every axis, but the original prototype has only been qualified for 5A per AXIS.
The card integrates the ESP32 module, 4 axis, and a simple PWM controller for the spindle. The card integrates an isolated probe sensor which can be connected directly to the spindle body, and a connector for the 4 limit sensors.
Version 1.0.1 of the card was produced by JLCPCB. Rev 1.0.1 needs straps to become 1.0.2. Straps are removed under 1.1.0. Version 1.0.2 has been tested successfully. 1.1.0 is being released to the pulbic, but there are currently no plans to produce it as 1.0.2 is sufficient for the project owner at the moment.
| Connector | Function |
|---|---|
| MAININPUT1 | Main 24V power supply input. Stepped power can be derived via solder bridge JP3 for stepper motors. |
| STEPINPUT1 | Stepper alternative power input. Requires solder bridge JP1 to be short. |
| A1-A4 | Stepper motor 4W ports. |
| MOTOR_CONN5 | Spindle motor connection (PWM) |
| J3 | +48V Spindle motor power input. |
| SPINDLE_RELAY1 | Spindle and Vacuum 24V 100mA relay control outputs (Do not connect a motor directly to this interface) |
| ISO_PROBE1 | Isolated probe connection interface. |
| J20 | Button interface port |
| Limit_IF | NC Limit switch inputs and button inputs. |
| J19 | CMOS Serial programming interface ESP32 |
| J6 | SD Card interface |
| Connector | Function |
|---|---|
| J7 | Optional USB Serial converter. |
| J15 | Secondary processor USB serial IF |
| J16 | Secondary processor spreadout |
| J17 | Secondary processor spreadout |
| J18 | Secondary processor spreadout |
| Connector | Function |
|---|---|
| JP23, and JP24 | B Axis interfaces. |
| JP25, and JP26 | A Axis interfaces. |
| JP21, and JP22 | End of SPI lines for the first 4 steppers. Strapping is required if steppers A and B are to be daisy chained into the SPI bus. |
| Jumper | Function |
|---|---|
| JP9 | Spindle PWM. Set for normal PWM operation, if a feedback controller is used, the feedback requires the spindle configuration to be analog instead of PWM. |
| JP23 | Solder jumper for feeding the steppers with 24V instead of 12V. NEVER Solder the 12V input and the 24V inputs simultaneously. |
| JP1 | Solder bridge for 12V operation of the steppers. See JP3 description for limitations. |
Main 24V power supply input. Stepped power can be derived via solder bridge JP3 for stepper motors.
| Pin | Function |
|---|---|
| 1 | GND |
| 2 | GND |
| 3 | +24V |
| 4 | +24V |
Stepper alternative power input. Requires solder bridge JP1 to be short.
| Pin | Function |
|---|---|
| 1 | GND |
| 2 | GND |
| 3 | +12V |
| 4 | +12V |
Stepper motor 4W ports.
| Pin | Function |
|---|---|
| 1 | COIL_A_P |
| 2 | COIL_A_N |
| 3 | COIL_B_P |
| 4 | COIL_B_N |
Spindle motor connection (PWM)
| Pin | Function |
|---|---|
| 1 | MOTOR_B |
| 2 | MOTOR_B |
| 3 | MOTOR_A |
| 4 | MOTOR_A |
+48V Spindle motor power input.
| Pin | Function |
|---|---|
| 1 | GND |
| 2 | GND |
| 3 | +48V |
| 4 | +48V |
Spindle and Vacuum 24V 100mA relay control outputs (Do not connect a motor directly to this interface)
In the original application, this output controls a power relay for the 48V power supply which feeds the spindle.
| Pin | Function |
|---|---|
| 1 | GND |
| 2 | GND |
| 3 | VACUUM_+24V 100mA |
| 4 | SPINDLE_EN +24V 100mA |
Isolated probe connection interface. When pins 1 and 2 are shorted, the probe input is active. Since the interface is isolated, either pin can be attached to the spindle body, or to the probing pad permanently.
| Pin | Function |
|---|---|
| 1 | + 5V ISO probe |
| 2 | Isolated Input |
| 3 | Same as pin 1 |
| 4 | Same as pin 2 |
| 5 | Same as pin 1 |
| 6 | Same as pin 2 |
| 7 | Same as pin 1 |
| 8 | Same as pin 2 |
Button interface port. This connector can be attached to the control panel. 3V3 is provided for the reset button which cannot have a pull up mounted. In addition, 3V3 can be used to feed the panel LED's.
| Pin | Function |
|---|---|
| 1 | HOLD_BTN |
| 2 | GND |
| 3 | RESET_BTN |
| 4 | +3V3 |
| 5 | RESERVED |
| 6 | +3V3 |
| 7 | DOOR_SWITCH |
| 8 | GND |
NC Limit switch inputs and button inputs.
| Pin | Function |
|---|---|
| 1 | LIM_X |
| 2 | LIM_Y1 |
| 3 | LIM_Y2 |
| 4 | LIM_Z |
| 5 | ISO_PROBE_IN (alternative path) |
| 6 | HOLD_BTN (alternative path) |
| 7 | DOOR_SWITCH (alternative path) |
| 8 | RESET_BTN (alternative path) |
| 9 | GND |
| 10 | GND |
| 11 | LIM_B |
| 12 | LIM_A |
| 13 | ISO_PROBE_OUT 5V |
| 14 | GND |
| 15 | GND |
| 16 | +3V3 RESET_BTN supply, and panel LED's |
CMOS Serial programming interface ESP32. This port is provided in case the USB serial converter is not assembled. Ground is not provided in this connector, but can be found in the SDCard connector. This interface is not intended to be used frequently.
| Pin | Function |
|---|---|
| 1 | BOOT MODE |
| 2 | TX |
| 3 | GPIO2 |
| 4 | RX |
SD Card interface. A pin header to microSD adaptor can be made very easily. The pin functions are:
| Pin | Function |
|---|---|
| 1 | MISO |
| 2 | GND |
| 3 | SCK |
| 4 | 3V3 |
| 5 | GND |
| 6 | MOSI |
| 7 | CS |

| Qty | Value | Footprint | References |
|---|---|---|---|
| 52 | 10K | Resistor_SMD:R_0805_2012Metric | R10, R11, R12, R13, R100, R101, R116, R117, R118, R119, R122, R123, R142, R143, R144, R145 +36 |
| 37 | 47 | Resistor_SMD:R_0805_2012Metric | R18, R102, R103, R104, R105, R124, R125, R126, R127, R164, R167, R175, R176, R177, R178, R179 +21 |
| 37 | KIA50N06B | Package_TO_SOT_SMD:TO-252-2 | Q1, Q2, Q10, Q13, Q14, Q15, Q16, Q17, Q18, Q19, Q20, Q21, Q22, Q23, Q24, Q25 +21 |
| 32 | 10 | Resistor_SMD:R_0805_2012Metric | R106, R107, R108, R109, R112, R113, R114, R115, R128, R129, R130, R131, R134, R135, R136, R137 +16 |
| 29 | MountingHole_Pad | MountingHole:MountingHole_3.2mm_M3_Pad_Via | H1, H2, H3, H10, H11, H12, H13, H14, H15, H16, H19, H20, H24, H25, H27, H29 +13 |
| 22 | 100nF | Capacitor_SMD:C_0603_1608Metric | C12, C18, C24, C28, C31, C36, C37, C38, C39, C44, C49, C52, C57, C62, C65, C70 +6 |
| 21 | SS36-E3/57T | Diode_SMD:D_SMC | D33, D36, D37, D38, D39, D40, D41, D42, D43, D44, D45, D46, D47, D48, D49, D50 +5 |
| 19 | 1nF | Capacitor_SMD:C_0805_2012Metric | 1nF@100V1, 1nF@100V2, 1nF@100V3, 1nF@100V4, 1nF@100V5, 1nF@100V6, 1nF@100V7, 1nF@100V8, 1nF@100V9, 1nF@100V10, 1nF@100V11, 1nF@100V12, 1nF@100V13, 1nF@100V14, 1nF@100V15, 1nF@100V16 +3 |
| 18 | 1K | Resistor_SMD:R_0603_1608Metric | R5, R6, R7, R30, R55, R59, R62, R64, R148, R157, R163, R165, R166, R172, R191, R197 +2 |
| 18 | LED | Diode_SMD:D_0805_2012Metric | D1, D2, D3, D10, D19, D21, D22, D24, D25, D27, D28, D30, D31, D32, D34, D35 +2 |
| 16 | 0R15 | Resistor_SMD:R_MELF_MMB-0207 | R38, R39, R40, R41, R42, R43, R44, R45, R46, R47, R50, R51, R71, R72, R73, R74 |
| 16 | 470nF | Capacitor_SMD:C_0805_2012Metric | C20, C21, C34, C35, C45, C46, C47, C48, C58, C59, C60, C61, C71, C72, C73, C74 |
| 12 | 10uF | Capacitor_SMD:C_1206_3216Metric | C8, C9, C27, C29, C32, C33, C78, C85, C86, C87, C89, C90 |
| 12 | 2.2uF | Capacitor_SMD:C_0805_2012Metric | C13, C14, C15, C30, C41, C42, C53, C54, C55, C66, C67, C68 |
| 12 | 330uF @60V | Capacitor_THT:CP_Radial_D24.0mm_P10.00mm_SnapIn | C2, C6, C7, C11, C25, C40, C50, C51, C63, C64, C76, C77 |
| 10 | 100 | Resistor_SMD:R_0805_2012Metric | R36, R37, R66, R67, R68, R69, R138, R139, R140, R141 |
| 8 | 0.050 | Resistor_SMD:R_2512_6332Metric | R22, R31, R88, R89, R110, R111, R132, R133 |
| 7 | MBR2060DT | Package_TO_SOT_SMD:TO-252-2 | D6, D7, D9, D15, D16, D17, D18 |
| 6 | 10uF 50V | Capacitor_SMD:C_1210_3225Metric | C1, C5, C22, C23, C81, C82 |
| 6 | 1N4148 | Diode_SMD:D_SOD-123 | D11, D12, D13, D14, D20, D56 |
| 6 | 27 | Resistor_SMD:R_0805_2012Metric | R1, R2, R3, R4, R75, R150 |
| 5 | MOTOR CONN | Connector_Phoenix_MSTB:PhoenixContact_MSTBV_2,5_4-GF-5,08_1x04_P5.08mm_Vertical_ThreadedFlange_MountHole | MOTOR_CONN1, MOTOR_CONN2, MOTOR_CONN3, MOTOR_CONN4, MOTOR_CONN5 |
| 4 | 0 | Resistor_SMD:R_0805_2012Metric | R151, R152, R153, R154 |
| 4 | 22nF | Capacitor_SMD:C_0805_2012Metric | C17, C43, C56, C69 |
| 4 | 2R2 | Resistor_SMD:R_0805_2012Metric | R15, R60, R99, R121 |
| 4 | Conn_01x04 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J19, J21, J23, J25 |
| 4 | Conn_01x04_Female | Connector_Phoenix_MSTB:PhoenixContact_MSTBV_2,5_4-GF-5,08_1x04_P5.08mm_Vertical_ThreadedFlange_MountHole | J3, MAININPUT1, SPINDLE_RELAY1, STEPINPUT1 |
| 4 | DNP | Resistor_SMD:R_0805_2012Metric | R168, R169, R170, R171 |
| 4 | DNP | Resistor_SMD:R_0603_1608Metric | R14, R58, R98, R120 |
| 4 | SMBJ60A | Diode_SMD:D_SMB | D4, D23, D26, D29 |
| 4 | SW_DIP_x01 | Button_Switch_SMD:SW_DIP_SPSTx01_Slide_6.7x4.1mm_W6.73mm_P2.54mm_LowProfile_JPin | BOOTM1, BOOTM2, RST1, RST2 |
| 4 | SolderJumper_2_Open | Jumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mm | JP4, JP5, JP6, JP7 |
| 4 | TMC2160-TA | Package_QFP:TQFP-48-1EP_7x7mm_P0.5mm_EP5x5mm | IC1, IC2, IC3, IC4 |
| 3 | Conn_01x06 | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J22, J24, J26 |
| 2 | 1uF @60V | Capacitor_SMD:CP_Elec_5x5.7 | C3, C4 |
| 2 | 220uF 170mOhms 35V | Capacitor_SMD:CP_Elec_8x10 | C19, C80 |
| 2 | 68uH | Inductor_SMD:L_12x12mm_H8mm | L1, L3 |
| 2 | 74HC595 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U13, U14 |
| 2 | 8P8C_4xShielded | industrial:rj45_R-RJ45S08P-B000_C386763 | ISO_PROBE1, J20 |
| 2 | BSP41 | Package_TO_SOT_SMD:SOT-223 | Q11, Q40 |
| 2 | BSP42 | Package_TO_SOT_SMD:SOT-223 | Q12, Q41 |
| 2 | Conn_01x20 | Connector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_Vertical | J16, J18 |
| 2 | ESP32-WROOM-32D | RF_Module:ESP32-WROOM-32 | U5, U12 |
| 2 | FT232RL | Package_SO:SSOP-28_5.3x10.2mm_P0.65mm | U8, U10 |
| 2 | HFD3/3 | Relay_THT:Relay_DPDT_Kemet_EC2 | K1, K5 |
| 2 | IR2104 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U1, U2 |
| 2 | Jumper_2_Bridged | Jumper:SolderJumper-2_P1.3mm_Bridged2Bar_Pad1.0x1.5mm | JP2, JP8 |
| 2 | Jumper_NO_Small | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | JP3, JP9 |
| 2 | LBA710 | Package_DIP:DIP-8_W8.89mm_SMDSocket_LongPads | U7, U15 |
| 2 | LM2596 | Package_TO_SOT_SMD:TO-263-5_TabPin3 | U3, U9 |
| 2 | NCP1117ST33T3G | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U4, U11 |
| 2 | USB_B_Micro | Connector_USB:USB_Micro-B_Molex-105017-0001 | J7, J15 |
| 1 | 9K1 | Resistor_SMD:R_0603_1608Metric | R149 |
| 1 | Conn_01x07_Female | Connector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_Horizontal | J6 |
| 1 | Conn_01x08 | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J17 |
| 1 | DNP | Resistor_SMD:R_0402_1005Metric | R56 |
| 1 | IL0515S_DC-DC | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | U6 |
| 1 | Jumper_NO_Small | Jumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mm | JP1 |
| 1 | Limit_IF | industrial:connRPC2x8_3.5mm2.5mm | J5 |
It measures 297.5 × 187.5 mm and has 4 copper layers, 1.6 mm thick.
491 parts, built around the ESP32-WROOM-32D, TMC2160-TA, FT232RL and IR2104PBF. 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 sps-EmLogic/spscnc repository on GitHub, at the commit this page was made from: the board is hw/spscnc/spscnc.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

sps-EmLogic/spscnc
CNC Controller board for FluidNC and TMC2160 controllers

sps-EmLogic/spscnc
CNC Controller board for FluidNC and TMC2160 controllers

howie-j/opensolder
Fully open source JBC T245-compatible soldering station

Paschalis/UAV-TelemetryLink
Receiver and transmitter solution for GCS using ELRS, mLRS, and MAVLink for reliable telemetry and control.


mstolpner/lt4320-bridge-drop-in
A rectifier bridge drop in replacement pcb based on LT4320 ideal rectifier

RedlabsDE/Digital-DC-Load
In the "Calibration" page, the raw ADC values are displayed. The user can set the raw DAC value.


hasenbanck/heteromycin
A 3D printer board using a powerfull STM32 MCU, TMC5160/TMC2160 driver and a Raspberry Pi or compatible SBC

calithameridi/corevus
High-flexibility, low-cost mechatronics controller for 3D printers