Tag Archives: Arduino

Understanding the Brother electronic knitting machine

The first step in reanimating my broken Brother KH-950i knitting machine with the Knitic system is understanding the principles of how Brother electronic knitting machines work. Fortunately the KH-910 and KH-940 service manuals (both downloadable from Knitting Machines etc.) are really useful in this regard. Continue reading Understanding the Brother electronic knitting machine

Electronic Knitting Machine Reanimation

The electronics on my original Brother KH-950i knitting machine are broken. Kaputt. Dead as a dodo.

Being an old machine (circa 1988) and no longer manufactured, replacement parts are tricky to get hold of. If only there was a way to bring it the electronics back to life, perhaps by substituting the original parts with a new, customisable, open system…

But wait, it has already been done! LogoKnitic_200x60The Knitic project replaces the main control boards of the KH-930 or KH-940 knitting machines with an Arduino so that the patterning can be controlled by the Knitic software. Better still, the lovely people behind the project have made it open and the source files are available to view and download from GitHub.

Only question is, can I get it to work with the earlier KH-950i model? Here begins my 950i reanimation journey.

Hacking the PetPorte

As a cat owner of the geeky persuasion, I am a sucker for pet gadgetry. One such indulgence was the PetPorte Smart Cat Flap, which has a built in microchip reader to control feline access to your home, plus loads of built in features like timer and night modes to accommodate kitty’s curfew. It is more expensive than the alternative magnetic or infra-red fob cat flaps, but if you have escape-artist cats who lose their collars pretty much every time they leave the house, like I do, the cost difference soon balances out.

My experience with the product and company have been great, I do not hesitate to recommend it! Nevertheless I have one niggle – I just can’t get Night Mode to work satisfactorily. So rather than throw an otherwise excellent baby out with the bathwater, I hacked it instead. Continue reading Hacking the PetPorte

Breadboarding with Cables – Double-Sided Headers

Connecting cables to your breadboard can be a right pain – PCB headers are too short on one side to sit securely in the breadboard, and the alternative of a spaghetti tangle of jumper wires is unappealing.

Happily enough, I discovered a 3 pin double-sided header for breadboarding a servo in my Arduino starter kit – problem solved! Except, where can I buy a longer strip to use with my FTDI cable?

Double sided header

After a bit of searching I finally hit gold at HobbyTronics – a 40 pin double-sided header strip for £1. Since I can use the same header again and again for different projects, this should be plenty for my needs. They are probably available elsewhere cheaper but I couldn’t see where, and I figure the saving probably wasn’t worth the extra time spent looking.

Result = Happy Bunny!

Compile/Build Errors in Arduino 0023 on Ubuntu

For a while now I’ve been getting build errors in Arduino-0023 on Ubuntu, so I took the easy way out and used Arduino-0023 on Windows because it worked. Finally I got around to investigating the issue, and thanks to Google have found a solution.

The error:

In file included from /usr/lib/gcc/avr/4.5.3/../../../avr/include/util/delay.h:44:0,
from /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/delay.h:37,
from /home/hannah/Documents/Software/Arduino_Linux/arduino-0023/hardware/arduino/cores/arduino/wiring_private.h:30,
from /home/hannah/Documents/Software/Arduino_Linux/arduino-0023/hardware/arduino/cores/arduino/WInterrupts.c:34:
/usr/lib/gcc/avr/4.5.3/../../../avr/include/math.h:426:15: error: expected identifier or ‘(’ before ‘double’
/usr/lib/gcc/avr/4.5.3/../../../avr/include/math.h:426:15: error: expected ‘)’ before ‘>=’ token

The solution:

Comment out line 79 of <arduino installation directory>/hardware/arduino/cores/arduino/wiring.h:

//#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5)) 

An alternative solution wraps the #define round(x)... line with a check for the problematic version of avr-libc:

#if __AVR_LIBC_VERSION__ < 10701UL
#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))

Joining the Arduino Revolution

I have finally caught up with the rest of the world, and got myself an Arduino (as a belated Christmas present – why not?) in the form of the ARDX Starter Kit for Arduino from oomlout.co.uk. Already it is proving loads of fun!

Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.


My first introduction to Arduino was through our RepRap exploits, as the more recent generations of electronics have been based around Arduino or Arduino-compatible spinoffs (e.g. Sanguino). I never really took the time to understand the details of the electronics designs, but the potential of Arduino was immediately apparent – if it can drive a 3D printer, what else can it do? Continue reading Joining the Arduino Revolution

GRRF RAMPS 1.2 Electronics Build

Our RAMPS 1.2 Electronics kit arrived from German RepRap Foundation the other day so I got cracking! Unfortunately I has having one of those days and my German and Google Translate weren’t too great, resulting in several LEDs with the wrong orientation and one in completely the wrong place! Thankfully everything still works (except the LEDs). Continue reading GRRF RAMPS 1.2 Electronics Build