Category Archives: PCB

CITE China Information Technology Exhibition

DSC05577DSC05585 We were excited to see CITE and had ourselves an early start. We had some wonderful Chinese bread for breakfast – with the undetermined pork or fish sugary floss – and set out in the foggy morning. The big trade-show hall is within walking distance of our temporary home. When the Chinese build an Exhibition centre, they mean it and make the ones in our own country look puny.  There was so much to see!  A few of the highlights:

DSC05572 DSC05574Neuron; A full-body motion capture suit; a collection of sensors that you can easily strap on and lets you freely move around. There was a guy doing live demonstrations in front of a big screen, he seemed kind of uninspired so I did a little dance with him – to relieve boredom and to see if the sensors would also follow some more rigorous movement. I made him follow me and together we boogied down to the ground and twirled like ballet dancers. On screen all the moves (including his stumbling and hesitance) were really well followed.

DSC05590Pick and placers in all shapes and sizes, a CNC on magnetic rails, robotic paste dispensers and 2-component gluing robots which were unexpectedly cheap. Electric factory worker drills and screwdrivers – stopping on counterforce and hanging down from heaven (or the ceiling).

DSC05593 Thin film speakers and conductive textile printing – actually stretchy and no more of the crackling problems it had in the past. This seems like an interesting technique to build some creative and wearable applications. Make stuff work AND look good!

DSC05565 DSC05566

pcDuino: Lego-like blocks that you can program as components onto your pcb and build things on with Lego. Like many things nowadays it works with Scratch. Very nice educational tool, allows for mucking around. Disassemble and reassemble.


We walked in to the “e-health” hall, which mostly consisted of e-cigarettes and their many, many liquids. The air was sweet and fragrant and scantily clad ladies were walking about with promotion materials. One of them handed us a throwaway e-ciggarette which supposedly equals one packet of cigarettes.

DSC05571There were multiple versions of a step on electric transport device – sort of a Segway without the middle stick which most of us tried out for a couple of meters. You control it by moving your feet very slightly. Roman has the distance record between us and had the basic manoeuvring down in less than two minutes.

A rolling drone that can also bounce and flip. 3D printers with a delta-bot, SLS stratasys printers, room-sized 3D printers and liquid printers. OLEDs in panels of 10 by 5 cm and 8K screens by BOE. Many more things to gawk at and definitely to much to list here. Makeblock was also there, showing of their new stuff – more on that when we visit the studio.


Panel merging tool progress

It has been quite a while since I had a chance to work on the tool – I have been too busy validating the output and playing with the microgameboy, but finally I’ve had the time to incorporate some bugfixes.

The biggest one on the list has been the import of gerber files generated by Diptrace..

See here:

UPDATE – Whoops, forgot that some boards still use holes! Not everything is SMT yet 😉

Fixed the diptrace drill exports too:

ld bug 6


The yellow panel – prototyping utilities.

The recent paneling experiment resulted in a nice new addition to our prototyping toolbox:

the yellow panel.

And the yellow panel..  Dirty dirty DIRTY soldermask (check topleft)And the other side.

The yellow panel contains:

  • Wolfsom SMT microphone breakout with small amplifier
  • QFN24-to-dip adapter
  • Freescale K20 TFT backpack (enhanced Teensy3.1 without the bootloaderchip)
  • Freescale KL02Z DIP breakout with microphone
  • USB-testpoint board in USBstick form
  • 0.49″ I2C OLED breakout board
  • 3.3v MIDI IO board
  • KL02Z micro-gameboy with 0.49″ OLED, microphone, switches and battery.
  • A keychain

The general theme for this board is “controlling stuff with audio while having sufficient visual feedback” I will be soldering a few of these over the next few weeks to test out various ways to get light/motion things synced up to music.

The microgameboy (screens have not arrived yet – they will get their own post once the hardware is complete):

IMG_1566 IMG_1565

Code upload works! Blinky fizzbuzz LEDs!


USB testpoint thing soldered in 2 configurations:

IMG_1564 IMG_1563

If you’d like to try these as well – get some at and ask us for schematics/bom/help on twitter!

Creating breakable PCB panels for

DirtyPCB seems to be the first small-prototyping-service that allows you to build panels with breaktabs. I had to try this! Soon after this thought I stumbled upon the great question of “how” – here I had all these folders full of gerberfiles for boards.. but the tools to panelize them were all very primitive, expensive, unhandy, unartistic etc… time to fix this!

Down here you can see the progress I’ve made from initial concept to usable tool.

The tool shall be released in (bin + source) full after I’ve gotten the second round of panels back from DirtyPCBs (I am not going to give away a tool that will create unproducable gerbers – I need to doublecheck everything)

Goldfish 4 UI board pictures

After some major drama in the workshop (leakages, iron dust cloud, broken floor, rainwater coming in, etc) I finally have some time to share a few progress pictures.

First and foremost: IT WORKS! The Goldfish R4 UI board can be used as a stand alone USB-MIDI controller! I had to do some workarounds, but it all seems to work now and I’ve used it together with a few DAWs. The current version has two modes: “control” mode and “xy” mode. In control mode you can use the encoders to control 6 MIDI-CC values at the same time, and press the encoders to select midichannels or different sets of CCs. The Goldfish keeps 36 controllers in memory, so you can see their value on the LED rings as soon as you switch between pages of CCs.
In xy mode you can control two MIDI-CC values at the same time by using the touchscreen. The left and rightmost encoders control which midi-CC is being sent by X or Y. This mode will get some “auto-LFO” options to spice things up.  

Here it is, showing the LED rings lighting up for the first time:
Ui in the dark

To save some board space, I’ve added mounting holes to re-use the Connector board from the Goldfish R3. This board provides MIDI plugs and stereo jacks. (the red PCB):
Backside fits a midiboard from fish R3


Development is easy: a standard Arduino-serial module plugs in to the board at the back:
Easy to program

Historic moment: First Fish! The hello-world of Goldfish development!
FIrst Fish

Lacking the time to lasercut a nice enclosure (see “major trouble” earlier 🙁 ) I just took 1 of the leftover PCBs and sandwiched the thing with some hex-standoffs to protect the insides:
Stacked with a second fish board - still needs a plexi casing
Up next – an extra Arpeggiator mode, one more revision of the PCB and some fluo-yellow lasercutting work for the casing!

To be continued!

LED Badges

Festival season is here!

And since we like glowsticks, but don’t like their nonrecyclable nature – we decided to go all out on a bunch of LED toys!


Each smiley features 20 LEDs in a Charlieplexed setup running on an Atmel Attiny85.

The smiley PCBs were done by They arrived VERY fast compared to the usual Chinese boardhouses. One week after ordering – with DHL shipping. The quality is exactly as advertised: Dirty, but good enough where it matters. The silkscreen drifted a bit here and there and the soldermask is not very strong (the copper shines through after some soldering) – BUT – they managed to do 150dpi bitmap silkscreen with no errors.

DirtyPCB smileys Smileys and Dirtystickers and Badge 1

Original design for comparison:

Smiley Design

Eagle Board and Schematic files, together with the code for the firmware will be uploaded shortly!



Exotic PCB production colours

The UI board for the Goldfish v4 is almost ready for production (post will follow soon) – so the search for fancy factories has begun!

I was quite charmed by the colours of this fish:


(found here:

Which led me to search for circuitboards with white soldermasks and red silkscreening. (or maybe a cheaper inverted option – red soldermask almost 100% covered by white silkscreen)

I found some (not so spectacular) samples:

and so far I found as a factory that seems to support this special option in small quantities.

Goldfish V4 UI panel – Encoder Rings

The FPGA-based Goldfish is still in constant flux. I decided it needed more encoders on the frontpanel, AND some visual feedback for the value of each of the encoders. Each encoder now has 16 LEDs around it to show the current value/meaning.

Apparently there are some suppliers that build complete rings (like Top-Up ), but I want to build my own rings first.

fishv4 - encoder setup


To build these rings, I wrote a small .NET tool to generate the scripts for Eagle. (If somebody has use for this or something like it, let us know on Twitter – I think it is too small/dirty to warrant its own github project – and it has been done before by others too)

The final puzzle to solve before the board can be routed and fabricated is the various ways I want the chips to talk to each other.

The interface board can be used as a standalone Arduino Mega (with TFT, touch and encoders) – using serial + reset to use the Arduino bootloader

The Freescale Kinetis K20 chip can upload new firmwares using this bootloader
The K20 usb-dfu bootloader is already in place and can be extended to allow passthrough to the FPGA and the Atmega

Now.. the UI board needs to talk to either the fpga or the mk20 based on the final firmware.. and the K20 might need to send commands to the video interface on the FPGA.. or on the UI board.. and the FPGA could send stuff to the audio codec… but the current goldfish code runs fine on the K20… so an optional bridge between the audio codec and the K20 might be handy to have as well… CHOICES!! if I can cleanly upgrade the K20 to a K22, the extra FPU performance will definately warrant codec-connection to that chip…

I’ll be back in the basement trying to decide what will happen. Building an open experimentation platform is all about enabling possibilities. But at some point I shall have to make concessions even before the first experiment.

To be continued!

Drafting the new Goldfish v4 boards

After playing with the FPGA boards for a while, I decided to completely overhaul the Goldfish board.

Spending a bit more time and money will make this box much more useful for the coming years of audiovisual experiments!

The current preliminary hardware feature set:

Spartan 6 LX9 FPGA
Freescale MK20 (or MK22) ARM Cortex M4 MCU
2 small 320×240 tft screens with AVR for touch handling (1 screen for the FPGA, 1 for the MK20)
4 to 6 encoders (no more buttons, the encoders also have a button if I need something pressed down 🙂 )
2 microsd slots (again one for each)
Wolfson audio codec with headphone, lineout and linein connected
VGA and HDMI output for the FPGA
MIDI ports
USB Host port
USB Client port

This all shall fit nicely sandwiched between 2 15x10cm PCBs

Progress so far:

goldfish 4 rough draft

Notes on FPGA board design

The happy Australian is at it again!

This time, he talks about designing boards with FPGAs and explains various things about using tiny BGA (ball grid array) chips. These 3x3mm FPGAs have 36 connector-balls underneath, spaced only 0.4mm apart. Making circuit boards for these chips is still a bit too intricate for most cheap factories, but when you consider how much smaller the final boards can be – maybe using a more expensive factory evens out after all!

New PCB order – small DIP protoboards

Krzysztof Foltman writes: “Another PCB sent to manufacturing. This time, it’s a universal 5x5cm protoboard. If you’re a beginner at electronics and want to try making a simple electronic circuit using standard through-the-hole components, it’s probably going to save you a lot of time. It’s compatible with DIL chips but also supports double-row pin headers quite nicely – something I missed in the cheap protoboards from ebay!”

fsm 5x5 protoboard

Download GERBER files.

Progress on new protoboards

After using our V1 prototyping boards for a while we decided to design some improved versions to make future experiments easier.

This new board is focussed on mostly analog setups:

It features a switchable supply between USB and external power and an area for SOIC MCU’s and CODECs.

This board is an upgrade from the v1 protoboard:


– The connector placement has been improved.
– There is a new hole pattern and connector which makes it fit the Goldfish platform (giving instant access to graphical user interfaces to control experiments – or an FPGA daughterboard with HDMI for heavy lifting)
– There is dedicated space for an Atmel Attiny85 beside the TQFP area which can give a quick and dirty USB interface to whatever TQFP is on the protoboard. (using the VUSB library). It can also be used to generate reference signals or bootloader portknocking.

As soon as the new Goldfish mainboard + extension header has been finalized we will add these protoboards to the next batch to be sent to the PCB factory.

Maker Faire Shenzhen – first impressions

We were already spotted on the platform of the metrostation “Are you coming for Maker Faire?” – “yes” – “Follow me, I show you”. It must be our geek-sjiek attitude..

Just out of the station there were many of the Maker-red-robots, drones in the air and a rather large Bumblebee (Transformers – yellow one). People were waiting for us with maps and kindness – everything has been really well marked and easy to find.

 MF Krzysztof grinning map MF guiding floor stickers

The Faire itself is bigger than we expected and outside (huh?). We were impressed by the guys from 3rd Ear, a threedimensional music experience. Also, a guy from Music Thing Modular – who builds modular synthesizer eurorack modules- gave us the PCBs for two of their modules: a spring reverb and a random sequencer. With a bit of luck we can find all the components we need for these on the markets later this week.

Other interesting things:
– Quitbit
– Bicycle lighting/tracking by Helios
– A bendable sailboat for cleaning the ocean
– Modular controller blocks

Will upload photo’s / video’s and more details later


Goldfish v4 – Board design progress

The Goldfish platform is slowly growing in scope and complexity.

The first three Goldfish designs focussed on getting components to work at all – microcontroller, audio codec, TFT screen and MIDI. The designs I’m working on right now will provide the processing power to do something more interesting than polyphonic ringtones.

The current plan is to move from the Freescale Kinetis K20 to the ST STM32F407VGT6 microcontroller and have an expansion header to host a whole number of other experiments. Most notably – a Spartan 6-with-HDMI board and version two of the prototyping board. This header and the new expansion boards will allow the main Goldfish PCB to become a central JTAG/Debugging environment for the next few months of audio and robotics experiments.

The main Goldfish PCB so far

Goldfish-STM32 with expander

The MCU board has a few extra features compared to Goldfish version 3 -> there is an extra microSD slot and a big row of expansion pins. USB and reset/program button have been moved to the other side to accomodate the different microcontroller pinout and give a decent place for the pin header. The routing is just a quick autorouter test to see if it would still be possible at all to route it. This design is nowhere near final.

The Spartan 6 FPGA board so far

Goldfish-FPGA stack

This is my first FPGA board. I started with the Papilio Pro schematic as a known-to-be-working configuration to start from. Power and IO have been moved around a bit, and the FTDIchip-JTAG setup might be replaced by just a JTAG header. The connected Goldfish microcontroller board should be capable of uploading data to the SPI flash later on anyway, replacing the need for the FTDIchip.

As soon as I can get my hands on a few PCB-mounted HDMI connectors I will add two or three to the board. I’ve been reading up on HDMI-FPGA combinations, and the Spartan-6 FPGA should easily be capable of hosting a few videostreams – even 1080i is within range! (there will be some separate posts on this subject)

Currently I’m putting further development of these boards on hold until I’ve been to the Shenzhen markets. I have no doubt I will find more interesting screens/buttons/leds/plugs to use there – so it makes little sense in finalizing the layouts before going to China.