Skip to content
3D Printer controller board for the STM32 NUCLEO-F446 kit using TMC2130/TMC2660 drivers
Branch: tmc2130-redesi…
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
DCBuck.pretty Add custom NUCLEO-64 replacement based on F407VE. Nov 23, 2018
EExtruder Updated EExtruder board rev. Jan 13, 2019
Gerber
ZProbe Update ZProbe PCB labels. Make new gerbers. Jul 21, 2018
.gitignore
015445138.stp.xz
74ls02.dcm Add some exotic 74xxx components. Jun 24, 2018
74ls02.lib Add some exotic 74xxx components. Jun 24, 2018
74ls125.dcm
74ls125.lib
AxisControl.sch
BasicHeater.sch
BedHeater.sch Switch away from rounded rect pads. The PCB boar house had issues making Aug 12, 2018
BuckConverter.dcm
BuckConverter.lib Add custom NUCLEO-64 replacement based on F407VE. Nov 23, 2018
Button 4x4.kicad_mod Ordered rev1 of the Nucleo-64 board. Nov 25, 2018
C_0402_1005Metric.kicad_mod Switch away from rounded rect pads. The PCB boar house had issues making Aug 12, 2018
C_0603_1608Metric.kicad_mod
C_1206_3216Metric.kicad_mod Switch away from rounded rect pads. The PCB boar house had issues making Aug 12, 2018
Conn_uSDcard.kicad_mod
D_0603_1608Metric.kicad_mod
DualMotorConnect.sch Added LCD screen. Updated REDME. May 14, 2018
Endstop.sch
Extruder.sch Started rev 3. Added encoder iand button input. Re-routed LCD A0 and … Jul 31, 2018
FanControl.sch
Fiducial_1mm_Dia_2.54mm_Outer_CopperTop.kicad_mod Add updated FID* foorprint. Jul 13, 2018
LED_0603_1608Metric.kicad_mod Switched to local foorprints for terminals and LED. Switched to local Apr 16, 2018
LICENSE Added LICENSE file. Apr 2, 2018
Logic_CMOS_IEEE.dcm
Logic_CMOS_IEEE.lib Added the rest of the printer parts. Should be complete more or less. Mar 26, 2018
MC-101C.kicad_mod
MotorConnect.sch
MotorControl.sch Switch away from rounded rect pads. The PCB boar house had issues making Aug 12, 2018
MotorDriver_TMC2660.sch
MotorDriver_TMC5130.sch Switch away from rounded rect pads. The PCB boar house had issues making Aug 12, 2018
NUCLEO-64.dcm
NUCLEO-64.lib
NUCLEO-F411RE.STEP.xz
Nucleo-446-pins.txt Finish the schematics. All pins are assinged to the NUCLEO-64 board. Apr 2, 2018
Nucleo-64-407-cache.lib Improve the NUCLEO-64 layout a bit. Dec 22, 2018
Nucleo-64-407.kicad_pcb
Nucleo-64-407.pro Make the NUCLEO-64-F407 board with rounded corners. Dec 5, 2018
Nucleo-64-407.sch Merge branch 'tmc2130-redesign' of https://github.com/ghent360/PrntrB… Feb 3, 2019
Nucleo-64.kicad_mod Cherry pick path name changes. Jun 24, 2018
Oscillator_SMD_EuroQuartz_XO32-4Pin_3.2x2.5mm_HandSoldering.kicad_mod
PG-TDSON-8-FL.kicad_mod
PG-TDSON-8.STEP.xz
PowerRegulator.sch
PrntrBoardV1-cache.lib
PrntrBoardV1-rescue.dcm
PrntrBoardV1-rescue.lib
PrntrBoardV1.kicad_pcb
PrntrBoardV1.pro Add external extruder control board prototype. Oct 11, 2018
PrntrBoardV1.sch Switch away from rounded rect pads. The PCB boar house had issues making Aug 12, 2018
PrntrBoardV1.step.xz Update 3D models for the connectors. Remove the nucleo-64 3D model fr… Aug 5, 2018
PrntrBoardV1.xml Cherry pick path name changes. Jun 24, 2018
README.md
R_0603_1608Metric.kicad_mod
R_1206_3216Metric.kicad_mod
Rev1_1.png
Rev1_2.png Added LCD screen. Updated REDME. May 14, 2018
Rev2_1.png Update readme. Jul 15, 2018
Rev2_2.png
Rev2_3.png
SOT-23.kicad_mod Updated components. Removed power supply. Component layout on PCB. Apr 6, 2018
SOT-669_LFPAK.kicad_mod
ST7735 LCD.sch Started rev 3. Added encoder iand button input. Re-routed LCD A0 and … Jul 31, 2018
TMC2660.kicad_mod
TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal.kicad_mod Switched to local foorprints for terminals and LED. Switched to local Apr 16, 2018
TerminalBlock_Phoenix_PT-1,5-2-3.5-H_1x02_P3.50mm_Horizontal.kicad_mod Switched to local foorprints for terminals and LED. Switched to local Apr 16, 2018
Texas_S-PVSON-N8_ThermalVias.kicad_mod Updated components. Removed power supply. Component layout on PCB. Apr 6, 2018
a4403.dcm
a4403.lib
ap1117-15.dcm
ap1117-15.lib
bom.ini Added bom plugin. May 3, 2018
bsh105.dcm Add 3 axis and 2 extruders. Basic thermistor temperature sensing and Mar 26, 2018
bsh105.lib Add 3 axis and 2 extruders. Basic thermistor temperature sensing and Mar 26, 2018
fp-lib-table
ipd036n04l.dcm
ipd036n04l.lib
pxc_1715721_03_MKDS-1-5-2-5-08_3D.stp.xz Update 3D models for the connectors. Remove the nucleo-64 3D model fr… Aug 5, 2018
pxc_1751248_04_MKDS-1-2-3-5_3D.stp.xz
sym-lib-table Ordered rev1 of the Nucleo-64 board. Nov 25, 2018
tmc2660.dcm
tmc2660.lib
tmc5130-nc.kicad_mod Routed power stage for extruders and heater controls. Routed some easy Apr 17, 2018
tmc5130.dcm Update schematics to use TMC5130/TMC2130 drivers. Apr 10, 2018
tmc5130.kicad_mod Switched to local foorprints for terminals and LED. Switched to local Apr 16, 2018
tmc5130.lib Update schematics to use TMC5130/TMC2130 drivers. Apr 10, 2018
tmc5130pins.txt
uSD_push-push_ebay.dcm
uSD_push-push_ebay.lib
xtal_osc_3.2x2.5.step.xz Add 3D models locally compresed. Jun 24, 2018

README.md

Prntr Board V1

PrntrBoard is a 3D printer controller board designed to work with STM32 NUCLEO dev kits. The current version (V1) supports NUCLEO-64 series kits. The design is being developed on F446-RE kit, but other models could work as well. IMO the STM32F446 NUCLEO-64 kit offers very good performance (180MHz CPU) for the price ($15).

Picture of Rev2 Kicad Rendering Some features of the board:

  • 5x Trinamic super quiet drivers (TMC2130 or TMC2660)
  • Marlin 2.0 firmware
  • (2+2) controllable fans and 2x "always on" fan connectors
  • 3x min and max endstops for the x, y and z axis
  • 2x end stops for fillament end detection
  • SPI or I2C display connector for ST7735 or SSD1306 screen + one button and rotary encoder
  • Dual thermocouple connectors (for MAX31866, MAX31855 or MAX6675 boards)
  • selectable fan voltage (5V or Vin)

Because the NUCLEO-64 has limited number of IO pins, some compromises had to be made:

  • No sd-card (sd-card is added using new NUCLEO-64 compatible board)
  • The thermocouple connectors share pins with the E0 and E1 cool fan controls. You'll have to decide to use one or the other via jumpers on the board. Most printers I've seen come with "always on" extruder fans, the choice seemed like a worthy sacrifice.

Generic shortcuts I don't plan to improve:

  • 5V power supply is external. These are available from various resellers and fairly cheap - less than $1. No need to waste board layout space and component count. (this has beed addresses with the new NUCLEO-64 compatible daugherboard)
  • Heated bed MOSFET - large heated beds consume a lot of power and it is challenging to provision the design for > 20A current. External heated bed MOSFETs are very affordable < $10 and claim to support 20A minimum. If you have large bet use one.

Details

I use the daily build of KiCad (soon to be released V5) - let me know if you have trouble opening the files.

The current PCB desing is using 4 layer board, 6/6 mil track width/clearance, 12 mil min via hole size and 20 mil via diameter.

There are tree active branches:

  • tmc2130 - the board design for TMC2130 drivers
  • tmc2130-redesign - redesign of the TMC2130 branch with the nucleo board flipped
  • tmc2660 - the board design for TMC2660 drivers

Both PCB designs use the QFP version of the driver ICs, because they can handle a bit more power.

Status

I have made prototypes of the TMC2130 board design (rev0) - the board has a few bugs, that are corrected in the rev1 version. Rev0 did not have LCD screen, it was added in Rev1. I'm trying to work-out the thermal design issues. Rev1 board have been ordered and the dev branch is now switched to Rev2. The thermocouple connectors are added Rev2. Rev2 borads have been ordered. The current working board is rev3. Added 2 more pins to the LCD connector for the rotary encoder input. I also re-connected the E1 and E0 CS pins, so the LCD pins can be connected to the hardware I2C pins. This way one can use SPI or I2C screens.

This branch is a redesign of the TMC2130 board. The main difference is that the NUCLEO board is flipped in a more natural position. In addition I'm now using a dedicated ground plane, larger heatsink areas for the mosfets. I'm much happier with the thermal layout of this branch.

The NUCLEO-64 board was limiting the design in many ways. I have a replacement board using STM32F407VE. This is 100 pin part. The new daughter board is the same form factor as the NUCLEO-64. It adds SPI EEPROM as well as native USB interface and micro SD-Card socket. The new board also has enough space for 24V to 5V buck converter, so power supply can beintegrated.

Tested circuits:

  • Heater control
  • Thermistor input
  • Fan control
  • Motor driver control
  • Z probe
  • End stops
  • Thermocuple interface (tested MAX31855 with Smoothieware)
  • LCD interface (tested REPRAP discount full graphics controller - the panel has issues sharing the SPI port with the TMC drivers. Could be solved with adapter board with extra AND gate)

Circuits that need verification:

  • Stall guard alert from the motor driver

Software

The software for the board is a clone of Marlin at bugfix-2.0.x branch of my repository. It is quite usable. I keep it relatively in sync with the Marlin branch. Note: there are other branches of Marlin, only the bugfix-2.0.x supports the STM32 microcontroller.

Marlin is using Adruino IDE or Platform IO. I personally had issues with Platform IO not supporting the STM32F4 board, so I use Arduino version 1.8.5. To compile the firmware code you would need to install the STM32 Arduino port.

I'm also porting Smoothieware V1 to the board. So far I got the heater control and the stepper drivers working. My smoothie port is available here. Please not the Smoothie port is not ready yet (there is an issue with the ADC). I have done only minimal tests so far.

Visit my blog for status updates on the development of the board.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.