Simply Crochet Robot

[Post by SHHM member Sarah Cullen]

I enjoy mixing traditional crafts with tech. A while ago I decided to teach myself crochet, mostly using YouTube and a couple of crochet books. I found a pattern for a crochet robot toy and decided that instead of just crocheting buttons and a light, I’d use sewable electronics instead.

The crochet pattern came from Issue 16 of Simply Crochet.

I used a CR32 coin cell battery holder, battery, sewable steel thread and a large red LED for the light on the robot’s head.
To sew the light on, I pushed the legs of the LED through the top of the crocheted head and then used round nose pliers to coil each leg out to the side, flat against the crochet. On the inside of the head, I stitched from the negative terminal of the battery holder, lightly through half of the thickness of the crochet (so the thread didn’t show on the outside of the robot) to the negative leg of the LED. When sewing through the coil of the leg of the LED, I sewed knots as I went, as the steel thread has a bit of spring to it, and so wants to open up, but this can break the connections in your circuit. I did the same thing, with a separate piece of steel thread, for the positive side of the LED and battery.

The buttons on the front of the robot are a bit more involved. They needed 2 battery’s worth of power and a LilyTiny circuit board to create the flashing. The batteries are connected to the LilyTiny and then the LilyTiny is connected to the LEDs. Although the LilyTiny is designed for 4 LEDs, I connected more, in parallel, as I had more than 4 buttons that needed illuminating. The default patterns programmed into the LilyTiny were fine, so I didn’t need to reprogramme it.

The end result is here:

More LED crochet
I followed that project up with some a monkey & ninja from the Creepy But Cute crochet book and a pirate pattern from the author’s website. Rather than sewing their expressions on, I gave them sewable LED eyes. These were added behind the felt patches that are their faces. The battery holder is under each creature, which has meant I’ve needed to add a ring of chain stitch to the base, to hide the holder and stabilise each creature.

More recently, I made the robot from the Creepy But Cute book. Gee made a small circuit with cyclon style red LEDs that I used for its eyes. As these aren’t sewable LEDs and they’re tiny, it needed the crochet cutting so that they’d show through the felt face. The felt face stops the crochet from unravelling, so no problems there. At some point I may remake this but use a Adafruit Gemma / Flora to control sewable LEDs for the cyclon effect but I’ll need to find the time first!
The complete set is here:

They get taken to Make Faires with Pimoroni and recently featured in Makezine’s photos of the Berlin Faire.

All sewable electronics parts for the various projects came from Adafruit / Sparkfun / Kitronik via Pimoroni.

DigiStump DigiSpark Arduino and Debian 8 64bit

UPDATE 2016-02-02: There is an updated version of the script below which also works with the DigiSpark Pro. See below.

In the space recently we’ve been playing with the super low cost Digistump Digispark 16.5MHz boards and the Arduino 1.6.5 environment.

Unfortunately there are some issues with these working out of the box with 64-bit versions of Linux (we use Debian 8 64-bit) as one of the attached binaries is compiled for 32bit only. However, after some major head scratching, I have managed to get them to work reliably.

To get them to work. You need to install the Digispark hardware library as normal and then follow the steps below.

Installing the DigiSpark library

Add the following line to the Additional Boards Manager URLs in File –> Preferences. If you have previously added boards to this list, you will have to separate them with a ; or use the button to edit it in list form. If you need an in-depth guide, there’s one in the links at the bottom from everyone’s favourite Adafruit.

Fixing the missing bits

Once you’ve done that, you will need to download the following script (I’d of included it as a downloadable file, but someone disabled it on our server)…


# Adds necessary libraries and UDEV rule for using the Digistump DigiSpark boards in Arduino 1.6.5 on Debian 8 64-bit
# Written by James Muirhead. 2015-10-12

# This works on the 16.5MHz original Digispark. Has not been tested on other varients.

# Checks if you are root, as this is required.
if [ $(whoami) == “root” ]
# Updates apt then installs 2 necessary libraries and their dependencies
apt-get update
apt-get -y install libusb-dev lib32stdc++6

# Adds UDEV rule which adds the DigiSpark device to the dialout group, same as required by Arduino IDE.
echo ‘SUBSYSTEM==”usb”, ATTR{idVendor}==”16d0″, ATTR{idProduct}==”0753″, MODE=”0660″, GROUP=”dialout”‘ > /etc/udev/rules.d/99digispark.rules

# Restarts UDEV to enable the above.
service udev restart

echo "DONE!!!"31
echo "You need to be root to run this script, use su / root to try again."

Right, once you’ve got the above copied into a file called e.g. you will need to make it executable. To do this, you will need to log in as root (type su at the command line and type your root password). Then type the following to make the file executable.

chmod a+x

Ok, once the file is executable, stay root and run the following…
This may (or more likely will) take some time, so leave it till it’s done what needs to be done.

Once finished, close and re-open the Arduino IDE.


Once this is all done, you should be able to upload a sketch to your DigiSpark without problems.


Update 2016-02-02

I’ve written a new version of the script above which also works for the Digispark Pro. Follow the same instructions as above, but use the script below instead. It is longer, but does a few more things.

And, just because I’m feeling nice, I’ve put it on GitHub to make life easier.


# Digispark installer.
# Written by James Muirhead.
# 2015-10-12

# 2015-10-16 – Only installs 32-bit extensions if 64 bit OS detected.
# 2015-11-04 – Now creates UDEV rule for DigiSpark & DgiSpark Pro.

if [ $(whoami) == “root” ]
apt-get update

# Installs required library.
apt-get -y install libusb-dev

# Checks for 64-bit environment and installs required 64-bit extensions.
uname -a | grep x86_64
if [ $? == 0 ]
apt-get -y install lib32stdc++6

# Creates UDEV rule for DigiSpark
echo “# Rule to allow use of the basic DigiSpark (ATtiny85) board in the Arduino IDE 1.6.3+” > /etc/udev/rules.d/99digispark.rules
echo “# Written by James Muirhead (@PhantomFreak), 2015-10-12.” >> /etc/udev/rules.d/99digispark.rules
echo “#” >> /etc/udev/rules.d/99digispark.rules
echo “” >> /etc/udev/rules.d/99digispark.rules
echo ‘SUBSYSTEM==”usb”, ATTR{idVendor}==”16d0″, ATTR{idProduct}==”0753″, MODE=”0660″, GROUP=”dialout”‘ >> /etc/udev/rules.d/99digispark.rules
# Creates UDEV rule for DigiSpark Pro.
echo “# Rule to allow the use of DigiSpark Pro (ATtiny167) board in the Arduino IDE 1.6.3+” > /etc/udev/rules.d/99digispark-pro.rules
echo “# Written by James Muirhead (@PhantomFreak), 2015-11-04.” >> /etc/udev/rules.d/99digispark-pro.rules
echo “#” >> /etc/udev/rules.d/99digispark-pro.rules
echo “” >> /etc/udev/rules.d/99digispark.rules
echo ‘SUBSYSTEM==”usb”, ATTR{idVendor}==”16d0″, ATTR{idProduct}==”0753″, MODE=”16d0″, GROUP=”dialout”‘ >> /etc/udev/rules.d/99digispark-pro.rules

# Restarts UDEV
service udev restart

echo "All done, please close all open Arduino IDE windows & reopen before attemptting to upload code."
exit 0
echo "You are not root, please use sudo or su to continue."
exit 1

ATtiny 85/45/13 Programming Shield

Author: James Muirhead

ATTiny Programmer photo

This is a modified version of the programmer described on the High Low Tech Group’s page. I have however added a few customisations…

  • Reset buttons for both the ATtiny and the host Arduino,
  • Headers in paralel with the IC,
  • Rails for 5V, 3.3V & ground,
  • A mini breadboard.

This shield simplifies the development of ATtiny (13/25/45/85) projects giving you direct access to the ATtiny as if it were an Arduino Uno with the added convenience of an attached Breadboad with rails.

Continue reading