Welcome! Log In Create A New Profile

Advanced

Ramps 1.4 conversion of Makerbot 2X @ 24v - Newbie at Marlin [Warning - wall of text]

Posted by pyr0ball 
Ramps 1.4 conversion of Makerbot 2X @ 24v - Newbie at Marlin [Warning - wall of text]
December 16, 2016 04:13PM
Hello all, I've taken on a pretty big challenge for a newbie to 3D printing. I found a Makerbot 2X in the ewaste bin that looked like it was in decent shape and wanted to see if I could get it up and running. The original control board for this model is a Mightyboard Rev. E which has a very well documented issue of the 5v regulator blowing and causing 24V to knock out a lot of the board's components. I found a couple of guides online of how to "reprap-ize" this printer, and figured it wouldn't be too hard to modify those plans to keep all the original 24v components (or as many as possible considering they may have been damaged).

If anyone's interested I've got a decent library of resources I used to migrate pinouts, create breakout boards, and power the whole thing. I could make a full schematic if I get enough interest.

Here's a BOM of what I've got in this thing:

- Ramps 1.4 kit w/ RepRap Discount Full Graphic Smart Controller LCD
- Pololu A4988 Stepper Drivers
- 24V 360W Universal Power Supply
- Original Makerbot Dual Extruders 24v hotend
- Original Makerbot HBP 24v w/ 100k ohm Thermristor
- Original 24v stepper motors
- 2x MAX6675 Thermocouple Amplifier circuits (pulled from original board)
- Original PCA9533 I2C based RGB LED controller circuit (pulled from original board)
- Raspberry Pi 3/Zero (future AstroPrint server)
- Custom built power distribution board (5v, 12v, 24v output array for general use)

I've got a fresh clone of the latest Marlin RC firmware and I'm going through setting things up. This is my first time touching C++ but I've got experience with some other languages so I'm working my way through it. I have run into a few issues so far with code refusing to compile when I enable certain modules like the MAX6675 or the LCD controller, so for the most part I've been focusing on getting the steppers, fans, endstops, and thermristors working as expected.

Issues:
1. Currently the stepper motors will only move in a positive direction. I'm using Simple3D slicer's printer control panel to test with, and I can send commands using the +/- jog buttons on there. When using +, the stepper motors move perfectly, but literally nothing happens when I use -. It doesnt keep moving in a positive direction as I'd have expected if my pinouts are wrong, so it has to be logic-level.

2. The z-axis stepper makes a HORRIBLE noise when it does move, the entire z-axis screw pole thing vibrates. If I twist this pole while the system is off, the action feels smooth, so I'm not sure what the problem might be.

3. Beyond the issue I'm having with getting the firmware to compile with the MAX6675 enabled, all the documentation I've found says the Marlin firmware cannot handle more than one MAX6675 configured because of the SPI interface. I've read of people getting both the MAX6675 and the SD card slot working concurrently on one board, and I don't plan to use the SD card personally so I don't see why I couldn't just repurpose one of the open data pins to be a second CS SPI pin. Any insight on this point would be greatly appreciated. Worst case I'll buckle down and buy a AD597 but I'd really like to stick to the MAX6675's if at all possible.

4. Code compiling issues - I figure I can work through this as I go along as it's a lot more fiddly and I understand it can change completely based on what I might need to do to solve the above issues. Currently I'm only setting up one of the extruders for simplicity of getting the printer up and running initially, and I'm substituting a 100k and 10k thermristor in on the Therm_0 and HPB just so I have some dummy readings while debugging. The actual heating element wires are disconnected for the moment , and I'll reconnect once I'm actually ready with a working firmware and everything. I'm attaching my configuration.h as I'm sure having that will help

Informational sources:

Mightyboard Rev. E schematic
Ramps 1.4 Manual (Schematic and board file included)
MAX6675 Datasheet
Basic MAX6675 How-To
MAX6675 breakout board I built with the components from the original Mightyboard
Pic of the current WIP assembly
Album I'll continue to update with new pics and schematics

Edited 1 time(s). Last edit at 12/16/2016 04:31PM by pyr0ball.
Attachments:
open | download - Configuration.h (51.8 KB)
Re: Ramps 1.4 conversion of Makerbot 2X @ 24v - Newbie at Marlin [Warning - wall of text]
December 16, 2016 06:11PM
1) check you endstops status with M119 comand. when endstops are triggred you cant move -ve

2) as a guess I would say z max feed rate is probably to high
Quote
Dust
1) check you endstops status with M119 comand. when endstops are triggred you cant move -ve

2) as a guess I would say z max feed rate is probably to high

Looks like you're spot on with that one! All three are showing as triggered at the moment. Trying with endstop logic inverted now.

How/where would I go about adjusting the max feed rate for the z-stepper?
OK Got the triggers fixed and the steppers can now move in both directions, so that's good! Also ended up fixing an orientation issue I was having with my Y and Z axis at the same time so that's good.

I managed to dig up an AD597 and get one of the thermocouples hooked up with that, and just for the sake of debugging, I disabled the minimum temperature for the HPB using -1 and set it up as a "1" or 100k thermristor. The thermocouple is coming in at 0.0-0.2, and the bed is coming in at 0.0. I know the thermristor itself is working because if I check it's resistance and heat it up (using a soldering iron) the resistance changes. I did have to make a modification to the RAMPS board because the HBP has it's own 4.7k pullup resistor, so I elected to remove R1 from the RAMPS board and supply 5v to the HBP independently. I'm guessing that may not have the desired effect, so now I've gotta go dig around for a replacement resistor and pull the one from the HBP (different smd size or I'd just move it)

Anyhoo I know there's an offset option for the thermocouple, but I'm not too sure what setting to use for it.
UPDATE:

HBP thermals have been fixed! I had to re-add the pullup resistor on the RAMPS board, and remove the one on the bottom of the bed itself, and now I'm getting good temps off of it. Also the heater itself is working so that's awesome. One thing I do need to check on is the accuracy or compensation I'll need to use because of the aluminum plate on top of the HBP probably is dissipating more heat than the firmware is expecting.

Bad news is I think the thermocouple needs to have the gain turned up a lot to get an accurate reading, but I can't seem to find any resources as to what settings to use. Currently I'm digging through Sailfish sourcecode looking for something related to the MAX6675 that I might be able to adapt.
Re: Ramps 1.4 conversion of Makerbot 2X @ 24v - Newbie at Marlin [Warning - wall of text]
December 17, 2016 02:36AM
that getting serious...

why not just replace with standard thermistors? sounds like it would be far simpler

Edited 1 time(s). Last edit at 12/17/2016 02:37AM by Dust.
From what I've read, thermristors arent as accurate as thermocouples and can't handle as high of temperatures.

Also figuring difficult things out is more fun! If I can get this all working then I could build a decent conversion guide for other people who might want to get off the badly designed Mightyboard.

Edited 1 time(s). Last edit at 12/17/2016 03:34AM by pyr0ball.
Moar updaet!

Currently working out kinks with the thermocouple amp. Switching to AD597 for now just for simplicity. I get *some* readings off of the ad597 (variance of about 0.1 - 0.6°), so I adjusted the offset up 23° to make it about ambient temperatures. As soon as I turn on the hotend, however, I get a "MINTEMP" error either immediately, or after a few seconds depending on the gain settings I'm using. Mintemp gets triggered regardless of the polarity I connect the thermocouple wires to the amp controller, and I get a MAXTEMP error if I disconnect the thermocouple wires before even turning on the hotend.

SENT: M105
RECEIVED: ok T:23.1 /0.0 B:22.0 /0.0 @:0 B@:0
SENT: M104 S80 T0
RECEIVED: ok
RECEIVED: Error:MINTEMP triggered, system stopped! Heater_ID: 0
RECEIVED: Error: Printer halted. kill() called!

Also I've heard about the MOSFET on D8 having some issues when used for an HBP, even at 12V, so I elected to replace it with a higher rated one I just happened to have on hand. PSMN7R0-30YL with the drain and heat pad soldered to a decent sized heatsink hopefully will take care of the issue. I have a buddy recommend I just pull all three, wire them in externally and mount them to a heatsink with a dedicated active cooler. Might do that in future, but for now, this should suffice.



Edited 1 time(s). Last edit at 12/21/2016 01:38PM by pyr0ball.
OK got new thermocouples in, also found this lovely post that gave me an idea as to what voltages the amplifier should be putting out based on temperature. It looks like the amp is putting out about 10x the voltage stated in that thread (room temp is coming in at +2.8v) so I tried turning the gain on the amp down, but I'm still getting a MAXTEMP error and the system halts. This is with thermal protection undefined as well:

//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN   0.1

//#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders
//#define THERMAL_PROTECTION_BED     // Enable thermal protection for the heated bed

EDIT:
Well part of that was an easy fix. Check the cables as they say. One of the leads wasnt in the clamp (hard to see because of the position). Now I'm sitting at ~139mV at room temperature, but still getting MAXTEMP with the gain 0'ed out

2ND EDIT:
Herpaderp. In trying to get the thermal protection to stop killing the system and give me a reading, I set min/max temps as --1 thinking that would disable it. Set those back to default and now it's finally stopped erroring out. Now I gotta futz with the offset and gain to get itat the right temps smiling smiley

Edited 2 time(s). Last edit at 12/27/2016 04:37PM by pyr0ball.
OK well I'm running into more trouble with that darn thermocouple.

It seems to be getting some phantom power from elsewhere on the board because when I use the extruder stepper, the voltage instantly drops by about 10mV, causing the temperature readings to drop which makes things difficult.

Any ideas?
Well apart from the thermocouple instability, I got it working!!!!



I had to adjust some temperature offsets and such, but I got it printing!
The main problem with using themocouples is that they output such small voltages( mV) this voltage is susceptable to interference from the
stepper motors and allso the PID used to heat the hot end.
Quote
obewan
The main problem with using themocouples is that they output such small voltages( mV) this voltage is susceptable to interference from the
stepper motors and allso the PID used to heat the hot end.

Well luckily I work in a building with a bunch of electrical engineers and I picked up a thing or two from them. All I had to do was add a small capacitor (100uF) from signal to ground and all the fluctuations evened out. That's with the power supply for the Thermocouple Amp offloaded to the power distribution board rather than the RAMPS board, so I'll have to test again with power drawn directly from the RAMPS board, and possibly will need to add a cap on the input 5V to ground as well depending
Sorry, only registered users may post in this forum.

Click here to login