Controls In (And Working!)

I was finally able to put in the switches and hook up the controls tonight/this morning.

Here it is. The jukebox software started right up and everything worked perfectly on the first try.

Closeup of the buttons. The protective coating is still on the plexiglas.

Here’s the rat-nest of wires in the back. I don’t have cable ties on anything yet. The keyboard encoder is just taped to the side with double sided foam tape. The terminal strip is screwed to the bottom.

Shiny Black Front

Shiny things are pretty, so the jukebox is going to be shiny on the front.

The test piece turned out really well. It’s almost like a black mirror or something.

I painted the back side of the plexiglas with Krylon Fusion. It coated well and isn’t a bad paint job, but the front looks really nice.

It’s not very shiny in this picture because the protective coating is still on the front of the plexiglas.

I set the front on the rest of the cabinet. It finally looks like something I would be proud to own.

Jukebox Controls: In Progress

So… with the screen strapped to the back of the craptop, I’ll need some way to control the jukebox. Cheap momentary pushbuttons from RadioShack seemed like a good way to go. This picture isn’t a finished piece, but it shows the buttons wired up into a spare piece of plexiglas for testing.

The buttons do no good without something to connect them to. So I dismantled a keyboard, de-soldered the connectors, and soldered a ribbon cable into the holes. I connected the other end of the ribbon cable to a terminal strip so it’s easier to wire up the buttons.

Having a terminal strip wired up to a keyboard encoder doesn’t do any good if you don’t know which pins to short together to create a keypress. I dug out my scanner and scanned both layers of traces for the keys. I then used my image manipulation program of choice and made the traces colorful and figured out which key shorted which pins.

The keyboard encoder pinout is probably different between different models/brands of keyboards, so there isn’t much point for me to post that here. Another method of figuring out which pins go where is to partially disassemble the keyboard and use a multimeter on continuity test with alligator clips to figure out which key shorts which 2 pins. Yet another method is just plugging the keyboard encoder into the computer and shorting pins and seeing which keypress it caused.

Jukebox Software Overview

So, here’s how it went down:

Since I have an older craptop, I have all the drivers to run Windows 98SE. Windows 9x is great for embedded applications like this. I remember from when I was scheming to build a MAME cabinet with nice arcade controls wired up to a disassembled keyboard. I saw a link on someone’s project page to DWJukebox. I thought it was pretty neat. A recent episode of Systm made me remember MAME and all the cool hackery people have done around it. Anyhoo, Friday evening boredom led to this project.

Here was the plan:

  1. Install Windows 98SE
  2. Install all required drivers
  3. Map a drive to network share containing mp3’s
  4. Install and configure DWJukebox
  5. Replace explorer.exe with “C:pathtowincab.exe” in the shell= line of C:windowssystem.ini
  6. Reboot

DWJukebox should now be the only thing running when the computer is turned on. Brilliantly simple! In theory…

Since nothing works as well as originally planned, I had a few snags.

Installing the OS and drivers and mapping network drive all worked perfectly.

Wincab failed to load. It could not initialize digital sound driver or something… I’ve had issues with sound cards before, so one of the first things I tried was reducing the hardware acceleration of the sound card. I adjusted it one increment at a time, and it only works on the no acceleration setting. So, finally, Wincab.exe worked pretty well until I tried to set it as the shell.

It failed with a message about it not finding jbdefptr.ptr. I had been cruising around the support forums for DWJukebox and many posts had portions of jbdebug.log attached, so I enabled logging, but it didn’t put the jbdebug.log in the program folder like I expected, it put it in the root of the C: drive!

Since this is a dedicated computer that I’m not going to be using for anything else, I just moved DWJukebox to the root of the C: drive, updated the C:windowssystem.ini and rebooted.

It’s ALIVE! Er… well, it boots into DWJukebox and plays mp3’s from a network share.

Jukebox Controls Research

The internet is filled with very helpful people. Almost any project you can imagine has been at least attempted by someone somewhere. These links might be useful:

This link has a great explanation of how to use a keyboard for arcade controls.
http://www.dribin.org/dave/keyboard/one_html/

This is an example of someone that has already done what I plan to
http://www.hellspark.com/dm/mame/deprecated/keyboard/

That’s the rough idea.

Jukebox Hardware Recipe

I have a laptop with a broken hinge that refused to run the latest version of Xubuntu. It annoyed me and was approaching useless.

Here’s the plan:

Spare Parts (Better than the money-cost kind)

  1. Acer TravelMate 515TE Pentium 2 300MHz laptop
  2. 3Com PCMCIA NIC
  3. Old keyboard
  4. Miscelaneous wires
  5. Soldering Supplies

New parts (The money-cost kind)

  1. Plywood
  2. Plexiglas
  3. Misc connectors (screws/nails/bolts)
  4. Krylon Fusion Spray Paint
  5. Radio Shack momentary pushbuttons
  6. Terminal Strip

Mix with a healthy dose of free time and cook in the basement until completed.