Release notes Umikaze 2.1.1

From iagent
Jump to: navigation, search

Release notes

It's been a good 8 months in coming.

Below follows a list of features added to 2.1.1 since Kamikaze 2.1.0 came out:

  • BeagleBone Black Wireless support
  • Staging branch of Redeem installed by default, to get the latest goodies (tag 2.0.0).
  • TI C PRU compilation software packages (for new PRU firmwares in use on the development branch of redeem)
  • CPU governor fixed to "performance" by default, guaranteeing superior computational power when printing
  • Octoprint version number now the official release version, instead of git commit modifications.
  • Slic3r command line, allowing the use of the Slic3r plugin in OctoPrint


Errata 1: Octoprint and the /etc/kamikaze-release file will show Umikaze 2.1.1 RC2, however this is an oversight and will not impact functionality

Errata 2: G33 Fn is the incorrect syntax for multiple factors, despite what G33? returns. Use G33 Nn instead!

IMPORTANT FOR B3 USERS: Make sure you either unplug your power circuit (especially extruders & heated bed), or power only the BBB during the upgrade. Otherwise during the whole upgrade process you'll get the floating state of the replicape (when the motors buzz on boot). There is a patch for this in the wiki here.

Granted it sounds like a small feature change, given the amount of time it took to get it all done. However the trickiest of them was the wireless support. That alone took nearly 4 months of tinkering with the kernel in all sorts of ways to get it just right.

Now for the reason the release is made available before the integrated backup & restore of config files is built: The new version of Redeem requires the TI C PRU software packages (and a few python ones) not available in previous images of Kamikaze.

This new release of 2.1.1 unfortunately cannot fit in the eMMC of the 2GB beaglebones anymore - despite best efforts to keep the size down, the added requirements for Redeem make it just too large to fit.

Before merging the develop branch into master for Redeem, we want to make sure our users have all the needed tools to be able to install it, thus, 2.1.1.

So how do you upgrade to 2.1.1 without losing your files? Choose your current version below to get to the right section as needed:

Important notice about redeem

If you've been running a recent develop checkout (i.e. less than 3 months old) you can skip this section and move on.

The redeem code consists of multiple components, that run in different ways. Two of them are PRU firmwares - independent real-time pieces of code similar in essence to what arduino sketches would do (pardon the layman's explanation if you know better). The PRU firmwares in master until Kamikaze 2.1.0 were originally written by Elias Bakken in PRU assembly language and served the Replicape community well. But they were, in fact, not perfect. For one thing, the speeds and accelerations were incorrect - generally lower values physically than what was defined in the configuration. Andrew Wiley, one of the fearless redeem developers, has fixed that, by re-writing the PRU firmwares in C.

This means that any speed or acceleration value you had previously working with your machine will result in much higher acceleration and higher top speeds! It is highly recommended that you modify your values to be half to two-thirds of your previous values initially, then re-tune them to your machine.

You have our sincere apologies from the whole development team about this need to re-tune your values, however this guarantees a true correlation between configuration values and actual accelerations and speeds actuated by your printers, meaning if you had a working configuration using a RAMPS or other board, similar values should now be adequately close with Redeem.

These new PRU firmwares also require additional software packages to compile properly (and they get compiled and sent to the PRU each time redeem starts or the endstop configurations are modified). Umikaze 2.1.1 will not currently fit on the 2GB variants of the Beaglebone - efforts are ongoing to try and reduce footprint while maintaining functionality, but in the meantime it is recommended that you run Umikaze 2.1.1 off the microSD card if you use a 2GB beaglebone.

Configuration changes

Below is a snippet with the main parameters that have changed in the new Redeem version, though there may be some that have slipped through the cracks here and there. We will try to maintain this list updated if any omissions are found, so make sure to check back here if you have difficulties, or ask for help in the Google+ community, or even better, on the Replicape Slack (invite link here

Sections with changes on default from master to staging:

[Delta]
Hez = no longer used in calculations
Ae/Be/Ce = effector offset no longer used.
A/B/C_tangential - no longer used.
A_angular, B_angular, C_angular = now used.


[Planner]
No Longer used:
max_length = 0.001
New:
# if total buffered time gets below (min_buffered_move_time) then wait for (print_move_buffer_wait) before moving again, (ms)
min_buffered_move_time = 100
No longer used:
min_speed_x = 0.005
min_speed_y = 0.005
min_speed_z = 0.005
min_speed_e = 0.01
min_speed_h = 0.01
min_speed_a = 0.01
min_speed_b = 0.01
min_speed_c = 0.01

Upgrading from Kamikaze 2.0.8

Liked the stability of 2.0.8? Umikaze 2.1.1 RC3 has been tested thoroughly for several weeks by multiple users on cartesian, delta and core XY geometries. Few negative reports were made, and most of those pertained to Redeem bugs which were quickly fixed.

To backup your configuration you'll need either: - a USB drive of 4GB or more that you can plug in while maintaining network connection (i.e. USB hub if you have a wifi dongle) - a microSD card of 4GB with an empty file system and that doesn't contain a BBB image on it.

You'll also need a little bit of patience, and a computer where you can run SSH to connect to the BBB.

First you need to tell Kamikaze where to find the SD card, and which folder it should be made accessible as. Linux folks will know this as a "mount command".

The SD card on the BBB (and BBBW) should always have the same device name, so the following command should work: mount /dev/mmcblk0p1 /mnt/ Now, any file or folder added, created or removed in /mnt/ will be on the SD card.

So, the interesting part is to select what to backup:

Redeem configuration

cp -r /etc/redeem/ /mnt/redeem_cfg_backup will copy the files from /etc/redeem/ into a new folder on the SD named "redeem_cfg_backup".

OctoPrint configuration + Timelapses

cp -r /home/octo/.octoprint/ /mnt/octoprint_cfg_backup will copy the Octoprint files (including timelapses) over.

STL and GCode files uploaded to OctoPrint

cp -r /usr/share/models /mnt/models will copy the files you've uploaded to Octoprint.

Network settings

Unfortunately the 2.0 and the 2.1 *kaze image series don't use the same network configurator - there's no easy way to port this over, so you're most likely going to want to re-do this part after installing 2.1.1. If you're a linux guru and defined your own IPtables rules, though, go ahead and save those, I'm assuming you know how to do that since you set them up in the first place :)

Update your configuration for the new version of redeem

Keep a copy of your old files in some place relatively safe, in case you decide to come back to 2.0.8 for some reason.

Then you'll want to edit your local.cfg to look for any of the parameters described in the configuration change section, and edit your file in accordance (remove no longer used parameters, and if you know what they do, override the relevant new ones with the values you need.

Upgrading from Kamikaze 2.1.0 with Redeem's master branch

Please backup your files as per the instructions for Kamikaze 2.0.8 users above.

However, as network settings for 2.1.0 and 2.1.1 are compatible, do back those up as well:

NetworkManager settings

Running cp -r /etc/NetworkManager /mnt/NetworkManager will copy the network configuration settings you have saved.

Upgrading from Kamikaze 2.1.0 with Redeem's development branch

Good news - your configuration should be up to date, depending on when was the last time you did a git pull for the develop branch! So, what you need to do first is to go to the /usr/src/redeem folder, then execute (when not printing, obviously!):

git pull && git checkout stating && python setup.py clean install && pip install nympy && systemctl restart redeem

Check that Redeem has restarted properly, and look for any messages about obsolete or undefined configuration options. If redeem hasn't restarted, use systemctl status redeem -l -n 100 as a means of checking for errors before redeem starts dumping things into the log file. Those error messages should be pretty explanatory. If not, come to #support on Slack and ask for help, we're always happy to help.

Once Redeem is starting again, finish backing up everything else, using the instructions for 2.0.8 and 2.1.0 and get ready for the flash.

Upgrading

As always, the recommended way of flashing the Umikaze 2.1.1 image is to use Etcher.

You'll need a microSD card of 4GB at least, and be ready for the fact that all data on it will be erased to make room for the Umikaze image.

Important note if you can't easily access your BBB mounted on the printer

If you have difficulty accessing your BeagleBone to connect it via ethernet or the mini-USB socket, please take the time to read this section before proceeding, it'll save you time and pain. Or at least warn you of what's ahead.

If you were using 2.1.0 and have a backup of your Network settings (i.e. NetworkManager folder on your backup disk), it may be helpful to copy that file directly over into the image you flashed for Umikaze 2.1.1 before flashing the BBB with it. Why? Because then when you flash, you're flashing with the files already pre-installed.

If you were running 2.0.8, the network manager has changed and is no longer connman, but NetworkManager instead. Why? Mostly because we like the ability to use nmtui as a simple text interface network configuration tool where you don't need to issue arcane commands picky on the syntax.

Copying NetworkManager settings onto the Umikaze flashed image

You'll need to be able to read the files on the flashed SD card. OS X and Linux will have no trouble doing this, Windows will be slightly more of a challenge. The SD card uses an ext3 file system, which Windows doesn't natively read. However this tutorial will help you achieve that.

Once you see the files on the SD card, copy the entire NetworkManager folder from your backup drive to within the etc folder on the Umikaze image. You will want to overwrite any files and folders previously existing there.

Done!

Creating a NetworkManager setting on the Umikaze flashed image

Assuming you've been using 2.0.8 for a while, you may be wondering "how in the world will I get Umikaze connected if I can't hook up a cable to my BBB?" Fear not. Two ways for this exist.

  • The simpler, easier way, is that if you have a spare BBB lying around, you can edit one line of one file on the SD card so it will boot from SD instead of flash from SD. This file is boot/uEnv.txt and the line to edit is the very last one in the file - simply add a # in front of the command. Now, you can boot the spare BBB off the SD card, set the wifi network you want using nmtui, make sure you're connected to the 'net with it, and then shut it down. Pull out the SD, insert it into your computer, open up the boot/uEnv.txt file again, remove the # sign you inserted on the very last line, save, remove the SD card and flash away.
  • The slightly more complex way, because you'll need to create a configuration file instead of use the tools to set one up for you, means creating a file and editing it on the SD card. You'll need to be very careful about following the right syntax and not having typos. You'll need to create a file in this folder:

etc/NetworkManager/system-connections

[connection]
id=<your network name as you want it to appear in the manager>
uuid=8836d6ae-0218-4c96-a204-247109ab820a
type=wifi
permissions=
secondaries=

[wifi]
mac-address=<the mac address of your BBB's wifi device>
# you can get your BBB's mac address by running ifconfig on your BBB and looking for the entry with the IP of your network.
mac-address-blacklist=
mac-address-randomization=0
mode=infrastructure
seen-bssids=
ssid=<your wifi SSID, the name of the wifi network>

[wifi-security]
auth-alg=open
group=
key-mgmt=wpa-psk
pairwise=
proto=
psk=<your wifi password>

[ipv4]
dns-search=
method=auto

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto


Flashing

Insert the microSD into the BeagleBone when it's powered off.

Power up the BeagleBone, holding down the boot button (the button closes to the SD card slot) until you see all 4 LEDs light up. After up to a minute the cylon (or Knight-Rider) pattern should start going, indicating the flash is happening.

After Flashing

Now's the tricky bit, how do you make sure you get all your files back on, especially if you've mounted the BBB in a place it's hard to reach and not easy to connect to a computer?

If you were running 2.1.0 before, you should have your previous network settings if you were using a wifi network. There's a trick you can use if you're running Mac OSX or Linux, where before you flash you can insert your settings in the SD card's files in the proper location, so they get copied over with the flash.

Otherwise, your best bet is to manage to get your BBB tethered to a computer via USB (the mini or micro port next to the power connector, away from the replicape's power input). Whether you use Windows or a *nix system, you should be able to access it locally on the USB-ethernet bridge. Then use ssh or PuttY on Windows to logon (if 192.168.7.2 doesn't ping on Windows, try 192.168.6.2).

Restoring Network Configuration

This is assuming that you have managed to connect to your BBB after the upgrade (either via ethernet or USB-ethernet tether), and haven't copied the files into the image SD card first. This step is only helpful if you were using Kamikaze 2.1.0 prior to the upgrade.

Mount the USB drive or SD card back in after being logged in via SSH to the BBB.

  • If using an SD card, mount it with mount /dev/mmcblk0p1 /mnt/
  • If using a USB flash drive, list USB devices with ls /dev/sd* and mount it with mount /dev/sdX1 /mnt where the X in sdX refers to the listed device.


Then copy the NetworkManager files back in place with: cp -r /mnt/NetworkManager /etc/

Restoring OctoPrint Configuration & TimeLapses

This one needs to be done right after you restore the network communication. This is because OctoPrint itself has an internal upgrade mechanism and if you use old configuration files, OctoPrint reads them, then just upgrades them after having loaded the values it can from the files on disk. Cool, right? Thank Gina over at octoprint.org. We're still trying to catch to all the awesome bells and whistle's she's managed to build into OctoPrint!

Assuming you've mounted your SD card or backup drive as indicated in Restoring Network Configuration, follow this simple step to restore OctoPrint configurations:

cp -r /mnt/octoprint_cfg_backup/* /home/octo/.octoprint && sudo chown -R octo:octo /home/octo

Then restart octoprint, either through SSH with systemctl restart octoprint, or via the OctoPrint interface if it's available to you.

Restoring Redeem Configuration

What's important here is to copy only your local.cfg file, and not all the files. The reason for this is that Redeem's default.cfg file has changed since the last version you had installed, and you don't want to feed it a file without all the values it expects, and some it doesn't use anymore. So.

The best way is to go through the octoprint Redeem plugin tab in the settings panel, and hit the "edit" icon next to the local.cfg file. Copy the contents of the local.cfg file you had backed up into, save, make sure you select the printer geometry type you need in the list below by clicking the star, and then press the blue "Restart Redeem" button. After a minute or so you should be able to reconnect OctoPrint to Redeem and start moving your printer again.

That said, make sure you have your SD or USB drive inserted and mounted as in Restoring Network Configuration and then follow these simple steps:

cp /mnt/redeem_cfg_backup/local.cfg /etc/redeem/ && sudo chown -R octo:octo /etc/redeem

Restoring the STL and GCode models

Again make sure you have your SD card or USB drive inserted and mounted as in Restoring Network Configuration.

Then simply run cp -r /mnt/models/* /usr/share/ && sudo chown -R octo:octo /usr/share/models

Voila, you're done!

To cleanly unmount your SD card or USB drive (i.e. to make sure all files are properly copied in place and not risk damaging the filesystem on the removable storage device), execute umount /mnt/. Wait until the command finishes, and once it's done, you can remove the USB or SD drive from the BBB and start discovering the changes we've made.

Admittedly they're all a bit deeper than the surface, but you should enjoy a smoother printer than you had before.

Enjoy!