Skip to main content

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.

Safety Boundaries

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

  1. Backup the current printer.cfg and related include files.
  2. Create a temporary printer.cfg, and first write the basic minimal configuration below.
  3. Then, according to the current test item, append the corresponding test configuration snippet after the basic minimal configuration.
  4. Test only one hardware type at a time to avoid multiple modules affecting the diagnosis simultaneously.
  5. 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
Configuration Tips

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.

  1. MCU connection and motherboard temperature.
  2. Temperature sensor or ADC input.
  3. Low voltage output ports, such as fans, RGB, buzzers.
  4. Input ports, such as endstops, probes, filament runout sensors.
  5. Accelerometer.
  6. Stepper driver and motor.
  7. 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

  1. Change serial in the basic configuration and sensor_pin in the test snippet to the actual values for the motherboard.
  2. Power off and confirm the thermistor connector is securely plugged in and the wiring is undamaged.
  3. Power on and restart Klipper.
  4. Check the Mainsail / Fluidd temperature panel to see if MCU_TEMP and ADC1 display reasonable temperatures.

Result Evaluation

Test ItemNormal ResultAbnormal BehaviorTroubleshooting Suggestions
MCU TemperatureDisplays near ambient or slightly higherUnable to connect to MCUCheck serial, firmware, and USB/CAN connection
ThermistorDisplays near ambient temperatureADC out of range, extremely high or lowPower off, check connector, wiring order, and sensor type
Note

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.

Power Off Operation

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 ItemNormal ResultAbnormal BehaviorTroubleshooting Suggestions
VALUE=0.3Fan spins at low speedNo spin or vibrationCheck fan specifications, port power supply, and PWM compatibility
VALUE=1Fan spins at full speedAbnormal speed or noiseReplace the fan or cross-test the port
VALUE=0Fan stopsCannot turn offCheck if the configured pin is correct

Abnormal Fan Risk Investigation

Fan Risk

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.

  1. Power off and confirm the fan's rated voltage matches the fan port voltage.
  2. 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.
  3. Prioritize using a known good fan and pre-made wiring for cross-testing.
  4. When testing with power on, only use SET_PIN or the web interface to adjust the speed, and observe whether the fan starts/stops normally, makes abnormal noise, or generates abnormal heat or odor.
  5. 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.
  6. 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
Heating Output Not Recommended for This Test

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.

Power Off Operation

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
  1. When the switch is not triggered, execute QUERY_BUTTON BUTTON=IO0; it should return IO0: RELEASED.
  2. Manually trigger the mechanical part of the switch and execute again; it should return IO0: PRESSED.
  3. If the status does not change, power off and check the wiring sequence, connector, pull-up ^, and pin configuration.
Why Not Use Standard Endstop Configuration

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.

Power Off Operation

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]
cs_pin: gpio13
spi_bus: spi1
axes_map: x,y,z

Test Command

ACCELEROMETER_QUERY

Result Evaluation

Test ItemNormal ResultAbnormal BehaviorTroubleshooting Suggestions
ACCELEROMETER_QUERYReturns x/y/z dataInvalid adxl345 id or no dataPower 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.

Loading...