Category Archives: Geekery

Useful avrdude commands

Avrdude is a command line tool for uploading to and downloading from AVR microcontrollers. It is used in the background by Arduino to upload sketches.

It’s also the tool we used to upload the bootloader to all of the atmega644p chips provided in the TVRRUG OMC electronics kits.

Here are some useful commands when using avrdude. Continue reading Useful avrdude commands

Adding the TVRRUG OMC board to Arduino IDE

In order to compile and upload Arduino sketches to custom boards like the TVRRUG OMC the configuration of the board must be specified, for example what chip it uses at what clock speed etc.

In version 1.6.4 the Arduino IDE changed the way custom boards are defined and managed in order to support a wider range of chip architectures.

TVRRUG member Bo has figured out the changes and made it as simple as can be for the rest of us to use the latest versions of Arduino with our OMCs and provided instructions at the TVRRUG githhub repo. Thanks Bo!

Here follows an idiot’s version of Bo’s instructions.

Continue reading Adding the TVRRUG OMC board to Arduino IDE

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!

Knitting Machine Adventures

My aunt was given a Toyota KS858 knitting machine and 506 ribber that had been in a friend’s relative’s garage for umpteen years. It came with what seemed to be most of the accessories, but was missing a manual and punchcards. On a visit in the summer I found a copy of the KS858 manual online and we muddled through trying to set it up, neither of us knowing what we were doing. The end result looked like it should work, but we couldn’t get it to knit properly. Continue reading Knitting Machine Adventures

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))
#endif