Problems encountered while building the iTunes
Jukebox:
Bluetooth:
It makes sense from a functional perspective to separate the iTunes
Jukebox as fully as possible from the computer. After all, it is intended
to be a device to free you from using your computer to organize your
playlists, and to hide your computer from boisterous party guests. So,
naturally, we decided to try to use a wireless protocol to connect the
jukebox to the computer. We used a bluetooth module from Sparkfun that
includes a breadboard component and a bluetooth dongle for the computer.
After some testing we found that we were able to make a reliable connection
to the computer. Using ZTerm, we were able to control and read the tower
very reliably. When
we used the perl script to run the tower, however, we found that there
were timing problems. We tried a lot of variations of delays in reading
the tower, but ultimately, we couldn't get the timing to work without
dropping values, so we decided to stick with a serial cable for now.
Breadboard broke down:
After rewiring the breadboard to remove some of the extraneous wire
in preparation of putting the breadboard on the back of the tower, we
noticed that the jukebox was no longer working. After some troubleshooting,
we found that some of the pins on the breadboard no longer provided
solid connections. We suspected that either the backing on the breadboard
or the springs in the pin slots were faulty, so we created a prototyping
board instead. This solved the problem of faulty connections, and it
also gave us a hardier, more streamlined board that fit into the jukebox
casing better.
Connectors:
The difficulties involved with creating four solid electrical connections
with our "enhanced" jewel cases caused the more trouble than
anything else in the jukebox. We originally tried to create connections
by putting four screws at the back of the tower that lined up with four
metal tabs on the back of the jewel cases. This didn't work very well
because there wasn't much force keeping the cases against the contacts.
For version 2.0 of the jukebox, we decided to look into alternative
connection methods. We considered many, including spring-loaded clips
that the cases could slide into, using phone jacks and power jacks,
and using tabs on the side of the tower that would grab the case as
it slid in. The method that eventually worked for us was to use metal
tabs, bent at a 45-degree angle, to hold the case on its sides as it
slid into the tower. This method presented two problems initially. First,
we found that the aluminum was not as conductive as we thought it was;
it appeared to be covered with a thin non-conductive coating. We were
able to sand away this coating, and the aluminum proved very conductive.
The second problem was that we still got intermittent connections. This
was when we were using copper-braided solder wick along the edges of
the cases to make the connections. We found that when we used solid
metal tabs instead of the solder wick, the connection was pretty good.
We used two metal tabs on each side of the interior of the tower, with
two matching metal strips on the each side of the case, for a total
of four connections per case. We still found that there were occasional
connection failures, but read below for how we fixed these using software.
Intermittent connections:
Even after the many connector methods we tested, we still found that
the connection method we chose was not always ideal. Sometimes the tower's
microcontroller will miss a case that has been inserted into one of
the slots. We noticed that although occasional reads gave faulty data,
the faulty data was sporadic and not consistent. Thus, two or three
reads in a row never gave the same faulty data. So every time we read
the tower, we actually do three readings and compare them to each other.
If there are discrepancies in the data, we take three more readings,
and continue doing so until the data is consistent in all three reads.
This smoothing algorithm works quite well and we rarely if ever see
hiccups in the jukebox's function.