OctoPi is a full OS intended for running OctoPrint, and is based on Raspbian. It's a perfect choice for running OctoPrint on Raspberry Pi systems.
You need the following for each printer:
- Raspberry Pi 3B or newer Example
- Power supply providing 5V and >= 2.5A Example
- MicroSD card of at least 32GB size Example
- 3D printed case for Raspberry Pi to attach to its printer's frame Prusa Example / Ender Example
- A USB-A to USB-B cable Example
- Miscellaneous hardware for mounting the Pi case to its printer
- One or more velcro or other cable ties to tidy wiring
Follow guides/SYSTEM_SETUP.md to set up a new OctoPi system.
- SSH to the OctoPi instance as user
pi
:- Say you just set up OctoPrint for a printer called
pinky
- In Powershell (Windows) or Terminal (Mac, Linux), run
ssh pi@pinky
- You'll be asked if you really want to connect to the host, where you will say
yes
- You will be prompted for the password for user
pi
. If you don't know this password, get it from the OctoPrint steward (e.g. Mike H on Discord)
- Say you just set up OctoPrint for a printer called
- After logging in successfully using SSH, copy and paste the entire following block into your PowerShell or Terminal window:
# Clone/update the repo for NEM-OctoPi
if [[ ! -d nem-octopi ]]; then
git clone https://github.com/mikeymakesit/nem-octopi.git
cd nem-octopi
else
cd nem-octopi
git pull
fi
# Install or upgrade Ansible then run the playbook
bin/setup.sh
The above code will run the automation to configure OctoPrint for a NEM printer.
NOTE: The above automation can take ~10 minutes or so depending on network speed. Do not worry if your SSH connection looks idle; it's working!
When you're returned to the command prompt on your SSH connection, you're
finished! You can log out of your SSH connection by typing exit
and close
your PowerShell/Terminal window.
Finally, open a web browser and connect to http://printername
.
You have to type the http://
prefix. You're now ready to log
on as the admin user steward
. If you need the admin user steward
password, get it from an OctoPrint steward (e.g. Mike H on Discord).
On the 3D Printing Room PC:
- Open
http://printername
in the browser and confirm it opens. - Add a bookmark to the bookmarks bar. Make sure the bookmark is for the base
URL
http://printername
. - Log on as user
steward
. - Click the wrench (upper right corner) to open OctoPrint settings.
- Click on
Features -> Application Keys
- Click the magnifying glass to the right of the application key for
PrusaSlicer
- Note the API key and copy it to the clipboard.
- Open PrusaSlicer and add a
Physical printer
:- Click
Printers
on the top bar - From the drop-down selector, choose the default system preset people normally use on this printer.
- Click the gear icon to the right of the printer profile drop-down. It's
pop-over text says
Add physical printer
- For the
Descriptive name for the printer
type, all lowercase, the name of the printer you're configuring, e.g.pinky
- Change
Host Type
toOctoPrint
- Enter the printer name for
Hostname
e.g.pinky
- Paste the API key from the clipboard into the
API Key / Password
prompt - Click
Test
and it should succeed. - Click
OK
and you're done! You'll see the new physical printer in the printer profile drop-selection list.
- Click
- Log out of
OctoPrint
. - Log in as user
nem
with passwordnem
and tick the box toRemember me
. - This is the user members will use on a day-to-day basis; it does not have access to OctoPrint settings.
If needed, manual configuration is documented at guides/OctoPrint_SETUP.md.
Look in guides/ for more docs around managing OctoPi and OctoPrint.
Examples of sending webhooks from OctoPrint.
Here's basic documentation for members who want to use OctoPrint
The Ansible playbook is pre-configured with details about each current printer. When adding a new printer for the space, one must first update the Ansible playbook before configuring OctoPrint on its corresponding Raspberry Pi system.
This has to be done by a developer on the Github repo:
export ANSIBLE_VAULT_PASSWORD="" # octoprint "steward" user's password
export ANSIBLE_VAULT_PASSWORD_FILE=ansible/.vault_password
ansible-vault edit nem-octopi/ansible/roles/octoprint/vars/main.yaml
Then push your commit and open a PR on the project. After it's been merged, one can continue on to setting up OctoPrint for that printer.