<Pi>

<¶>


an experimental extreme high pitched electroacoustic pipe organ using buzzer driven pipes

 
Godfried-Willem Raes

2017


 <Pi>

A modern times serinette this little automated instrument could be called. It's indeed very small and really portable. In the last couple of years we were asked very often to deliver lectures on our work in musical robotics all over the world. It was always frustrating that we couldn't demonstrate any of them at these occasions, as none of the robots in the orchestra can be taken as hand luggage on an airplane. A miniature could come to rescue here. However, the idea for this tiny robot grew indirectly from a project we were involved in by Laura Maes. She needed hundredths of little circuits producing nothing but very short spikes, Here is a link. That project lead us to a period of quite intensive research into very small and cheap sound producing devices. One of the devices we thus ran into was a tiny electromagnetic buzzer, type ABT-408-RC costing only about one Euro a piece. The useful frequency response of these devices, although far from linear, ranges from ca. 920 Hz to over 8000Hz. Here is the datasheet. Curious as we are, we could not resist disassembling one of these buzzers. They are build up with a 2 mm diameter permanent magnet on which a coil is wound. A 11.2 mm diameter membrane made from 0.05 mm thin steel and with a center part diameter 4 mm doubling the thickness and spot welded on, mounted at close proximity to the magnet, makes the sound source. On the backside next to the contacts, there are two venting holes. We designed resonator tubes made from aluminum pipe 10 mm outer diameter, 8 mm inner diameter. The sound opening of the buzzers is rectangular and thus we had to bring the connecting end of the tubes in shape to match the opening. A special extruding tool was made to this end. The sound of the pipes thus formed is quite reedy, as was to be be expected from metal membranes, and thus compares quite well to a high pitched regal. For the seven top notes (midi 120-127) we had to use different buzzers as the sound pressure level of the ABT-408's was too low in the range 8000 to 12500 Hz.

For driving the buzzers we designed a circuit build around the microchip 24EP128MC202 microprocessor. One of these chips can serve 3 pitches. All sound synthesis is handled in the digital domain using PWM techniques. This is very different than the hybrid digital-analog approach we used in building the <Hybr>-series of robots. Also, in this approach, building cost is quite a bit lower than in those earlier designs using expensive analogue components. On each processor chip, three timers are used to generate the required pitches with variable duty cycles. The three PWM channels working at a base frequency of >300kHz are used for the envelope control of each individual note by multiplying their output with the variable duty cycle square wave signal from the tone generators. No low pass filtering was applied, as all possible artifacts are situated well above the normal auditory perception range. Moreover, the coils driving the membranes serve as an intrinsic low pass filter due to their inductance (900uH). We considered using analog control for the global volume control of the instrument as the power supply voltage for the buzzers controls directly the sound volume leading to a possibly better resolution in dynamics. However, after some experiments we dropped the idea mainly because it would introduce a high risk of overloading the buzzers if the instrument were given in the hands of not knowledgeable musicians.

Here is the circuit design (shown for 3 notes only, but the practical circuit on a single Eurocard PCB houses 4 processors, good for a full octave):

The resistors Rfn, Rfn+1 and Rfn+2 in the circuit are used to balance the non-linearity of the frequency response of the sounders. Their value increases as the resonant frequency is approached. Complete detailed circuit drawings are given at the bottom of this page.

The complete robot consists of four PCB's in Eurocard format (100 x 160 mm), each holding up to four 16-bit microprocessors. Here is an overview:

As each PCB houses 4 PIC microcontrollers (except the last board, having only 3 of them), there are 15 controllers to write firmware for.

To make and calculate the required pipe resonators we first made a bunch of test-pipes of different lengths and measured them out carefully using our Tektronix arbitrary function generator. After collecting the data, we wrote a small computer program to calculate by interpolation the required pipe lengths for the practical instrument. It was observed that the pipes resonate as 1/2 wavelength resonators. For the second board we had to cope with the own resonance of the membranes, specified at 2731 Hz, making it very difficult to obtain good resonance from the pipes. After many experiments, we came to the conclusion that cutting the pipes under a sharp angle, greatly improves resonance. The Q-factor for the two highest octaves is pretty low though and thus clear resonance very hard to determine exactly. The resonators in these octaves were determined by experiment and measurement only. Here is a 200% drawing op the pipe sizing for the lowest octave:

Definitive pipes as made, tuned and measured:

  freq = f0 driver l/d L De Di Lambda/2 R







   
84 1046 ABT-408-RC 17.0 136 10 8 82 19.6
85 1109 ABT-408-RC 15.6 124.5 10 8 77 18
86 1175 ABT-408-RC 15.1 120.5 10 8 73 18
87 1244 ABT-408-RC 14.2 113.5 10 8 69 18
88 1319 ABT-408-RC 13.5 108 10 8 65 16
89 1397 ABT-408-RC 13.1 105 10 8 61.6 16=>6.8
90 1480 ABT-408-RC 12.0 96 10 8 58 16=>6.8
91 1568 ABT-408-RC 11.4 91 10 8 55 16
92 1661 ABT-408-RC 10.4 83 10 8 52 14
93 1760 ABT-408-RC 9.63 77 10 8 49 14
94 1865 ABT-408-RC 9.13 73 10 8 46 13=>5.6
95 1976 ABT-408-RC 8.38 67 10 8 44 13
96 2093 ABT-408-RC 6.65 45 / 61.5 10 8 41 13=>4.7
97 2217 ABT-408-RC 6.37 43 / 59 10 8 39 12=>5.6
98 2349 ABT-408-RC 5.97 42 / 53.5 10 8 36 12=> 15
99  2489 ABT-408-RC 5.63 38 / 52 10 8 34 10=> 22
100  2637 ABT-408-RC 5.19 36 / 47 10 8 32 10=> 33
101  2794 f res sounder = 2731 4.90 32 / 46.5 10 8 30.8 10=> 27
102  2960 ABT-408-RC 4.75 30.5 / 45.5 10 8 29 8.2=> 15
103  3136 ABT-408-RC 4.25 28 / 40 10 8 27.5 8.2=> 18
104  3322 ABT-408-RC 3.84 23.5 / 38 10 8 25.9 6.8=> 10
105  3520 ABT-408-RC 3.36 19 / 34.7 10 8 24.4 5.6=> 15
106 3729  ABT-408-RC 3.20 19.3 / 32 10 8 23.1 4.7=> 12
107 3951 ABT-408-RC 2.92 17.8 / 29 10 8 21.8 3.9
108 4186 ABT-408-RC 2.18 12 / 23 10 8 20.6 2.2
109 4435 ABT-408-RC 2.34 9.5 / 28 10 8 19.4 2.1
110 4699 ABT-408-RC 2.03 8.5 / 24 10 8 18.3 1.8
111 4978 ABT-408-RC 2.00 7 / 25 10 8 17.3 1.8
112 5274 ABT-408-RC 1.91 9 / 21.5 10 8 16 1
113 5588 ABT-408-RC 1.16 0 / 18.5 10 8 15.4 0.47
114 5920 ABT-408-RC 1.84 7.5 / 22 10 8 14.6 0.47
115 6272 ABT-408-RC 1.91 9 / 21.5 10 8 13.7 0
116 6645 ABT-408-RC 2.06 11.5 / 21.5 10 8 13 0
117 7040 ABT-408-RC 2.18 11 / 24 10 8 12 0
118 7459 ABT-408-RC 2.09 11.5 / 22 10 8 11.6 0
119 7902 ABT-408-RC 2.03 8.5 / 24 10 8 10.9 0
120 8372 LSF-15M/S 2.29 20.6 / 16.1 10 8 10 0
121 8870 LSF-15M/S 2.14 19.4 / 14.9 10 8 9.7 0
122 9397 LSF-15M/S 2.02 18.4 / 13.9 10 8 9.2 0
123 9956 LSF-15M/S 1.88 17.3 / 12.8 10 8 8.6 0
124 10550 LSF-15M/S 1.76 16.3 / 11.8 10 8 8.2 0
125 11180 LSF-15M/S 1.64 15.4 / 10.8 10 8 7.7 0
126 11840 Kemo Dome 0.36 [14.6] 7.5 30 21 7.3 10mH par
127 12540 Kemo Dome 0.36 [13.8] 7.5 30 21 6.9 8.2mH par

As the instrument by default is tuned in equal temperament, it also serves pedagogical purposes. It demonstrates the dissonance of fifths in the high registers extremely well. Also it can be used to demonstrate the origin of differential tones in our auditory perception system, as the sound sources in this instrument are truly independent.

An extra feature of <Pi> is that it can, next to the default equal temperament tuning, also be tuned in so called just intonation. As the intervals in any just intonation system are based on a single reference pitch, we implemented just intonation for all 12 possible base-pitches. To this end we implemented controller 21. With value 0, equal temperament is used. With values 12 to 23 just intonation is in used based on the references C to B. These are the interval ratios as implemented:

1:1 16:15 9:8 6:5 5:4 4:3 45:32 3:2 8:5 5:3 9:5 15:8

Note that changes of pitch and tuning are only applied to the next note played and thus do not affect an already playing note.

For composers <Pi> offers a wealth of subtle possibilities, a striking one being that the pipes can also produce controllable noise bands around their central pitches. Not only it can behave as an organ, but also quite well as a source of very high pitched percussive sounds. In order to explore this, just set the sustain level very low and use very high velocity values with fast attack and decay. Note that people that have undergone major exposure to rock music at sound levels above 90dBA may not even hear the highest pitches <Pi> can produce.


Midi implementation and mapping:

Midi channel: 5 (counting 0-15)

Note Off: notes 84 to 127, note release time implemented. If`release is used, it will override the setting of ctrl.19 (global release time).
Note On: notes 84 to 127, velo implemented. The velocity byte controls the extra level above sustain (set with ctr.#7) during the attack period.

Controllers:

#1: Wind noise or pitch instability. (Default value 0)
#7: Global volume corresponding to the sustain level (default value 96)
#15: Waveform controller (duty cycle, default value 127).
#17: global attack control (attack time) (default value 8)
#18: global decay time (default value 6)
#19: global release time (default value 10), release starts on reception of a note-off command. If note-off with release commands are issued, the release byte sent will override this controller for the note released.
#21: tuning system in use. Value 0 (default) sets equal temperament. Values 12-23 set just intonation based on the notes C to B respectively.
#66: Power on/off switch. Power off resets all controllers to their startup default values. Users should always send #66 with value 0 when the robot is not playing.
#72 to #115: Microtuning controllers for the individual notes. Note 84 uses ctrl.#72 etc, up to note 127 with ctrl.#115. By default all these controllers are set to 64. The range is about a quartertone up or down. Warning: In many sequencer programs, controllers 98 and 99 are treated as 'NRPN': non registered parameter number. Both controllers are then handled together as a 16 bit controller, where ctrl.99 holds the MSB and 98 the LSB.
#123: all notes off, preserving all controller settings

Note: controllers #7,#17,#18,#19,#21 and #72 to #115 will have an effect only for the next following note played and have no effect on the note(s) sounding. Controllers #1, #15, #66 and #123 have an immediate effect.

ADSR-implementation details:

Channel aftertouch, key pressure and pitch bend are not implemented on <Pi>

Lights: One single light, a yellow bright LED, is mapped on midi note 0.

  All specs given here are subject to changes during the building process. The instrument is available for users since march 10th 2017. .




Technical specifications:
Design, research and construction: dr.Godfried-Willem Raes (2017)


Music composed for <Pi>:


Godfried-Willem Raes 'Pipi, a piece for Pi', 11' [ Pi-day, 2017] MP3-recording of this piece.

Kristof Lauwers: 'Study for Pi' [2017]

 

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

Construction diary:

15.02.2017: First sketches and outline for an extreme high range robot. Calculation utility programmed in PBCC. First data sets for nine pipes and resonance's collected.
16.02.2017: Microprocessor circuit drawing sketched. First attempt to design a PCB that at the same time would serve as a carrier for the pipe resonators.
17.02.2017: Further calculations on the hardware circuit.
18.02.2017: PCB designed for board 4, covering notes 120 to 127. PCB for board 1 etched, drilled and soldered. That took a full and long working day... Waiting for MOSFETS and AND-gates to flow in.
19.02.2017: PCB's for boards 2 and 3 finalized. Visual design sketches made. Here is a first picture of the work in progress: All four microcontrollers on this board programmed. We cannot test midi operation, as we do not have the AND-gates in place for now.
20.02.2017: The ordered AND-gates as well as the IRLZ34N came flowing in from Farnell. We soldered then in and did a first test... indeed it seems to work. GMT implementation added for testing. With all MOSFETS soldered in place, the power supply oscillates and the processors do not start up. If we first start up and when all pic's are working, connect the +5 V to the buzzer supply everything works fine. So the undetermined state of the PIC outputs during start up causes an overload on the power supply. One way or another we have to delay the power for the buzzers until the PIC is up and running. Also we noticed pretty large differences in the sound level for the different notes. It might have been better to mount small 50 Ohm trimpots in series with the buzzers.
21.02.2017: PCB designs changed to accommodate small Omron 5 V relays to switch the power to the buzzers after reception of a ctrl 66 command. As board 1 is already made, we have to place the relay for this board on board 4. Boards 2 and 3 get a relay of their own. Impedance tables calculated for the sounders and required series resistors to limit current calculated. Calculations based on the datasheet lead to an inductance of 903uH for the sounders. Circuit drawings updated accordingly. Vertical mounting plate cut out from 8 mm thick polycarbonate. Steel mandrel made from steel for driving the square 6 x 6 holes into the 10 mm pipes. Some test pipes made from aluminum tube. This sounds a bit better than PVC, probably due to the more shiny surface on the inside. The problem with this material is in the way to connect it airtight to the mouths of the buzzers. Epoxy glue?
22.02.2017: Further design work on the general assembly of the robot. Making sure it will fit in an ordinary attaché case.
23.02.2017: Calculated resistors in series with the buzzers soldered in. New pipe set made after careful tuning, from aluminum tube 10/8 for the lowest octave. All pipe ends extruded to square holes using our special tool and an arbor press.
24.02.2017: Twelve alu pipes glued to the buzzers with fast setting epoxy glue. Some bugs removed in the firmware: word overflows in the ADSR parameters... A problem did rise up now however: the pipes, once glued do not resonate properly anymore... Looks like we have to shorten them all. Thus it would be better to first glue the buzzers to the pipes and tune them only with the buzzers in place. Apparently, with loose tubes, the pipes resonate in a half wavelength mode with very different end-corrections.
25.02.2017: Epoxy glue seems to be no good at all. It neither sticks well to be buzzers nor to the pipes. All pipes removed again from board 1 and retuned/recalculated. Now trying to glue the pipes to the buzzers using Loctite cyanoacrylate gel glue. Although it is advertised as second-glue, the gel bubbles it makes, take many hours to cure and dry fully. A preliminary pipe set made for board two: notes 96 to 107. This is the board where we are expecting most tuning troubles as this is the range of the membranes resonant frequency. PCB films made for board 2,3 and 4. Etching done in the night... Drilling will be for tomorrow.
26.02.2017: Board for notes 120 to 127 drilled, assembled, tested and programmed. For this board we need a different type of buzzer, as the sound level of the ABT types is too low in this range. This board also holds the power-on relay for board 1.
27.02.2017: Pipe construction for board 2. Decided to cut the pipes under an angle. This greatly improves resonance and sound projection. However, we had to construct all pipes over again... Board 2 drilled, soldered and programmed. The third microcontroler on this board failed to program properly. It continuously reboots. Double checking the board did not reveal any problem. Taking another chip solved the problem, so we had to cope with a new but failing microprocessor...
28.02.2017: Instabilities observed on the 3.3 V power on board 2. Replacing the regulator with a TO220 package 2940.3V3 chip solved the problem. Pipes for board 2 soldered in place. Drilling of board 3. Board 3 fully populated and tested. The pipes for this board are still under construction. Start construction of the chassis. Although a bit ridiculous in terms of functionality, we decided to give <Pi> four wheels, just to match the design of the robot orchestra.
01.03.2017: Start wiring of the complete assembly with connectors. Figure-8 mains entry mount constructed. Mounting of the wheels with M5 bolts and nuts. Finalizing the chassis. <Pi> implemented as member of the robot orchestra in GMT. There still is a bug in the relay circuit. Controller 66 does not appear to work. Pinning mistake? Thoroughly studying the datasheet for the Omron relays revealed the mistake: the coils in these relays are polarized! On boards 2 and 3 we poled them wrong. Board 4 is O.K.
02.03.2017: Bugs on relay poling on board 2 and 3 fixed. Now Ctrl.66 does work indeed. Resonators constructed for notes 120 to 127. All notes are playing now. Light mapped on midi note 0 tested as well. Left to be done: adjusting sound levels for the individual pipes, intoning is what organs builders call this.
03.03.2017: ADSR coding debugged in the firmware. Here we have 9 bit resolution on the amplitudes, as the PTPER-register is set to 512 in the code. Microtuning implemented for all individual notes.
04.03.2017: Further development of microtuning implementation. Corrections on the tuning seem required. Tuning code added to our GMT software. The resolution on the highest notes is insufficient though. Also, in this very high register, the imperfections of equal temperament become quite painfull... The fifths are quite dissonant. For practical use, the sound levels with the transducers on the highest board (notes 120-127) are too soft. We need to try another design here. Start of experiments with conical resonators extruded from aluminum tube. Series resistors on board 1 changed such as to obtain regular sound levels from all pipes.
05.03.2017: The plastic tubes wherein DIL IC-sockets are packed make a good material for the construction of TO220 package protectors and insulators. We applied them to both sides of the <Pi> robot boards to protect the MOSFETS. Further intoning work on board 2, notes 96 to 107. This is the board were we have to deal with the own-resonance of the buzzers around the notes 100 and 101. After many hours of experimenting we must confess that's mission impossible, for the required scalings appear to be volume and waveform dependent,.. A compromise is unavoidable here. The tuning implementation must still have some bugs.
06.03.2017: We come to the conclusion that we need different drivers for the notes on board 4. The KPX-G1205B drivers behave unreliably with changing volume. Possible replacements, at least for notes 120-124, would be 15mm miniature loudspeakers. For notes 125 to 127, our experiments led to the conclusion that only piezo dome tweeters handle this reliably and with a reasonable volume. It must be said however, that the waveform is quite irrelevant in this range as any overtones fall out of the audioperception range anyway. This is what we first made, but needed to reject:

  freq = f0 driver l/d L De Di Lambda/4 R







   
120 8372 KPX-G1205B 1.25 2.0 / 18 10 8 10 0
121 8870 KPX-G1205B 1.18 2.0 / 17 10 8 9.7 0
122 9397 KPX-G1205B 1.18 3.0 / 16 10 8 9.2 0
123 9956 KPX-G1205B 1 3.0 / 13 10 8 8.6 0
124 10550 ABT-407-RC 1.2 6.0 10 5 8.2 0
125 11180 ABT-407-RC 1.1 5.5 10 5 7.7 0
126 11840 ABT-407-RC 0.7 6.0 12 8.5 7.3 0
127 12540 ABT-407-RC 0.77 3.5 10 4.5 6.9 0

The notes 120 to 125 are now driven by LSF-15M/S miniature loudspeakers, 8 Ohm impedance and 800mW power. Their diameter is 15 mm. We constructed a carrier board from epoxy plate material wherin the newly made 1/2 lambda resonator fit tightly. The speakers come with an adhesive layer on their circomference, but as we didn't trust the strenght, we fastened all components with a small driplet of cyanoacrylate glue. For the last two notes, 126 and 127, we ended up with Kemo piezoelectric tweeters. These are tuned with an inductance on the PCB. Their capacitance is 16.6nF., thus the calculated inductors would have to be 10.8mH and 0.97mH. We can take 10mH for both of them. So the new sizing becomes:

  freq = f0 driver l/d L De Di Lambda/2 L







   
120 8372 LSF-15M/S 2.29 20.6 / 16.1 10 8 10  
121 8870 LSF-15M/S 2.14 19.4 / 14.9 10 8 9.7  
122 9397 LSF-15M/S 2.02 18.4 / 13.9 10 8 9.2  
123 9956 LSF-15M/S 1.88 17.3 / 12.8 10 8 8.6  
124 10550 LSF-15M/S 1.76 16.3 / 11.8 10 8 8.2  
125 11180 LSF-15M/S 1.64 15.4 / 10.8 10 8 7.7  
126 11840 Kemo Dome 0.36 [14.6] 7.5 30 21 7.3 10mH par
127 12540 Kemo Dome 0.36 [13.8] 7.5 30 21 6.9 8.2mH

We tried to give the two highes notes resonantors as well, but none of our experiments lead to a convincing result. The diameter of the Kemo drivers is just way to large to obtain resonance with a cylindric resonator. Here is a picture of board 4:
07.03.2017: Remark with regard to capacitance measurement of piezo-electric materials: When measuring capacitance with a Hameg LCR meter, no reliable results can be obtained from the display as it constantly shows widely different values. The same for the Fluke 87 IV multimeter. In long time averaging mode only, the value of 16.6nF was obtained. The explanation for this requires a better understanding of piezo-electric disks. Although they mostly behave as a capacitor (they do not pass DC) , their equivalent circuit is quite complex: (cfr. 'Piezoelectric Ceramics, properties and applications', Philips Components,1991) So a better approach to practical measurement is by measuring the impedance at a given frequency. However, even then, the value will be a function of the excitation level as well. After some experimentation, we decided to use 8.2mH and 10mH coils. All PIC's on boards 3 and 4 reprogrammed, with gradual scalings for the wave form duty cycles. Construction of U-shaped pipe protection profiles to be mounted on both sides. After this mount, we consider <Pi> visually to be finished. Picture time. Further improvements will either be on the board electronics or on the firmware. Here is another view: and the back side with the highest pitched pipes:
08.03.2017: Some artefacts observed on notes in the highest octave. These must be attributed to interference with the switching frequency of the power supply modules, as the problem did not occur with our external lab supply. Starting to implement just intonation tunings in the firmware. We succeeded in implementing the 16-bit timers with prescalers set to 0. This is an 8-fold improvement in pitch precision. With this coding however the lowest note we could possibly generate would be midi 82. Not a problem for <Pi>, but it will be a problem if we use the firmware for a commercial serinette project.
09.03.2017: Microtuning for every single note implemented, as well as just intonation tuning tables calculated for each of the twelve possible fundamentals. Frequency errors are now <= 0.05%. Comments on the coding can be found in the headers of the source code for the firmware. After these firmware changes, we noticed glitches every so often. We still have to sort this out.
10.03.2017: Version 1.6 of the firmware flashed. This version has better than 0.02% precision in frequencies and improved lookup tables for just intonation tunings. The lookup tables are generated by a small utility program written in PBCC based on precise real-world measurements on the test board. The formula to be used for period calculations should be period = ((1/freq) - t)/ k. In this formula t is the time lost in the timer ISR, measured to be 1.3 us, and k = 1 / 60MHz, or 16.6 ns.
11.03.2017: Torture code written to test limits on polyphony. Indeed, as was to be expected, we cannot play 44 note clusters at maximum volumes as the power supplies go into current protection mode.
12.03.2017: There seems to be a PIC-crash condition on boards 2 and 3, when many notes are playing at high volumes. We suspect the high frequency switching of the inductive buzzers without protection diodes and without series resistors cause serious glitches on the power supply lines. Better supply bypassing is required. Another issue might be that when a single PIC sounds three notes, the interrupt density is so high that there is no place anymore to serve the midi interrupt properly.
13.03.2017: Demo piece for <Pi> composed and tested. This is an algorithmic composition integrated in and playable from the <Pi> section in our GMT software.
14.03.2017: The finishing touch on 'Pipi' on Pi-day. Finishing the construction of a flightcase for Pi. It's a modified aluminum attache case. Recording session of the piece. Curious to find out whether that will work as an MP3. Here is the MP3. We also posted the link on Facebook.
16.09.2018: <Pi> packed in its flightcase as it leaves for two months to Manchester, together with <Krum>, <Bomi>, <Bourdonola>. <Pi>'s role in the orchestra can in part be taken over by the newborn <2Pi> robot.
23.10.2018: <Pi> returned from Manchester, seriously damaged... Check-up and repair required.
25.10.2018: Connector (Weidmueller 3 pole) replaced on board 4. Pipe for note 84 repaired and fixed again.
25.02.2020: <Pi> demonstration for Luc Ponnet.
24.03.2020: A major accident happened to <Pi>. It fell down from in top of the piano on our steel floor in the Logos tetrahedron. 18 pipes broke off and the transducers are severely damaged. Right now <Pi> is in the intensive care section of the Logos Hospital. Let's hope it will recover soon...
25.03.2020: Reconstruction of the 12 lowest pipes. Suffering a bit under the quite noxious vapors from the cyanoacrylates we use to hold the pipes in place. By midnight the PCB was reassembled again. The second octave is for tomorrow...
26.03.2020: Repair of the second octave. By the end of the day, <Pi> was fully operational again. We should make a standing base for <Pi> such that this kind af accident can never happen again.
07.12.2020: Timer 23 bug found and killed in the PIC 24EP code for all the PIC's here. We must read TMR3HLD instead of TMR3 when combining timer 2 and 3 as a 32 bit timer. This explains the unpredictable amplitude glitches we had every so often.

 

 

 


TO DO:


- optimizing the firmware
- extensive testing
- apply 'intellitune' in the firmware to avoid the fifth dissonances due to equal temperament.

- suggested changes for further future designs:


Maintenance information:

Circuit diagrams:

Board 1: (notes 84-95)

Boards 2 and 3:

Board 4:

PCB for board 1: notes 84 to 95 (scaled 200%)

PCB for boards 2 and 3: notes 96 to 107 and 108 - 119 respectively (scaled 200%)

This is the board -with errors- as used with manual corrections in the <Pi> robot:

A corrected PCB design is available as well and will be used for future and further production.

PCB for board 4: notes 120 to 127 (scaled 200%)

Microcontroller firmware:

source code (to be separately compiled for each of the 15 microprocessors).

If people are interested in owning a copy of this miniature robot, I can hand make them for ca. 5000 Euro. Delivery time will be ca. 2 months. Smaller and cheaper versions would be possible as well, for instance 30 notes starting from midi note 79. Feel free to enquire. Estimated cost for a 30 note version would be 3000 Euro maximum.



Cost calculation for the Pi robot:

Main board (12 notes):

item / part NR. description price
24EP128M0202 4 Microchip
15.00
IC socket 4 28 pins
8.00
IC socket 5 16 pins
6.50
6N137 1 optocoupler
2.00
PCB 1 100 x 160 + processing
50.00
Sounders 12 ABT408RC
14.00
IC socket 1 8 pins
1.00
SMPS 5V - 2A 1 XP Power ECB10US05
30.00
5-pole DIN sockets 5 Hirshmann
20.00
74AC11008N 4 3V/5V AND-gates
6.00
SN75174 1 quad differential line driver
4.00
  1 3V3 voltage regulator
2.50
ICD headers 6-pins 4  
2.00
IRLZ34NPbF 12 power MOSFET
18.00
2 pole Weidmueller 2 socket and plug
8.00
3 pole Weidmueller 1 socket and plug
3.50
Fuse 1 self resetting fuse
1.00
Tantalum capacitors 10  
20.00
100nF bypass caps 18  
4.50
Resistors 21  
2.10
LED's 5  
2.50
       
     
220.60

Boards 2 and 3:

item / part NR. description price
24EP128M0202 4 Microchip
15.00
IC socket 4 28 pins
8.00
IC socket 4 16 pins
6.00
PCB 1 100 x 160 + processing
50.00
Sounders 12 ABT408RC
14.00
SMPS 5V - 2A 1 XP Power ECB10US05
30.00
74AC11008N 4 3V/5V AND-gates
6.00
  1 3V3 voltage regulator
2.50
ICD headers 6-pins 4  
2.00
IRLZ34NPbF 12 power MOSFET
18.00
2 pole Weidmueller 2 socket and plug
8.00
3 pole Weidmueller 1 socket and plug
3.50
Fuse 1 self resetting fuse
1.00
Tantalum capacitors 10  
20.00
100nF bypass caps 18  
4.50
Resistors 21  
2.10
LED's 5  
2.50
Omron Relay 1 G6E-134P-ST-US
5.00
       
     
190.10

Board 4:

item / part NR. description price
24EP128M0202 3 Microchip
10.00
IC socket 3 28 pins
6.00
IC socket 3 16 pins
4.50
PCB 1 100 x 160 + processing
50.00
Sounders 8  
10.50
74AC11008N 3 3V/5V AND-gates
4.50
  1 3V3 voltage regulator
2.50
ICD headers 6-pins 3  
1.50
IRLZ34NPbF 9 power MOSFET
15.00
2 pole Weidmueller 2  
8.00
3 pole Weidmueller 1  
3.50
Tantalum capacitors 10  
20.00
100nF bypass caps 12  
3.00
Resistors 40  
4.00
LED's 3  
1.50
1W Power LED 1 Yellow, TO220
4.00
Omron Relay 2 G6E-134P-ST-US
10.00
Kemo dome tweeters   130269  
     
158.50


Mechanical parts and general assembly::

item / part NR. description price
polycarbonate plate material 1 400 x 300 x 8
4.00
aluminium brackets 4 30 x 50 x 3
2.00
aluminum profile   50 x 2 x 10
3.00
M3 bolts and nuts 24 stainless steel
12.00
M4 bolts and nuts 4 inbus hex stainless
3.00
M5 bolts and nuts 12  
6.00
M5 end nuts, stainless 8 DIN1587 RVS-A1 M5
5.00
aluminum profile square 1 80 x 2 x 15
5.00
wheels 4  
22.00
Aluminum pipe 10/8 mm   2 meters
10.00
PVC pipe 10/8 mm   2 meters
6.00
Epoxy glue 1 fast setting
10.00
5 mm distance holders 16 3 mm
4.00
Loctite Cyanoacrylate glue 4 gel
38.00
Power cord 1 figure-8 plug
2.00
MIDI cable, angled connector 1  
12.00
Flightcase (attache case) 1  
30.00
     
174.00

total cost for materials: 935.30 Euro

Labor and research investment:

15.02.2017 ---> 09.03.2017: 24 working days. 7.560 Euro.

End cost of prototype production: 8.500 Euro

Repair costs march 2020:

18 sounders replaced: 24 Euro

Cyanoacrylate: 12 Euro

3 working days: 945 Euro

End sum: 981 Euro.





Last update: 2023-08-01

by Godfried-Willem Raes

Further reading on this topic (some in Dutch):

Audsley, George Ashdown 'The Art of Organ-Building', ed. Dover Inc, NY,1965, (first edition: 1905)  ISBN 0-486-21314-5
D'Appolito, J. 'Luidspreker-meettechniek', ed. Segment BV, Beek , Nederland, 2000, ISBN: 90 5381 116 8
De Keyser, Ignace, 'Challenging von Hornbostel & Sachs', in: 50 years at Logos, 2019
Philips Components, 'Piezoelectric Ceramics, properties and applications', Eindhoven,1991
Raes, Godfried-Willem 'Bug', an automated fluegelhorn (2017)
Raes, Godfried-Willem , Expression control in musical automatons


Technical data sheet, design calculations and maintenance instructions:

 Maintenance and disassembly instructions:

For removing the PCB's as well as for servicing the Weidmueller connectors, the 15 x 15 mm aluminum profile should be removed first.

Robody picture with <Pi>:

Candidates?

 

[EOF]