^ Current version, V2.1
How many Extruders is “too many”?
Over in happy-fun 3D printer land, there is a really, really, common control board called a RAMPS 1.4. It has some flaws, but due to the fact it doesn’t contain any ICs except FETs, is open source, dirt cheap to make, and has more than enough functionality for most starter machines, it is actually the world’s most common 3D printer control board. Its also considered to be one of the worlds worst control boards due to the slow processor and shoddy overseas manufacturing.
And, unfortunately, I don’t really live in happy-fun 3D printer land, as I’ve been working on some stuff that requires many, many extruders, and a lot of fans. By default, the RAMPS has 2 extruders built in, and you can buy stepper expanders, that add one, two, or 3 steppers. However, what if I want 6 individual stepper drivers, with their own heaters and thermistor. Short of hitting a protoboard, or buying an expensive replacement board, there isn’t much in terms of options.
With that in mind, I wrote a list of gripes I had with the RAMPS 1.4 system:
- MORE HEATERS
- MORE STEPPERS
- MORE THERMISTOR PINS
- Prewired HC-05 pins (the Bluetooth RX pin needs a voltage divider to get from 5V to 3.3V)
- Suppression capacitors for the endstops (Used by the RAMPS 1.4.2; magnetically induced signals from the motors can cause the print to fail with a false positive. Mostly happens to CNC machines, but worth noting)
- More 12V and 5V Rail pins.
- Header connections for the LCD screen
- Usage with 24V
With all that noted, I got a suggestion from a friend to try learning EAGLE. I had tried KiCAD in the past, but I couldn’t figure it out. So I downloaded EAGLE and gave it a go.
The RAMPS board has 6 sets of pins, AUX 1, AUX 2, AUX 3, AUX 4, SERVOS, and the Endstops. I used the LCD Screen a lot, which requires AUX 4 and AUX 3. Without wanting to take up too much of the pins, I decided to just consume all the pins on AUX 4 and AUX 3, but also wire in an SD card, since that used much of AUX 3. Arduinos use PCBs called “Shields” to expand capability. Even the RAMPS is a shield (Reprap Arduino Mega Pololu SHIELD), so it only made sense to make another board that stacked on top of the ramps headers. After a bit of YouTube tutorials, I was up and running, and made this:
The RAMPSXB (short for RAMPS eXpansion Board) It had the 4 FETS, Thermistors, and Steppers I wanted, but that’s about it. Some of the traces were a little weak on the Heater pins, but I couldn’t do much about that. Eager to try them out, I ordered a set of 3 from OSHPark.
But, as engineers know all too well, as soon as I placed the order, I found a flaw. The Heater pins were wired to digital pins, not PWM, so I could only turn the thing on and off instead of variable. This is usable but not ideal for heaters, and is unusable for fans. In addition, the microSD card pin was correctly wired to a 3.3V power rail, but lacked a logic level shifter for the digital pins, meaning any SD card that was plugged in would be fried as soon as it was accessed.
Back to the drawing board, I went back to my list of wants and said “Hey, since a lot of people will be working with the RAMPS board, they may find this useful, so let me just add everything that I think people would want.” So I did. I expanded the size of the board (above the 10cm limit on many manufacturers. Sorry), cut out the space on the board, and consumed all 6 sets of header pins. After wading through some terrible documentation on the LCD controller I used, I managed to get the two headers I wanted, as well as all the steppers, thermistors, full PWM heaters, the Voltage divider on the HC-05 (as well as broke out the pins in order), the 4 sets each of 12V and 5V rails, and the suppression capacitors for the endstops, and just for shits and giggles, I gave two of the four steppers 2 sets of output pins, so the signal can be mirrored on two motors. The functionality cost for all this? The max endstops had to go (which no one used anyway), and 3 of the 4 servos got axed.
It took me a while to get all the wires together, but In the end I put together V2, in the pictures section above:
Much, much better.
I am waiting for my first set of boards to come in so I can fix any issues I find there before I order the next set, but I’m interested in seeing how it works out.
I published the current version up on Github here under a GPLv3 License: https://github.com/SZiv/RAMPSXB
Alright, the first version board came in. I couldn’t really test any of the new features like the LCD or PWM, but the actual stepper and FET systems do work; they were rerouted to different pins on the new version, but luckily there wasn’t any interference.
I also realized that I was a moron and forgot to level shift the SPI for the SD card down to 3.3V, so any SD card that goes in that slot get instantly fried. Whoops! I have removed the old version of the board from github to prevent this from happening to anyone.
Version 2.0 of the board has arrived from OSHPARK, and I’ve got it assembled. it passes almost all of my preliminary tests, but I have fears about the tracewidth of the power traces.
Exposed the copper on the bottom power traces, so they can be covered in solder to increase the current to reasonable levels.
Development documentation has officially begun! I’ve begun work on writing up official documentation on the RepRap wiki page here: http://www.reprap.org/wiki/RAMPSXB
Found a major issue in the design. 5V on the arduino was wired to GND on the board, which was tied to GND on the arduino. This has been corrected in the newer version, 2.1, up on Github now.
Version 2.2 was created, but a major defect was found due to poor documentation of the Reprap Discount Smart Controller. In other news, I found a manufacturer to produce the boards. The version being shipped will be version 2.3. This version is functionally identical to version 2.1 (which has been retroactively corrected), but the MOSFETs will all be surface mount for ease of production. I will post a link to the item when it is available for sale.
Until further notice, I intend to support both version 2.3 and 2.1, with version 2.3 being the priority.
- Adds a lot of functionality to a board that runs most of my 3D printers
- Finally, I can fix endstop false positives
- Is open source, so anyone can make this if they want.
- Is built off the RAMPS Schematics, so all the Heaters, thermistors, and steppers should behave the same way. Just set the pins!
- Who the hell needs 6 extruders?
- There is a fuse, but no room for diodes for reversed power safeties. Don’t screw up.
- Thin, close together traces may cause interference with each other. I’ll do testing on that.
- Is larger than the 10cm area mark that many manufacturers want to see, so price jumps up significantly unless you order in volume.
- I have fears that the Arduino running the RAMPS board won’t be able to process the 12 extra sets of data.
- My first foray into EAGLE, and I have a feeling I messed something up without knowing it.
Opportunities for improvement:
I actually cant think of any. I’m generally a very self-critical guy, but aside from maybe checking for traces that are too small (all minimum features are 7 mil, which is good enough for most manufacturers), or fighting inductive signal muddling (A big issue I’m afraid of), I cant think of any more issues I can resolve or features I can add to this thing without driving the price up unreasonably. Maybe larger traces for the heaters so they can power heated beds?
Let me start by saying that very, very few people will actually need this board. This is like going to a car dealership and saying “yo can you give me 5 spare tires.” There is nothing wrong with it per say, but its way too much for the average user to make full use of, and most of the people who need this will either upgrade to a Duet board (which costs ~150 buckaroos), or just make their own versions of this. This is for some seriously messed up engineers who want way more out of their machines than the price bracket they bought it for is good for.
That being said, Nothing says that this board WONT work, and for some high end hotends like the E3D Kraken (4 extruders w/ temperature sensing and individual heaters), or the new Reprap Full Color Diamond Hotend (needs 5 extruders, but one heater and thermistor), this is actually closer to right than the original, unmodified RAMPS.
More info to come after testing.