Hardware Testing Methods
This document includes minimal testing methods for common hardware modules, used to isolate individual hardware components during troubleshooting, and to confirm whether the issue originates from configuration, wiring, the module itself, or the motherboard port.
The testing approach is based on motherboard and toolboard test configurations: use manual_stepper DriveN to test drivers, output_pin to test low-voltage outputs, temperature_sensor to test temperature/ADC, gcode_button to test input signals, and adxl345 / lis2dw to test accelerometers.
All steps involving wiring, plugging/unplugging, cable management, adjusting jumper caps, or DIP switches below must be performed with the printer completely powered off and disconnected from the power supply. Hot-plugging driver modules, stepper motor cables, CAN cables, probe cables, fan cables, or accelerometer modules is strictly prohibited.
This document does not require customers to solder, disassemble the power supply, modify mains wiring, measure exposed high-voltage/high-current terminals, or use professional instruments such as oscilloscopes. For electrical testing involving heater cartridges, heated beds, SSRs, MOSFETs, or power supply inputs, please contact after-sales support or a professional.
Pre-Use Preparation
Backup Original Configuration
- Backup the current
printer.cfgand relatedincludefiles. - Create a temporary
printer.cfg, and first write the basic minimal configuration below. - Then, according to the current test item, append the corresponding test configuration snippet after the basic minimal configuration.
- Test only one hardware type at a time to avoid multiple modules affecting the diagnosis simultaneously.
- Once the test configuration passes, restore the original configuration to continue troubleshooting the entire machine.
Basic Minimal Configuration
All tests start from this basic configuration. serial must be changed to the actual serial port ID of the current motherboard. Test configuration snippets in subsequent sections are appended directly after this configuration; do not add a second [printer] or [mcu].
[printer]
kinematics: none
max_velocity: 200.00
max_accel: 40000.00
[mcu]
serial: /dev/serial/by-id/usb-Klipper_xxxxxxxxxxx
Pins in the test configuration must be based on the actual motherboard, toolboard manual, or manufacturer template. Do not directly copy example pins to different motherboard models.
Recommended Test Order
- MCU connection and motherboard temperature.
- Temperature sensor or ADC input.
- Low voltage output ports, such as fans, RGB, buzzers.
- Input ports, such as endstops, probes, filament runout sensors.
- Accelerometer.
- Stepper driver and motor.
- CAN toolboard communication.
MCU and Temperature Sensor Test
Test Purpose
Confirm that the MCU can be connected to by Klipper, and verify that the motherboard temperature, thermistor, or ADC input can be displayed normally.
Test Configuration Snippet
Append the following snippet after the basic minimal configuration:
[temperature_sensor MCU_TEMP]
sensor_type: temperature_mcu
[temperature_sensor ADC1]
sensor_type: Generic 3950
sensor_pin: PF4
Test Steps
- Change
serialin the basic configuration andsensor_pinin the test snippet to the actual values for the motherboard. - Power off and confirm the thermistor connector is securely plugged in and the wiring is undamaged.
- Power on and restart Klipper.
- Check the Mainsail / Fluidd temperature panel to see if
MCU_TEMPandADC1display reasonable temperatures.
Result Evaluation
| Test Item | Normal Result | Abnormal Behavior | Troubleshooting Suggestions |
|---|---|---|---|
| MCU Temperature | Displays near ambient or slightly higher | Unable to connect to MCU | Check serial, firmware, and USB/CAN connection |
| Thermistor | Displays near ambient temperature | ADC out of range, extremely high or low | Power off, check connector, wiring order, and sensor type |
Only observe the temperature readings; do not heat the nozzle or heated bed for testing purposes. If you suspect an issue with the heating circuit, SSR, MOSFET, or heated bed output, please use the replacement method with a known good module or contact after-sales support.
Low Voltage Output Port Test
Test Purpose
Confirm that low voltage output ports such as fans, RGB, buzzers can be controlled by Klipper.
Before connecting or replacing low-voltage loads such as fans, RGB, or buzzers, completely turn off the printer and disconnect the power supply. Do not plug/unplug wiring or touch exposed terminals while powered on.
Fan Output Configuration Snippet
Append the following snippet after the basic minimal configuration:
[output_pin FAN0]
pin: PA0
pwm: True
cycle_time: 0.010
value: 0
shutdown_value: 0
Test Commands
SET_PIN PIN=FAN0 VALUE=0.3
SET_PIN PIN=FAN0 VALUE=1
SET_PIN PIN=FAN0 VALUE=0
Result Evaluation
| Test Item | Normal Result | Abnormal Behavior | Troubleshooting Suggestions |
|---|---|---|---|
VALUE=0.3 | Fan spins at low speed | No spin or vibration | Check fan specifications, port power supply, and PWM compatibility |
VALUE=1 | Fan spins at full speed | Abnormal speed or noise | Replace the fan or cross-test the port |
VALUE=0 | Fan stops | Cannot turn off | Check if the configured pin is correct |
Abnormal Fan Risk Investigation
Due to internal driver design, back voltage, or abnormal wiring order in some fans, the motherboard's fan MOSFET, fan port, or main control related circuits may be damaged. If an abnormal fan is found, discontinue its use immediately and do not repeatedly plug it into the motherboard fan port for testing.
- Power off and confirm the fan's rated voltage matches the fan port voltage.
- Power off and check the fan's positive/negative terminals, connector orientation, and wiring appearance. Do not continue using if you find frayed wires, crimp damage, burning, odor, or loose connectors.
- Prioritize using a known good fan and pre-made wiring for cross-testing.
- When testing with power on, only use
SET_PINor the web interface to adjust the speed, and observe whether the fan starts/stops normally, makes abnormal noise, or generates abnormal heat or odor. - If the fan vibrates or stalls abnormally at low speed, makes significant noise at high speed, or the motherboard/port heats up abnormally after connecting this fan, power off immediately and discontinue its use.
- Do not use a multimeter to touch the exposed terminals of the fan port to measure output; if electrical testing is needed, contact after-sales support or a professional.
RGB / LED Output Configuration Snippet
Append the following snippet after the basic minimal configuration:
[output_pin RGB]
pin: PA8
value: 0
shutdown_value: 0
SET_PIN PIN=RGB VALUE=1
SET_PIN PIN=RGB VALUE=0
It is not recommended for customers to use SET_PIN to directly control heating output ports such as HEAT0, HEAT1, BED_OUT. Do not activate the heater cartridge or heated bed output without configuring thermal protection; relevant troubleshooting should be done through a complete heater configuration, temperature curves, replacement of known good modules, or after-sales testing.
Input Port Test
Test Purpose
Confirm that input ports such as endstops, probes, filament runout sensors, and toolboard HV-IN can be recognized by Klipper.
Before checking the wiring of endstops, probes, filament runout sensors, or input buttons, completely turn off the printer and disconnect the power supply. When querying with power on, only trigger the mechanical part of the switch; do not touch connectors, terminals, or exposed wiring.
gcode_button Input Test
Suitable for testing HV-IN, door sense, filament runout sensors, or general input pins on toolboards.
Append the following snippet after the basic minimal configuration:
[gcode_button IO0]
pin: ^PA1
press_gcode:
# Leave empty, only for querying input status
QUERY_BUTTON BUTTON=IO0
- When the switch is not triggered, execute
QUERY_BUTTON BUTTON=IO0; it should returnIO0: RELEASED. - Manually trigger the mechanical part of the switch and execute again; it should return
IO0: PRESSED. - If the status does not change, power off and check the wiring sequence, connector, pull-up
^, andpinconfiguration.
Standard endstop testing usually involves whole-machine parameters like motion axes, steppers, motor direction, and travel ranges. For minimal hardware testing, gcode_button is preferred to only verify the input pin state.
Accelerometer Test
Test Purpose
Confirm that accelerometers such as ADXL345 / LIS2DW on the toolboard or external module can communicate properly.
Before inspecting, reconnecting, or replacing the accelerometer wiring, completely turn off the printer and disconnect the power supply. Do not plug/unplug the sensor module or touch exposed pins while powered on.
Append the following snippet after the basic minimal configuration:
- ADXL345
- LIS2DW
[adxl345]
cs_pin: gpio13
spi_bus: spi1
axes_map: x,y,z
[lis2dw]
cs_pin: gpio12
spi_bus: spi0_gpio4_gpio3_gpio2
axes_map: x,y,z
Test Command
ACCELEROMETER_QUERY
Result Evaluation
| Test Item | Normal Result | Abnormal Behavior | Troubleshooting Suggestions |
|---|---|---|---|
ACCELEROMETER_QUERY | Returns x/y/z data | Invalid adxl345 id or no data | Power off, check wiring, verify cs_pin, spi_bus |
Peripheral and Driver Testing: For driver testing, CAN toolboard testing, and common abnormal condition reference tables, please refer to Peripheral and Driver Testing.