Toby K

You get in touch with me at For my full portfolio see my other website

Legends 2 – The Legend(s) Continue(s)

Written by  on April 25, 2018

Some more dead set legends of my corner of the arts world.

For the why and how of making this list see the first post here.

Read more…


Written by  on April 25, 2018

This post is the first in a series on ‘Legends’ – individuals and collectives that inspire me in the field of interactive arts and related disciplines.

I’ve kept this list for a while as I’ve tried to maintain perspective on what I do. I thought I may as well publish it to give a shout out to those who inspire me.

Read more…

Sapfundament2 – Neural Networks, Motion Capture and Flamenco

Written by  on April 24, 2018

Part 2 of a series on combining neural networks with little robots.

Read below or find the original dropbox paper article here.

Read more…

Sapfundament – Experiment with neural network for rapidly capturing human expression

Written by  on May 30, 2017


I’ve written up the results of my experiment with robots, AI and dance at the Choreograhic Coding Lab Amsterdam. Part of Fiber Frestival 2017.
Read about it below or at the original dropbox paper article here.

Read more…

Log: RPI2 as USB_MIDI to 5Pin MIDI converter and merger

Written by  on November 29, 2016

Troubleshooting log of RPI2 as a USB_MIDI to 5PIN MIDI interface

Note – this is a troubleshooting log, not a tutorial. If you want to get the same results I did then read carefully as some of the code here is my documented failures and you shouldn’t just copy and paste it. Also I’m really not a linux person, so if you are try not to laugh too much.

What is this project?

I have a couple of USB MIDI controllers. I want to send their data down one real midi cable. I’ll do the conversion using an RPI2 and send the output via a cheapo USB to 5pin midi converter.

Read more…

Diversity report and policy Oct 2016

Written by  on October 25, 2016

Diversity report and policy 2016

I’m a sole trader. A freelance light artist. Why does one artist need a diversity policy? I didn’t think I did until I read this article by Emilie Collyer.

Read more…

Problem Solving: Arduino Mega 2560 + Analog Read + LCD YwRobot LCM1602 IIC V1

Written by  on June 18, 2014

A quick one today.

I’ve got one of the little 2 line LCDs with a ywrobot I2c interface on the back. Only requires power, SDA and SCL rather than 8 or more pins the LCD would require directly.

– One thing to know is that the display suffers from some kind of delay where pixels fade in and out over a few microseconds. What this means is that with a very fast loop you need a delay just so values have enough time to appear. Also values that change very fast will appear to be a blur.

To wire it up I followed this post:

The only change was adding the potentiometer on A1 (plus power and ground for the pot, used part of a breadboard as a power bus, see photo)

LEARNING THE HARD WAY: After testing with the example code from the Arduino-info site I turned to reading an analog value direct onto the screen. I then did the usual mucking around trying to get the int value as a char, but then it turns out the LCD library supports print so it will do it for you

Kudos to for the example code and instructions.

/* Example Software Sketch
 16 character 2 line I2C Display
 Backpack Interface labelled "YwRobot Arduino LCM1602 IIC V1"
 Originally by 
 Slightly modified by Toby K to include an Analog Read.*/

/*-----( Import needed libraries )-----*/
#include <Wire.h>  // Comes with Arduino IDE
// Get the LCD I2C Library here: 
// Move any other LCD libraries to another folder or delete them
// See Library "Docs" folder for possible commands etc.
#include <LiquidCrystal_I2C.h>

/*-----( Declare Constants )-----*/
/*-----( Declare objects )-----*/
// set the LCD address to 0x27 for a 20 chars 4 line display
// Set the pins on the I2C chip used for LCD connections:
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address

/*-----( Declare Variables )-----*/

void setup()   /*----( SETUP: RUNS ONCE )----*/
  Serial.begin(9600);  // Used to type in characters

  lcd.begin(16,2);   // initialize the lcd for 16 chars 2 lines, turn on backlight

// ------- Quick 3 blinks of backlight  -------------
  for(int i = 0; i< 3; i++)
  lcd.backlight(); // finish with backlight on  

//-------- Write characters on the display ------------------
// NOTE: Cursor Position: (CHAR, LINE) start at 0  
  lcd.setCursor(0,0); //Start at character 4 on line 0
  lcd.print("Hello, world!");

// Wait and then tell user they can start the Serial Monitor and type in characters to
// Display. (Set Serial Monitor option to "No Line Ending")
  lcd.setCursor(0,0); //Start at character 0 on line 0
  lcd.print("Use Serial Mon");
  lcd.print("Type to display");  

}/*--(end setup )---*/

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
      // clear the screen
      int sensorValue = analogRead(A1);
      //String myString = String(sensorValue);

}/* --(end main loop )-- */

/* ( THE END ) */

Problem Solving: Arduino Mega 2560 + Generic Ethernet Shield

Written by  on June 18, 2014

Trying to combine these for my 16 knob ethernet controller.

Having an issue with uploading sketches while the Ethernet shield is attached to the Mega 2560.
Upload times out.

Some solutions on forum thread here.

Will try some and report back.
Note some people report crashing the firmware in there mega and having to reupload it, so be careful.

vvvv.js test

Written by  on May 19, 2014

Exprimenting with vvvv.js
Read more…

Random Knowledge: Seeed Grove hole dimensions

Written by  on May 2, 2014

I’ve been using Seeedstudios Grove system for my Arduino prototyping.
If you don’t know it’s a shield and cable system for Arduino that basically means parts just snap together and you don’t have to mess around with breadboards or soldering. At least for simple applications.

One piece of information I couldn’t find anywhere was how big the mounting holes are on their boards.
After some trial and error today I can tell you that you need m2 (2mm) hardware to suit the holes on the grove sensors and peripherals. The base shield has m3 holes, same as the Arduino.

If you’re in Australia you won’t be able to get m2 screws at Bunnings or Jaycar. I’ve only found them at speciality fastener shops like Tower Fasteners in Marrickville. Google ‘fasteners’ and see if there is another store close to you. (Coventry Fasteners is a reasonably common chain)

If you have the time you can source them from ebay.