an automated suspended drumkit
under design and construction
In January 2018 we got a request from the Speelklok museum in Utrecht to make
some of our robots available for a long running exhibition on musical robots.
The robots they wanted to borrow were <Aeio>, <Bello>, <Bug>,
<Pos> and... <Simba>. The loan came in as a perfect fit for the
50th anniversary of Logos. However, this placed us for a serious problem, <Simba>
being used in an awful lot of orchestrations for our robot orchestra. Thus we
decided to isolate the most frequently used components found in <Simba>,
the hi-hat and the bell-rattle (tambourine) , and started designed a new robot
that could replace these components and add some extra features as well. Thus
<Per> was designed such that it could for the most part replace both <Simba>
and <Troms>, a minimal drum kit as it were. As we are running out of space
at Logos - at the time of this writing, the robot orchestra consists already
of 72 musical robots - we decided to make it a robot to be suspended from the
ceiling. Hence, it should not become too heavy. The idea of a flying drum kit
also inspired us to develop a special Namuda production around it, to be premiered
at the occasion of the festivities for the 50th anniversary of the Logos Foundation
in our homebase in Ghent..
Here are some selected components:
For the tambourine we used 16 brass shell bells from an old orchestral tambourine dating from the beginning of the 20th century. In fact, the same shells as used for the <simba> robot. The design, although entirely new, follows the lines of the original instrument. Also we found back a small set of four Latin Percussion drums we once got as a present from a girlfriend: As these are miniatures, although very well made, they produce very high pitched drum sounds. The kit consists of a small conga, a darbukah and a pair of bongos. Designing a good sounding beater mechanism for these tiny instruments was not a trivial matter. The beater mechanisms we used hitherto didn't work very well and certainly couldn't compete with what human hands and fingers can produce. It's also worth to note that these drums use pretty thick natural skins and thus require quite some striking force. The best results we got after long experimenting sessions, was using flat blade springs as beaters. These springs we made from old metal saw blades. As the blade springs have to hit the drum membrane in a perfectly flat way, this idea can only be applied to drums not having a rim over their circumference. So it would not be applicable in a robot such as <Troms>.
The bass drum used here is in fact the other half of the bass drum we used for the <Troms> robot : Inside the bass drum we mounted a pedal beater using a hefty open solenoid with flying anchor, two twin beaters with piano hammers, a single rimshot beater as well as a large felt-covered damper driven by a linear push solenoid. A small cymbal, with a single beater, was mounted as well. A single crotale tuned to high B (midi note 95), made by Avedis Zyldian, was added as well. The cymbals were more of a problem as we did not have a pair of decent cymbals with equal diameters in stock... We bought a new set of turkish cymbals. For the movement of these cymbals on the hi-hat mechanism, we found a heavy duty solenoid type - presumably made by Siemens - , but the anchor was missing. So we made a new anchor from very thick polished steel tube, in fact a recycled part from an old photocopier. The hi-hat assembly using these solenoids came out to look like this: To operate well, these solenoids require pretty high voltages. However, at 100% duty cycle the voltage must be limited to 40 V, as we found out by measurement (temperature rise over a long time in function of applied voltage). Thus we required a microprocessor controlled high voltage power supply. To keep things as simple and reliable as possible, we first tried to use a zero cross optical relay -internally using a triac - driving a rectifier and a quite hefty electrolytic capacitor.
This is the principle, drawn as a circuit diagram: We revisited an old and proven but quite primitive circuit principle: This is pretty easy to implement on a PIC controller, as long as the control pulses are longer than a full period of the mains frequency, 20 ms. Due to the long RC time realized with the large capacitors, we can go with very slow PWM. The solid state AC relay we used is MP240D4, as it's a zero-cross relay specified for 4A at 280V ac. The feedback-loop for voltage regulation makes use op an Optor, a resistive optocoupler. Instead of the pulse transformer driving the IGBT, an optocoupler can be used as well, but this requires a separated power supply, unless an esoteric high voltage optocoupler is used. Note that there always must be a load in this circuit, as otherwise output voltage will always be the peak voltage of the input. In pratice however, this approach was abandonned because the loads -mostly short pulses- were way too irregular to make the voltage regulation work reliably. The result was clearly varying and unreliable velocity pulses on the solenoids. Thus we decided to go back to a very simple unregulated power supply providing +71V and -71V at some 250 VA, using a toroidal 2 x 50V transformer, a recifier bridge and two hefty capacitors.
We invested quite a lot of research time on the beater mechanisms used in this robot. First of all we wanted to improve on the beaters as we made them for <Troms>. The problem with <Troms>, using Laukhuff pallet valves for the beaters, was that the dynamic range goes down with decreasing size of the drums. Here we wanted to get a much more penetrating sound. As said above, we found that flat blade springs perform better in this respect than striking mechanisms using a ball head. However for the bass drum, we went a very different way and here we used solenoids with a fully free anchor. These behave very different than standard push or pull solenoids. When activated, the anchor moves to the magnetic central position and moving it from there requires a force proportional to the distance of the movement, up to half of the length of the anchor. So the behavior is a bit spring-like. When activated with the anchor one fourth of the length out of center, the anchor moves through the coil with an overshoot and then returns back to the central position. It's exactly this overshoot we use here for striking the drum. A light spring is used to return the anchor to an out-of-center position after a stroke. Without such a spring, further strokes would be impossible as the anchor wound start from the central and forceless position. The big advantage of this mechanism is that it guarantees an elastic stroke, as the anchor with the attached beater is basically free during the collision with the membrane of the drum. It goes at a price however: repetition speed is limited by the large inertia of the anchor and also, power efficiency is quite low. Mostly for visual reasons, we wanted the drums in a vertical position although from a pure functional point of view, a horizontal position would yield much better results and has the advantage that a return spring would not be needed and that friction would be minimized.
The damper on the bass drum was implemented in a much more refined way, compared to our <Troms> robot. First of all, the pressure of the damper against the skin can be controlled with the velo byte accompagning note 21. Pressure can be further modulated using the keypressure command for note 21 whilst the damper is activated. It is very important to know that the damper can use an overvoltage to obtain extra large forces. However, this cannot be done for a long time as the solenoid will get very hot. If users want to use the damper for an extended on-time (100% duty cycle) , the maximum value for velo as well as keypressure is 86. When the key-pressure command for note 21 is issued without a note-on command, no velocity pulse will be applied to the solenoid. Thus it is possible to use the damper as a very soft beater on the bass drum. The velocity pulse produced at the reception of a note-on command can be controlled with controller #21. The default value for this controller is 1.
The firmware for all PIC microprocessors was written in Proton Basic.
|Firmware for the midihub and power board||per_hub.bas||per_hub.hex|
|Firmware for the pulse-hold board||per_beat.bas||per_beat.hex|
Worked out, such as to have maximum compatibility with <Troms> and <Simba>
The midi channel for <Per> is 6 (0-15) or 7 (1-16).
Midi note range: 24- 77., Velocity implemented to steer the attack force of the beaters, the hi-hat and the tambourine. For the lights, the velo-byte steers the flashing speed.vidual note aftertouch (polyphonic) under development.
Note Off commands are not required for the drums, note release is not implemented. Note off is mandatory for the hi-hat. If you leave them on for too long, the solenoids get very hot.
Key pressure is implemented for automatic note repeats. The pressure value determines the repetition speed. Maximum repetition speed is 16Hz, but if such fast values are used, velocity values have to be kept at very low values. It is obvious that when the repetition length is shorter than the velocity pulse length, repetition will not work. Also, note that repeats using key pressure are 'sticky'. The setting is not canceled with a note off. So, once set all new note-on commands will lead to repeated notes, unless key pressure is set to zero again.
Note that as far as the damper is conserned (note 21), the key pressure controls the force exerted by the damper on the skin. Thus, pressure modulation is possible. Pressure values higher than 86 should be avoided. These higher values are only implemented to make short accents possible.
Controller #21 can be used to control the attack velocity of the damper. The default and reset value for this controller is value 1. At high values, the damper will operate as a soft beater on the bass drum.
Controller #30 is used to set repetition speed for all notes to one and the same value. The parameter determines the repetition speed. (Range 2Hz to 16Hz for values from 1 to 127). Repetitions start on reception of a note-on command. Thus, phase shifts of the repetition frequency will occur if notes are not started at the same time. This controller, with value 0 can also be used to cancel all repeats.
Controller #66 is used to switch the robot on or off. Switching the robot off, resets all controllers to their default values..
Controller #71: Controls the PWM value for the voltage during the velo-time on the hihat. Default and reset value is 64.
Controller #123: <Per> responds to the midi all-notes-off command. This command also switches off the lights.
Note #21: Steers the pushing force of the damper against the drumskin. Safe maximum value = 86. Higher values can only be used for very short hold-times.
Note #71: Steers the hold force on the hihat cymbal during cymbal close. Default and reset value is 64.
Notes 120 to 122: Changes the flashing speed of the lights.
Design and construction: dr.Godfried-Willem Raes (2018)
Collaborators on the construction of this robot:
Music composed for <Per>:
|Back to Logos-Projects page : projects.html||Back to Main Logos page:index.html||To Godfried-Willem Raes personal homepage...||To Instrument catalogue|
Er is geen Nederlandse beschrijving beschikbaar. Zolang we geen strukturele erkenning krijgen van de Vlaamse Gemeenschap zal daar ook niet meer aan gewerkt worden.
|Following diary given an idea of the work involved in the making of the <Per> robot. It also illustrates the building process.||
Omdat ons vaak wordt gevraagd hoeveel werk en tijd kruipt in, en nodig is voor, het bouwen van dergelijke muzikale robots, houden we ook voor <Per> een beknopt en geilllustreerd bouwdagboek bij:
To be done
Robodies Pictures with <Per>:
none as yet.
|(Terug) naar logos-projekten:||Terug naar Logos' index-pagina:||Naar Godfried-Willem Raes personal homepage...||Naar katalogus instrumenten|
Last update: 2018-08-13 by Godfried-Willem Raes
Technical data sheet and maintenance instructions:
|board output||mapping||wire color||remarks||PIC pin||function|
|1||bass drum pedal||red - blue||pulse/hold||2,3||RA0, RA1|
|2||cymbal mid||red - white||pulse/hold||4,5||RA2, RA3|
|4||cymbal edge||green - red||pulse/hold||8,9||RE0, RE1|
|5||nc||pulse/hold||10, 15||RE2, RC0|
|6||hihat||red - grey/blue||pulse/hold - PWM 1-2||16, 17||RC1, RC2|
|7||drum1||red - grey/blue||pulse/hold||18, 19||RC3, RD0|
|8||drum2||red/orange - purple||pulse/hold||20, 30||RD1, RD7|
|9||drum3||red/black - blue||pulse/hold||29, 28||RD6, RD5|
|10||drum4||pink - black/white||pulse/hold||27, 24||RD4, RC5|
|11||drum5||red/white - yellow/black||pulse/hold||23, 22||RC4, RD3|
|12||tambourine||red - blue||pulse/hold||21, 33||RD2, RB0|
|-||red LED watchdog||-||on/off||36||RB3|
|board output||mapping||wire color||remarks||PIC pin||function|
|1||note 58 propeller1||white/white-black||slow pwm on 230V||6||RA4|
|2||note 59 propeller2||white/white-black||slow pwm on 230V||7||RA5|
|3||rimshot||red / brown||pulse only||11||RC0|
|4||damper||white / grey||PWM||12||RC1|
|6||twin 1||red/black - purple||pulse only||14||RC3|
|7||twin 2||orange - yellow||pulse only||15||RC4|
|8||note 122||none||Red 1W LED on board||16||RC5|
|9||note 120||pink - green/yellow||12V lite 400mA max||21||RB0|
|10||note 121||red/green - yellow/black||12V lite 400mA max||22||RB1|
|-||red LED watchdog||-||on/off||26||RB5|
PIC processor firmware:
Disassembly and servicing instructions:
This robot uses drums with mostly natural skins. Hence it has to be protected from moisture. For servicing, the robot can be but flat on either frame side. Do not stand it on the bass drum. Before adjusting any mechanical parts, make sure the power supply cable is fully disconnected. After disconnecting wait five minutes to allow the capacitors to discharge. This robot uses quite high voltages and hence touching parts involves a risk.
Cost Calculation for this building project:
|Item - Qty.||specs.||Booking reference||cost|
|6 m||stainless steel 50 x 5||310,-|
|2 m||stainless steel 30 x 3||73,-|
|1 m2||stainless steel 3mm thick, plate||245,-|
|1||Latin Percussion miniature drumset (4 drums)||onknot, gwr 02.06||110,-|
|1||Regular Turkish Darbukah||onknot.gwr 02.06||40,-|
|1||miniature darbukah||onknot.gwr 02.06||25,-|
|100||M3 hex-cylinder bolts||35,-|
|100||M3 stainless steel nuts||25,-|
|100||M4 hex-cylinder bolts||40,-|
|100||M4 stainless steel nuts||35,-|
|1||3/8" threaded rod||17,-|
|5||3/8" brass nuts||15,-|
|4||Sandvik steel sawblades||10,-|
|1||Funke electric bell (for mechanism) 24 V||onknot gwr 02.06||50,-|
|10||Laukhuff pallet valve solenoids||585,-|
|2||Siemens open solenoids 1A / 60V||140,-|
|1||Blacknigth pull solenoid 24V||65,-|
|1||Brass shell tambourine - brass shells||22,-|
|1||set of 2 hihat cymbals||bnp J21 - Thoma Okaze||129,-|
|1||soft steel rod, massive, 17 mm diameter, 300 mm long||11,-|
|1||wood handgrip, lathe turned hardwood||onknot.gwr 02.06||2,-|
|10||hardwood wood balls, 20 mm diameter||10,-|
|6 m||stainless steel tube, 50 mm x 2 mm||80,-|
|2||stainless steel brackets 46 - 54 mm||24,-|
|10||felt rings, Laukhuff||17,-|
|1||spring, diameter 22 mm, 100 mm long||3,-|
|1||bass drum, Pulse Percussion||onknot.gwr 02.06||120,-|
|20||M10 stainless steel cylinder head bolts||60,-|
|25||M10 stainless steel nuts||25,-|
|1||stainless steel flange, diameter 160 mm||27,-|
|1||Argon gas cylinder||120,-|
|1||IEC mains entry block||8,-|
|1||M16 nut, stainless steel||3,-|
|10||cutting discs 0.8 mm||14,-|
|1||16 mm drill Cobalt||12,-|
|1||10 mm drill Cobalt||8,-|
|1||Ijzerwaren De Coene||bnp J17 - De Coene-Simons||148,-|
|1||DIN connector, chassis for MIDI input||3,-|
|Cutting and grinding discs Farnell||bpost J68||39,71-|
|1||Meteor shield, Farnell||bpost J68||40,87-|
Cutting disks Rapido, Farnell
|Welda electrodes||bpost J68||471,66-|
|Conrad Faktuur 1978095522||bpost||118,85-|
|TOTAL (expended so far)||3599,45-|
On the original budget but not yet expended:
|1||ride cymbal or ice bell||
|2||motors - Truvox||
|1||safety transformer and suspension gear||
|TOTAL: (first estimated total)||
calculation based on 273 Euro/day, which is the wage cost derived from our payrolls in 2017.
(Invoiced by self employed collaborators Bert Vandekerckhove, Johannes Taelman a/o.)
|10||welding and mechanical assembly||
|2||testing and adjusting||
Total estimated cost: 9.388 Euro