Hako Bako
Newbie level 1
Hey all!
Well, already some people did it, but I hope the thing I made may be interesting to some of you.
I made a circuit, which takes MIDI input, and play the music on sixteen floppy disk drives.
I also connected sixteen 5,25 inch fdd's and played some music on them.
The floppy drives can do the music, by moving the reading head with music frequency.
Basically, it consists of AtMega8A MCU and eight 8bit shift registers (6x SIPO, 2x PISO).
Each FDD is connected to mcu through those registers, using 4 wires: two for controlling the head movement, one for lighting the diode and enabling the fdd, and one for sensing if the head is at the track 0 - to prevent desynchronization between real head position, and its state in mcu memory.
To make cables between PCB and fdd's I used wires from LAN cable. with edge connectors at the end.
As power supply I used.. power supply from PC.
The MIDI input is currently only on serial port, but I'm planning to make real midi connector too, I just need to buy din-5 socket and optocoupler. I dint do it yet, because I'm sending midi from a PC, which hasn't midi port, but has a serial port. I installed the Yamaha CBX driver on the PC, so programs see it as a normal midi device, I can use any midi sequencer to send music to floppies, and even winamp! (like with real midi out).
I also added some eye-candy stuff to the circuit, just because it's fun and sweet with them!
- HD44780 LCD out.
- 24Cxx EEPROM, I'm not using it right now, but I will store setting and all in it, I heard that internal avr eeprom goes crazy with 24 MHz quartz, but I didn't check if it is true. I also soldered two goldpins for I2C connection with external devices, maybe I will use it in the future who knows..
- four 7segment displays, at first I planned to do only two, but I couldn't decide if I should take green or red ones, finally I soldered both and multiplexes them in 1/2 duty time using UAA2022! (14 outputs to segments, two outputs supposed to drive dot points, are connected to pnp transistors driving common anodes).
- four push-buttons and four dip-switches, as manual user input. (I already know, one of the switches will choose between real midi and rs232-midi input alongside with a jumper, because those two have a bit different baud rates.)
- there is also reset button (I think it's obvious), and two potentiometers for LCD contrast and 7segment brightness, I have to add a third one, controlling LCD backlight brightness, but right now I'm using the LCD without backlight.
Well, let's now talk about software:
Mcu updates the floppies about 15k times per second, so even at higher frequencies (anyway, floppy drives can't play as high ones as regular synthesisers) the sound is not out of pitch. (well, maybe some audiophiles will hear 5% of the difference, but usually people don't notice it).
I used the four digits as eye candy display of last midi message - green ones for status byte, red ones for one of the data bytes - the most important like note number for note on/off or coarse byte for pitch bend). But, the software is a thing which can be changed at almost any moment not like hardware, and even if I will excess the 10k cycles of flash cycles, I have second atmga8a, and if not, I can go to the shop and buy one
Ok well, I think its enough writing, if anybody wants to know more, feel free to ask me, I will describe everything.
Now it's time for PHOTOS!
Front view
Rear view
SMD by Hako >.<
Nice perspective shot.
Edge Socket I used to connect with 5 inch FDD.
Circuit in action - connected to floppies, serial port, power supply, lcd and programmer.
And of course live performance:
Well, already some people did it, but I hope the thing I made may be interesting to some of you.
I made a circuit, which takes MIDI input, and play the music on sixteen floppy disk drives.
I also connected sixteen 5,25 inch fdd's and played some music on them.
The floppy drives can do the music, by moving the reading head with music frequency.
Basically, it consists of AtMega8A MCU and eight 8bit shift registers (6x SIPO, 2x PISO).
Each FDD is connected to mcu through those registers, using 4 wires: two for controlling the head movement, one for lighting the diode and enabling the fdd, and one for sensing if the head is at the track 0 - to prevent desynchronization between real head position, and its state in mcu memory.
To make cables between PCB and fdd's I used wires from LAN cable. with edge connectors at the end.
As power supply I used.. power supply from PC.
The MIDI input is currently only on serial port, but I'm planning to make real midi connector too, I just need to buy din-5 socket and optocoupler. I dint do it yet, because I'm sending midi from a PC, which hasn't midi port, but has a serial port. I installed the Yamaha CBX driver on the PC, so programs see it as a normal midi device, I can use any midi sequencer to send music to floppies, and even winamp! (like with real midi out).
I also added some eye-candy stuff to the circuit, just because it's fun and sweet with them!
- HD44780 LCD out.
- 24Cxx EEPROM, I'm not using it right now, but I will store setting and all in it, I heard that internal avr eeprom goes crazy with 24 MHz quartz, but I didn't check if it is true. I also soldered two goldpins for I2C connection with external devices, maybe I will use it in the future who knows..
- four 7segment displays, at first I planned to do only two, but I couldn't decide if I should take green or red ones, finally I soldered both and multiplexes them in 1/2 duty time using UAA2022! (14 outputs to segments, two outputs supposed to drive dot points, are connected to pnp transistors driving common anodes).
- four push-buttons and four dip-switches, as manual user input. (I already know, one of the switches will choose between real midi and rs232-midi input alongside with a jumper, because those two have a bit different baud rates.)
- there is also reset button (I think it's obvious), and two potentiometers for LCD contrast and 7segment brightness, I have to add a third one, controlling LCD backlight brightness, but right now I'm using the LCD without backlight.
Well, let's now talk about software:
Mcu updates the floppies about 15k times per second, so even at higher frequencies (anyway, floppy drives can't play as high ones as regular synthesisers) the sound is not out of pitch. (well, maybe some audiophiles will hear 5% of the difference, but usually people don't notice it).
I used the four digits as eye candy display of last midi message - green ones for status byte, red ones for one of the data bytes - the most important like note number for note on/off or coarse byte for pitch bend). But, the software is a thing which can be changed at almost any moment not like hardware, and even if I will excess the 10k cycles of flash cycles, I have second atmga8a, and if not, I can go to the shop and buy one
Ok well, I think its enough writing, if anybody wants to know more, feel free to ask me, I will describe everything.
Now it's time for PHOTOS!
Front view
Rear view
SMD by Hako >.<
Nice perspective shot.
Edge Socket I used to connect with 5 inch FDD.
Circuit in action - connected to floppies, serial port, power supply, lcd and programmer.
And of course live performance: