Category Archives: open source

Baroesque – Barometric Skirt

Barometric skirt - coming together

I wanted to bridge the gap between what for me had been an enclosed capsule of capturing / visualizing my own physiological data and entwining it with data from the environment around me. The barometric skirt visualises data from four sensors, three of them are environmental: temperature, pressure and altitude, the forth is a temperature sensor that sits on the inside of the skirt and pulls in my body temperature. I’m interested in how I can display my physical data alongside that of the ‘bigger picture’ of elements that I am surrounded by.

Getting Baroesque Barometric Skirt ready for Smart Textiles Salon

If you haven’t seen or heard of a barometric sensor board before, it’s a PCB (Printed Circuit Board) and the BMP085 I’ve used integrates temperature, atmospheric pressure and altitude sensors, these together constitute a suite of sensors that can be used for looking at weather data. You may have heard of ‘pressure’ attributed to weather terms such as high or low pressure – high pressure generally relates to warm, sunny weather and low pressure colder, wetter weather. Sensors in a barometric board are also used in altimetry to measure one’s present altitude, or for example, how high one has climbed.

Barometric skirt - coming together

I decided that I had to make a bespoke skirt for this project due to the way I wanted the RGB LED strip to display from inside the skirt. It took me a while to find a skirt pattern that I thought would suit the project, I’ve gone for an A-line skirt with a dropped waist, which I thought would support the components quite well, especially as RGB LED strip requires a 12 Volt supply, which isn’t exactly light! My initial idea was to make a jolly big pocket for the battery pack, but after spending a day experimenting with pocket making, I decided to make a Velcro on-and-offable components substrate apron (for want of a better term) which goes in the middle of the skirt fabric and lining layer, I made a fitted pocket on the substrate apron to hold the 12V battery pack.

Fabric painting

The skirt required an illustration to enhance the component design and after pondering weather icons and scenes I decided that I wanted a Japanese feel and practiced fabric painting on with calligraphy brushes and tested various fabrics for holding paint, washability, shrinking and ironing capabilities. In the end I chose to create some Okami style weather designs inspired by the beautiful characters and fan art, so after making 2 or three prototype skirts in satin and organza (and being driven half mad by this task) I painted weather bound characters directly onto the skirt.

Barometric skirt - coming together

Having got the skirt (with the lining to shield the wearer from electronics components) mostly made, I moved on to the electronics. This took some of thinking about as I wanted to visualise data outputted from four sensors individually via RGB LED strip, the resulting rats nest took up three breadboards and contained so many components and wires it would have been a nightmare to reproduce and solder onto stripboard. Luckily a way to consolidate this somewhat came with the introduction of two array ICs. I added another temperature sensor to the circuit for measuring my own temperature and the whole lot was driven by a Shrimp kit instead of my usual choice of microcontroller board such as a LilyPad Arduino. “The Shrimp” as explained on the Shrimping It website is “a Arduino-compatible, handmade circuit you can use to create your own digital inventions” – basically it’s a low cost kit of components that you can put together yourself on breadboard or stripboard. This saved me a lot of space as I crammed all my components (bar the barometric sensor I wanted on the outside of the skirt and 12V battery pack) onto one piece of stripboard.

I’ve written the code, or sketch in C, with the inclusion of the Wiring library and the example code library for the BMP085 which does all the complex and clever calculations to convert readings to °C (Celcius), Pa (Pascal) and m (meter) readings. If you’ve got the barometric sensor set up using the Arduino IDE you can open the serial monitor to see the readings fly by.

Testing my Baroesque Barometric Skirt for Smart Textles Salon

Barometric skirt: long day of wire stripping, soldering, swearing, desoldering & soldering again!

I spent the next two weeks stripping wire and soldering, I also did a lot of desoldering and resoldering as I endeavoured to get the shrunken, but still a rats nest of wires in the correct groupings of PWM (Pulse Width Modulation) and digital input and output to their respective pins to match up with my code. I can’t underestimate the value of double checking wires and tracks before soldering, though it’s incredibly easy to make mistakes as wiring is always fiddly and tracks are so close together. Also, don’t forget to work out where your track cutting should be before squeezing everything into a small piece of stripboard – always leave an extra line or two in tracks for contingency! If you’re using a coin cell battery, it’s a good idea to get a small, solderable holder for it, but be selective in which type you choose as some are much more fiddly to release the battery than others! I should also mention that I couldn’t find a stripboard friendly version of a 2.1 barrel socket for the 12V battery pack, so I used an SMD one, but had to dig into the stripboard to join two track holes together. Another top tip is try to get a track in between your 12V and ground tracks, just in case of any stray solder bridging!

Feel like I've had enough of soldering for a bit!

Before sewing the stripboard and RGB LED strip to the apron substrate, I added some strong Velcro to hold the apron to the skirt lining fabric, next time I do this style of embedded electronics I will use a stronger substrate for the electronics as lining fabric isn’t really robust enough for suspended 12V battery packs! Until I do a better photo shoot / video enjoy some the photos and video I’ve made along the way.

Barometric skirt - coming together

In June 2013, I presented the Baroesque Skirt at Smart Textiles Salon in Ghent, Belgium.

Presenting my Baroesque Barometric Skirt

Smart Textiles Salon

Getting Baroesque Barometric Skirt ready for Smart Textiles Salon

OSHcamp (Open Source Hardware Camp) 2012, Hebden Bridge

OSHcamp 2012

I had an awesome time at OSHcamp 2012 (Open Source Hardware Camp) held in scenic Hebden Bridge, Yorkshire, last weekend. Organised by Andrew Back of SolderPad and OSHUG, the weekend was an intense and fascinating Saturday of talks, followed by in-depth workshops on Sunday. OSHcamp is the second annual meet up spawned from the successful OSHUG – Open Source Hardware User Group show and tell meets usually staged around London.

Al setting up RepRaps

Here is a brief overview of the talks and workshops over the weekend:

Jeremy Bennett was our welcoming MC for the Saturday presentations that kicked off with an introduction to The Internet of Things by Adrian McEwan, which included various example projects, thoughts on what makes now a good time for the IoT to evolve – such as the propensity of cheap components and small computers. Adrian also explored a few clichés that have surrounded IoT.

Jeremy & Andrew

Second up was Paul Tanner, who spoke about Practical Experiences with the Google Android Accessory Development Kit (ADK) and how one can create projects that use Arduino microcontrollers with Android phones. He showed how the Android and Arduino compare and can compliment each other, plus gave project examples of this.

Paul Tanner on Practical Experiences with the Google Android Accessory Development Kit (ADK)

Melanie Rhianna Lewis gave an introduction to Developing Linux on Embedded Devices by defining what this is and showing us some examples. Raspberry Pi is one example of an embedded device that uses Linux as, for example, it fulfills the criteria of being physically small, has limited resources compared to desktop computers and interfaces with non-regular hardware. Melanie’s talk went on to show more examples, development processes and tools. Her presentation can be found here.

Melanie Rhianna Lewis on Developing Linux on Embedded Devices

Interfacing the Raspberry Pi to the World — Everything you need to know about Pi – was the exciting title of Omer Kilic’s presentation which explained how owners of the Raspberry Pi can get their device to communicate with the outside world using GPIO (General Pin Input / Output). His talk also included a cautionary image of a burnt Pi, which I wish I’d caught with my camera, a timely reminder to ensure you power your device correctly! Omer’s talk covered topics featured in his excellent Raspberry Pi workshop that he gave on Sunday.

Omer Killic on Interfacing the Raspberry Pi to the World — Everything you need to know about Pi

I gave a talk on Wearable Technology (+ a bit of open sourcery), which started with a very quick intro into the evolution of wearable tech, how Maker and Hacker culture is making a significant contribution to this and also changing tech business models. I showed a few examples of my work that incorporates LilyPad Arduino sewable microcontroller and ended with a look at how wearable technology and e-textiles is a great vehicle for getting school-age children interested in electronics and coding. Below are my slides.

Rain (moi) on Wearable Technology

We then broke for lunch and I was extremely pleased that a large vegan platter full of tasty tidbits had been procured; which had gone down so well with the other delegates I was urged to break off from chatting to go and grab some before it had all been eaten up!

For the afternoon session, first up was Tim Panton on Running OpenBTS in the Real World. OpenBTS is a software-based GSM access point, allowing standard GSM-compatible mobile phones to make calls without having to use existing telecommunication providers’ networks. Tom spoke about his adventures setting up an OpenBTS (Open Base Transceiver Station) network recently at the Burning Man festival in Nevada, where the need for getting messages home to loved ones often proved to have a heartfelt story behind it.

Edward Strickland spoke about the issues surrounding Developing a Heavy Lift UAV — Pitfalls, Problems and Opportunities. Demonstrating his own build of an UAV (Unmanned Ariel Vehicle). He reported how they are very useful for carrying out dangerous and dull airborne tasks. Edward talked us through various challenges, such as developing for carrying heavy payloads over distance, take-off and landing methods both conventional and vertical, plus cost, weight and efficiency of heavy engines and gearboxes.

Edward Strickland on Developing a Heavy Lift UAV — Pitfalls, Problems and Opportunities

Mark Gilbert was up after tea break and gave an interesting insight into the world of The 3D Printed Revolution. He took us through the development of his Fable clock, which is manufactured to order using Selective Laser Sintering, which is much more cost effective than manufacture by mass injection moulding as these bespoke clocks only sell in small quantities.

Mark Gilbert on The 3D Printed Revolution

Alan Wood spun us a cautionary tale: The Bots are Coming, about the dangerous and subtle growing army of bots that are easily available to procure and are propagating via 3D printers. He sent a chill around the hall and many felt the wind of fear up their underkecks.

To finish, Hwa Young Jung gave us an introduction to the DIYBIOMCR group at Manchester’s MadLab, featuring how to extract your own DNA using ingredients very similar a pina colada cocktail and examples of existing bio hacks such as the spider goat.

Hwa Young Jung on DIYBIO

After tidying up the hall, we all headed off to the pub for food and to carry on conversations.

My Raspberry Pi at Omer's Pi workshop

Sunday featured several workshops running concurrently, I attended Omer Kilic & Melanie Rhianna Lewis’ great Raspberry Pi workshop, which used General Pin Input / Output to interface the Pi with components. I spent far too much time being sociable to accomplish all the examples Omer had put together, but I was happy with a blinking LED on a breadboard using a simple C script.

OSHcamp 2012 Raspberry Pi workshop

Other workshops included:

  • Practical 3D Printing with Alan Wood, Mark Gilbert & Mike Beardmore
  • Building GSM Networks with Open Source – looking at the practical steps involved in creating a low power GSM network using open source technology by Tim Panton & Andrew Back
  • Practical IoT Applications with the Google ADK and Arduino – a hands on IoT building sessions that follow on from Saturday’s ADK and Arduino talks by Paul Tanner & Adrian McEwen

OSHcamp 2012

An excellent time was had by all: much knowledge was exchanged, old friends reunited and new friendships forged. We even had our own OSHcamp cat, Kipper in attendance :-) Many thanks to Andrew Back and all the organisers, speakers and helpers, plus thanks to the sponsors, esp. SKPang and Oomlout for the lovely conference badges and the fab goodie-bags.

Kipper the OSHcamp cat

Teapotty – electronic teapot exploration for Chi-TEK at the V&A

Over the last couple of months I’ve been thinking a lot about teapots…

Teapotty on display in a cabinet at the V&A
Me gazing at Teapotty installed at the Victoria & Albert Museum, London.

I was asked earlier this year if I’d like to create a tech teapot for the Chi-TEK teapot project, by Mz-TEK, who run a community for women who want to learn about and be creative with technology.

The brief is to create a tech teapot for a tea party and exhibition at the esteemed Victoria and Albert Museum in London. If you’re not familiar with the V&A it’s “the world’s greatest museum of art and design” – it is truly a wonderful place and an honour to be invited to exhibit my work there again.

For the past few weeks I’ve been on an odyssey of explorative adventure fuelled by excitement and enthusiasm for a myriad of ideas for tech teapots.

Ideas for my teapot have evolved from memories of tea marketing from my childhood. From the start I wanted to create something that used magnetic fields and magnetometers because I have a really early TV clip in my head of animated tea leaves diffusing tea in a teabag similar to a magnetic field – yes, silly I know, but it’s stuck in my head all this time. Something else I found really evocative about tea when I was wee, was the Tetley Tea Folk tune, I couldn’t get the score for this anywhere, but Ciaran Anscomb kindly wrote me a music routine for my red Teapotty which plays something similar-ish – it’s converted from 6809 machine code from the game “Tea Time” by Pocket Money Software, that ran on 80s Dragon computers.

I have made five variations of my ‘Teapotty’ project over the last couple of months and below are videos of my three favourites…

Above is the version of Teapotty that is currently on show in the V&A and will be demonstrated at the Chi-TEK tea party weekender.

It runs on C code and an Arduino Uno microcontroller and takes readings from a magnetometer that are influenced by neodymium magnets in a cup, plays a tune and informs the servo to move it to a new position. RGB LEDs (with polymorph heart diffusers) also use the readings from the magnetometer to reflect a colour across the RGB spectrum.

‘Fussy Huffy Teapot Bunny Ears’ is a wearable interactive, that also works with an Arduino Uno, servo, magnetometer and neodymium magnets in a cup to reset the position of the tin teapot. Eventually, tin teapot’s downfall was that it became magnetised and I couldn’t easily degauss it.

This Teapotty is a glass teapot on a battery driven turntable illuminated by LEDs. The music Ive used is ‘Modiste’ by Victor Herbert Orchestra CC Public Domain and available at the Free Music Archive.

Teapotty will be interactive and driving everyone mad as part of The Chi-TEK Tea Party during the London Design Festival at the V&A. Apart from during the Chi-TEK Tea Party, Teapotty will also be on show at the V&A over the next three months accompanied by a video of it and other teapots in action. During this time it will be displayed in a cabinet will so will be switched off.

You make my heart flutter – wearable sensing device & Heart Spark hack

For the past few weeks I’ve been working on the first stage of a project that involves hacking Eric Boyd’s excellent Heart Spark PCB pendant and combining it with a sensor module I’ve made from scratch.

Heart Spark: I uploaded a sketch (code) via fangled FTDI + some header pins

The Heart Spark pulses 6 LEDs to my heartbeat via a signal from my Polar gym chest band transmitter (that usually transmits / displays my heart rate on my Polar wrist watch). The Heart Spark is open source and Eric has kindly made the schematics, code, plus lots of other information available on the website pages for the Heart Spark.

I’m very interested in how sensing technology can display vital signs and how this can be monitored and combined with other tech to give us an insight into our moods, and how our body is reacting to certain situations.

'You make my <3 flutter'

For this proof of concept, here’s the back story / premise I used when considering what I wanted to build and present at Rewired State’s recent (H)activate hack weekend at the Guardian:

“Geeks are very particular about their personal space, so what could be better than a mobile, wearable device that notes their heart rate when someone comes close. Whether you’re cool, calm and collected or get palpitations when a certain someone enters your space, it’s interesting to note how a particular person affects your physicality, whether that be geek love or geek annoyance. It’s not quite your heart on your sleeve, but round your neck!”

For this, I’ve created a heart-shaped proximity detector module to link to the Heart Spark – I’ve named this ‘Flutter’.

To create the Flutter module, firstly I experimented with various combinations of components: an IR proximity sensor, resistor, potentiometer, LED and transistor on a breadboard. The 3.3V coin cell battery that powers the Heart Spark could not give enough output, even when combining with a step up component which boosted the voltage up to 5V to power both the Heart Spark and the proximity sensor.

Circuit diagram for 'You make my <3 flutter'

So I began a period of trial and error with various combinations of batteries, resistors, transistors and twiddling the potentiometer. In the end I gave up fiddling and got my oscilloscope out to find out what was happening. I got some very curious signals from the various battery combinations and step up module I was using, but in the end the solution was to get more juice to the IR proximity sensor. This meant powering it separately and that more batteries were needed. So I settled on a 3 x AA battery pack, for which I’ve made a fabric heart shaped pouch dangling on a twisted twill rope, as it needs to be housed quite close and precisely to the sensor via battery pack connectors.

Hacking the Heart Spark with a proximity sensor - testing on the sillyscope

I have to say, I really feel that powering wearable technology is one of the more irksome things about trying to get this technology into wearables and I’m going to blog about this soon. On that note, the reason I added a 10k Ohm potentiometer to the heart-shaped IR sensor was so that small tweaks to the voltage can be made to the sensor.

Creating a heart-shaped proximity dectector module

To house all the components and with the help of a hacksaw, I made a heart-shaped substrate out of stripboard and coloured it black with a marker pen.

Hacking the Heart Spark – I have hacked Eric’s original code so that the top 3 LEDs on the Heart Spark light up when the IR proximity sensor detects someone in my space. I have some more interesting ideas for the code to work with the Heart Spark in the future, but in the first instance my goal was to get the Heart Spark to acknowledge the IR sensor and light up from its signal.

Hacking the Heart Spark

To upload code from my laptop to the Heart Spark, I fangled an FTDI board (which I usually use with LilyPad Arduinos) with some header pins – so I could connect it to the headers on the Heart Spark. I also soldered two pin headers to ground and positive / signal pins on the Heart Spark, which allows wire connection between the Heart Spark and the Flutter module.

Hactivate: battery pouch made

Hactivate: You make my <3 flutter

Stage 2 and next steps…

For the next iteration, I’d like to add a tiny camera to this work, set to log periodic photos of who or what situation is in front of the wearer. Plus find a way of grabbing the photo, heartbeat and proximity sensor data from the devices and send to my laptop via a sewable a LilyPad Arduino x-Bee transmitter. Sewable, because I’d like it to become part of the heart-shaped battery pack pouch.

I want to graph the data from the two sensors to plot how many times during the day I get fluctuations in my heart rate when someone enters my space and would place the photos from the camera at appropriate points alongside, to see who had made my heart flutter. I’d use this information to work out my physiological state and reactions to certain situations, and people throughout the course of a day.

Other additions I’ve thought about are to include a temperature sensor, to record if someone becomes hot or flushed in certain situations or people and an accelerometer to assess body language by the user’s posture.

Mass participant uses? I’d love to hold a speed-dating event where all the participants wore the “You make my <3 flutter” device to attempt to determine people’s reaction to each other based on their physical data signals.

'You make my <3 flutter'

Thank yous to: Ciaran Anscomb and Eric Boyd for help and advice \o/

Opentech 2011, ULU London

Dorkbot talk Saul & Pete

(As usual) I had a fabulous time at this year’s Opentech 2011, a multi-stream conference that brings hacker, open source advocates, civil servants, open rights and other communities together to discuss, debate, chat and drink beer. It’s a great day of talks intersected with a fab geek social, it traditionally occurs at ULU in London.

Taken straight from their website intro: “OpenTech 2011 is an informal, low cost, one-day conference on slightly different approaches to technology, transport and democracy. Talks by people who work on things that matter, guarantees a day of thoughtful talks leading to conversations with friends.” It is certainly all these things.

Hard curves, soft electronics
Photo by @PSD

I gave a presentation titled “Hard Curves, soft electronics – code, tech and textiles” – at which I demonstrated some of my wearable technology pieces, specifically those made with LilyPad Arduino (an open source technology) sewable microcontrollers, sensing modules and conductive threads and textiles. These included Twinkle Starduino, I <3 0X0, Twinkle Tartflette and 'Yr In Mah Face', plus I mentioned some of my mbed work. I also discussed how e-texiles and the LilyPad help dismiss the idea that electronics are grey, sharp and cold. I also feel that the rise in tinkering with Arduino and e-textiles is a great way of encouraging girls / hobbyists / anyone to have fun and see beyond the stigma of electronics and coding being a dull and difficult to pursue.

Here's a link to my slides, plus one of the videos I showed during the presentation which demonstrated my ‘Yr In Mah Face‘ temperature / mood sensing t-shirt.

Talks I enjoyed this year included, a history and expose under the sheets of London dorkbot – ‘doing strange things with electricity’ from janitors Saul Albert and Peter Brownell. The session included some hilarious, bonkers and touching reminders from dorkbots of the past. The London dorkbot chapter was second to evolve, after New York being the first and has been going for nearly 10 years.

Paul Downey of OSHUG gave a lovely introduction to open source hardware, some examples of projects, events, plus various groups and people hacking tech.

Opentech: PSD on open hardware

Russ Garrett, spoke about the London Hackspace and gave a brief history of how it grew from small beginnings and venues into a very organised space today with at the time of the event, membership being nearly 300 people.

Open hardware questions: Russ

It was good to hear an update from Suw Charman-Anderson on Ada Lovelace Day: a celebration of women’s achievements in science, technology, engineering and maths – a subject very close to my heart.

Steve Goodwin gave a talk about digital archeology and the difficulties in creating and archiving retro technology. Steve concluded by showing his EMF emulator framework for a ZX 81.

A bit of light hearted and NSFW fun came from Jag who was inspired by his father’s knowledge of morse code, to play with it and come up with “an attempt to acquit extremely offensive & censured words using morse code, din & music”.

After the talks concluded, everyone made their way to the ULU bar to chat with friends old and new, plus quaff beer. Sadly the kitchen wasn’t open in the evening – I’m sure it would’ve done a roaring trade in its legendary curly fries. An awesome day – thanks to Sam Smith and all the lovely organisers for a very well executed day, the only shame is that I’ll have to wait till next year for the next one!

Ourduino PCBs
A couple of Ourduino’s beautiful PCBs.

Temperature sensing t-shirt (AKA: “Yr in mah face!”)

'Yr in mah face' temp-sensing t-shirt

At last weekend’s 24-hour Pachube Hackathon, I created an electronic wearable I wasn’t expecting to make! To clarify that statement, I intended to hack on a LoL Shield I’d recently soldered together (it has 126 LEDs = steady hands needed & much love to the soldering iron ;-)). Unfortunately, I’d mislaid an accelerometer to interact with the LEDs, so it was no go for that hack…

Spaghetti croc clip testing works!

After spreading out all my spare LilyPad Arduino components and kit from my toolbox on the table at Pachube Hackathon, I decided on a new hack – a temperature sensing t-shirt! I spent some time writing and debugging the code before it would happily compile in the Arduino IDE. I then tested the code by uploading it to the LilyPad and connecting all the modules together with crocodile clips, and yay it worked!

Creating my hack: big heart cat heads

I’m very interested in interactive wearables and so decided to create a t-shirt that would use loop poll Celsius data from a sensor on the t-shirt and average them, then visualise the results. The tshirt uses sewable LilyPad Arduino modules and conductive thread to sew all the connections together.

I didn’t have much time left, once I’d got the code to compile and uploaded it, then tested everything together with the crocodile clips, so the designing, cutting out from fabric and sewing all the fabric and components together with conductive thread was a manic rush. No prizes for tidy sewing and elegant design I’m afraid, but a prototype conceived designed and built is less than 24 hours!

Creating my hack: big heart cat heads

So here’s the amusing concept scenario… imagine you’re a shy and retiring geek like me, who might find themselves in a social situation, such as a loud, crowded bar. The temperature sensing t-shirt I’m wearing has two cat heads: one green – the colour of cool, calm collected cat – its LED eyes signaling temperatures of less than 27 degrees Celsius, if the wearer were to say have someone at close proximity talking loudly at them, the heat from their breath would push the sensor Celsius average over this point and the LEDs would turn off on the cool calm collected green cat head and come on, on the hot, red, angry coloured cat head!

Creating my hack: early conductive thread sewing

This would be a signal to whomever is causing the angry red cat’s LEDs eyes to light up, to back off “You’re in mah face” or perhaps if the wearer is hot and embarrassed, to have a nice sit down in a corner with a cool drink of lemonade.

Creating my hack: woo done in the nick of time!

Creating my hack: back view, negotiating tracks of conductive thread

But seriously, my t-shirt is a fun proof of concept, I’m very interested in how sensing tech such as temperature sensors can have wider and useful usage. For example, in a society where more of the population is living to a ripe old age, then smart wearables such as temperature and other sensing modules can help older or disabled people, who might need their health monitoring constantly, carry on living at home for longer and keep their independence. Also, I can think of various lifestyle and sporting uses, such as comfortable sports clothes that would also have reasons to track data, plus smart clothing for people who work with extreme temperatures, chemicals or in harsh environments.

Me and my hack - yay it works!

I <3 0X0 – LilyPad Arduino wearable / mobile artwork & game

I <3 0X0 is an interactive artwork, game, musical fancy and experiment in conductive Velcro. I created it to test the usefulness of conductive Velcro. I wanted to make something that was both interactive and interesting to the user. After much pondering a simple interactive game of noughts and crosses seemed like something viable and I could aim for.

As far as I could tell from searching online, not much had been documented on conductive Velcro and it’s uses. I found one project credited to AnaLou where it had been used as a toggle switch for LEDs (light emitting diodes) on a hat.

So I wanted to create something interactive, as I could find no other documentation for conductive Velcro, some sort of plaything seemed an interesting idea and after some pondering I decided that the 3 x 3 grid system used for a simple game of noughts and crosses would be something that would be both limited and simple in terms scale, i.e. a maximum number conductivity points and a square grid that would be easy to contain.

My schematic design for this artwork has 9 tracks of conductive thread stitches that lead back to nine digital LilyPad Arduino pins. There are 22 pins on the LilyPad Arduino 12 of which are digital I/O so having nine tracks of conductive thread was not a problem. I decided on a stylised heart shape for the design and placement of components, as I wanted the artwork to be attractive. I also chose the LilyPad arduino components and sewing of conductive thread to all be visible and designed to be part of the aesthetic of the artwork, so that the user is reminded that this is an electronic artwork.

At this stage I wrote the basic bones of the underlying code, as a ‘sketch’ in the Arduino integrated development environment (IDE).

Considerable thought went into devising how to connect the objects that would become the physical noughts and crosses. I would need a way of discerning noughts and crosses physically as well as in the code, so decided the 3 x3 grid for each placed nought or cross would be made up of three rails of connected conductive Velcro. The noughts and crosses would have two corresponding rails of fuzzy Velcro on their undersides, but would join to two differing rails on the grid.

After making a first set of noughts and crosses and connecting their underside Velcro rails with conductive thread, testing revealed that they cross-connected the rails in a bad way, which meant an effective circuit was created where none existed in the empty parts of the grid where no object was placed. After much testing and thinking about how to right this problem, crocodile clips and diodes showed it was necessary to implement a diode in each of the objects to push the current in one direction. This setback cost the project over a week in time as new noughts and crosses were made from scratch.

With the new noughts and crosses made and working okay on the conductive Velcro rails it was time to revisit the code. The project needed some music to play when a game was won, so I chose two old classics – can you guess what they are? A tune was also needed to signify a stalemate situation in the game and I chose ‘ The Death March’, which harks back to early arcade games where it was often played alongside a ‘game over’ message. The music was transposed into simple notes that could be played by the LilyPad Arduino buzzer and then entered into the code as frequencies.

It was rather difficult and frustrating to get the tempo and notes to the music to play on the buzzer convincingly, so I sought the help of hacker Ciaran Anscomb to transpose the three pieces of music I had chosen for this project and write a bespoke music routine for me. This took quite a bit time and code experimentation, but I am happy with how it has turned out.

With the hardware and code running as expected and reasonably confident that all the conductive thread tracks and respective knots were all working properly and not touching each other or fraying, I finally tidied up the artwork by backing it onto some coloured fabric and embellishing with star sequins, which also acted as a way of securely sewing the two fabrics to each other. One of the risks of just sewing around the edge of the heart to join the backing to the front fabric, is that when the noughts and crosses are lifted off the grid after each game, the fabric might become stretched or torn from the pulling off from the Velcro rails.

Twinkle Tartiflette – an Arduino driven interactive word/music artwork

LilyPad Arduino is a great platform for rapid prototyping, for my standalone interactive art projects and wearable artworks. It’s also a fun way to learn about electronics and programming.

Here’s how I created Twinkle Tartiflette, an interactive artwork, using various LilyPad modules connected with conductive thread.
My inspiration came from a Stylophone Beat Box that I recently purchased as a present and had a play with. I pondered how one would go about making an interactive artwork using LilyPad components.

I decided that I wanted to combine words, image and sound into an interactive experience, brought to life by touching the words with a stylus. I began to think about how I’d build this and firstly decided on re-using the frequencies for notes worked out for a favourite ditty, Twinkle Twinkle Little Star, that I’d used in another artwork. I would transfer the first two verses word for word onto felt stars, one star for each verse.

Sewing Twinkle Tartiflette

There are 6 notes in the 2 verses so I needed to map out a schema for the conductive thread to pass from the words to the Lilypad, joining each word to the right note pin on the LilyPad – being careful to select conveniently located pins.
First I cut out 2 star shapes and began sewing the words onto them, not being an experienced embroiderer this wasn’t easy or terribly pretty.

After about a week of evenings I had two stars with conductive thread sewn words in the right order. I was mindful to sew the words carefully so frayed thread did not touch and cause any shorts – fabric glue is good for sticking down frayed thread and keeping close knots apart.

With the word stars completed it was time to deploy the main sewing schema – I’d mapped notes to the words and then words back to pins on the LilyPad.

Twinkle Tartiflette schema

After an intensive couple of weeks of sewing evenings later, I thought I’d sewn all the words to the right notes and pins, also adding buzzer and battery modules. There were some interesting insulation/bridging issues to be solved between the various paths of conductive thread, but I was ready to extract code ideas from my brain to see if it would compile!

The code I have written uses the speaker module to produce simple musical notes from connecting to the words with a stylus. I originally used a chart to match frequencies to the different notes.

Sewing Twinkle Tartiflette with conductive thread

With code loaded to the Lilypad, via an FTDI breakout board, it’s time to test – annoyingly there was a problem! The buzzer was not playing notes correctly, after some thinking and testing with a multimeter, croc clips and a single resistor – a solution was concluded – I’d need to add some resistors.

Unconnected the circuit is connected to high, but when the stylus touches a word it creates a simple circuit through the resistor and pulls it to low, but I needed some resistivity in-between. Looking through a ton of resistors 10k ohm seemed like a good fit, but where and how to add them was another question! A small LilyPad protoboard I had was just the job to solder the resistors to. I have six notes, so the protoboard was just right – I only had 5 x 10k ohm resistors, but found another resistor that was near enough to work (reading up later I found out that 20K pull-up resistors are built into the Atmega chip that can be accessed from software, so I didn’t really need need to add the resistors if I’d known that – hey ho, lesson learnt for next time!).

Soldering resistors to the protoboard

After some soldering, I had some more complex routing of conductive thread to do for the resistors on the protoboard. When testing I discovered I’d fix0red one problem, but had found another to debug! Earlier, I said to be mindful of the pins – I had accidentally connected to pin 13 which is the LED pin and has it’s own resistor which is set too low for this project. This showed up in resistance testing with the multimeter.

The fix for the wrong pin incurred some more unpicking and re-routing of conductive thread. I used an analogue pin as it was nearer and the least hassle to route to, this pin change required to be reflected in the code. Finally I decided the best thing to use for a stylus is a crocodile clip – which worked a treat.

Testing resistance with a multimeter

After all that, yay Twinkle Tartiflette lives! All that remained to do is tidy up the sewing, ensuring there are no trailing bits of conductive thread to cause shorts and gluing down anything looking like it was going to stray or come undone with fabric glue. Lots of lessons learnt, but hurrah!

Twinkle Tartiflette finished

Twinkle Tartiflette & Rain

I’ve made two videos for your delectation below – the first (00:44 secs) is a quick demo of me playing Twinkle Tartiflette.

This second video is an in-depth (05:40 mins) explanation of how I made TT, plus examples of debugging along the way – hope you enjoy!

Here is my code – you can use it via a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported license & I’d love to know if you do!

* Rainycat’s LilyPad stylo style: sound used to power Twinkle Tartiflette
* Uses a LilyPad speaker module to produce simple musical notes from touching words to the song
* For a chart of the frequencies of different notes see:

int NotePinC6 = 0; // words connected to play note C6 analogue pin!
int NotePinG6 = 12; // words connected to play note G6
int NotePinA6 = 11; // words connected to play note A6
int NotePinF6 = 10; // words connected to play note F6
int NotePinE6 = 9; // words connected to play note E6
int NotePinD6 = 8; // words connected to play note D6
int speakerPin = 3; // speaker connected to digital pin 3

// A note in one octave is twice the frequency of the same note in the octave
// below. We define here the frequencies of the notes in octave 8. To get
// notes in lower octaves, we just divide by two however many times.

#define NOTE_C8 4186
#define NOTE_CSHARP8 4434
#define NOTE_D8 4698
#define NOTE_DSHARP8 4978
#define NOTE_E8 5274
#define NOTE_F8 5587
#define NOTE_FSHARP8 5919
#define NOTE_G8 6271
#define NOTE_GSHARP8 6644
#define NOTE_A8 7040
#define NOTE_ASHARP8 7458
#define NOTE_B8 7902

// This is an array of note frequencies. Index the array essentially by note
// letter multiplied by two (A = 0, B = 2, C = 4, etc.). Add one to index for
// “sharp” note. Where no sharp note exists, the natural note is just
// duplicated to make this indexing work. The play() function below does all
// of this for you :)

int octave_notes[14] = {

// Arduino runs this bit of code first, then repeatedly calls loop() below. So
// all initialisation of variables and setting of initial pin modes (input or
// output) can be done here.

void setup() {
pinMode(13, INPUT); // make sure 13 is high impedance

//pinMode(NotePinC6, INPUT); — analogue pin automatically input
pinMode(NotePinG6, INPUT);
pinMode(NotePinA6, INPUT);
pinMode(NotePinF6, INPUT);
pinMode(NotePinE6, INPUT);
pinMode(NotePinD6, INPUT); // sets the ledPin to be an intput
pinMode(speakerPin, OUTPUT); // sets the speakerPin to be an output


// Arduino will run this over and over again once setup() is done.

void loop()

// special case hack for this pin:
if (analogRead(NotePinC6) < 256) {
play(speakerPin, "C6", 50);
if (digitalRead(NotePinG6) == LOW) {
play(speakerPin, "G6", 50);
if (digitalRead(NotePinA6) == LOW) {
play(speakerPin, "A6", 50);
if (digitalRead(NotePinF6) == LOW) {
play(speakerPin, "F6", 50);
if (digitalRead(NotePinE6) == LOW) {
play(speakerPin, "E6", 50);
if (digitalRead(NotePinD6) == LOW) {
play(speakerPin, "D6", 50);

// ————————————————————————-

// To produce a tone, this function toggles the speaker output pin at the
// desired frequency (in Hz). It calculates how many times to do this to
// produce a note of the desired length (in milliseconds).

void beep(unsigned char speakerPin, int frequency, long duration)

int i;
long delayAmount = (long)(1000000/frequency);
long loopTime = (long)((duration*1000)/(delayAmount*2));

//for (i = 0; i = ‘A’ && note[i] = ‘0’ && note[i] >’ operator is a useful shorthand that (for integers
// >= 0) basically translates to “divide by two this many
// times”, so we will use that:

frequency = frequency >> (8 – octave_number);

// Actually play the note!
beep(speakerPin, frequency, duration);

OSHUG #3 Arduino: An Open Source Hardware Success Story – Osmosoft, London

I had an awesome evening at the Open Source Hardware Users Group event #3 ‘Arduino: An Open Source Hardware Success Story’. The company was great – many friends in the open source and microcontroller community attended. It was an informative and friendly geek event, plus I learned about some really cool and wonderful projects.

Chris Dalby, lead software developer told us about the Current Cost Bridge, a device that allows you to send your energy consumption data to online portals. Chris was tasked to develop the bridge and decided that was arduino was the way to go. Chris explained the journey and some of the considerations along the way. Specs include: Size of a matchbox, new soft serial, bespoke ethernet library, DNS and DHCP bespoke library, MAC Generation using UUID and encryption talking to broker.

Omer Killic, research student at the University of Kent, revealed why he thinks Arduino is great and gave us a tour of the board, which is looking really great and its features include: more LEDs , automatically uses USB power, boost converter and you can run it from a single AA cell. There’s a programming environment and book which I really want to have a peek at. To find out more go to which is run by a group of educators and researchers who are passionate about making parallel programming more accessible to makers and artists.

Adam Sampson, research associate at the University of Kent, gave us a brief history and some examples of the occam-pi concurrent programming language which uses a process-oriented programming model. Adam went on to demonstrate a pair of driven LED displays that displayed a shared message ‘OCCAM LIVES’.

I gave a talk on how I’ve been inspired by Arduino and the communities of makers and hackers that have evolved around this technology. I went on to demonstrate my latest project Twinkle Tartiflette: an interactive wearable artwork that uses a stylus to play a song by touching embroidered words to play musical notes. This artwork is driven by a LilyPad Arduino and constructed with a complex schema of conductive thread, resistors, a LilyPad buzzer and C code.

Below are my presentation slides, but I’ll write an indepth blog post about the construction of TT including code and video soon.

The questions and conversation carried on in true geek style by adjourning to the Feathers public house.

Many thanks to Andrew Back, Paul Downey and the Osmosoft gang for organising and inviting me to speak.

Vintage Computer Festival – National Museum of Computing, Bletchley Park

I had a fantastic time at the Vintage Computer Festival, held at the National Museum of Computing at Bletchley Park.

I was up at 7am making a picnic to take along, as this was a geek day out for the combined forces of WIT and the Vision Software Engineers from work. I tried to apply my special BBC Micro Owl glitter tattoo, but my glue had nearly run out, so it didn’t quite work out. Time to make a new stencil and maybe some other geek tattoo stencils for glittery wonderfulness & am up for suggestions!

Anyway, for anyone who grew up with Dragons, Speccys, BBC Micros and a host of pooters I won’t list right now, VCF was an Aladdins’ cave of anything and everything retro computer, game-y, gadgety and geeky! I was quite overwhelmed with the vastness of the event and had a wonderful time wandering from room to room and marquee to tent to hut and back round again. Just one room would have been enough to keep me going most of the day, but faced with maybe 20 rooms, marquees and huts of wonderful retro geekness was amazingly awesome.

I also caught up with so many friends who had of course also turned up for day one of VCF and we had many excited chats about all the computers, games and kit we had seen and played. There were also a host of wonderful speakers and talks, such as Tony Sale on Colossus, Peter Onion on the Elliot 803, PixelH8 and OMD played (sadly I missed tix that ran out within a day) and Chris Searle, presenter of The Computer Programme, broadcast in the early 80s. Today I will unfortunately miss Sophie Wilson (geek heroine of mine) speak, but I’m hoping someone will blog this for me, pretty pleeeeasse, as I’m working today (day two).

My highlights are too many to mention, but include the amazing work of the Dragon peeps, the Retro Computer Museum Pong machine, Big Dog Interactive atomic clock top hat, the Cray modules in the Amiga 25th Anniversary marquee, Twitter on an Amstrad ZX Spectrum +3, a working version of the BBC Domesday Project and all the speakers who were amazing, seeing my friends having misty eyed moments on discovering pooters and games from their childhood, the wonder at all the passion and perseverance of people who had lovingly mended and reconditioned so many historical machines that have paved the way to technology we know today.

Well, there goes my Sunday, but here’s 40 minutes of VCF video squished into 10 fun packed minutes – apologies if I’ve missed any name checks!

Many huge thanks very much to all the organizations, clubs and enthusiasts, too many to mention, who put together Vintage Computer Fair and made it a fabulous, not to be missed event!

Not wishing to put any spanners in any works, but hoping the success of VCF might help us persuade the trustees to let us run at RetroBarCamp at The National Museum of Computing / Bletchley Park! :-D

I have a set of my favourite photos from the day, here!