In my previous tests my PrntrBoard prototype was having some issues talking to the TMC2130 motor driver chip. It took a while, but I figured out the issue – the SPI library was not initializing correctly, so the chip was using the SPI0, hardware block, while on my board the drivers are hooked to SPI1 pins.
A few configuration settings later and Marlin was booting up, without complaining. In the process of debugging I also created a small test program to control the motor driver. You can see it here.
From that work I found that the motor driver chip was getting quite hot if I set the motor current at 900mA. The default was 600mA – it was getting warm but not as bad. Anyhow I decided I want to further stress the thermal design of the board and ordered this 4 channel thermometer.
The thermometer arrived today and I set to use it for a few tests. Keep in mind the accuracy of the thermometer is questionable at this point. I did a very simple test:
- at ambient room temperature all 4 channels showed values within 0.3 degree Celsius.
- I held all 4 probes in my hand and all 4 showed 35.1C – again within 0.2C of each other.
First I tried to test the extruder heater control logic. From previous attempts I know it was working, but I wanted to see how accurate the temperature is. I set the printer to heat the E1 to 180C:
M104 T1 S180
This is a video from that test. My thermometer shower 163.5C or thereabouts – so there is a significant offset between the firmware and the thermometer. I also verified with an infrared thermometer and it was showing ~160C. So it seems the thermistor setting is not quite correct. The bad thing is that this heater came from China and I have no clue what thermistor they used, so I’ll have to measure it a few times to determine the correct parameters that should go in the firmware. That would be a post on its own.
Disappointed from my temperature control test, I set to test the thermal design of the board. I added a thermocouple to the bottom of the board – where the motor driver ship is mounted.
as well as a second thermocouple on top of the chip
This was to test a theory, which suggested that the chip dissipates more heat on the bottom side.
Attempt one was not very conclusive. This was using Marlin, I enabled the extruder motor and with the default settings it had 600mA of drive current and 300mA standby current, but this was not enough. The driver chip was barely at 30C and both top and bottom were at similar temperature.
Attempt two almost ended in a disaster. I used the above test program to make the motor running with 900mA drive current, but the program had an unfortunate side effect of leaving the extruder heater on. I smelled smoke and turned the power off. The smoke smell was from the extruder heater melting the temperature probe cable.
Crisis averted and on to attempt number three. My test program was spinning the motor, the power consumption was about 0.5A at 12V. The chip was heating with steady rate, even with my big fan blowing over the board. It was clear the board would not sustain such current. However the top and bottom of the chip were within 1-2C of each other. I decided that maybe the fan was interfering with the measurements and thus ensued attempt number five.
The chip was heating rapidly, but finally you can see the top was 5C hotter than the bottom. Another observation was how quickly things cooled down after the power was turned off.
After all this what is the conclusion:
- the motor driver does get hot on the top, so putting a radiator on the top has some merit
- my thermal design sucks, and I decided to re-route the bottom of the board, so there is a large copper area with no traces which can dissipate the heat from the chip.
- the thermistor coefficient needs to be calibrated in the firmware
- on the bright side almost all controls are working and Marlin is operational to a degree.
Well, ’till next time