The first main design decision was to use solenoids to provide the striking force to the vibraphone keys. Everyone on the team was proficient in programming the Atmel atmega16 microcontroller, so the decision was also made to use the Atmel as the main controller for the Vibraphone. In one of our previous projects, a MIDI interface board had already been successfully used to send MIDI data in and out of the Atmel serial pins. Now the only design problem was turning an output from the Atmel into an estimated 15ms (1A to 2.5A) current pulse.
The first phase was a testing phase. A simple circuit was created using a FET as a switch with a drain load consisting of a resistor in series with an inductor (to mimic the solenoid):
This test circuit was simulated and it worked exactly as we thought it would:
The best design was a simple one. The FET would be switched on for 15ms, providing the current to the solenoid, and then be switched off. The diode was installed to prevent negative voltage spikes in the circuit. An alternate design using BJTs was discarded due to fact it needed many more components to achieve the same goal. The maximum voltage applied to the solenoids was still unknown and the actual FET selected for the circuit had these four important parameters: 8A sustained current, 25A pulsed current, 5V input to turn it on, and it was only 29 cents.
The next phase of the design was based on the software and hardware developed during one of our previous projects ( a MIDI keyboard teaching device). It used a MIDI-to-serial hardware inteface and also used an Atmel microcontroller to record music played by a teacher on any MIDI keyboard. Then the student would listen to the teacher's version as many times as necessary and then play his version of the recorded song. The Atmel would grade how closely the student mirrored the teacher's version of the song. Portions of the MIDI C code were ported over for this project and the MIDI-to-serial interface was also used (see schematic below). The hardware has been in existence for over 25 years and only slight modifications were made due to available components.
The next design decision was to use one Atmel and send its output to a series of demultiplexers and then the multiplexer would send its output to a flip-flop corresponding to the correct vibraphone key. One pulse to the flip-flop to turn the FET switch on and provide the current and then another pulse 15ms later to turn it off. The team required an intitial test board using LEDs instead of solenoids to test the code:
The test board was a success, but the code was not. A separate test program was written to verify the functionality of the test board and the main code was again modified to try and correct the problem of the flip-flops latching (in the wrong logic state). There were too many problems with interrupt timing issues. There also was the issue of the high IC count for the project: 1 Atmel, 6 demultiplexers, 2 quad-AND gates, 1 OR gate chip , 28 inverter chips, and 37 dual-flip-flops. It was concluded that design was poor and needed to be completely redone.
The redesign focused on using one output pin from an Atmel for each solenoid switching circuit. We decided to use one Atmel per octave (3 total). This enabled us to get rid of all the other ICs in the circuit. Each Atmel output pin would be directly connected to the gate of the switching FET. The layout of the switching circuit in EAGLE can be seen below:
After the new design was thouroughly tested, the next step was to create an actual circuit board. Here is the layout:
This layout was the easiest to implement. The ninety-degree bends are not an issue due to the low voltages and currents (5V and less than 1uA) and very low frequency (maximum of 15Hz). Each PCB controlled one-third of the strikers and one-third of the dampers (3 total were made)
The last step involved hours of soldering components and creating the wiring and cabling for each of the vibraphone keys. Also some 11th hour engineering was done: one item added was a programming subassembly that was attached to all three PCBs and a second item was also added, a binary switching circuit, also attached to all three PCBs, that provided volume control for the instrument.
The final version of the vibraphone used a a 48V power supply for the strikers and a 12V supply for the dampers. The original 24V supply to the striker solenoids did not provide a strong enough strike for loud venues, such as in a club or a loud bar. The 48V striker current pulse was 2.4A in amplitude with a pulse width varying from 3ms to 7ms (for different note intensities). The final version also included heavy duty 48V solenoids capable of sustaining a 10% duty cycle. The damper solenoids drew a sustained current of only 180mA (the damper supply can easily handle all thirty-seven damper solenoids on at the same time) and we were able to save money by using much lower rated solenoids for the dampers (the 12V damper speed was more than sufficient).