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)
cd~
git clone https://github.com/th33xitus/kiauh.git
./kiauh/kiauh.sh
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