Reheat A0
Reheat is a 6 output heater board with temperature sensors and fans for multi material printing.
Contents
Schematics
Features
- RP2354B microcontroller (ARM Cortex-M33, 150 MHz)
- 6x heater outputs (24 V, MOSFET-switched)
- 6x fan outputs (24 V PWM) with tachometer inputs
- 6x thermistor/temperature sensor inputs
- Supports: NTC 10K, NTC 100K, PT100, PT1000, Type K thermocouple
- Jumper-selectable per channel
- 12x endstop inputs (5 V tolerant, TVS-protected)
- ENDSTOP-12 supports a bidirectional signal (e.g. filament encoder)
- USB-C interface (USB 2.0)
- 24 V power input with onboard 5 V (3 A) and 3.3 V regulation
- Overcurrent detection on fan bus
Pinout
| GPIO | Signal | Connector |
|---|---|---|
| GPIO0 | HEATER-1 | J2 |
| GPIO1 | HEATER-2 | J3 |
| GPIO2 | HEATER-3 | J6 |
| GPIO3 | HEATER-4 | J11 |
| GPIO4 | HEATER-5 | J12 |
| GPIO5 | HEATER-6 | J13 |
| GPIO6 | FAN-1 | J34 |
| GPIO7 | FAN-2 | J35 |
| GPIO8 | FAN-3 | J36 |
| GPIO9 | FAN-4 | J37 |
| GPIO10 | FAN-5 | J38 |
| GPIO11 | FAN-6 | J39 |
| GPIO12 | TACH-1 | J34 |
| GPIO13 | TACH-2 | J35 |
| GPIO14 | TACH-3 | J36 |
| GPIO15 | TACH-4 | J37 |
| GPIO16 | TACH-5 | J38 |
| GPIO17 | TACH-6 | J39 |
| GPIO18 | ENDSTOP-1 | J14 |
| GPIO19 | ENDSTOP-2 | J15 |
| GPIO20 | ENDSTOP-3 | J16 |
| GPIO21 | ENDSTOP-4 | J17 |
| GPIO22 | ENDSTOP-5 | J18 |
| GPIO23 | ENDSTOP-6 | J19 |
| GPIO24 | ENDSTOP-7 | J20 |
| GPIO25 | ENDSTOP-8 | J21 |
| GPIO26 | ENDSTOP-9 | J22 |
| GPIO27 | ENDSTOP-10 | J23 |
| GPIO28 | ENDSTOP-11 | J24 |
| GPIO29 | ENDSTOP-12 | J25 |
| GPIO30 | MUX-S0 | Internal |
| GPIO31 | MUX-S1 | Internal |
| GPIO32 | MUX-S2 | Internal |
| GPIO33 | PWM-GAIN | Internal |
| GPIO34 | PWM-OFFSET | Internal |
| GPIO35 | PWM-CURRENT | Internal |
| GPIO36 | EN-PULLUP | Internal |
| GPIO37 | ENDSTOP-12-DIR | J25 |
| GPIO38 | FAN-OC (overcurrent) | Internal |
| GPIO40 / ADC0 | THERM-1 | J27 |
| GPIO41 / ADC1 | THERM-2 | J28 |
| GPIO42 / ADC2 | THERM-3 | J29 |
| GPIO43 / ADC3 | THERM-4 | J30 |
| GPIO44 / ADC4 | THERM-5 | J31 |
| GPIO45 / ADC5 | THERM-6 | J32 |
| GPIO46 / ADC6 | ADC (MUX output) | Internal |
| GPIO47 / ADC7 | CURRENT sense | Internal |
Hardware connections
Power
The board takes 24 V DC on a 4-pin connector (J33). A fuse (F1) and a 2 mΩ current-sense resistor (R98) protect the input. Onboard regulators provide +5 V (TPS54302 buck converter, 3 A) and +3.3 V (AMS1117-3.3, 1 A) for logic and sensor pull-ups.
Heaters
Six heater outputs use 2SK3019 N-channel MOSFETs driven from GPIO0–GPIO5. Each output has a 2-pin female connector and a flyback Schottky diode. The heater voltage is 24 V.
Fans
Six fan outputs (GPIO6–GPIO11) use N-channel MOSFETs with a 24 V supply. Each has a 3-pin connector (V+, GND, TACH). Tachometer signals are read on GPIO12–GPIO17. An LM393 comparator monitors the fan bus for overcurrent and signals FAN-OC on GPIO38.
Thermistors
Each thermistor channel has a 3-pin connector (J27–J32) with a jumper (JP1–JP6) to select the measurement mode. An analog MUX (CD4051) and op-amp signal conditioning chain feed the ADC inputs (GPIO40–GPIO45). The signal conditioning supports:
| Sensor type | Measurement method |
|---|---|
| NTC 10K | Voltage divider with 4.7 K pull-up |
| NTC 100K | Voltage divider with 4.7 K pull-up |
| PT100 | 1 mA constant current source (Kelvin connection) |
| PT1000 | 1 mA constant current source (Kelvin connection) |
| Type K thermocouple | ×101 gain amplifier, buffered |
For NTC thermistor or PT1000 measurements, close jumpers JP1–JP6 to connect the 4.7 K pull-up resistors. With the jumpers closed, ADC0–ADC5 (GPIO40–GPIO45) can be used as standard thermistor inputs with a 4.7 K pull-up to 3.3 V, without the need for any additional signal conditioning.
Errata
- DP/DM USB data lines are swapped.
- RUN pin is hardwired to ground, preventing software reset.
- U11 and U15 (LMV321 op-amps in thermistor circuit) have V+ and V- supply pins reversed.
- Pull-up resistor footprints (JP1–JP6) use a 1 mm pin pitch instead of the standard 2.54 mm.
- VUSB is unconnected, so the board requires 24 V power to operate even when connected over USB.
Klipper configuration
The Reheat A0 connects to the host over USB and is configured as an MCU in Klipper. Find the serial path with ls /dev/serial/by-id/ and add to printer.cfg:
[mcu reheat] serial: /dev/serial/by-id/usb-Klipper_rp2350_XXXXXXXXXXXX-if00
Heaters
[heater_generic heater1] heater_pin: reheat:gpio0 sensor_type: NTC 100K MGB18-104F39050L32 sensor_pin: reheat:gpio40 control: pid pid_Kp: 22 pid_Ki: 1.08 pid_Kd: 114 [heater_generic heater2] heater_pin: reheat:gpio1 sensor_type: NTC 100K MGB18-104F39050L32 sensor_pin: reheat:gpio41 control: pid pid_Kp: 22 pid_Ki: 1.08 pid_Kd: 114
Fans
[fan_generic fan1] pin: reheat:gpio6 [fan_generic fan2] pin: reheat:gpio7
Endstops
Endstop pins can be referenced in the relevant stepper sections:
[stepper_x] endstop_pin: reheat:gpio18
Flashing Klipper
- Put the board in BOOTSEL mode: hold the BOOT button while plugging in USB (or hold BOOT, press RESET, then release BOOT).
- Build and flash from the Klipper source directory:
make menuconfig # Processor model: rp2350 # Bootloader offset: No bootloader # Communication interface: USBSERIAL make picotool load out/klipper.uf2 --force picotool reboot
The board will reboot and appear as /dev/ttyACM0 (or similar).
Errata
- DP/DM USB data lines are swapped.
- RUN pin is hardwired to ground, preventing software reset.
- U11 and U15 (LMV321 op-amps in thermistor circuit) have V+ and V- supply pins reversed.
- Pull-up resistor footprints (JP1–JP6) use a 1 mm pin pitch instead of the standard 2.54 mm.

