08 Jan

Wireless RGB Pixels – Prototype PCB (v1.2)

The prototype PCB for the wireless RGB pixel is at v1.2.

Front of v1.2 PCB pinout (top) and back of PCB showing NRF module (bottom)

This version fixes a mistake I made with the power pins (I misread the data sheet) and does away with the RC pin multiplexing simplfying and standardizing the SPI comms with the NRF24L01. This also means there is no serial debug output from the ATtiny.

Initial radio range tests with the test firmware are disappointing. Comms was spotty and random. I experimented with the various power levels and have tried removing some of the PCB material and re-orienting the NRF module at an angle to see if that made any difference but it didn’t appear to.

Cropped PCB material near NRF PCB antenna on left, NRF soldered at an angle on back of PCB on right.

Cheap amplified NRF modules from ebay actually reduced the range compared to a standard PCB antenna version.

It will be interesting to compare the non Arduino-IDE based firmware with the test code in terms of radio range and comms reliability. I will update when available.

Last Updated on 8 January 2017 by Mark

26 Aug

Wireless RGB Pixels

Taking a break from the hanging v-plotter we decided to work on a project that has been discussed for a long while now… The RGB Wireless Pixel.

The idea is these are self contained full colour lights that can be placed anywhere within radio range and controlled from a master. That is, we command the lights all together or individually to change colour or brightness. With that we can create a pop-up light show that could potentially be synced to music or react to passers by. It may even be possible to put them into the windows of a large building and create a massive display… all without wires!


Prototype Wireless RGB Pixels.

We currently have a working prototype based on an ATtiny85 microcontroller, an NRF24L01+ radio module that you can find on ebay for ~£1 each, a WS-2811/2812 programmable LED and some extra passive components. The circuit diagram is available on github and there are more details on our wiki.

We are calling this version 1. The idea is to get people to design their own version of the hardware for this and get PCBs (Printed Circuit Boards) manufactured. To that end we have been running kicad tutorials (kicad is an open source PCB design program) which can be supplemented with the excellent ‘Getting to Blinky‘ youtube tutorials by ‘Contextual Electronics’. Check out our meetups page for details of what we will be doing at future meetings.

Wireless RGB Pixel_ping_pong_smt

Example Wireless RGB Pixel PCB deisgn with KiCad to fit inside a ping pong ball.

When everyones PCBs are deisgned and manufactured we will then assemble, program and test them and eventually, design enclosures and at some point, if everything works, put on a few light shows somewhere!

Right now the software for v1 is pretty basic and more or less a proof of concept. I hope the software will improve as people build their own Wireless RGB Pixels and start programming them! The PoC code is also on github.

Future plans for the project  are already being discussed for v2 which will allow the use of sensors in each Wireless RGB Pixel as well as an upgraded micro-controller to allow for these and other features.

Last Updated on 9 November 2016 by Chaz

27 Jul

Green Woodworking

Through our meetup group, Rob organised a Green Woodworking workshop with Toby from the Green Wood Work Shop! After a bunch of emails, we finally found ourselves wandering through the Purbeck woods trying to find the place, only 40 mins late we could hear the banter and see the smoke rising from the charcoal  burners. We were greeted by Toby and his dog, and a couple of the guys that made it, some as far away as South Africa! (I jest, he lived nearer London!)

Fortunately being late wasn’t that much a problem, I quickly followed what the other guys had started and found myself introduced to wooden mallets, lumps of wood (turns out it was Ash) and hand axes, some heavier than others! We had a few options of what we could make, from rounders bats, garden dibbers, to spatulas.

Some images from the day:

The space


The rather rudimental work holder / lathe


The axes had flat faces on one side, and chamfers on the other, this helped them bite into the wood. Some had both sides sharpened, some had short handles, some had long.


Some rolling pins, a dibber and spatula, some having aged better than others.


Forget what this is called – but it makes the stock as smooth / round as possible before heading to the lathe.


Using a gouge to make a mark for the poppet to be located. I thought the poppet (work holder screw thing’ was a funny name, but we still say, ‘pop it in’ – don’t we?


Guide on using the roughing gouge


workin’ it


Tools of the trade


The beginnings of a rounders bat


venting the hardships of motherhood into this bat


This was a tricky tool to get to grips with, it gave a smooth flat finish, but any lapse in concentration and you’d put a lovely gash in it!



Lots of these on the ground – how many dibbers have been made here?


Rushed this – took about 1.5 hours start to finish – broke a sweat!


Unfortunately I didn’t get a snap of everyone’s finished work! Maybe ill update if I can get copies.

Thanks to Rob for organising the day and Toby for hosting (also, to his mum for the food and cake!)

Was a great day out – I think the potters wheel will be next on the list!


Last Updated on 27 July 2016 by Edward Ward

20 Jun

An hour or so drawing


This is what happens when your .SVG export is set with incorrect settings. I left it running for a bit – I thought it looked interesting – also, no pen lift (the horn fell off the servo).

I was playing around with some simple ‘tween’ curves in Rhino / Grasshopper – hoping to increase my proficiency in GH to create some interesting vectors.


The same drawing, with a slightly different home / start position. The red is a STABILO point 88, the magenta is a Pilot V5 Hi-Tecpoint Rollerball Pen Extra-Fine, and the blue is a Eye Micro Rollerball UB-150 (didn’t know that till I just hit up their website!) I knew there was a reason as to why I horde stationary.


The green is a STABILO pointball, the nib is a little large and barely fit through the gondola nib guide thingy, so could have done with a larger hole for it to fit through.


I ended up slowing the speed of the motor accel to a whopping 5 (seconds to max speed) and then I changed the max speed to 25 (half original value). A notable difference in both speed (slower) and resolution (straighter lines (but still not perfect)).



Last Updated on 12 September 2016 by Mark

26 May

New build

I fancied making my own VPIP based V plotter – and made some very minor alterations to the cad data (plastic parts) in the process.


Just some of the parts required to build the thing – dog optional.



The plastic parts for the build. Printed on my Mini Kossel in el cheapo blue via amazon @0.2mm layer height.


The first job was to deburr the parts that required it – note the colour change depending on light conditions! The below image is a truer representation of the actual parts.


Bashing the pulley thingies onto the motor shafts


Followed by mounting the motors.


And what is potentially the coolest part of the project (IMHO) is a swappable thing that allows for the pen nib to be stabilised. I have a couple of these with different diameter holes for the different sized pen nibs, eg a sharpie. This should keep the pen at 90 degrees to the paper and not move around inside the gondola. It just needs a deburr in the below image.

And as usual, I got carried away building the thing to carry on taking photos…


Firstly I extended the mounting brackets for the motors – this will allow me to position the endstop encoders later down the line.

home endstop home endstop exploded

These are v1 of the endstop thingies – they will protrude fromt eh front of the machine, but its really the only way I could get it to work ATM. It has Z adjustment with the M3 screw and two captive nuts, and Y adjustment of up to 10mm – having not used these before – hopefully this will give plenty of adjustment to the ball string on the machines.

I reduced the diameter of the gondola so it would print on my mini Kossel (160mm). I also added another screw mounting to hold all the components together.



I added a spacing for the bearing housing  – allowing the shaft to move freely as it was being constrained by the enclosed design, as you can see from the lovely image below  – grey bits are the recess!

bearing bit [Converted]

The weights now have their own printed mounting – V1 worked with a little filing, so V2 I’ll try and fix that!


I finally got around to building the new Hat for the Pi, but that has a few teething problems at the mo – so currently its not moving.


This also has its own electronics mount – but I forgot about the SD reader at the bottom of the Pi, so I had to hack away at it a bit! I aim to make a cover for the electronics at a later date.


I added cable sleeve and that makes it look that little bit better – but the cheap DuPont connectors are utter crap and just pull apart without any prompting >:(.

So, hopefully the config for the UART will get sorted reasonably soon, so I can start drawing with this damn thing! Its been a fun build though, I hope the work on the plastic parts can result in some high res / fast drawings to be created – speaking of which, better get cracking with that!

Some of the beginnings of the drawings…












Last Updated on 26 May 2016 by Edward Ward

02 May

V-Plotter in the library – part 4

Joseph Warin has continued to create some work for the plotters – this time using drawing inspiration from Alan Kitchen:

I was inspired by Alan Kitchen, his letterpress print technique and colour schemes.

The print today was just a test run on CMYK colour and how long it would take the machine to draw them. 

WP_20160429_13_42_08_ProWP_20160429_13_42_19_Pro WP_20160429_13_42_15_Pro

Last Updated on 2 May 2016 by Edward Ward

26 Apr

Hanging V-Plotters at the Arts Uni – Part 3

We’re online! Check out the details of the event here!





Gallery staff Joseph has been a great help – getting the machines plotting most mornings.  The above image is his work – the poster design for the exhibition realised using the machines, in the style of Norwegian Pixel.

Cheated the process here by plotting text (black fill) – so it renders it out at its most dense – perhaps we need to implement plotting vector in fills.


Got the large machine fixed – changed the gear wheel on the right motor – just need to get some bad ass vectors in place.


Multi layered image – black Hi-Techpoint 0.5 fine over Neon (magenta) Stabilo fine 0.4


To get the plots completed at A2, I changed the pixel size from 3 to 10 – so the spiral is large. I then later dialled it back to 7. I think Changing the speed would also be helpful (slower) – will get the resolution of the spiral that much tighter.


Colour change mid plot


Drawing studio interior rendered with Norwegian Pixel


Last Updated on 27 April 2016 by Mark

19 Apr

Hanging V plotters at the Arts University Bournemouth – Part 2

After a lot of faffing, things breaking and some head scratching, the machines are all working as anticipated and we’re almost ready to start doing some drawings!

This post shows the result of running some calibration tests and some test drawings.


The Pylargraph machine is finally plotting a graph of tweets for the chosen disaster related keywords. For some reason the code had defaulted to scaling all tweets to a height of 1mm. This produced straight lines which wasn’t very interesting. Now its producing interesting line graphs.


Then we have a vPiP machine rendering a Vulcan bomber. The grid is the result of a test program that we use to check the machine is properly calibrated and will be drawing things where we think it should.


And the large format landscape vPiP machine drawing a vector of the exploded view of the Gondola (the thing that holds the pen) that this machine uses. Again, the grid is drawn by a test program.

Last Updated on 27 April 2016 by Mark

14 Apr

Hanging V plotters at the Arts University Bournemouth – Part1

Our trio of hanging V plotters at the AUB


The machine on the left is running Pylargraph and is plotting a graph based on the number of twitter search results it gets back for a series of keywords related to the theme of disaster.

The two on the right are running vPiP (which produced the framed images).

We hope to get the large machine on the right plotting large format vector images.

Last Updated on 19 April 2016 by Mark

21 Mar

Installing and configuring Pycupi

There has been some interest in Pycupi from the wider community so I figured an install/configuration guide might be handy.

IMG_7041 (2)

Tank Girl – v-plotter CMY (3 pass) Pycupi spiral arc render A2 Stabilo Point 88 Fineliner

First off this guide assumes you are using a configured Raspberry Pi that is running a recent version of Raspbian Jessie.


Python should already be installed along with PySerial. However we still need the Pillow library for image processing.

From the command line run:

pip install Pillow

If that completes without error you can move on to the install.


From the command line (and somewhere in your home directory) run

git clone https://github.com/brianinnes/pycupi.git

That will get Pycupi. Inside the Pycupi directory you will find an Arduino/Stepper directory which contains the firmware for the Eggbot/Spherebot/Polargraph controller. A Python directory which contains the core Pycupi program and test scripts. A testImages folder that contains a few images. And a wikiResources dir which contains stuff that lives on the wiki.

cd into the Pycupi/Python directory and run

python test1.py

which will probably throw an error complaining about the serial port. Thats ok, we needed to run this to have Pycupi create the default config. The default config lives in your users dir (/home/some_user/.polargraph/config.cfg). You will need to edit a few settings to match your machine before you can do any drawing.

Note: A semi-colon denotes a comment in the config file. Any line starting with a semi-colon will be ignored.

Under the [Polargraph] section, configure the following (any settings not mentioned here, which are present in the config should be left as default):

  • pensize – not currently implemented – will be ignored.
  • machinewidth – This should be set to the distance in mm between your pulleys.
  • machineheight – The physical height of you machine measured in mm from the centre of your pulleys.
  • mmperrev – The circumference of your pulleys (in mm) or how much chord or chain (in mm) is played out for each whole revolution of a pulley.
  • setsperrev – The number of steps your motors make in each whole revolution.
  • stepmultiplier – The step multiplier applied by your stepper drivers (Pycupi firmware defaults this to 8).
  • serialport – The serial port your stepper control board is attached to (/dev/ttyUSB0 on a RaspberryPi connected to the ‘Arduino Nano dual stepper board v2.1’).
  • motoraccel – A time value in seconds that determines how long it takes the motors to accelerate to their fastest speed.
  • motormaxspeed – The maximum speed the motors are allowed to move in mm/sec (needs confirmation).
  • penup & pendown – not currently implemented. Configuration angles for servo are set in the firmware.
  • homex – The home position in the (horizontal) x axis, measured in mm from the top left pulley. This position can be anywhere you like. Suggested value would be in the middle of your machine.
  • homey – The home position in the (vertical) y axis, measured in mm from the centre line of the pulleys (imaging a line drawn between the centre of the pulleys, homey will be some distance below this). This position can be anywhere you like. Suggested value would be 120mm down from the centre line, but will be dependant on your machine.

For a graphical representation of machine size measurements, see this post.

Under the [Paper] section you can define your paper size and its position.

An example A3 page would be as follows:

  • size = A3 – The name of the paper size.
  • width = 297 – Width in mm.
  • height = 420 – Height in mm.
  • posx = 175 – The position (in mm) from the left edge of your machine to the left edge of the paper.
  • posy = 240 – The position (in mm) from the top edge (centre line) of your machine to the top edge of the paper.
  • margin = 20 – A margin (in mm) around the edge of the paper where the machine will not draw (usually where you tape the paper to the machine). The specified margin will be applied on all sides of the page.
  • pixels = 3000 – The resolution for this paper in pixels.
  • rotate = false – If false the image is not rotated. If true the image will be rotated.

Under the screen section:

  • screenX = 5000 – The resolution the plot simulations will be. When generating simulations (bitmap images of a plot), you can specify a higher resolution that your final plot so you can see more detail to spot potential issues before running a plot.
  • showImage = false – not currently implemented.
  • saveImage = false – not currently implemented.

Now when you run

python test1.py

the machine should spring into life and draw a rectangle filled with smaller rectangles.

Last Updated on 29 March 2016 by Mark