I admit it: I'm a total geek. I love electronics, programming, 3D printing, 3D art, and vintage Apple hardware. I'm always juggling half a dozen projects. I also enjoy documenting it all: my successes, my failures, my experiences... and everything geeky along the way.

Replacing the Arduino and Thermistor in my ROBO3D R1 Printer | Kevin Rye.net - Main

Kevin Rye

Geek Extraordinaire. Yeh, I said it.

Replacing the Arduino and Thermistor in my ROBO3D R1 Printer

When starting a print on my ROBO3D R1 3D printer, I periodically get an error message that pops up just after the bed has leveled. The error message pops up and the printer just stops. I have to power cycle the printer, restart MatterControl, and enter M999 into the console.

Sometimes I have to do it two or three times before the printer prints again.
Screen Shot 2016-07-25 at 9.20.05 PM
Looking at the console, the real reason behind the error message is displayed. I usually get one of these errors:

Error: Extruder switched off. Temperature fell too much during print! Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)

Error: Extruder switched off. MINTEMP triggered! Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)

Screen Shot 2016-07-27 at 7.50.30 PM
I posted an entry on the ROBO3D forums asking for help. The consensus was that the extruder thermistor was bad and needed to be replaced. The thermistor is an EPCOS 100K thermistor. If you remove the thermistor and measure it with an ohmmeter, it should be pretty darn close to 100K. Anything less than 90K, and it needs to be replaced.

I removed the rubber boot from the extruder that conceals the thermistor and the heating element. I then removed the thermistor and measured it. The thermistor measured 82K. Sounds like I need a new thermistor.

bad_thermister_0008

I figured until I could get my hands on a new one, I'd just keep trying to use the one that I have. Maybe I could get a few more days out of it. I put the thermistor back in and powered the printer on.

That's when I saw the spark and heard the crackle. I immediately powered the printer off and inspected the thermistor. Apparently, when I inserted the thermistor into the hotend, the heat shrink tubing had slid down the wires, exposing the leads. They must have been touching each other when I turned the power on, shorting the thermistor out. Even the insulation on the wires was melted.

It got so hot that even one lead of the thermistor unsoldered itself.

melted_thermister_0003

I jumped on Amazon and looked for a replacement thermistor. An EPCOS thermistor sold for about $9 and didn't offer free 2-day shipping. However, there was a 10-pack of 100K thermistors for the same price with free 2-day shipping. They weren't from EPCOS, but I figured a 100K thermistor is a 100K thermistor. Right? In any case, I saw a YouTube user who replaced the thermistor in his ROBO3D with the same exact one. So they should be OK.

After 2 days, I had my new thermistors

cheap thermistors_0001

I soldered a new one to the connector and cleaned up the heat shrink tubing.

new_thermister_0004

I reinstalled the thermistor and powered on the printer. Yeah! No smoke!

new_thermister_0006

However, MatterControl was showing the extruder temperature as 91C. It should be reading room temperature; similar to the bed thermistor. Anything over ~25C is a bogus number.

Screen Shot 2016-07-29 at 5.55.03 PM

Are these thermistors defective? Incompatible? I posed the question to the forums, and the answer was that they should be OK. So what gives?

I even tweaked the firmware and the lowest I could get it to read was ~70C.

I decided to just bite the bullet and order a genuine EPCOS thermistor. It took a week to arrive.

new_EPCOS_0144

Again, I soldered the thermistor to the connector and installed it into the hotend.

EPCOS_thermitor_0145

No dice. It still read ~90C.

There must be something else that's gone bad. I feared that when I shorted out the thermistor, I damaged the mainboard. Hopefully it's an easy fix; like a blown fuse or a transistor or something. On the ROBO3D forums, I managed to find a connection diagram for the electronics.

ROBO3D R1 schematic

I got to work on taking the printer apart to liberate the mainboard from the printer. I was actually surprised to see how simple the electronics were. It's basically a power supply, three stepper motors, and a mainboard.

ROBO3DR1Teardown_0146

The mainboard is basically an Arduino Mega 2560 with a motor controller shield.

ROBO3DR1Teardown_0147

Most of the cables are easy to see where they go, but some of the smaller ones could get mixed up if you're not careful.

In order to avoid incorrectly reconnecting something later, I labeled all the wires before I removed them from the board.

ROBO3DR1Teardown_0157

Here's the ROBO3D RAMPS board up close. There's really not much going on. A few caps, some pullup resistors, some fuses, and some motor controllers. If something was going to blow, it's doubtful it would be here. Close inspection of the board traces and components shows that nothing appears to be fried.

ROBO3DR1RAMPS_0159

Underneath the RAMPS board is an Arduino MEGA 2560 clone. These can be had for about $20. So the fact that ROBO3D charges $75 bucks for this makes it a good $20-$30 over-priced. I'd rather have a go at fixing this one than buy a replacement.

What's weird is that the Arduino doesn't seem to be dead. I can still upload sketches to it with the Arduino IDE. For the most part, maybe the chip is OK, it's just a AD converter or something that's toast.

There are three temperature connections on the RAMPS board: T0, T1, and T2.

T0 is for the hotend thermistor. T1 is for the bed thermistor. T2 is unused. I flip-flopped the T0 and the T1 connections. The bed thermistor that was previously on T1 and read 25C was now reading ~90C on T0. The new EPCOS thermistor that read 90C on T0 was reading 25C on T1. So the thermistors are good. It's the T0 connection that's bad.

I suppose I could tweak the firmware to use the T2 port instead of the T0 port, but if the Arduino is flaky, then it'll be a lot of work for nothing.

ROBO3DR1Arduino_0160

It just so happens, I have a spare MEGA lying around.

ROBO3DR1Arduino_0161

I uploaded the ROBO3D R1 firmware, connected the RAMPS board to the Arduino, and then reconnected all the wires.

ROBO3DR1Arduino_0162

Bingo! Both thermistors were now reading ~25C. I think I fixed it!

Screen Shot 2016-08-05 at 1.56.21 PM

So those cheapie thermistors were probably OK all along. Since I'm using a new Arduino, MatterControl would no longer detect the printer, I removed the "old" printer from the list and then re-added it. MatterControl then connected without a problem.

I started a new print job, but as soon as the printer finished leveling the bed, it stopped. There was no error message popup. It just stopped. I checked the console and was surprised to see the same error message as before.

I power-cycled the printer, entered M999 into the console and started again. That time it worked.

successful print_6784

I hope that initial error message was just a one-off, or some weird residual thing. Although I don't see how. I installed a new thermistor and swapped out the Arduino and reconnected to MatterContol. As far as the computer is concerned, it's effectively a new printer. I shouldn't still be getting error messages.

The print went off without a hitch and finished successfully. I did another one just to be sure. It also completed successfully without any errors.

I'll just have to keep my eye on it and see if it does it again. Hopefully it doesn't, because if it keeps throwing errors, the only other thing I can think of replacing is the RAMPS board. Or, perhaps the heating element.