Spaghetti Detective (Obico) on the Neptune 4 Max

Neptune and Obico

I have been using the Neptune 4 Max for a little over a month now. Love the printer, but it can misbehave. I have been printing for a few years now and I can count on one hand how many spaghetti monsters I have printed. That number has already been dwarfed with the addition of my N4M. While doing some research on why and how to stop it I came across the Spaghetti Detective (renamed Obico). I have heard of this many years ago and just never had a use for it, plus it costs money. I did a little more looking this time and found out you can self-host the platform to use the detective. No more paying for it. I like free. I should note that Obico does have a free tier, but it only provides 10hours of AI crunching detection.

Here’s how I installed Obico/Spaghetti Detective on my Neptune 4 Max. You should be able to follow Obico’s installation instructions and just adjusting the file paths but just in case I wrote up how I did it. I have a small Linux server (an Intel NUC) that sits in my office and runs all of my goodies. Anything that needs to run 24/7 or be accessible at all times lives there. Unfortunately while a Raspberry Pi is great for most things Obico states that they do not have enough power to run the AI software. A more robust piece of hardware is required, any old computer or laptop should work. They did just release the Pi5 so I am curious if that would work. If the machine has an NVIDIA card in it even better.

Obico released a small guide to get you started with Obico and the Neptune 4 Max with the cloud. These directions will get your printer setup for Obico. There are similar instructions below on how I did it for the self-hosted version of Obico.

[https://www.obico.io/blog/elegoo-neptune-4-and-obico-ai-3d-printing-revolution/]

Index

Step 1 – Install Obico (Spaghetti Detective) [Server side]

https://www.obico.io/docs/server-guides/install/

This is the part for installing Obico on your server (non Raspberry Pi). I run a headless Linux box so all of my commands and references will be in regards to that. If you are on Windows you can probably just follow the Obico directions referencing the proper paths for the printer stuff here. You will need Docker (how to install Docker on Ubuntu) and Docker Compose (how to install Docker Compose on Ubuntu) on your machine for this to work.

Git it!

At the time of this writing they were in the process of updating Obico to a new release. The main release was broken and did not work for me. It would install on both the server and printer but the linking process would not work properly. It would not find the printer and the manual codes did nothing. After scouring their Discord I discovered I had to use the pre-release branch at this time (use at your own risk).

git clone -b pre-release https://github.com/TheSpaghettiDetective/obico-server.git

This is for the normal release:

git clone -b release https://github.com/TheSpaghettiDetective/obico-server.git

Then,

cd obico-server && sudo docker compose up -d

Might take a minute to finish, its a lot.

If you installed The Spaghetti Detective on your local machine you can visit http://localhost:3334. If you installed it on a different machine use that IP address with port 3334. Mine is installed on my local server so I am using that address vs localhost. You should see the Obico login page.

 

Configure the Admin/Django

The next steps are taken from https://www.obico.io/docs/server-guides/configure/

Visit your Obico server install in a browser, http://your_server_ip:3334/admin/ .

Login with root@example.com  and with the password supersecret .

Change the default users email and the password. You can do that via the menus or by visiting this URL:

http://your_server_ip:3334/admin/app/user/1/password/

 

Now we need to change the domain name for Obico/Spaghetti.

Visit the site URL http://your_server_ip:3334/admin/sites/site/1/change/  or navigate to site  settings in the admin menu. Change the domain name to the IP address of the machine that is hosting Obico Server, the one you installed it on – with the port 3334. So for example 192.168.1.100:3334 – no HTTP or HTTPS is needed.

If you are opening this up to the internet and using a reverse proxy the domain name needs to be reverse_proxy_ip:reverse_proxy_port .

More directions for that are here: https://www.obico.io/docs/server-guides/advanced/reverse-proxy/

 

Email Notifications

Back on the machine you installed Obico Server on we need to copy and edit a file to enable the sending of email notifications. If you do not need or want email notifications you can probably skip this step.

In the obico-server  folder that was created make a copy of donenv.example  and rename it .env . Open it up for editing. Remove the #  sign to enable that part of the config.

Copy the example file: sudo cp dotenv.example .env

Now lets edit the file sudo nano .env

Make your changes, ctrl+o  to save, ctrl+x  to quit.

Unfortunately GMail is doing away with app passwords, so while there is a guide for using GMail as a notification service with Obico after September 30th, 2024 it will no longer work. GMail is transitioning to OAUTH for that stuff. There may be a guide for that in the future but for now I would suggest using Pushbullet/Discord or another notification option if all you have is GMail. If you have an email service besides GMail this should still work for you.

Edit the .env file

Run the command docker compose up --build -d  to rebuild Obico.

 

Step 2 – Install Obico on Klipper [PRINTER SIDE]

Now we have to SSH into the Neptune 4 Max to install Obico for Moonraker. Open up a terminal window to connect to the printer.

From the terminal prompt type:

Once you’re in run the following commands:

Get a soda this is gonna take a minute. Once it finishes it will prompt you for some information for your installation.

 

Moonraker info

It will then ask to confirm some configuration file paths

Now it should start scanning your network looking for the Obico server you specified. Hop over to your browser with the window open from earlier to link your printer.

Click add printer then select pre-installed Klipper then click next, it should start scanning for your printer. Your printer and the server need to be on the same network for this to work. If successful you should see an icon and some information about the printer it found. You should now be linked and you should be able to see the printer in Obico.

 

You’re done!

 

 

My configs (for reference)

Here is a copy of what my config files look like in case you get lost, you can compare. I ran into so many errors and issues until I used the pre-release I started to forget my steps and what caused what issue.

 

Printer side configs

moonraker.conf

Location: /home/mks/klipper_config/moonraker.conf

 

moonraker-obico.cfg

Location: /home/mks/klipper_config/moonraker-obico.cfg

It is important that there is an http://  before your servers IP or it will not work – this had me hung up for so long. If you see an error on the printer side after running ./install.sh  that says something to the effect of X.X.X.X:3334/api  something and no adapters found  then your address in this file is not correct.

I do not know if this is required or not but I had added the API key. In the moonraker section the API key it wants is from your printer. Connect to Fluidd (your printers web interface) and go to [Settings] > [Authentication] > [API KEY] , this will display a QR code and the key. Copy the key and paste it here.

(I have obscured my API keys but the file should resemble this)

 

Server side configs

The only server side file that needs to be edited is the .env file for your email server settings, these are different for every mail server.

 

 

Common tasks for operating a self-hosted server

Taken from [https://www.obico.io/docs/server-guides/ops/]

Update Obico Server

Note: if you are on Linux you may need to run the last line as sudo.

Note: you need to use docker-compose instead of docker compose on older Docker versions

Backup database

Just make a copy of obico-server/backend/db.sqlite3

Access timelapses stored on your server

Although you can simply download the timelapses from either the web interface or the mobile app, it may be important to know exactly where the timelapses are stored on your local machine.

Path to timelapses:

obico-server/backend/static_build/media/tsd-timelapses/private/

 

Uninstall Obico for Klipper

[https://www.obico.io/docs/user-guides/moonraker-obico/uninstall/]

To remove the code and system services for Obico for Klipper, run these commands

 

To remove the configuration:

Also edit /home/mks/klipper_config/moonraker.conf  to remote this line at the bottom:

[include moonraker-obico-update.cfg]

 

 


Discover more from Its_All.Lost

Subscribe to get the latest posts sent to your email.

Leave a Reply