Category Archives: Hardware

Spooky Sound System PT. 2

Routing the audio amp. Since this is going to be made in 500+ QTY of units I decided 4 layer was the way to go as the budget allowed for it. For the layers I will be using the top and bottom side as signals and the two inner planes as the GND and “virtual” GND of the system. Power will be on the bottom layer. Everything is pretty much routed but I need to clean up the traces now.

Layout

Spooky Sound System

I have been working on this amplifier for pinball machines. It is a simple 2.1 system with volume control, tone control, sub cutoff, and sub volume. The main lifting is done by a 4 channel TDA7387 which is mainly for low cost car stereos. It can do 41W so it should be plenty powerful for a pinball machine. For opamps I am using the AZ4558C. This is a generic audio opamp in a dual package.

It is a single supply design so easy integration and makes it able to use low cost switcher style power supplies. I run the power though an opamp set to half gain to create a “virtual ground”. This is the middle bias point for all the filtering. After filtering it then gets DC blocked with in series capacitors and shoved into the TDA7387.

Layout

After I route this and organize the schematic I will post a link to the files.

Prop based Fan Controller for Jeep

Layout

Working on this fan controller for my Jeep. All the files are on github. Uses a 4×40 character VFD. Has an onboard E-compass module that will show inclination and direction. Part number is FXOS8700CQR1.

I am still working on the Gameboy VGA driver. You can see the code and hardware working on the BenHeck Show. I have to get some other projects done before I can finish the Gameboy :)

Gameboy DMG-01 VGA Adapter

This is the project that the DE0 Digital IO Wing is for. I will use the IO wing to level shift the signals from the Gameboy’s LCD screen so my DE0 can capture the data. The Gameboy is a 5V device and the DE0 does not have 5V tolerant IO. I am using a SN74LVC8T245PWR 8-bit directional level shifter to do the translation on the IO wing board.

Gameboy DMG-01
Gameboy DMG-01.

Purchased a Gameboy DMG-01 off eBay for $20. Needed some cleaning but it worked and had the battery cover!

Taking apart the Gameboy DMG-01.
Taking apart the Gameboy DMG-01.

The Gameboy DMG-01 uses triwing screws. Kidna like philips heads but with 3 “wings” instead of 4. Tool can be found on eBay or Amazon.

Front board and LCD connector for the Gameboy DMG-01.
Front board and LCD connector for the Gameboy DMG-01.

The connector between the front and back of the Gameboy is where I will tap into the signals to sneak a peak. Pinout is the following

Pin 12 – V-Sync
Pin 14 – Pixel Clock
Pin 15 – LCD Data 0
Pin 16 – LCD Data 1
Pin 17 – H-Sync
Pin 21 – Ground

V-Sync should be 60Hz, Pixel Clock 4Mhz, and H-Sync 9.2kHz.

Wires to sniff the connector.
Wires to sniff the connector.
Open Bench Logic Sniffer connected to Gameboy DMG-01.
Open Bench Logic Sniffer connected to Gameboy DMG-01.

Connected up the Open Bench Logic Sniffer and powered up the Gameboy with a game in it then ran the capture. I had the trigger set to wait for the V-Sync signal.

Entire V-Sync frame. Hard to see much detail.
Entire V-Sync frame. Hard to see much detail.
Frame zoomed in a bit to see the individual horizontal lines.
Frame zoomed in a bit to see the individual horizontal lines.
Complete horizontal frame.
Complete horizontal frame.

Then using my DE0_VGA_Driver I started writing the code take data from RAM on the FPGA and output it on the VGA monitor. I wrote a bitmap to .mif format (memory initialization file) convertor to display some Gameboy screenshots on the VGA Monitor. Link to that repo is here.

Gameboy DMG-01 screenshot displayed from DE0 FPGA RAM. Simulating original Gameboy "yellow-green" pallet.
Gameboy DMG-01 screenshot displayed from DE0 FPGA RAM. Simulating original Gameboy “yellow-green” pallet.
Gameboy DMG-01 screenshot displayed from DE0 FPGA RAM. Using B/W color scheme.
Gameboy DMG-01 screenshot displayed from DE0 FPGA RAM. Using B/W color scheme.

Currently working on getting the SN74LVC8T245PWR level shifters working and I will be able to pull live data from the Gameboy LCD data bus.