I designed a new rendition of RAMPS called PICA


I’ve used a lot of RAMPS boards over the last couple years, and it’s really an economical choice for building a reprap. But the shortcomings of the design are well known, and include underrated power connections, MOSFETs that get too hot in some cases, and an insufficient number of expansion options. To address these, I’ve designed an updated board. Since RAMPS isn’t my design, it would be presumptuous to call this “RAMPS 2.0” so instead I’ve named it PICA - Power, Interface, and Control Adapter. It is of course open source and the design files (done in kicad) are up on github for anybody to use or modify.


  1. Improve robustness
  2. Flexibility (24V / more peripheral options)
  3. Ease of use

Board dimensions

The board is physically larger than RAMPS, which was unavoidable with the additional parts I wanted to add (and making the silkscreen more readable). The outer dimensions are 114x95mm (about 4.5" by 3.75") and there are four mounting holes located at the corners (located 108.6mm x 88.9mm center to center).

The board will not work with the Wilson II RAMPS mount, so I designed a similar mount for the PICA board. Because of the extra width of the board, you’ll need to mount the Arduino/PICA assembly with 3/16" hex standoffs to clear the X axis motor. If you want to use PICA with another reprap design, you may have to design or find a suitable mount for your particular machine (a good starting point if you want to design one is the Sketchup model of the mounting plate for Wilson II

Board Layout

Power connectors

The screw terminals used on RAMPS are probably the biggest source of failure on the design (just google “RAMPS power connector melted”). They are barely rated to handle the kind of current we put through them, and it doesn’t take much to result in a meltdown.

On PICA, I’ve replaced them with standard 0.25" quick connect solder tabs, and I think it’s a huge improvement. The connection is much more secure and clean. Right-angle tabs are used for the power inputs, and a vertical version of the same connector is used for the higher current MOSFET switches.

Ground planes

The power handling traces on RAMPS are simply too narrow, and over time may delaminate and fail. PICA is only a 2 layer board, but I did my best to stitch the various power nets and ground to planes wherever possible. This will make the board less prone to noise and will also conduct high currents more efficiently.

Real Fuse

I’ve replaced the PTC fuses on the RAMPS design (those big yellow devices) with a single standard 5x20mm glass fuse. 15A should be the correct capacity. I’ve also combined the two power inputs, so they are actually just redundant and each feed the same circuits. On RAMPS, one of the 12V inputs was soley for the MOSFET driving the heat bed, and the other was for everything else.

24V / 12V flexible support

The board is designed from the start to handle either 12V or 24V (or anything in between) on the power connectors. I’ve also added an on-board DC:DC converter circuit, based around the LM2596 buck converter, to provide an efficient 12V output from >12V input. You can build the board with or without this extra circuitry, so if you are using a 12V power supply (like I do) then it will be a little cheaper to build without it (just install the jumper P17 to connect the PSU input directly to the 12V power rail).

With the 12V converter, the PICA shield will let you intermingle 24V and 12V devices. This is really useful if, for example, you want to use 24V for the heatbed but still use 12V fans. There are a total of 5 MOSFET power outputs. These are all arranged as “open drain” devices which is exactly how RAMPS did it (with the addition of flyback diodes to protect the devices from spikes during turnoff, which were unfortunately absent on the RAMPS design). What “open drain” means is, the low side of the device being switched on and off is connected to the drain of the MOSFET, which is either high impedance (turned off so that no current can flow) or connected to ground (through the device’s “source” pin) when the mosfet is turned on. The high side of the device being turned on or off is connected to a power supply rail (either 12V or 24V). More about the MOSFET switches in a moment.

There is also an independent linear regulator that provides a stable 5V source for logic and other devices on the shield. This is completely independent of the small LDO on the Arduino Mega. Overloading the Mega’s regulator (and killing it) are a common problem if you are attaching other devices to the 5V supply (like servos). By keeping them separate, we can take the maximum power possible from the shield’s 5V power supply without risking our Arduino. Also, the input to the on-board regulator (about 9V) also goes to the Arduino’s VIN pin, so the Mega will still be powered by the shield regardless of whether you are running 12V or 24V.

Five independent MOSFET switches

I’ve expanded the number of switchable MOSFET loads from 3 to 5, and each one has a LED indicator to help you troubleshoot if you’re not sure which ones are on.

High power MOSFET

One of these is meant as a “high current” load (up to 15A, which will usually be used for heatbeds).

Medium power MOSFETs

The next two are “medium current” switches, capable of up to 5A individually. Like the heatbed switch, these two will operate directly from the power supply input voltage (up to 24V). The three high/medium power switches sport vertical QC tabs like the power inputs, so no fussy screw terminals for these either. The medium power outputs will most likely be used for hot end heater(s).

Low power MOSFETs

The next two FET switches are tied to the regulated 12V rail (which is either from the onboard Buck converter or straight from the PSU if you are using a 12V PSU) and can deliver 2A max each. In addition, these two have dual outputs so you can actually connect two devices to each, as long as you want them switched on and off simultaneously and the total load is within the 2A limit. These two switches are presented with 2-pin (2.54mm pitch) headers for easy connection to the most common style of fan wire harness.

All of the MOSFETs used are modern surface mount devices, chosen for their low on resistance, so things should stay relatively cool without any additional heatsinks.

SSR for AC Loads

Last but not least, if you have your sights set on controlling an AC powered device from your printer, PICA has an optional IXYS solid-state relay (SSR) capable of 5A@220VAC continuously. This should provide for a straight forward way to drive a AC heatbed, for example (during design testing I used it to switch a desk lamp on and off). You would just need to modifiy the pins definition in your firmware to designate the SSR enable line as your heatbed instead of the default (which connects to the first FET switch).

Other Features


  • There are four thermistor inputs (one more than RAMPS) - enough for monitoring a heat bed, two extruders, and an ambient thermistor for a print chamber if you wish. You could also do some hacking in firmware to utilize these as any other sort of analog sensor input.


  • Six endstop inputs are preserved as were available on RAMPS.

Motor driver sockets

  • Five Pololu A4988 stepper driver sockets are presented, with 3-position dip switches located beneath each one for selecting microstepping modes.

LCD Interface

  • The two LCD interface connectors (previously attached to RAMPS via an intermediary circuitboard) are now directly on the shield. They should work directly with a variety of controllers such as the REPRAP SMART DISCOUNT controller and REPRAP FULL DISCOUNT CONTROLLER (you’ll have to remap the pins, as described at the end of this post).

Expansion pins

  • Along the lower edge of the PICA board, a variety of expansion pins are available. These include a generous number of auxiliary power output terminals (5V, 12V, and 24V if equipped). Most of them are standard 0.1" (2.54mm) spaced header pins, but I also included two different JST connector styles (2mm and 2.5mm) connected to 12V. These are common for example on DC fans.

  • There are also standard headers for I2C, SERVO/GPIO pins, and two serial port access. The layout of the serial ports should be compatible with the ubiquitous HC-06 bluetooth modules, and there are resistor dividers on the TX outputs to lower the signal level to be compatible with 3.3V devices (hint hint).

Pin Definitions##

I have grafted support for PICA into my fork of Marlin, but if you want to use it elsewhere you’ll need the pin definitions as shown below. In Marlin, you’ll find these in pins.h

 * PICA Arduino shield configuration mjrice
 ************************************* */
#define X_DIR_PIN         54
#define X_STEP_PIN        55
#define Y_DIR_PIN         56
#define Y_STEP_PIN        57
#define Z_DIR_PIN         58
#define Z_STEP_PIN        59
#define X_ENABLE_PIN      60     
#define Y_ENABLE_PIN      61
#define Z_ENABLE_PIN      62
#define X_MIN_PIN         14
#define X_MAX_PIN         15
#define Y_MIN_PIN          16
#define Y_MAX_PIN          17
#define Z_MIN_PIN          23
#define Z_MAX_PIN          22
#define E0_STEP_PIN         67 
#define E0_DIR_PIN          24
#define E0_ENABLE_PIN       26
#define SDPOWER            -1
#define SDSS               53
#define LED_PIN            -1 
#define PS_ON_PIN          -1
#define KILL_PIN           -1
#define HEATER_0_PIN       8
#define HEATER_BED_PIN     8
#define HEATER_1_PIN       9
#define HEATER_2_PIN       10
#define FAN_PIN            11
#define FAN_2_PIN          12
#define SSR_PIN            6
#define TEMP_0_PIN         9   // ANALOG NUMBERING
#define TEMP_1_PIN         10
#define TEMP_BED_PIN       10
#define TEMP_2_PIN         11
#define TEMP_3_PIN         12
// LCD interface pins
#define LCD_PINS_RS 33
#define LCD_PINS_ENABLE 30
#define LCD_PINS_D4 35
#define LCD_PINS_D5 32
#define LCD_PINS_D6 37
#define LCD_PINS_D7 36

How to get one

The design files including gerber files for the board are on github, and I will be selling both unassembled kits and assembled boards through the website shortly.

PICA rev c Wiring questions

Would there be any reason to upgrade to a PICA board if your current RAMPS board is working fine?


@brookshank I don’t think so, unless you wanted to hook up some additional devices, LED lights, or something that you can’t do now.


Do you have pricing in mind for both assembled and unassembled kits? For me, it would be fun to assemble and nice to have a “backup” if my RAMPS ever melts.


@revnull I’m still getting sourcing worked out, but probably around $30 for an unassembled kit with the basic parts, and $40 for an assembled 12V version. The SSR is by far the most expensive part, and I suspect most people won’t use it, so I’ll probably offer the boards without that to keep the price down.


Put me down for an unassembled kit when you get things sorted.


Any chance we will get this for low shipping costs to europe? It looks like a great design.


Scratch that I just bought the last one you have.


Love this! Looking to buy one, but you’re sold out. Let us know when more are available? :slight_smile:


I didn’t even know they were for sale yet. Where would I find it?


Thanks everyone for the great response - I have created a listing here and more stock will be arriving soon


There is also an un-assembled version, and I will also offer the 24V version.


hoorah! Just ordered one… Well, let’s make that two (shipping kills it!)

So if there’s anyone in AU who wants to save on shipping, drop me a line and we can sort something out when it arrives!

(I hope this was alright???)


@Jimmi Thanks and sorry about that shipping cost, I wish there was a cheaper way but it’s out of my control! I’ll make sure it’s well packed for the ride :slight_smile:


That’s fine! I’m used to the shipping now being in AU. Just something we have to deal with. :smiley:


I downloaded the PICA Board mount and printed it. It has some problems in the STL and although I can see it in the finished print it still will be usable for sure.

With the 4 board stand offs I assume you are counter sinking the screw heads so they don’t foul on the frame and using a lock nut down the center of the stand off to lock the bolt on place before you put the board in place?

Do you have a pic of your printer with the PICA in place and showing where you positioned it and how the wires look.


@ant0ny I just use zip ties to anchor the mega to the board mount, they are thin enough that they don’t interfere with the frame. I will check the new board mount and see if I can clean it up.


Here is a graphic I made for hooking up the basic Wilson II electronics to the PICA board. I will add this to the /doc/ folder later also.


Will the PICA handle larger size heat beds without the 24v upgrade ? I was thinking of going 500x500


It depends on how much power your heatbed needs. Up to 150W should be fine. Above that, you should probably go with the 24V setup. With 24V in, you should be ok to 300W.


Is it possible to convert the 12v board to accept 24v?