Godfried-Willem RAES


[Nederlandstalige versie]

Robot: 'Puff'

This robot realizes a percussive organ in which every single note is driven by an individual small bellow. All of these bellows are on their turn driven by strong and fast operating solenoids and hence, produce a single but precisely controllable puff of wind on each stroke of the solenoid. The instrument has no equivalent in existing musical instruments. It has 84 different notes. The compass is 3.5 octaves and the instrument is tuned in equal temperament quartertones ( 2^(1/24) intervals). The scale starts at midi note 55 (equivalent to the lowest note on the violin) running upward to 96. Because of its extended range in the high treble and its quartertone tuning, this robot lends itself particularly well to music using spectral harmony techniques. If enough energy is send to the solenoids, the pipes can also be made to overblow. In this case, the duodecimo will sound, since we used closed pipes.

Musical dynamics are implemented by applying pulse width modulation techniques in the driver circuits. The pulses can vary in the range 1ms to 80ms. The circuitry used is very similar to that developed for our <Vibi> , <Player Piano> and <Tubi> automaton, although in this case, we did not use hardware timers (Intel 8054) but six PIC controllers, thus avoiding the necessity of yet another dedicated laptop computer. The picture below shows an assembly of solenoid and bellows as used in this robot:

The power supply for the solenoids is 24V dc, 120A peak such that simultaneous strokes on all bellows, does not burn out the power supply. The power for the solenoids should come up only after initialization of the PIC controllers. Hence always first switch on the mains power (with the 24V feed fully off) and after that, the 24V power switch. The piston-cylinder combinations are custom made by Airpot Corporation. They are made of Pyrex glass (fragile!) and have an outside diameter of 48.5mm (1.9"). Inner bore: 44,5mm (1.75"). The height of the cylinders, including the closing caps is 50mm. The stroke is 25.4mm (1") and thus the volume of air compressed equals 40cc (2.4 cu "). The site of the manufacturer is at: http://www.airpot.com. If anybody would be interested in using these devices, a word of warning is not misplaced here: these devices are terribly expensive (1 airpot costs 322 € and the solenoids go for 180€ each, thus one single note mechanism will cost you no less then 502€)

Each PIC controller steers 16 notes. There are six PIC boards in the instrument, all working in parallel. Since the PIC's take MIDI as input signal, we do not need a laptop in this case to control the instrument. The midi channel is fixed in the firmware to channel 13. The firmware is available from the puff directory on this site. Look for the puffx.asm files.


Midi note range: 55-96 for the normal chromatic pitches and 7-49 for the notes a quarter tone higher. Within our programming environment for real time composition, <GMT>, fractional midi notes can be used: 55, 55.5, ... 60, 60.5, 61, 61.5 ....96, 96.5

Note Off commands are not required. Velocity is implemented and has a wide control range. On high velocity values, the pipes may overblow. Maximum repetition rate is compromised by the duration of the pulses and thus by the velocity value requested. When the pulses are 80ms long, the repetition rate cannot exceed 1/ (80ms + 30ms) = 9Hz, or 9 notes a second. At the smallest practical velocity values, the maximum repetition rate is limited by the mechanics of the solenoid-bellows assembly. The fastest possible rate is ca. 30Hz. At velocity levels of 127 (=40ms) the repetition rate should be kept below 12.5Hz, otherwise the airpot will stick high and have no audible effect. More over, the solenoids risk burning out. At velo level 64 (-20ms) 25Hz is the maximum. The mechanical maximal repetition rate requires velocity levels below 42. The lower values giving the best musical results.

Midi Implementation Table:

Midi Command byte1 byte2 remarks
Note Off

notes: (lights)

[53,54],100-105, 120-122

123, 124


release not implemented

not yet mounted, but implemented in the firmware

the note off command is not required for the pitched notes
Note On

7 - 48 (Quartertones)

55-96 (Normal tones)

100, 101,102

104,105 (orange lights)




123, 124

velo implemented (0-64)

velo implemented (0-64)

rotating orange flashlight (3-bit binary control)

note on/off only

Red LED under motor ctrl board (on/off)

White LED, Left eye

White LED, Right eye

To be mounted. PWM controlled lights.

Note Pressure not implemented -  
Controllers 30 Eye motor position 0-63= left, 64=center, 65-127=right  
  31 Motor speed (default is 64)  
  66 on/off controller  
  67 calibrate left sensor for motor movement  
  68 calibrater right sensor for motor movement  
  69 calibrate center position for motor movement and eyes  

interactive PIR sensor dependent eye movement

  • 0 = disabled
  • 1 = integrated behaviour
  • 2 = fast direct mapping
  • 3 = fast integrator
  • 4 = relaxed integrator
  123 all notes off  
Channel Aftertouch not implemented    
Program Change not implemented    
Pitch Bend not implemented    

The <Puff> robot also has a MIDI Output, used for firmware debug but also for reading the triggers from the build in movement sensors. The output channel equals the input channel. Details to be published in due time.

The hard/firmware mapping was designed as:

Power supply circuit:

Quartertone pipes

Our first experiments were directed to constructing the pipes for <Puff> from PVC material. Later we decided to go for brass pipes. Long term tuning stability and clarity of speech being the main concern. The type of brass used for the pipes became Ms63-F45 (hard) [440-540 M/mm2 tensioning strength, Brinell Hardness 135, ASTM (USA) 270-274 = AFNOR UZ36 - DIN CuZn37]. This is the same material we had used before for the construction of tubular bells. The blocks where made of brass staff material DIN CuZnPb3 = ASTM 360 = AFNOR UZ39PB2, Brinell Hardness 90). The pipes stand on a round base cut from red copper staff material, 50mm diameter and 10mm thickness]. The windholes and reaming for the pipes in the stand were made on a lathe.

Quartertone pipes made of brass:

note: diameters mentioned in the table are internal sizes. Add 2mm for external diameters!




An extra feature of this robot is that we gave it movable 'eyes'. To achieve this a stepping motor controlling the position of a paired couple of lights is used. The schematic is very straightforward:

The midi mapping for the control of eye movement will be clear for the mapping table above. The stepping motor is MAE HY200-2220-018C5, Type 4240593 EC862773D, a four phase type with 200 steps per revolution.

Two orange lights are fitted on the front and back side of the robot. These are mapped on midi notes 104 and 105. In 2007 we added a rotating orange light underneath the robot. This light is mapped on notes 100, 101, 102. Note 100 serves as msb and 102 as lsb, such that a 3 bit speed and light strength control is possible. As yet, the uses of the one and only free pin on board 4 , mapped on note 103 is still to be determined.

Technical specifications:

Design, research and construction: dr.Godfried-Willem Raes

Collaborators on the construction of this robot:

As soon as it was ready, this robot became an integral part of the <M&M> robot orchestra.


Music composed for <Puff>:

Back to Logos-Projects page : projects.html Back to Main Logos page:index.html To Godfried-Willem Raes personal homepage... To Instrument catalogue Go to Godfried-Willem Raes' homepage


Robot: <Puff>

Puff is een nogal merkwaardig soort robot orgel, waarbij er evenveel blaasbalgen zijn als orgelpijpen! Door deze aanpak werd een volledige en volstrekt polyfone aanslaggevoeligheid gerealiseerd. Elke pijp wordt vanuit een eigen, door een elektromagneet aangedreven balgje, van lucht voorzien. Door pulsbreedte modulatie van de stroom door de spoel, kan de luchthoeveelheid heel nauwkeurig worden geregeld. In tegenstelling tot een traditioneel orgel echter, leveren de hier gebruikte balgjes geen ononderbroken luchtstroom, maar slechts een enkele windstoot: een puf. Vandaar ook de naam van deze robot. Het gehele instrument is gestemd in kwarttonen en heeft een tessituur van drie en een half oktaaf. De basisdiapason voor het instrument is 442Hz. De laagste noot komt overeen met de laagste noot van de viool, in midi termen, noot 55. De tessituur loopt door tot noot 96. De intervallen zijn telkens 2^(1/24) groot. De toonhoogte is in enige mate afhankelijk van de aanblaassterkte, wat inflekties mogelijk maakt. Bij grote aanblaassterktes, kunnen de pijpen ook overgeblazen worden. Aangezien we gesloten (gedekt, in het orgeljargon) pijpen gebruikten, klinken de noten dan een duodeciem hoger, wat de tessituur uitbreidt tot 115. De gemonteerde kombinatie van elektromagneet (Lucas Ledex Inc. type FRUXAC64700, cat. nr. 195115-002) en balg (Airpot 73710-6) ziet eruit als:

Een kleine waarschuwing voor potentiele nabouwers: deze kombinaties kosten 502€ per stuk...

Voor het pijpmateriaal werd een harde soort messing gebruikt: Ms63-F45 (DIN CuZn37 = werkstof 2.0321). Voor de kernen, handmatig gevijld uit massief messingstaaf, de zachtere legering Ms58 (DIN CuZn39Pb3 = werkstof 2.0401), die echter niet te lassen is. De pijpassemblage werd dan ook met zilver-solderen uitgevoerd. Het uitfrezen van de pijpvoeten in roodkoper en van de windgaten gebeurde op de draaibank.

De voeding werd aanvankelijk opgebouwd met twee heel zware 12V loodakkus (100Ah) voorzien van een permanent aangesloten lader, maar zowel om ekologische als ekonomische redenen, voorzagen we Puff in 2007 van een geheel nieuwe voeding. De akkus hadden immers een levensduur van twee tot hooguit drie jaar en waren aan vervanging toe. De nieuwe voeding maakt gebruik van een Siemens Sitop 24V/20A schakelende voeding met konvektiekoeling gebufferd middels twee 150mF/40V bekerelkos.

In 2010 werden aan <Puff> enkele nieuwe features toegevoegd: twee PIR sensors stellen de robot nu in staat om menselijke bewegingen te volgen en daarop te reageren middels bewegingen van de twee ogen. Voor de besturing van de stappenmotor en de witte LED's in de ogen, werd een extra PIC microcontroller ingezet.

<Puff> luistert rechtstreeks naar midi kommandos op kanaal 13. Rechtstreekse programmering op de PC via GMT is natuurlijk de favoriete besturingswijze, maar ook met standaard sequencers of via een eenvoudige Basic Stamp (BS2) kan <Puff> in volle glorie tot klinken worden gebracht.


Omdat ons vaak wordt gevraagd hoeveel werk en tijd kruipt in, en nodig is voor, het bouwen van een muzikale robot, hebben we ook voor <Puff> een beknopt bouwdagboek bijgehouden:


Afmetingen & andere technische specifikaties:

Design, research en staalkonstruktie: dr.Godfried-Willem Raes

Atelier medewerkers:

(Terug) naar logos-projekten:


Terug naar Logos' index-pagina:


Naar Godfried-Willem Raes personal homepage... Naar katalogus instrumenten

gebouwd door

Godfried-Willem Raes

Go to Godfried-Willem Raes' homepage  

Last update: 2015-11-16 by Godfried-Willem Raes

Maintenance information:

PC-board layout:

The hefty electrolitic capacitors used as high current buffers in the power supply are rated as 'long life'. That seems to mean a guaranteed lifetime of 20000h. So, in continuous operation one can expect these components to fail after two and a half years... If replaced, they have to be rated 150mF each at 40V dc. They are fixed to the chassis with M12 nuts. The negative pole is connected to the can and to the nut/bolt.

Detailed steering details for the rotating flashlight:

note 100 note 101 note 102 current power
off off off 0 0
off off on 1.08A 26W
off on off 1.37A 33W
off on on 1.76A 42W
on off off 1.89A 45W
on off on 2A 48W
on on off 2.1A 50W
on on on 2.2A 53W

Eye & Motor mechanism (rev. 10.2010)

2 PIR-STD passive infrared movement sensors (Hygrosens. http://www.hygrosens.com). Mounted in a thick aluminium profile with epoxy resin. The power supply voltage for these is taken from the logic +5V.

2 Pepperl+Fuchs proximity sensors (NBB2-V3-E2)

Midihub board Version 3, with modifications for sensor inputs. Pic processor 18F2525. Firmware written in Basic and compiled with the Proton+ compiler under MPLAB. Circuit diagram.

Pic source code in assembly language (Eye control PIC) Version 1.1

Pic source code & downloads for high resolution pictures