Features
- Optimized for E3D Roto extrudershape and features
- STM32F042 microcontroller running on 48MHz
- Automotive USB communication with Raspberry PI
- Onboard LIS2DW12 accelerometer
- TMC2209 extruder stepper driver
- Direct connection to Roto
- 1 x PWM 24V controlled part fan output
- 1 x PWM 5V controlled extruder fan output with RPM speed input signal
- Hot-end temperature sensor input compatible with standard NTC or PT1000 temperature sensor types
- I/O for bed level sensing
- X-Stop sensor input
- Tool-board and extruder temperature sensor
- Advanced thermal management system
- Active short circuit protected Hot-end output
- Active short circuit protected fan driver outputs
- Active Protection circuit against reverse power supply connection
- Protection against loss of GND supply
- Analog and digital inputs protected against short to +24V supply voltage
- USB data lines protected against short circuits to GND and +24V
- EMI interference and ESD protection an all inputs and outputs
- Heater thermal runaway protection in case of short between heater and sense thermistor wires
Pinout
Power Supply
- The board is supplied via XT30(2+2) connector which includes the +24V, GND, USB_DATA+ and USB_DATA- signals.
- From the connector the board is supplied via a reverse power supply protection circuit. This prevents the tool-board damage in case of accidental reversed supply by user error, the board will not start up it will behave like it's not powered.
- The microcontroller is supplied from a 3.3V LDO supplied from the onboard 5V DC-DC buck converter for the highest power supply efficiency and lowest possible power consumption.
USB Communication Interface
- The tool-board is equipped with automotive grade USB interface. The main difference beingthe higher electrical robustness of the automotive USB, still keeping high communication speed possible. Therefore, in case of short to GND or up to +28V of the USB data lines will not cause any destruction and will work properly after the short circuit is removed.
- The same circuit offers protection in case of GND connection loss, which will lead to biasing all the communication signals to the supply positive line (in our case +24V).
- The USB interface of the Raspberry PI is not robust against these electrical hazards which may occur in a 3D printer. Therefore, the tool-board shall be supplied and connected to the Raspberry Pi using the supplied adapter board, which has the onboard protection circuits to protect the Raspberry PI USB port.
- Next picture presents the tool-board wiring connection principle
Roto HotEnd and HeatSInk Temperature Sensor
- Both inputs accept 100K NTC type and PT1000 temperature sensor types.
- Pull up resistor value 2200.
- The senor input is protected against short circuit to supply voltage of 24V.
- GND connection of the sensors is current limited to avoid thermal runaway of the hotend in case of short circuit between the sensor and heater wires.
Driver Circuit for HotEnd Heater
The heater current is feedback to Klipper which can calculate the actual power consumption of the heater element. This can be used to detect failures of the heater element like short circuit or loss of heating power.
- The hot-end heater driver circuit is implemented with active protection against short circuits.
- The circuit measures the heater current and in case the current rises over a predefined threshold iOC_HOT it switches OFF the heater MOSFET until the next PWM cycle to prevent damage.
- The heater max power shall be limited to 99.5% meaning max_power: 0.995 to avoid driver stuck in protection mode due to an unlikely event a fake error detection.
You may say yes, other boards have also protection with onboard fuses. Well, that is simply not enough to protect MOSFETs from being damaged because fuses have long reaction time, about 1-2s range. Their mission is to protect the circuit from catching fire in case of a defect but it cannot protect the heater driver MOSFET from getting destroyed. This active protection reacts within 10ms ensuring the driver stage is switched off before it gets damaged due to a short circuit or overload event.
- To display the actual power of the heater, include the following section:
- The hot-end power or current can be displayed based on preference. The power is calculated considering 24V power supply.
Part Fan Driver Output
- The part fan driver has a similar protection circuit like the hot-end driver, in case of overcurrent the fan driver is switched OFFuntil the next PWM cycle.
- The PWM duty cycle of the fan driver shall be limited to 99.5% meaning max_power: 0.995 to avoid fan driver stuck in OFF statedue to an unlikely event a fake error detection.
Configuring of the fan drive:
HotEnd Fan Output
- The Roto is equipped with a 5V supplied cooling fan.
- The fan output current is limited to 500mA.
- The fan speed input signal is feed back to the microcontroller for FAN RPM measurement, however for a reliable speed signal the Roto cooling fan shall be used in ON / OFF mode, without PWM control.
Microcontroller Programming
- Connect the board to the host Raspberry Pi via USB adapter cable.
- This step depends on if your board has firmware on it or not already:
- If you have a pre-flashed board first must enter DFU mode as follows:
• press the BOOT and RESET switch
• release the RESET while keeping the BOOT button pressed
• release BOOT switch button after 3 seconds - If you have a new un-flashed board:
• The MCU default's to DFU mode if there is no other firmware installed, confirm the board enters DFU mode in step 4.
- If you have a pre-flashed board first must enter DFU mode as follows:
- Connect to your host raspberry pi via SSH
- Run lsusb from the command prompt
- Make sure you see an STM32 in DFU mode listed
- Run dfu-util --list from the command prompt
- note the text inside the [xxxx:yyyy]
- Run cd ~/klipper from the command line to enter the Klipper directory
- Run make menuconfig settings should be:
- Cristal oscillator – 8Mhz
- Set custom USB ID to Rototool
- Optional features (to reduce code size):
- Hit Q to Exit and Save
- Run make clean to clean up the make environment
- Run make flash FLASH_DEVICE=xxxx:yyyy (using the xxxx:yyyy noted from step 5 usually 0483:df11). In case you encounter some errors but still having the message of File downloaded successfully than you are good to proceed to the next step.
- Press the RESET button to restart the MCU and enter normal operating mode.
- Run ls /dev/serial/by-id/* should return a device with /dev/serial/by-id/usb-Klipper_stm32f042x6_Rototool-if00. Copy this virtual serial port name to the Rototool config file MCU section
Your tool-board should now be usable with Klipper. Use the example config file to get started. Best option is to copy the config file into the same directory as printer.cfg. Add [include Rototool.cfg] to the beginning of your printer.cfg to include the file. Comment out the unused I/O features of the Rototool config section.
Electrical Characteristics
Absolute Maximum Ratings
Important Note: The Rototool board can withstand these limits without electrical damage, however long-term exposition to these limits is not recommended. Device absolute maximum rating is not the same with functional range.
The maximum ratings may not be exceeded under any circumstances!
Table 1 Rototool absolute maximum ratings
Nr. | Parameter | Min | Max | Unit |
---|---|---|---|---|
A1 | Temperature range | -20 | 85 | °C |
A2 | Supply voltage | -30 | 30 | V |
A3 | Extruder stepper current | 1 | A | |
A4 | Hot-end heater current | 6.8 | A | |
A5 | Part fan output current | 1 | A | |
A6 | Hot-end Fan | 0.5 | A | |
A7 | USB Data lines | -1 | 28* | V |
A8 | Hot-end and extruder temperature sensor input | -1 | 28* | V |
A9 | End stop sensor input | -1 | 28* | V |
A10 | Z sensor I/O interface | -1 0 | +15 | V |
A11 | Roto sensor interface inputs | -1 | 24 | V |
A12 | ESD-Protection level for handling (Human Body Model, HMB) | -8 | 8 | kV |
*Should not exceed the supply voltage
Full Functional Operational Limits
Table 2 Rototool electrical characteristics
Nr. | Parameter | Symbol | Min | Typ | Max | Unit |
---|---|---|---|---|---|---|
General | ||||||
P1 | Operating temperature range | t(o) | -20 | 60 | °C | |
P2 | Max ambient temperature with active cooling | t(o_cooled) | 80 | °C | ||
P3 | Power supply voltage | v(PWR) | 22 | 28 | V | |
P4 | Power supply voltage measurement accuracy |
a(PWR) | -3 | 3 | % | |
Extruder stepper |
||||||
P5 | Extruder stepper current (max 60°C chamber temp) | i(MOT_60) | 0.85* | A | ||
P6 | Extruder stepper current (max 80°C chamber temp) |
i(MOT_80) | 0.5 | 0.6 | A | |
HotEnd Heater | ||||||
P7 | HotEnd heater nominal current |
i(HEATER) | 5 | A | ||
P8 | HotEnd heater overcurrent switch OFF threshold | i(OV_HOT) | 5.9 | 6.8 | 7.2 | A |
P9 | HotEnd overcurrent detection time | t(OV_HOT) | 10 | ms | ||
P10 | HotEnd power measurement accuracy |
a(P_HOT) | -6 | 6 | % | |
Part Fan | ||||||
P11 | Part fan output current |
i(PART_FAN) | 1 | A | ||
P12 | Part fan overcurrent switch OFF threshold | i(OC_PART) | 1.2 | 2 | 2.5 | A |
P13 | Part fan overcurrent detection time | t(OC_PART) | 5 | ms | ||
P14 | Part fan PWM frequency |
f(PART_FAN) | 100 | Hz | ||
Hotend Cooling Fan | ||||||
P15 |
Hot-end fan output current |
i(HOT_FAN) | 0.5 | A | ||
P16 | Hot-end fan current limitation |
i(CL_HOT_FAN) | 0.5 | A | ||
Internal Supplies | ||||||
P19 | Internal 5V supply protection current limitation | i(SC_5V) | 2 | 3 | 3.9 | A |
P20 | Internal 3.3V supply protection current limitation | i(SC_3V3) | 220 | 350 | 550 | mA |
*Parameter derating with ambient temperature