THE INOVATO QUADRA

Running Klipper firmware can be a great advancement to your 3d printer, however you’ll need an additional microcontroller(mcu) to do so. Raspberry pi’s have been the most widely used mcu for this purpose, but with there recent scarcity and price hike, finding inexpensive and available replacements is needed now more tha ever. The INOVATO QUADRA is looking to fill that void. A single board computer that boasts a quad core processor, built in operating system, and on board wifi(ish) all for less than $30! This even comes with a 5v power supply and HDMI cord. Capable of running not one but TWO printers simultaneously! Now there are some downsides, you will not be able to access a camera on this setup, or will you be able to give this a static ip address, meaning you’ll need to find the new ip address each time this is shut down -unless you spend an extra $10 for a wifi dongle- aside from that the installation and execution of this setup is quick and easy!

This article is broken down into two distinct sections.

  • Getting Started With the Quadra

  • Setting up multiple instances of Klipper

Even if you aren’t using the Quadra this will still give you the know-how to be able to get you started with a multi-klipper setup

Before we begin

If you plan on using wifi

it is highly recomended that you either purchase the wifi adapter or the buy the Quadra Plus (which comes with the wifi adapter). The native wifi will not allow you to keep a static ip address. That means anytime the quadra is turned off it will be given a new ip address on restart. It’s not ‘game-breaking’ necessarily, but having to ping your quadra each time it restarts so you can access your Klipper front end, to start a print, is a huge inconvenience(especially when you are running multiple printers). I also was getting issues where the connection would ‘time-out’ for me, every 24 hours or so. My prints would finish fine, but the quadra would need to be powered off and back on to be able to communicate with it. The wifi adapter fixed all these issues.

A note on the USB Hub.

If you purchase the Quadra Plus or buy the upgrade kit for the base quadra, you will be given a USB hub that can extend the number of USB ports from 2 to 5. An irregularity I noticed was when I had all my printers connected to the USB hub. If I restarted the Klipper firmware on either printer (while both were plugged into the USB hub) it would unseat the USB hub from the quadra. This would cause both 3d printers to be unreachable. The only way to re-engage the connection was to restart the quadra. So, if you will be using the USB hub, make sure that at least one printer is connected to directly to the quadra. This way whenever you restart your firmware through Klipper you don’t have to restart your quadra.

Getting Started with the Quadra

The First order of business with the Quadra is to grant it access to your local network, either through Wifi or an ethernet connection.

Connect to your Local Area Network. Three different methods

  • [WIFI using HDMI] plug the Quadra into a TV and give it the WIFI information (requires USB keyboard and mouse for navigation)

    • log in using:

      • id: quadra

      • password: 1n0v@t0

    • enable wifi like you would any device on your network

    • select your wifi and then enter the wifi password 

    • if you are using the wifi adapter for internet (and it’s recommended you do) you will want to set up a network connection with USB1, which should be the adapter and not the internal wifi.

    • !I did not need to perform any more steps for this to persist after power down. It auto connected thereafter for me

  • [WIFI using ethernet] plug the quadra into your router using the ethernet port. Access the quadra using SSH (SSH is a method to wirelessly communicate with another device)

    • SSH using PUTTY 

      • inovato.local (or inovato.localdomain)

      • command line from PC run ‘ping inovato’ will return the ip address. SSH using the ip address.

    • run ‘nmtui’ to open Network Manager Textual User Interface

    • select Activate a Connection

    • select your wifi and then enter the wifi password 

    • if you are using the wifi adapter for internet (and it’s recommended you do) you will want to set up a network connection with USB1, which should be the adapter and not the internal wifi.

    • !I did not need to perform any more steps for this to persist after power down. It auto connected thereafter for me

  • [ethernet] plug your ethernet cable into the back of the quadra

No we can begin to make command line changes to the quadra. Fear not, these are all easy and you can simply copy and past most of them. For the rest of these steps we will need to SSH back into the quadra.

SSH back into the Quadra and log in

  • SSH using inovato.local or the ip address (ip can be found by running ‘ping inovato’ from the command line of a pc on the dame network)

  • id: quadra

  • pass: 1n0v@t0

Changing the default password

  • At the command line run the following line:

    • ‘passwd’

    • enter a new password

Turning off Desktop Mode (may need to sign in after power on in this mode) 

  • run the line:

    • sudo systemctl disable lightdm

      • If at any point you want to re enable the desktop mode run: sudo systemctl enable lightdm

  • run:

    • sudo reboot -f

      • The Quadra will power off and you will need to log back in

      • It may look like the quadra is frozen, the blue light on the front cover may still illuminate. It is normal behavior. Unplug the quadra and then plug it back into power.

Make sure quadra connects to Network on boot

  • SSH into the quadra, then log into the Quadra as Root (if not using wifi adapter ip address will have changed)

    • user: root

    • Pass: 1n0v@t0

  • run: nmtui

  • select ‘edit a selection’

    • This screen shows all the available network connections. Even if you only set up a connection via the wifi adapter, it’s possible the internal wifi will have taken that information and created a network.

  • delete the internal wifi network (if it’s available)

    • select the wifi network without any number next to it.

    • select edit a connection

    • wlan0 indicates this is internal wifi, that information can be found at the top of the page upon editing.

    • after you’ve determined this is the internal wifi back out one screen.

    • while the internal wifi network is highlighted select the ‘delete’ option on the right side of the screen and choose to delete the connection.

  • ensure wifi adapter connects on startup

    • Navigate to your network connection and select the edit option(up down to select connection)

    • wlan1 indicates this is the usb wifi, that information can be found at the top of the page upon editing.

    • tab to the bottom of the screen and make sure ‘automatically connect’ and ‘available to all users’ have [x]s next to them

  • exit back to the terminal line

  • Reboot: sudo reboot -f 

That’s all for non-Klipper related setup. You are now ready to install Klipper

Setting up multiple instances of Klipper

For the Klipper firmware installation we'll be using KIAUH (Klipper Installer And Update Helper). The KIAUH project makes installing Klipper a stress free endeavor. From this point on everything will be done through the terminal line, so if you are not already, you’ll need to SSH back onto the quadra.

SSH onto the quadra

Run KIAUH

  • The first line we run will make sure the quadra is up to date

    • sudo apt-get update

    • sudo apt-get upgrade

  • Then in order for KIAUH to run, we need to install git

    • sudo apt-get install git -y

  • Now we can launch the KIAUH main menu (this is all ran as a single block command. Copy and paste all three lines)

From the KIAUH main menu we INSTALL Klipper, Moonraker, and Fluidd/Mainsail. Start with Klipper

Install Klipper

  • Select option #1 Install

    • as a helpful guide the first screen of KAIUH;s main menu will track all the process you have already installed

  • Again, select option #1 Klipper

    • Choose to install python 3.0

    • Choose to install 2 instances of Klipper

    • The instances start at 1 by default, just backspace and change it to 2 (“instances:1” to “instances:2”)

    • At this point if you don’t want to continue with a multi Klipper setup you could choose 1 instance

  • Klipper begins to download and install. After it finishes you will be returned to the Install screen

Install Moonraker

Moonraker is an API, it handles communication between Klipper and our front end (fluidd/mainsail)

  • Select option #2 Moonraker

    • Moonraker will ask you to install the selected number of instances. It should already populate the amount of instances based on the number of Klipper. Make sure it’s correct and continue

  • Moonraker begins to download and install. After it finishes you will be returned to the Install screen

  • Directly above the main menu Moonraker will have listed ports that each instance of Klipper will be using(usually starting from 7125 and incrementing up). Write these down as you’ll be using them later to sign into your printers.

Install Frontend Fluidd/Mainsail

A front end is just as it sounds, the front facing portion of software, it’s how we will interact with our 3d printer. We interact with the front end, it then uses Monnraker(API) to communicate with Klipper(printer), and the process goes both ways.

  •  The frontends Fluidd and Mainsail are web-based applications, and they function in nearly the exact same way. Some people prefer Fluid, some people prefer Mainsail. I recommend Fluid because it’s what I am used to but either is fine. (I actually think Mainsail might be slightly better at handling multi-instances of Klipper)

  • Select option #3 Fluidd or option #4 Mainsail

  • Fluidd/Mainsail begins to download and install. After it finishes you will be returned to the Install screen

  • While the front end downloads it will ask if you want to ‘add recommended macros’, choose yes(y) for this option.

Flashing the 3d printer

Flashing Klipper firmware onto the 3d printer

Creating a firmware image to flash

At this point the quadra should be ready to go with Klipper but you still need to flash klipper onto the mainboard of your 3d printer. In order to flash your printer you’ll need to know what mainboard it has, then, while still using KIAUH, you can create a firmware image. 

  • From the KIAUH Main Menu select the advanced option(#4)

  • Now select the ‘build only’ option(#2)

  • At this screen you will input the specifics for your 3d printer mainboard. When finished select Quit(q), which will begin the firmware creation.

  • Once completed exit from Putty.

  • Open WINSCP and ssh into the quadra

    • WINSCP is free software similar to Putty, which allows wireless access. However it uses a more robust GUI and allows you to view, edit, and copy files from the target device

    • SSH into the quadra same as you did with Putty, either by using the ip address or inovato.local address.

    • WINSCP’s overlay: 

      • the left side of the partition are all files and folders local to your current device (i.e. the computer you are using). 

      • the right side of the partition are files and folders local to the device you are accessing (in this scenario, the quadra)

  • On the right side of the WINSCP partition find the ‘Klipper’ folder and  open it

  • Now open the ‘out’ folder

  • Within this folder should be a file named ‘klipper.bin’* copy this to your local computer by dragging it and dropping it to an appropriate spot on the left side of the partition. (either the desktop, a folder, or a removal memory device)

  • *the file may be named ‘klipper.hex’ for certain mainboards that need to be flashed directly from the computer, and not through an SD card.

  • Use the klipper.bin file to flash klipper firmware onto your printer.

    • The process of flashing firmware onto a 3d printer is specific to the printer, and will need to be researched.

Setting up your Frontend - Fluidd/Mainsail

Setting up multi-instances of Klipper on your frontend - Fluidd

Setting up Fluidd - first instance of Klipper

Make sure both of the 3d printers and the quadra are powered on, and that the 3d printers are plugged into the quadra.

  • Open a webpage and enter the ip address of the quadra

  • From the command line of your PC you can run ‘ping inovato’ to find the ip address if your forgot

  • The fluid profile that opens will be the first Klipper instance, the printer whose ip address is designated to the first port, port 7125.

  • You can verify the port by navigating to the upper right side of the screen and clicking the 3 vertical dots. A menu dropdown appears and at the middle section the current selected printer’s address will be shown (i.e. ‘fluidd 192.168.1.214:7125)

  • Open the configuration menu by finding the ‘configuration’ tab on the left side of the screen

  • Import a printer.cfg configuration file for the 3d printer (you will need to decide which printer this port will be to upload the appropriate configuration file)

    • If you don’t have one you can check my example config section here

  • You will now need to find the serial address for the 3d printer you want to associate with this port and enter it under the section [mcu] serial: 

  • Open Putty , SSH into the quadra, and run the following line:

    • ls /dev/serial/by-id/*

  • If you get two unique serial addresses continue with these instructions. If you do not get two unique addresses skip to the section below. 

    • unplug the printer that you DO NOT want to associate with this port and run the command again:

    • ls /dev/serial/by-id/*

    • You should now receive only a single serial address which corresponds to the printer currently connected. 

    • Copy that serial address and paste it in the [mcu section]

      • i.e. [mcu] 

      serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0

  • If you did not get two serial addresses you will need to run the following command:

    • ls /dev/serial/by-path/*

    • This will now give you two unique serial addresses, and those addresses will correspond to a specific USB port.

    • This process is necessary when the mainboards on both 3d printers are giving the same serial address

    • unplug the printer that you DO NOT want to associate with this port and run the command again: 

    • ls /dev/serial/by-path/*

    • You should now receive only a single serial address which corresponds to the printer currently connected. 

    • Copy that serial address and paste it in the [mcu section]

      • i.e. [mcu] 

      serial: /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0

  • When using this command the serial address you are given corresponds to the specific usb port the 3d printer is plugged into on the quadra. If you switch USB ports at any time you will need to run this command again to get the new serial address for your printer. Keep this in mind if you get communication issues down the road.

  • Once you’ve added the correct serial address in printer.cfg save your progress, and then restart the firmware. 

  • The printer and quadra should be communicating and you can continue setting up this printer as you see fit.

  • It’s recommended to make a change to the ‘Title’ and ‘Theme’ using the menu controls on the left side of the screen to help distinguish between the two printers.

Setting up Fluidd - second instance of Klipper

  • With the first web page open find the three vertical dots on the upper right hand side of the page and click on it.

  • A menu drops down, and at the middle of that menu is the option to ‘add printer’ click that now.

  • Enter the same ip address you’ve been using but at the end add the next consecutive port and click ‘add’

    • printer one has the address ‘192.168.1.214:7125’. 

    • printer two will have the address ‘192.168.1.214:7126

  • You will now be brought to the fluidd profile of your second 3d printer. 

  • Open the configuration menu by finding the ‘configuration’ tab on the left side of the screen

  • Import a printer.cfg configuration file for the printer

    • If you don’t have one you can check my example config section here

  • You will now need to find the serial address for the 3d printer you want to associate with this port and enter it under the section [mcu] serial: 

  • Using Putty, find the serial address of the new 3d printer.

    • Re-rerun whichever command you used in the first step 

    • ls /dev/serial/by-id/* or ls /dev/serial/by-path/*

    • Copy the unique serial address that appears and enter it under the [mcu} section

    • If you are not sure which address it is refer to the address you entered for the first 3d printer set up

  • Once you’ve added the correct serial address in printer.cfg save your progress, and then restart the firmware. 

  • The printer and quadra should be communicating and you can continue setting up this printer as you see fit.

  • It’s recommended to make a change to the ‘Title’ and ‘Theme’ using the menu controls on the left side of the screen to help distinguish between the two printers.

Switching between printers

Open a webpage and enter the ip address associated with your 3d printers. Do not specify a port, just the base ip address (i.e. 192.168.1.214)

  • The webpage opens the profile to one of the 3d printers.

  • Open a new web page (do not close the first page) and enter the same ip address

  • The webpage opens to the same profile as the first. on this webpage navigate to the three vertical dots in the upper right hand corner, click them to drop down a menu.

  • All the 3d printers associated with this ip address will appear on the right side bar

  • Select the non-active 3d printer to open in the current webpage

  • You now have each unique 3d printer open in it’s own web page and can browse between them

Setting up multi-instances of Klipper on your frontend - Mainsail

Setting up Mainsail - first instance of Klipper

Make sure both of the 3d printers and the quadra are powered on, and that the 3d printers are plugged into the quadra.

  • Open a webpage and enter the ip address of the quadra

  • From the command line of your PC you can run ‘ping inovato’ to find the ip address if your forgot

  • When Mainsail opens it will ask you to ‘add a printer’

  • Add the first printer by inputting the full ip address and adding the first port, as assigned by Moonraker during installation

    • i.e. 192.168.1.213:7125

    • Which printer is the ‘first printer’ is entirely up to you and completely preference

  • After inputting the information for the first printer, select ‘add a printer’ to add the second printer 

  • Add the second printer by inputting the full ip address and using the second port, as assigned by Moonraker during installation

    • i.e. 192.168.1.213:7126

  • Select a printer and continue setting up

    • Mainsail makes selecting a printer easy. Find the ‘Printer’ tab and click on it

    • This menu shows all the active printers assigned to the current ip address, and allows you to switch between them with a simple button press

  • Open the configuration menu using the ‘configuration’ tab on the left side of the screen

  • Import a printer.cfg configuration file for the 3d printer (you will need to decide which printer this port will be, and upload the appropriate configuration file)

    • If you don’t have one you can check my example config section here

  • You will now need to find the serial address for the 3d printer you want to associate with this port and enter it under the section [mcu] serial: 

  • Open Putty , SSH into the quadra, and run the following line:

    • ls /dev/serial/by-id/*

  • If you get two unique serial addresses continue with these instructions. If you do not get two unique addresses skip to the section below. 

    • unplug the printer that you DO NOT want to associate with this port and run the command again:

    • ls /dev/serial/by-id/*

    • You should now receive only a single serial address which corresponds to the printer currently connected. 

    • Copy that serial address and paste it in the [mcu section]

      • i.e. [mcu] 

      serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0

  • If you did not get two serial addresses you will need to run the following command:

    • ls /dev/serial/by-path/*

    • This will now give you two unique serial addresses, and those addresses will correspond to a specific USB port.

    • This process is necessary when the mainboards on both 3d printers are giving the same serial address

    • unplug the printer that you DO NOT want to associate with this port and run the command again: 

    • ls /dev/serial/by-path/*

    • You should now receive only a single serial address which corresponds to the printer currently connected. 

    • Copy that serial address and paste it in the [mcu section]

      • i.e. [mcu] 

      serial: /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0

  • When using this command the serial address you are given corresponds to the specific usb port the 3d printer is plugged into on the quadra. If you switch USB ports at any time you will need to run this command again to get the new serial address for your printer. Keep this in mind if you get communication issues down the road.

  • Once you’ve added the correct serial address in printer.cfg save your progress, and then restart the firmware. 

  • The printer and quadra should be communicating and you can continue setting up this printer as you see fit.

  • It’s recommended to make a change to the ‘Title’ and ‘Theme’ using the menu controls on the left side of the screen to help distinguish between the two printers.

Setting up Mainsail - second instance of Klipper

  • With the first web page open click the ‘printer’ section on the left side of the screen

  • This screen shows all the active printers connected to this ip address.

  • Click ‘switch printer’, this selects the alternate 3d printer

  • You will now be brought to the Mainsail profile of your second 3d printer. 

  • Open the configuration menu by finding the ‘configuration’ tab on the left side of the screen

  • Import a printer.cfg configuration file for the printer

    • If you don’t have one you can check my example config section here

  • You will now need to find the serial address for the 3d printer you want to associate with this port and enter it under the section [mcu] serial: 

  • Using Putty, find the serial address of the new 3d printer.

    • Re-rerun whichever command you used in the first step 

    • ls /dev/serial/by-id/* or ls /dev/serial/by-path/*

    • Copy the unique serial address that appears and enter it under the [mcu} section

    • If you are not sure which address it is refer to the address you entered for the first 3d printer set up

  • Once you’ve added the correct serial address in printer.cfg save your progress, and then restart the firmware. 

  • The printer and quadra should be communicating and you can continue setting up this printer as you see fit.

  • It’s recommended to make a change to the ‘Title’ and ‘Theme’ using the menu controls on the left side of the screen to help distinguish between the two printers.

Switching between printers

  • Open a webpage and enter the ip address associated with your 3d printers. Do not specify a port, just the base ip address (i.e. 192.168.1.214)

  • The webpage opens the profile to one of the 3d printers.

  • Open a new web page (do not close the first page) and enter the same ip address

  • The webpage opens to the same profile as the first.

  • Select the ‘Printers’ tab on the left side of the screen

  • All the 3d printers associated with this ip address will appear on the right side bar

  • Select the non-active 3d printer to open up in the current webpage by clicking the button ‘switch printers’

  • You now have each unique 3d printer open in it’s own web page and can browse between them