Linux, 3D Printing edit

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.


Pi Cam Assembly

I have wanted to build a motion activated and time lapse capable raspberry pi camera for a while now but never really found a case I like. I found this nice case for a raspberry pi and camera on thingiverse. It was designed for a specific fisheye camera but looking at the model it appeared that one of the cheap Chinese fish eye cell phone lenses I have would fit nicely in the hole.

I fired up tinkercad and used my calipers to measure the space inside the camera case and the thickness of the RaspiCam board and created a model to mount the official RaspiCam. I used two small pieces of gaffers tape to attach the camera to the support piece, snapped the lens into the hole in the case and slid the camera into the case. You can find my camera part here

This is really a nice simple project, any raspberry pi and camera case will work, you will also need:

  • Raspberry Pi Model B or B+, 2 or 3
  • Raspberry Pi Camera Board
  • Raspberry Pi Camera Cable
  • Button - I used on of these
  • 2 Female Jumper wires
  • Cell Phone Fisheye lens
  • SD Card

Halt Button

I soldered a couple of female jumper wires to a small momentary switch to use to halt the pi for both the surveillance and timelapse setups. For the timelapse software I am using the code from this Adafruit project which includes code for a halt button.

I have stripped this script of the time lapse features for use on the surveillance camera. Because I wanted both of these camera projects to automatically start on boot I have chosen to have two SD cards set up with raspbian lite that automatically boot into either the surveillance or timelapse camera mode. The button is connected to gpio 21 and ground on the pi, the last two pins next to the usb ports.

Motion Camera Software Setup

Since I didn't need a desktop OS for this project I downloaded the Raspbian Jessie Lite image and installed it on a SD card using Disk Image Writer in Ubuntu.

Once I booted up the raspberry pi I used raspi-config to expand the file system, set internationalization options for keyboard, time and wifi, enabled the camera, overclocked the CPU and enabled SSH.

The next thing I did was to disable the camera LED since I didn't want the camera to indicate that it was on.

// Edit the config.txt file
sudo nano /boot/config.txt

// Add the following line
disable_camera_led=1

The standard version of motion from apt does not work with the RaspiCam module, but there is a community supported version that has been compiled for use with the RaspiCam. There is more information on a wiki here.

Below are the commands I used to install the custom motion binary for the RaspiCam with the latest version of Raspbian Jessie Lite.

Pi Cam Assembly


// Install the motion prerequisites
sudo apt-get install -y libjpeg-dev libavformat56 libavformat-dev libavcodec56 libavcodec-dev libavutil54 libavutil-dev libc6-dev zlib1g-dev libmysqlclient18 libmysqlclient-dev libpq5 libpq-dev 

// Download and unzip the raspberry pi specific motion binary
wget https://www.dropbox.com/s/6ruqgv1h65zufr6/motion-mmal-lowflyerUK-20151114.tar.gz
tar -zxvf motion-mmal-lowflyerUK-20151114.tar.gz

// Test out the results
$ ./motion -c motion-mmalcam-both.conf

If you see success messages logged in the terminal after running motion, point your web browser to the ip of the raspberry pi port 8081 and you should see your camera streaming.

Timelapse Camera Software Setup

I downloaded the pre-build SD card image from Adafruit I used raspi-config to expand the file system, set internationalization options for keyboard, time and wifi, overclock the CPU and enabled SSH.

The pre-built card just works, boot up the pi and it starts taking timelapse images, hold down the switch and it shuts down the pi. I want to build the pi zero wearable version of this project but don’t yet have all the parts.

Once I had a bunch of images I made a video using FFMPEG

ffmpeg -f image2 -i img%06d.jpg time-lapse.mp4

These are both a couple of nice raspberry pi camera projects that don’t require many parts..

Linux, Ubuntu edit

When I started using Linux printers eluded me a bit, my Canon multifunction printer did not have good linux drivers for quite some time and initially I could not find any software to run my small Brother label printer. Eventually Canon improved their driver and I found a program called blabel for my brother label printer.

I have been shipping enough 3D printed objects on 3DHubs that I became annoyed with printing out labels with my inkjet and then tapeing them to padded envelopes. A long time ago I worked with some commercial thermal printers and figured that was the way I wanted to go since they don’t smudge or use any ink. I looked a couple of different times but the printers were still pretty expensive. Eventually there was a sale and I purchased a Dymo LabelWriter 450 Bundle for $49. Before purchasing I checked and there were linux cup drivers available since I only have windows running in a VM.

Once you have downloaded the drivers, unpack them and then install.

    cd dymo-cups-drivers-1.4.0.5/
    sudo ./configure
    sudo make
    sudo make install

Once the drivers were installed I added the printer using the built in Ubuntu add printer wizard and installed glabels. The bundle I bought came with 4 different types of labels that I was able to create custom templates for in glabels and print some stickers for my friend’s company.

HG Logo

And some warning labels for their trailer:

HG Logo

The bundle did not include the right labels for printing USPS Shipping labels so I purchased these labels. I set up the shipping labels in the preferences for the printer and then went into my paypal multi order shipping options and adjusted the following settings.

Paypal Setup

Now I can easily print shipping labels for 5 cents each and don’t have to mess with cutting and taping anymore.