Onboard Control for Big Mouth Billy Bass
One variant of this project is to put the control computer in the frame of the Big Mouth Billy Bass. Through a contest sponsored by Embedded Linux Journal I have been able to create a Bass controlled by a PC-104 computer. As part of the contest I was provided with an MZ104 from Tri-M Systems and the embedded OS provided was BlueCat Linux from LynuxWorks.
What Was in the Kit?
As you can see in the picture above, lots. Enough was provided to program and deliver an embedded computer system: the embedded PC, an I/O board, a floppy drive, a power supply, an operating system, and much more. Here's a picture gallery of the most notable components with descriptions. Each picture is a thumbnail which takes you to a larger image.
 |
This is the gemstone of the kit, the PC-104 board. Essentially a motherboard with memory and a harddrive, compressed into 9 square inches! It is small enough to fit in the frame of the Big Mouth Billy Bass. |
 |
This board provides standard connections to the MZ104. Although this board probably won't be in the final design, it will be quite useful in testing. |
 |
This is another board that provides connections to the MZ104. This board allows you to connect ISA cards. Again, this won't be used in the final design but it will be used in development. |
So what is the status of Embedded Billy Bass?
The embedded version of the Bass fully supports the functionality of the desktop Bass. However, the MZ104 only performs at 60 bogoMIPs and so will not support our eventual goal to create a network teleconferencing device. My Pentium desktop performs at 180 bogoMIPs and can barely sustain an audio teleconference.
There is a final, hardware problem to solve: fitting both the control board and ISA card(s) in the frame of the Bass. Here is picture of my first attempt using hacked IDE cables and a homebrew mini-ISA-PC104 bus.

While somewhat functional this bus eventually zapped my evaluation board. Fortunately I performed full integration testing before that incident occured. Finding a flexible ISA bus is one of the future directions for the Billy Bass project.
How can I run your project using an MZ104 and BlueCat Linux?
Essentially the same way you would for a desktop, with a few more steps. That's the beauty of using an embedded Linux, at the application level there is no difference between an embedded system and a desktop! The additional steps entail creating a kernel and filesystem for the embedded computer. The following tips will help you run Billy Bass with this setup.
- Get to know BlueCat Linux. Become familiar with the process of creating a kernel and a filesystem and transporting those images to the embedded host. Examples come with BlueCat.
- Find an ISA soundcard. That is difficult to do these days. I was able to find one at the local Goodwill Computer Store here in Austin, TX--$5 apiece.
- Create a kernel with sound and parallel port support. If you use a SoundBlaster compatible, you can use the bmbb.config file provided with the source of the project.
- Install the libraries while within the BlueCat environment. You'll need to move copies of the OSALP libraries to /bc3/usr/lib.
- Compile the Billy Bass control software using the cross-compiler provided by BlueCat.
- Create a filesystem image including the control software and whatever sound and transcription files you want Billy to lip synch. Use the bmbb.spec file provided with the source as a starting point.