Full Open Source 3D Printer

Hi there,
I bought 2014 my first printer and additional build some ultimaker clones. I liked the Ultimaker Clone, because the printer is nearly developed with custom parts that can be bought everywhere. What I liked is the small an clean SMD Ultimaker hardware, but I search for the possiblity to replace the Ultimaker electronic with the raspberry pi. With Octoprint there is the possibility to print directly but you still need the Ultimaker board or an Arduino with ramps. My goal is to reduce the electronic hardware only to the stepper and Heater electronic but at the minimum size as the Ultimaker Hardware do.
Is there a project or a possibility to use the raspberry as Mainboard and the IOs for the endstops and fans add only a SMD build PCB driver board to build the 3D printer electronic? The RAMPS board is cool but to chunky.
Then I have a printer with custom parts (such as aluminum profiles) , the Mainboard is the famous raspberry pi, the octopi sw and the only thing that isn't custom is the driver board.

Thanks a lot

The raspberry pi multitasks, and you don't want that in timing-critical situations such as controlling steppers. This is not "the fault" of a Raspberry Pi specifically, but more of its operating system on one side and the different between a micro-controller and a micro-processor on the other.

The Beaglebone is a raspberry-pi-like board that has a "realtime" part integrated into its design. For it, there is an extension board to hold steppers etc named the Replicape. It is designed to be used with OctoPrint.The same guy that designed the Replicape has also been designing a single board that runs OctoPrint and has the steppers etc on it, but sofar it has not yet been released (Revolve, which is being superceeded by Recore).

Then there are the Prusa Einsy and Duet 3 boards which have dedicated ports to communicate with a Raspberry Pi for controll, but for all intents and purposes are still like connecting a RAMPS board to the RPi (though much more modern, less chunky).

You also may have a look on this: https://github.com/markniu/PandaPi

1 Like

There is a realtime kernel for raspi 4b with the deadline scheduler that may be enough to reliable control the steppers. In addition you may isolate a cpu and dedicate it to the realtime task.

I don't know enough about the timing requirements for controlling stepper and the maximal latency of deadline on a realtime raspi kernel to judge the feasibility.

1 Like

The Raspberry Pi itself is not Open Source by the way.

Yes you have to use a realtime os.
Otherwise Marlin and octoprint have beef together :wink:

The pandapi board firmware for the mcu isn't open source actually.
Mark promised he will release it when he have sold 1000 boards.

it would be nice if it would run on a rockpi4 :smiley:

Hey guys thanks a lot for the replys and the explanations.

  1. with open source I rather mean, high community hardware with a lot of open source sw development like the raspberry pi. I like the raspberry pi, because it's basically a project with a social background to enable childrens to learn how to program sw code.
    My goal is to build a clean 3d printer without the thousands of wire so that you can simple assemble the electronic by for example a wire harness with a community hardware that you can buy everywhere. For me RAMPS is a cool and cheap hardware put Out need to much space in the 3 D printer and too much wireing. The UM2 Mainboard is much cleaner. And the Revolve HW is the size I am aiming, but it isn't reduced to the minimum stupid board (stepper driver, heater, real-time uC) and all the other stuff should make a raspberry pi, so you can develop with a high community.
  2. I understand that you need real-time hardware to control the stepper. The idea with the real-time plugin for the raspberry 4 is cool but it seems to be too complicated for the 3D printer.
  3. Therefore I think that I have to search for a slim RAMPS HW. Or do you think that raspberry pi would ever have a realtime HW like the Beagleboard?

I would reduce the stepper hardware to the minimum of intelligence and bring the hole intelligence to the raspberry pi. I hope you can understand my thinking.


you don't need real time hardware

If you're right it would be great but I'm asking me why there isn't a raspberry Mainboard with a minimum of stepper extensions? Because the RAMPS solution is so cheap? Or is there another aspect?

The pandapi is exactly that / the mcu is only for temperature control / because you dont have enough gpio pins

Did you look at Klipper?

Hi guys I found the project klipper too and I found only a few pages about that but they say that this is an amazing sw for the raspberry pi. What I don't understand is, to connect the Pi with an ramps shield I need an AVR uC to have an USB Connection. And what is the benefit of clipper? With the "standard" setting the AVR controls the firmware of the 3D printer an controls the stepper and the pi is just needed as Octopi Server. With klipper the Pi controls the firmware and the AVR is only needed to connect the pi with the stepper. Am I right?

Klipper does the calculation intense stuff on the Pi and sends the coordinates to the printer board. The printer board is the hardware level with drivers and the IO ports to communicate with steppers and the sensors.
When you have Klipper on the Pi, it installs an own firmware on the printer board:
@brotherchris has a good guide here: https://www.youtube.com/watch?v=i_541iD5Bj0&t=1s

Thank you for the link. I think klipper is the SW that I searched for.
No the only question is which printer board is the tiniest to use. Should it has to be "stupid" or does the klipper SW installs an own fw on every board?
For example, when I use the pandapi, is klipper capable to install his own fw, or is the pandapi secure against different fw installation except of his pre installed?

Klipper need its own firmware on the board driving the steppers. The klipper architecture is based on two processes communicating with each other. One process does the heavy computational lifing and runs on something like Raspi and the other process is a realtime process running on the board with the stepper drivers.

Ok, but is it possible to flash every stepper board with a new firmware? Or is there a limit of the hardware that just support a new flashing firmware? For example the Pandapi, can it be flashed with klipper FW?

The Klipper project uses TWO processors. The first is an 8-bit board (i.e. a Rambo) which attaches to directly to the printer's stepper motors, heaters, and fans. The second is a Raspberry Pi (or equivalent) which (as @jandar stated) converts GCode into a set of simple commands that are transmitted (over the serial link) to the Klipper firmware running on the 8-bit board. See the Klipper website for more information.

To quote from that site:

Klipper currently supports a number of Atmel ATmega based micro-controllers, ARM based micro-controllers, and Beaglebone PRU based printers.

The Klipper software gets installed on a Raspberry Pi running OctoPi / OctoPrint. You would have to contact the Klipper folks to find out what other systems might be supported.

If I understand correctly, you are asking for what is the minimum (sized?) board that can be placed inside the printer? I think the first question you need to answer is what firmware do you want to run on that board. I believe there are two choices, Marlin or Klipper. Once you know what firmware you want to run, then you can look for the minimum board that supports that choice.

If instead you wish to use a Raspberry Pi board as the only hardware inside your printer. Then the answer is the RPi does not have the capability to drive stepper motors, heaters, and fans without some additional hardware (which can be attached to its 40 pin GPIO header. An example of this additional hardware is the PandaPi project hardware which has already been linked in this thread. From a size perspective, this solution is bigger than using an 8-bit based board.

1 Like

Hello again, thank you for your patience for answer to my questions.
My vision is to only use the RPI as Mainboard.i learni from this thread that (for now) it's not possible. Therefore I'm looking for the minimum additional HW do connect RPI / klipper with a stepper/heater board. For experimental reason all the boards with changeable stepper drivers are a good choice to update the board. But I identified, that for me size matters and therefore I am searching for smd hardware with no repleaceble stepper driver. The panda pi seems to be a good project, but the hardware with the RPI combined seems to be to large. Is there a reason why all the boards are designed for changeable stepper driver and not for minimum size? My UM2 boards is now over 5 years old and nothing broke until today. Kind regards.

And another question.
In conclusion I can use a Linux board like RPI to run Octopi and connect my printer via Smartphone.
And I need a 8 bit board to run the stepper (is there a general name for the stepper/heater 8-bit board?).
In my opinion I have the choice to decide if the RPI is the master and the 8-bit ist the slave (-> with Klipper) or if the 8-bit ist the master and the RPI is only used as slave for e.g. Octoprint (-> with marlin) or is this thinking wrong?

The hardware can be on both choices (klipper/marlin) the same?