Skip to main content

· 4 min read
Mikkel Schmidt

Crowsnest just recently made huge changes to the way it works. This is great news, because it should be much faster and more reliable. Unfortunately, it also means that there are major breaking changes, and you'll need to do some manual steps to upgrade. When you update to V4 through the machine tab in mainsail, crowsnest will stop working until you execute the following steps.

Make sure to read these instructions carefully before starting the process, so you don't miss anything. Just to be safe, download a copy of your crowsnest.conf.

Upgrading

  1. Update crowsnest in the machine tab in mainsail. If it's no longer there, skip this step.
  2. Open a terminal window or command prompt (win + r, type cmd, hit enter) and ssh into your printer. The password is raspberry unless you changed it.
ssh pi@<your printer's hostname.local or ip address without the angle brackets>

Uninstall old crowsnest

  1. Run the following commands:
cd crowsnest
git pull
git checkout legacy/v3
make uninstall
  1. When asked Do you REALLY want to remove existing 'crowsnest'? (y/N) delete the N and type "y" for "Yes", then hit enter.

  2. When asked do you want to remove crowsnest.conf answer "N" for "No".

  3. Ignore the instructions to remove the crowsnest folder.

  4. Ignore the instructions to remove [update manager crowsnest] from moonraker.conf.

Reinstall crowsnest

  1. This next part will take a while, and you'll have to answer a couple of questions along the way.
git checkout master
sudo make install
  1. When asked Do you want to add 'update manager' entry to your moonraker.conf? answer "N" for "No".

  2. Ignore the instructions to add the crowsnest update manager entry manually (it's already there).

  3. When asked to reboot, answer "Y" for "Yes".

  4. After rebooting, go to the Machine tab in mainsail and edit crowsnest.conf. Enter your old settings from the file you downloaded, alternatively crowsnest should have created a backup file called crowsnest.conf.date-of-backup.

  5. (Skip if not using a Raspberry Pi) In crowsnest.conf change mode to camera-streamer.

  6. (Skip if not using a Raspberry Pi) Back in mainsail, edit your web camera settings and make sure the "Camera Streamer" option is selected.

  7. (Skip if not using a Raspberry Pi) Change URL Stream to webcam/webrtc Camera Stream option enabled

You're now using Crowsnest v4, which should have much better performance.

Thanks to tomlawesome for the image!

Making legacy CSI cameras work again (for example the raspberry pi cameras v1 or v2)

If you're using an older raspberry pi camera and it stopped working, you'll need to do some additional steps to make it work again.

  1. Disable legacy camera support by running sudo raspi-config and selecting 3 Interface Options -> I1 Legacy Camera -> No. Finally press escape to get out of raspi-config.
  2. Edit /boot/config.txt by running sudo nano /boot/config.txt. Find the [all] section at the bottom. Depending on which camera you have, you'll need to add a dtoverlay set statement at the end of the [all] section. Here's a list of sensors and the corresponding set statements. Look up your particular camera to find out which sensor it uses.
ModelSet StatementKnown Cameras with this sensor
OV5647dtoverlay=ov5647Raspberry Pi Camera Module V1
OV9281dtoverlay=ov9281?
IMX290/IMX327dtoverlay=imx290, clock-frequency=37125000?
IMX378dtoverlay=imx378?
IMX219dtoverlay=imx219Raspberry Pi Camera Module V2
IMX477dtoverlay=imx477Raspberry Pi HQ Camera
  1. reboot with sudo reboot
  2. reconnect to your printer with ssh
  3. libcamera-hello --list-cameras should return something like this: libcamera-hello output
  4. in this example /base/soc/i2c0mux/i2c@1/ov5647@36 is the new device for crowsnest.conf

· 4 min read
Mikkel Schmidt

RatOS V2.0.0 is now released!

RatOS

This is a huge milestone and I'm very excited to finally release RatOS V2.0.0!

There's been quite a few changes since the last release, so I'll quickly go over the most notable ones, feel free to check out the changelog for the complete picture!

Toolboards

You asked for it, and now it's finally here! Toolboards are now supported! There are currently 8 supported models to choose from, and more are on the way. The supported toolboards can be used with any of the control boards and any supported printer. As of the time of writing, RatOS currently supports the following toolboards:

  • BTT EBB42 v1.0
  • BTT EBB42 v1.1
  • BTT EBB42 v1.2
  • BTT EBB36 v1.0
  • BTT EBB36 v1.1
  • BTT EBB36 v1.2
  • Mellow Fly SHT42 v1
  • Mellow Fly SHT36 v1

Speaking of printers!

Thanks to our awesome contributors, RatOS now supports 7 different printers! v2.0.0 adds experimental support for the following:

  • Voron V2.4 (Thanks to Heisenberg19x#4580)
  • Voron V0.1 (Thanks to Heisenberg19x#4580)
  • Prusa i3 MK3S (Thanks to cloudhd3d#6175)
  • Prusa Mini (Thanks to cloudhd3d#6175)

These printers are still in the experimental phase, and we're looking for more contributors to help us test and improve them. If you're interested in helping out, please join our Discord and let us know!

Experimental BTT CB1 support

Thanks to the awesome work of blacksmithforlife#6070 we now have experimental support for the BTT CB1, this should be great news to those of you who are having trouble sourcing Raspberry Pi's. It's an ongoing process, and the CB1 itself is still maturing, but please give it a try and let us know how it goes!

Control boards

The control boards have also gotten a lot of love in this release. RatOS now additionally supports the following boards:

  • BTT Manta M8P
  • BTT Manta M4P
  • BTT Manta E3EZ
  • BTT SKR 3
  • BTT SKR 3 EZ
  • BTT SKR Mini E3 3.0
  • BTT SKRat 1.0
  • BTT Octopus Pro H723

Thanks to everyone who helped test the configurations and wiring diagrams!

Stowable probes

By popular request, stowable probes like euclid and klicky are now supported natively in RatOS (currently only on CoreXY). As usual everything you need is a single include and possibly some minor tweaking to 4 coordinates, quite a stark contrast to the work usually involved in configuring stowable probes. The probes are automatically stowed and deployed when needed and safeguards are in place to ensure safe operations.

Simplified installation

The configurator has gotten smarter and now knows how to flash your control boards and toolboards, check their versions and keep them up to date. This takes a lot of guess work out of the flashing process and makes it much easier to get started. This is a huge step towards making RatOS more user friendly while remaining modular and flexible, and it's only the beginning. As you might now, the goal is for the entire setup process - including configuration - to be done through the configurator interface in 3.0. This brings us one step closer to that goal.

Onwards and upwards!

RatOS has come a long way in the last year, and 2.0.0 brings us even closer to reaching the goal of a more accessible Klipper that doesn't require a computer science degree. We're not done yet, and i'm personally looking forward to the next major release, which i think is going to be really special. Onwards and upwards!

THANK YOU for your support

Thank you to everyone who donated, contributed, helped me test and suggest changes and improvements, it is much appreciated! If you wish to support the development of RatOS, please consider donating or becoming a sponsor, thank you!

· 4 min read
Mikkel Schmidt

No, you don't want to use CAN.

For some reason, the entire 3d printing community has convinced itself that it needs to use CAN bus connections for everything. I'm here to tell you why that's a waste of your time when running klipper.

What is CAN bus?

CAN bus is a multi-master protocol in which any device can initiate a message to any other on embedded systems where every device is known and there are no strangers. It can work over long distances and is less susceptible to noise than USB. CAN bus is also the opposite of plug and play, requiring configuration for each device and setup. It's also not very fast, and requires a lot of overhead to work. It was developed for use in vehicles, where redundancy is critical.

The strengths of CAN boil down to:

  • Redundancy
  • Noise tolerance
  • Long distance
  • 4 wires (power and data).

What is USB?

USB is a strict master/slave protocol, where unknown devices can be connected to a host which controls them. It was made so you grandmother can plug in a keyboard without knowing the intricacy of serial communications, device mapping and drivers. USB is fast, has ultra low latency but works best over short distances.

The strengths of USB boil down to:

  • Plug and play
  • Low latency
  • High throughput
  • Low overhead.
  • 3 wires (usb cable and power)

Why CAN has no benefits over USB for 3d printers running klipper.

Klippy (the klipper brain that runs on your raspberry pi) is in charge of everything going on in your 3d printer. It's the master. Your control boards are slaves, they do what they're told by Klippy. Latency is critical for homing and nobody likes additional overhead. We have 4 USB ports (and you can add more via hubs) on a standard raspberry pi, that means you can connect a virtually unlimited amount of boards to your printer.

But Mikkel, USB cables are so fragile?

No. Good modern USB cables are made to take years of abuse from teenagers plugging and unplugging their phone, dogs chewing on them, heck some of them can even be used to pull cars and lift weights. The bend radius that are tested are far tighter than what you'd ever use in a 3d printer. Durability is really not a concern, and even if your cable breaks, a new one is cheap and takes seconds to swap. Get a good braided USB cable and it will outlast the rest of your wiring.

But Mikkel, USB cables are super susceptible to noise!

Also no. If you use a modern 3.1 or better spec USB cable they come with heavy shielding and have no issues operating inside your 3d printer. You're not running 10 meters of cable here, even on a V-Core 500, you won't need much more than 1.5 meters. It's a non issue.

But what about redundancy?

CAN redundancy is wasted on klipper, your raspberry pi is the single point of failure anyway, so it literally doesn't matter if you connect a bunch of can devices together and then to the pi or you connect a bunch of devices via USB directly to the pi. If the pi dies, everything dies, CAN or no CAN.

But Mikkel, CAN is so much more reliable!

Is it? Your control board has run on USB for ever. It's been tested and proven to work. It works just as well for toolboards too.

None of the benefits CAN brings are relevant to 3d printing. You're wasting your time trying to get it to work, when you could just plug in a USB cable and be on your way.

CAN is slower, has higher latency, uses more system resources, requires more configuration and is more expensive to implement, and you benefit from none of it.

Stop worrying about CAN, and save yourself the headache!

· 2 min read
Mikkel Schmidt

Major moonraker config and file changes

As you might know, a couple of weeks ago, I issued a warning about updating moonraker due to a major change that involved file restructuring, config changes and deprecations. I now believe i've ironed out all the kinks, and I can now say that the update is safe to do, as long as you update RatOS first, as usual.

There are a few things to note about this update:

Users who installed RatOS before 1.2.1 have an unmanaged moonraker config, this means that it's up to the user to manage it and RatOS can't correct it when things need updating. Fear not though, as most of this is automated by moonraker itself. When you update moonraker, make sure to keep an eye on the notifications in the topmenu, there's a chance you might have to follow the instructions in there to finish the config validation. If you're asked to enter a sudo password, the default is raspberry.

Checking if your moonraker config is managed

To check if you have a managed config (and thus don't need to do anything besides clicking the update buttons), you can look in your moonraker.conf for [include config/moonraker.conf], if that is present, you have a managed moonraker config. If it's not, you have an unmanaged config, and you'll have to follow the instructions in the notification, if any is present.

Missing files after update

If you're missing files after updating (can happen if you do things out of order), you can run the following macro to restore them: DELETE_AND_RESTORE_PRINTER_DATA_DIRS. Restart moonraker and reload mainsail after running the macro.

Thank you for bearing with me, and happy printing!

· 2 min read
Mikkel Schmidt

RatOS V1.1 is now released!

RatOS

As some of you may have noticed, RatOS v1.1 has been released this week, bringing new templates, new modular driver and stepper definitions and support for new extruders and hotends. This release also contains an updated V-Minion template that will run out of the box with the just released V-Minion full kits that will start shipping soon.

Changes to stepper motors and driver settings.

This release mainly revolves around the new stepper/stepper driver setting recommendations from Klipper. Hold_current has been removed, stealthchop is now entirely disabled by default, interpolation has been disabled and microsteps have been increased to 64 to counteract the additional noise. This increases precision and you may see an increase in print quality. This change comes with the side effect of increased "R2D2 noise", tuned driver settings for the most used steppers have been included to combat this, but they will never be as silent in standstill as with stealthchop_threshold: 1. If you want a quieter printer refer to the "stealth mode" includes in the new printer templates, this will turn on stealthchop and limit print velocity at the cost of significantly reduced torque and precision. A nice consequence of this change is that it made it easier to make drivers and steppers more modular, it's now much easier to run high voltage steppers on some stepper slots, read more in the Advanced Stepper Configuration guide.

Updating from RatOS v1.0

V1.1 is backwards compatible, but there are still a couple of things you might want to do, read more in the Update Guide.

THANK YOU for your support

Thank you to everyone who donated, helped me test and suggest changes and improvements, it is much appreciated!

· 3 min read
Mikkel Schmidt

RatOS V1.0 is here!

RatOS

RatOS V1.0 is finally released, it's been a long road to get here, thank you everyone who has been testing and supporting me get this release completed. There's a lot of new exciting features that i'm dying to share with you all.

Mainsail is here!

RatOS now ships with Mainsail as the default UI. The Mainsail team has been teasing a lot of awesome features lately and now RatOS users get them too.

Automated firmware updates

That's right. RatOS will now flash your board for you everytime klipper is updated. This has been a high priority for me, since much of my time has been spent answering questions about the infamous version mismatch error. It hasn't been very clear to beginners, what they need to do to get things working again, after having updated klipper and getting presented with an error. This is now a thing of the past!

Unfortunately there's an exception for the Octopus Pro 429, since there's currently no way to flash that board automatically. Read more about that in the Octopus Pro 429 Board Documentation

RPi as additional MCU.

Automated firmware updates made it possible to add the RPi as an additional mcu, it's now preconfigured and automatically updated, so you can use it for additional GPIO's, ADXL345 or other sensors if you need to. This also opens up for using dual ADXL345's on bed slingers.

More powerful macros

RatOS now ships with the gcode_shell_command.py klipper extension, this allows for macros to compile binaries, pick your printer configuration, generate input shaper graphs and more without you ever having to SSH into your pi. It's been the primary design principle of RatOS from the start that running klipper on your printer should not require knowledge of SSH or Linux, so this is another step in the right direction!

More flexible macros

We've added a bunch of parameters you can configure for changing the behavior of the built-in RatOS macro's, want your START_PRINT to skip the bed mesh calibration? No problem. Want the carriage to park in the front during pauses? Easy! How about starting your print with a primeline? You've got it! Read more in the Macro Configuration documentation

Updating from V-CoreOS RC 2

If you're using V-CoreOS RC 2, take a look at the Update Guide for a smooth transition.

THANK YOU for your support

The amount of support and encouragement i've recieved from the community has been heartwarming, and totally makes the long nights worth it! Thank you for helping and thank you for using RatOS!

If you wish to donate towards a new spool of filament or a cup of coffee you can do so here: github.com/sponsors/miklschmidt or paypal.me/miklschmidt. Thank you very much!