My LabelWriter 450 served me pretty well, but the smaller shipping label size was never adopted by anyone but paypal and I just wanted a printer that worked with the standard 4” X 6” shipping label.

I had to build and install the Dymo SDK with my last printer, but apparently since then Dymo has abandoned Linux and their driver installation is broken. I found a git repo with a repaired fork of the Dymo drivers and some updated instructions for the install:

    sudo apt-get install git libcups2-dev libcupsimage2-dev gcc g++ automake
    cd ~/
    git clone https://github.com/Kyle-Falconer/DYMO-SDK-for-Linux.git
    cd DYMO-SDK-for-Linux
    aclocal
    automake --add-missing
    autoconf
    ./configure
    make
    sudo make install

Once the drivers were installed all the templates showed up in glabels again and I was able to print labels again.

Cluster Hat

Out of habit I add a Pi Zero to every Adafruit order I make (or anywhere else that sells the Pi Zero for $5) and have built up quite a collection, I had been looking at some Pi cluster projects but the wiring for network and power always seemed anoying and fragile.

You may wonder why someone would want a slow pi cluster, I have been looking at using Ansible as a way to manage software for all my pi based projects and for some cloud automation and thought a cluster might be a fun way to build an Ansible test bed and learn how to manage multiple Pi’s. Then I discovered the ClusterHAT which attachs to a Raspberry Pi 2/3 “Controller” and uses USB Gadget mode to connect and power 4 Pi Zero “Nodes” into a small cluster with a hat that connects via USB and the GPIO with no other networking or wiring required.

Since putting together a hub and all the cabling to make my own cluster still seemed anoying and was also more expensive I immediately ordered a ClusterHAT and another Pi Zero from Pimoroni. Using the pre-built images provided in the simple section of the ClusterHAT software setup page I prepared SD cards for each Pi before the hat arrived, I used a 10X 32GB card for the controller and 4 10X 16GB cards for each of the nodes. Using my trusty label printer I labeled each Pi Zero and SD Card. After about a week they arrived from the UK and I installed the SD cards I had prepared for each Pi and set about attaching the hat to a Pi 2 and an acrylic plate I had laying around.

Cluster Hat

I connected the Pi 2 to ethernet and powered it up, using Angry IP Scanner I angrily scanned my network and found the IP address for my new cluster controller and used SSH to connect to it:

After logging in I just typed clusterhat to see what would happen:

Cluster Hat Terminal

Seems legit, let’s turn them all on and then back off again:

Cluster Hat Terminal

A nice indicator light on the ClusterHAT lights up when each Pi Zero is turned on. After turning them back on again I angrily scanned my network again and saw 4 new IP addresses for P1, P2, P3 and P4. It really was that easy to get the ClusterHAT up and running I used SSH to connect to each pi and expand the file system, I didn’t make any other raspi-config changes as I want to try and use Ansible for that later.

Ansible Time

First I set up a public/private keypair on the controller so I don’t have to do any login stuff:

// Generate the key
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
// Spit it Out
cat ~/.ssh/id_rsa.pub

I copied the key output and used SSH to connect to each Pi Zero from the controller:

sudo ssh [email protected], P2, P2, P4
sudo mkdir ~/.ssh
sudo nano ~/.ssh/authorized_keys

Paste the key value into nano and use CTRL X to save and exit nano and then SSH on each Pi Zero. From the controller SSH to each Pi Zero and accept the certificate and verify you don’t have to enter a password to connect.

Then on the controller install ansible:

sudo apt-get install python-pip git python-dev sshpass
sudo pip install markupsafe
sudo pip install ansible

Next I created an ansible directory and setup a hosts file:

sudo mkdir ~/ansible
sudo nano ~/ansible/hosts

And pasted the following text into nano and used CTRL X to save the hosts file and and exit:

[clusternodes]
p[1:4]
[clusternodes:vars]
ansible_ssh_user=pi

If everything has gone perfectly you should be able to issue some ansible commands, first lets check that our ansible hosts file is set up correctly:

ansible -i ~/ansible/hosts clusternodes --list-hosts

Ansible Hosts Terminal

That worked, now lets see if we can ping all the nodes:

ansible -i ~/ansible/hosts clusternodes -m ping

Cluster Hat Terminal

That’s it, ansible on a pi zero Clustercluster using SSH keys for login, now I have to dig into making playbooks and additional ansible configuration options. The The ClusterHAT really is a nice way to build a little cluster without fighting with a ton of wiring and USB and ethernet hubs.

I have used OctoPrint to manage prints in the past with my Printrbot. As time went on I found myself using the SD card more often because it was more reliable. When I got my new MAKEiT Pro-M printer I continued to use the SD card because it has a fantastic tune feature that lets me adjust a number of settings on the fly if you are printing from the SD card.

Since most of the adjustments I make after a print does not start right or fails is just one or two settings being able to change settings on the fly has really saved me a lot of time. The timelapse and status features of OctoPrint are cool but I found I did not really miss them, I did really miss being able to upload gcode to the printer from my PC.

I knew that WiFi sd cards existed and were used by a couple of photographers I know, but when I had last looked they were pretty expensive a quick search of amazon and I found the Toshiba FlashAir 16GB. The card came with some windows software, but since I was on Linux I it was all pretty uselesss. I did find a config file in SD_WLAN folder at the root of the SD card.

With a little googling I discovered that I wanted to put the card in client mode (APPMODE=5) and allow uploads with UPLOAD=1. Then you set the APPSSID and APPNETWORKKEY for your WiFi network.

[Vendor]
CIPATH=/DCIM/100__TSB/FA000001.JPG
VERSION=FA9CAW3AW3.00.00
CID=02544d535731364731dc1d667900f901
PRODUCT=FlashAir
VENDOR=TOSHIBA
UPLOAD=1
APPMODE=5
APPNAME=makeit_prom_01
APPSSID=YOURSSID
APPNETWORKKEY=YOURPSK
LOCK=1
APPAUTOTIME=300000

I put the SD card back in my printer and turned the printer on. Using the connected clients section of the administration tool for my home router I figured out the IP address of the card and set it to have a sticky IP so I could easily find it again.

You can browse the files on the sd card by typing the ip address into the url bar of your web browser. The upload page is located at /upload.cgi.

I have been using the card for over a week now, it it has made the process of loading gcode to the printer much nicer.