Category Archives: Research

Raspberry Pi + Thermal Printer


I’m looking at doing some experimentation with thermal printing, using the same type of device that prints point-of-sale receipts. I found the Adafruit tutorials to be a little incomplete, so here’s how I got my printer up and running.

  1. Download the full version of Raspbian Jessie (Lite will not work).
  2. Open the terminal and type   tar xzvf /path/to/your/file/ (the file is too big to unzip by double-clicking in OSX).
  3. Use ApplePi-Baker to transfer the .img to an SD card (I couldn’t get the official terminal method to work).
  4. Boot up the Pi and follow these instructions.
  5. Connect the printer to a 5V power source. I could only get it to work with a 10A supply, which is rated far above the 2A that the Adafruit tutorial calls for. You can test the printer by holding down the button near the power LED and then turning on the power.
  6. Wire up the printer data lines to the Pi’s GPIO pins. If you use a Pi rev1 like I did, you want pins 6, 8, and 10. Note that the RX and TX lines cross between the Pi and the printer.
  7. If you get a permissions error at the end of the Adafruit tutorial, open the terminal and type  sudo usermod -a -G lpadmin pi (source).
  8. Finish up with these steps for network printing (optional).


Arduino + Processing

Sparkfun has an excellent tutorial on the process of getting communication going between Arduino and Processing. It’s a bit word-heavy for my taste, so here’s a condensed version that my students are using this semester. All that’s required is an Arduino, a 10K resistor, a photoresistor, and some wire. See the comments at the top of the Arduino sketch below for a simplified wiring diagram. Note: this code only works one way (Arduino > Processing).



First you should run this short program to find which port the Arduino is communicating on:

Now edit the following program with the port (around line 13) and run it. Don’t forget to plug in your circuit and to close the serial monitor in Arduino if it’s currently running.


RPi web cam baby monitor


Aah – the summer arrives, so now I can actually finish/document some work that languished during the academic year. Have a look at this project over on Github and build your own! This fork of the popular RPi_Web_Cam_Interface adds support for night vision via IR LED ring (including auto shutoff so you’re not blasting your tot with IR all night).

Manual WordPress Site Backup (Bluehost)

I found the process of learning how to backup wordpress with my host pretty confusing. On the one hand, noobs might not be aware that the files that make up the website can be downloaded directly via FTP, but that the database that houses all the text/page content must be acquired separately. Bluehost also has a couple of videos stating that free backups are performed on a daily/weekly/monthly basis, but it seems that only weekly is currently true (and, confusingly, it’s labeled as a daily backup). So…

  1. Log in to cPanel
  2. Click on File Management > Site Backup Pro
  3. Click Free > Backup and Restore
  4. Download MySQL database and Home Folder
  5. Update: Home Folder download keeps failing, so I’m just FTPing it instead.

Note: I have not tried restoring these yet, so YMMV.

Seeed GPRS v2 in Hong Kong?

It’s the classic new media problem: you’ve got a cool show abroad, but will all your technology still work over there? I need to determine whether this board and this SIM card will be compatible in Hong Kong. This page suggests that 2G (a limit presented by the board) is still available in Hong Kong, and that the 900 band is still active. I suppose my fallback will be purchasing SIM cards when I arrive, but I’d like to avoid that. It may be cheaper, however, so maybe I’ll try both.

Adding IR LEDs to an RPi Noir Cam (WIP)

A little research online seems to indicate the potential for IR LEDs to damage eyesight. Perhaps this is the tinfoil hat squad talking, but I don’t want to take chances with my kid’s eyesight. Thus, we need to wire/program the pi so that it only flips the IR array on during active recording.

A little poking around revealed that the status of the camera (“ready” or “halted”) is held at /var/www/status_mjpeg.txt . I created a simple python script in the same directory called

Lastly, edit /etc/rc.local  with nano to include  python /var/www/  somewhere before exit 0 . That will cause the script to run on startup.

Next up: connect pin 7 to a transistor so that it can control an IR array!


6040 Progress

Just pushed some big updates to Github, where I’m tracking the process of getting a Chinese 6040 mill up and running. Check it out and participate if you’re interested.

Signal Culture vs. Unauthorized Repairs #004

Signal Culture residency begins


One of the great things about the Signal Culture residency is that they understand tool making as a creative practice. I brought along my 6040, an aluminum mill that I bought from China via eBay. Though I did not fabricate this mill myself (like we did with DIYLILCNC), the 6040 came with no instructions, so I’m applying all my DIY know-how to getting it up and running. I’ll use both this blog and github to document the process.

Raspberry Pi Baby Monitor

Today I got down to business on a new Raspberry Pi project. I started with the following parts:

  1. RPi 2B (w/ 8G NOOBS)
  2. USB wifi dongle
  3. RPi Noir camera board
  4. Monitor, keyboard and mouse (just for setup)

Following a clean install* I set up my RPi to enable SSH and the camera. If your RPi system software is already installed, you can reach these features by entering raspi-config  in the Terminal. I also got the wifi dongle talking to my network. Camera installation is really simple. See this link to make sure you get the ribbon cable polarity right.

Now we install RPi-Cam-Web-Interface. The documentation is a little hard to follow, so here’s a condensed version:

  1. sudo apt-get install lsb-release
  2. lsb_release -a
  3. Confirm OS code name is “Jessie”
  4. git clone
  5. cd RPi_Cam_Web_Interface
  6. chmod u+x *.sh
  7. Enter the IP address of the RPi into a browser from another computer on your network. You should get a page full of options and a live image from the camera.

Ok! Next time I’ll talk about adding UV LEDs.

*After one unsuccessful run at this project, I ran into problems trying to reinstall NOOBS from the RPi boot screen. You’re supposed to be able to do this by holding shift, but I couldn’t get it to work (even after trying all the voodoo like rapidly pressing both shift keys in alternating fashion). I wound up downloading a fresh copy of NOOBS and copying it to the SD after wiping it with the OSX disk utility. Everything worked perfectly after that.