Skip to the content
PCBKitNew board
4 layers297.5 × 187.5 mmSpscnc, the printed circuit board in 3D

CNC Controller board for FluidNC and TMC2160 controllers

Size
297.5 × 187.5 mm
Copper layers
4
Thickness
1.6 mm
Parts
491
Nets
410
Pads
2,034
Tracks, vias
5,158, 1,478
Pours
13
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
6 Feb 2022
Updated
7 May 2022

Overview

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.

Main components

12

README

README.md

spscnc 1.1.0 CNC Controller board for FluidNC and TMC2160 controllers

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.

Main interfaces

ConnectorFunction
MAININPUT1Main 24V power supply input. Stepped power can be derived via solder bridge JP3 for stepper motors.
STEPINPUT1Stepper alternative power input. Requires solder bridge JP1 to be short.
A1-A4Stepper motor 4W ports.
MOTOR_CONN5Spindle motor connection (PWM)
J3+48V Spindle motor power input.
SPINDLE_RELAY1Spindle and Vacuum 24V 100mA relay control outputs (Do not connect a motor directly to this interface)
ISO_PROBE1Isolated probe connection interface.
J20Button interface port
Limit_IFNC Limit switch inputs and button inputs.
J19CMOS Serial programming interface ESP32
J6SD Card interface

Secondary interfaces

ConnectorFunction
J7Optional USB Serial converter.
J15Secondary processor USB serial IF
J16Secondary processor spreadout
J17Secondary processor spreadout
J18Secondary processor spreadout

Extensions for 2 extra axis:

ConnectorFunction
JP23, and JP24B Axis interfaces.
JP25, and JP26A Axis interfaces.
JP21, and JP22End 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.

Jumpers:

JumperFunction
JP9Spindle PWM. Set for normal PWM operation, if a feedback controller is used, the feedback requires the spindle configuration to be analog instead of PWM.
JP23Solder jumper for feeding the steppers with 24V instead of 12V. NEVER Solder the 12V input and the 24V inputs simultaneously.
JP1Solder bridge for 12V operation of the steppers. See JP3 description for limitations.

Connector pinouts:

MAININPUT1

Main 24V power supply input. Stepped power can be derived via solder bridge JP3 for stepper motors.

PinFunction
1GND
2GND
3+24V
4+24V

STEPINPUT1

Stepper alternative power input. Requires solder bridge JP1 to be short.

PinFunction
1GND
2GND
3+12V
4+12V

A1-A4

Stepper motor 4W ports.

PinFunction
1COIL_A_P
2COIL_A_N
3COIL_B_P
4COIL_B_N

MOTOR_CONN5

Spindle motor connection (PWM)

PinFunction
1MOTOR_B
2MOTOR_B
3MOTOR_A
4MOTOR_A

J3

+48V Spindle motor power input.

PinFunction
1GND
2GND
3+48V
4+48V

SPINDLE_RELAY1

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.

PinFunction
1GND
2GND
3VACUUM_+24V 100mA
4SPINDLE_EN +24V 100mA

ISO_PROBE1

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.

PinFunction
1+ 5V ISO probe
2Isolated Input
3Same as pin 1
4Same as pin 2
5Same as pin 1
6Same as pin 2
7Same as pin 1
8Same as pin 2

J20

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.

PinFunction
1HOLD_BTN
2GND
3RESET_BTN
4+3V3
5RESERVED
6+3V3
7DOOR_SWITCH
8GND

Limit_IF

NC Limit switch inputs and button inputs.

PinFunction
1LIM_X
2LIM_Y1
3LIM_Y2
4LIM_Z
5ISO_PROBE_IN (alternative path)
6HOLD_BTN (alternative path)
7DOOR_SWITCH (alternative path)
8RESET_BTN (alternative path)
9GND
10GND
11LIM_B
12LIM_A
13ISO_PROBE_OUT 5V
14GND
15GND
16+3V3 RESET_BTN supply, and panel LED's

J19

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.

PinFunction
1BOOT MODE
2TX
3GPIO2
4RX

J6

SD Card interface. A pin header to microSD adaptor can be made very easily. The pin functions are:

PinFunction
1MISO
2GND
3SCK
43V3
5GND
6MOSI
7CS

Parts

491
QtyValueFootprintReferences
5210KResistor_SMD:R_0805_2012MetricR10, R11, R12, R13, R100, R101, R116, R117, R118, R119, R122, R123, R142, R143, R144, R145 +36
3747Resistor_SMD:R_0805_2012MetricR18, R102, R103, R104, R105, R124, R125, R126, R127, R164, R167, R175, R176, R177, R178, R179 +21
37KIA50N06BPackage_TO_SOT_SMD:TO-252-2Q1, Q2, Q10, Q13, Q14, Q15, Q16, Q17, Q18, Q19, Q20, Q21, Q22, Q23, Q24, Q25 +21
3210Resistor_SMD:R_0805_2012MetricR106, R107, R108, R109, R112, R113, R114, R115, R128, R129, R130, R131, R134, R135, R136, R137 +16
29MountingHole_PadMountingHole:MountingHole_3.2mm_M3_Pad_ViaH1, H2, H3, H10, H11, H12, H13, H14, H15, H16, H19, H20, H24, H25, H27, H29 +13
22100nFCapacitor_SMD:C_0603_1608MetricC12, C18, C24, C28, C31, C36, C37, C38, C39, C44, C49, C52, C57, C62, C65, C70 +6
21SS36-E3/57TDiode_SMD:D_SMCD33, D36, D37, D38, D39, D40, D41, D42, D43, D44, D45, D46, D47, D48, D49, D50 +5
191nFCapacitor_SMD:C_0805_2012Metric1nF@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
181KResistor_SMD:R_0603_1608MetricR5, R6, R7, R30, R55, R59, R62, R64, R148, R157, R163, R165, R166, R172, R191, R197 +2
18LEDDiode_SMD:D_0805_2012MetricD1, D2, D3, D10, D19, D21, D22, D24, D25, D27, D28, D30, D31, D32, D34, D35 +2
160R15Resistor_SMD:R_MELF_MMB-0207R38, R39, R40, R41, R42, R43, R44, R45, R46, R47, R50, R51, R71, R72, R73, R74
16470nFCapacitor_SMD:C_0805_2012MetricC20, C21, C34, C35, C45, C46, C47, C48, C58, C59, C60, C61, C71, C72, C73, C74
1210uFCapacitor_SMD:C_1206_3216MetricC8, C9, C27, C29, C32, C33, C78, C85, C86, C87, C89, C90
122.2uFCapacitor_SMD:C_0805_2012MetricC13, C14, C15, C30, C41, C42, C53, C54, C55, C66, C67, C68
12330uF @60VCapacitor_THT:CP_Radial_D24.0mm_P10.00mm_SnapInC2, C6, C7, C11, C25, C40, C50, C51, C63, C64, C76, C77
10100Resistor_SMD:R_0805_2012MetricR36, R37, R66, R67, R68, R69, R138, R139, R140, R141
80.050Resistor_SMD:R_2512_6332MetricR22, R31, R88, R89, R110, R111, R132, R133
7MBR2060DTPackage_TO_SOT_SMD:TO-252-2D6, D7, D9, D15, D16, D17, D18
610uF 50VCapacitor_SMD:C_1210_3225MetricC1, C5, C22, C23, C81, C82
61N4148Diode_SMD:D_SOD-123D11, D12, D13, D14, D20, D56
627Resistor_SMD:R_0805_2012MetricR1, R2, R3, R4, R75, R150
5MOTOR CONNConnector_Phoenix_MSTB:PhoenixContact_MSTBV_2,5_4-GF-5,08_1x04_P5.08mm_Vertical_ThreadedFlange_MountHoleMOTOR_CONN1, MOTOR_CONN2, MOTOR_CONN3, MOTOR_CONN4, MOTOR_CONN5
40Resistor_SMD:R_0805_2012MetricR151, R152, R153, R154
422nFCapacitor_SMD:C_0805_2012MetricC17, C43, C56, C69
42R2Resistor_SMD:R_0805_2012MetricR15, R60, R99, R121
4Conn_01x04Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ19, J21, J23, J25
4Conn_01x04_FemaleConnector_Phoenix_MSTB:PhoenixContact_MSTBV_2,5_4-GF-5,08_1x04_P5.08mm_Vertical_ThreadedFlange_MountHoleJ3, MAININPUT1, SPINDLE_RELAY1, STEPINPUT1
4DNPResistor_SMD:R_0805_2012MetricR168, R169, R170, R171
4DNPResistor_SMD:R_0603_1608MetricR14, R58, R98, R120
4SMBJ60ADiode_SMD:D_SMBD4, D23, D26, D29
4SW_DIP_x01Button_Switch_SMD:SW_DIP_SPSTx01_Slide_6.7x4.1mm_W6.73mm_P2.54mm_LowProfile_JPinBOOTM1, BOOTM2, RST1, RST2
4SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mmJP4, JP5, JP6, JP7
4TMC2160-TAPackage_QFP:TQFP-48-1EP_7x7mm_P0.5mm_EP5x5mmIC1, IC2, IC3, IC4
3Conn_01x06Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ22, J24, J26
21uF @60VCapacitor_SMD:CP_Elec_5x5.7C3, C4
2220uF 170mOhms 35VCapacitor_SMD:CP_Elec_8x10C19, C80
268uHInductor_SMD:L_12x12mm_H8mmL1, L3
274HC595Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU13, U14
28P8C_4xShieldedindustrial:rj45_R-RJ45S08P-B000_C386763ISO_PROBE1, J20
2BSP41Package_TO_SOT_SMD:SOT-223Q11, Q40
2BSP42Package_TO_SOT_SMD:SOT-223Q12, Q41
2Conn_01x20Connector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_VerticalJ16, J18
2ESP32-WROOM-32DRF_Module:ESP32-WROOM-32U5, U12
2FT232RLPackage_SO:SSOP-28_5.3x10.2mm_P0.65mmU8, U10
2HFD3/3Relay_THT:Relay_DPDT_Kemet_EC2K1, K5
2IR2104Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU1, U2
2Jumper_2_BridgedJumper:SolderJumper-2_P1.3mm_Bridged2Bar_Pad1.0x1.5mmJP2, JP8
2Jumper_NO_SmallConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP3, JP9
2LBA710Package_DIP:DIP-8_W8.89mm_SMDSocket_LongPadsU7, U15
2LM2596Package_TO_SOT_SMD:TO-263-5_TabPin3U3, U9
2NCP1117ST33T3GPackage_TO_SOT_SMD:SOT-223-3_TabPin2U4, U11
2USB_B_MicroConnector_USB:USB_Micro-B_Molex-105017-0001J7, J15
19K1Resistor_SMD:R_0603_1608MetricR149
1Conn_01x07_FemaleConnector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_HorizontalJ6
1Conn_01x08Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ17
1DNPResistor_SMD:R_0402_1005MetricR56
1IL0515S_DC-DCConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalU6
1Jumper_NO_SmallJumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mmJP1
1Limit_IFindustrial:connRPC2x8_3.5mm2.5mmJ5

Questions

How big is the Spscnc PCB?

It measures 297.5 × 187.5 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Spscnc use?

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.

Where can I download the Spscnc KiCad files?

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.

Can I use the Spscnc design in my own project?

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).

More from sps-EmLogic/spscnc

2
  • 2 layers46.1 × 23.5 mmEn mostic test, the printed circuit board in 3D

    En mostic test

    sps-EmLogic/spscnc

    CNC Controller board for FluidNC and TMC2160 controllers

    41 parts10GPL-3.0
  • 2 layersTest board all, the printed circuit board in 3D

    Test board all

    sps-EmLogic/spscnc

    CNC Controller board for FluidNC and TMC2160 controllers

    30 parts10GPL-3.0

Similar boards

  • 2 layers100 × 44 mmOpensolder, the printed circuit board in 3D

    Opensolder

    howie-j/opensolder

    Fully open source JBC T245-compatible soldering station

    69 parts55GPL-3.0
  • 6 layers39.5 × 39.5 mmTD1 2.4G, the printed circuit board in 3D

    TD1 2.4G

    Paschalis/UAV-TelemetryLink

    Receiver and transmitter solution for GCS using ELRS, mLRS, and MAVLink for reliable telemetry and control.

    63 parts11MIT
  • 4 layers74.4 × 50.2 mmRoadster charger, the printed circuit board in 3D

    Roadster charger

    zainahm3d/roadster-charger

    USB-C PD bike charger

    109 parts7
  • 2 layers25 × 27.5 mmLt4320-bridge drop in, the printed circuit board in 3D

    Lt4320-bridge drop in

    mstolpner/lt4320-bridge-drop-in

    A rectifier bridge drop in replacement pcb based on LT4320 ideal rectifier

    15 parts1
  • 2 layers70 × 30 mm021-00 Digital DC Load, the printed circuit board in 3D

    021-00 Digital DC Load

    RedlabsDE/Digital-DC-Load

    In the "Calibration" page, the raw ADC values are displayed. The user can set the raw DAC value.

    78 parts
  • 4 layers134 × 140 mmDuet3 MB 6HC, the printed circuit board in 3D

    Duet3 MB 6HC

    Duet3D/Duet3-Mainboard-6HC

    Hardware information for the Duet 3 Mainboard 6HC

    723 parts53
  • 4 layers200 × 100 mmHeteromycin, the printed circuit board in 3D

    Heteromycin

    hasenbanck/heteromycin

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

    373 parts40
  • 4 layers126 × 66 mmPanel, the printed circuit board in 3D

    Panel

    calithameridi/corevus

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

    634 parts25