Hey Guys,
I have a lot of Z80-based JAMMA boards around that I want to repair. A Fluke 9010A with a Z80 pod would be sweet, but there's no way I'm giving the kind of money these things have skyrocketed to. I started poking around the web, and I found this:
https://github.com/ArtemioUrbina/GhettoFluke9010A
Based on an Arduino Mega. I had one lying around, so I thought I'd build it:
It has only the most basic features (ROM test, RAM test, read/write to/from I/O ports). I added a BUS test as well, but I still don't like the clunky interface, the small screen, the slow ATMega. Editing start/end addresses on this thing is a nightmare.
Then I thought it could be done with the raspberry pi. I did some web digging again, and, sure enough, I found this:
http://www.smbaker.com/z80-retrocomputing-4-bus-supervisorit even has a github repo with python scripts to implement almost any feature the Fluke 90xx series has. Sweet!
So, I decided I'll make my own Fluke using a raspberry pi zero. Some key features I'm going to implement are:
-4x20 Character LCD screen
-Shape comparable with the original, but more compact. Less keys, more menus (hence the bigger display)
-Properly sized mechanical keyboard.
-Modular design, so that you could swap one board for another and have a different "pod".
-Open source and hackable. You can design your own boards (pods), make changes in the software and interface with anything!
-The pod design is such that a real CPU is installed in parallel with the I/O expanders.
-USB port. This would enable awesome features like dumping a ROM to USB without taking it off the board (or having reader), or copy savestates from USB to RAM!
(kind of) farfetched features that are not at all impossible, but should be implemented at a later stage:
- Reading roms and checking CRC online (or even uploading entire ROM) and give you the version of the game.
- Fetching memory maps from an online database and include automatic tests for each game. (eg. ROM test @ 0x0000 - x01FFF, then RAM test @ 0x2000 - 2FFF etc.)
First software version will probably suck (I'm no programmer, but I can do same basic stuff), but the PCBs I think will be pretty solid.
I'll upload some draft schematics and renderings later.
Some technical stuff (HW):
- Regarding Dr. Scott M. Baker's implemetation of the "bus supervisor", I will omit the clock controls altogether, since this could be done only in RC2014, as it would replace the original clock.
- All pod control is done via I2C. This means a lot of I/O could be added with more expanders to match bigger chips like the 68000
- The keyboard is a simple 8x4 matrix with anti-ghosting diodes, connected directly to the Pi GPIO pins (they were available, and I want to keep the parts count low, so, no shift reg there).
- Likewise the four leds are directly wired to individual pins on the GPIO (via current limiting resistors).
- Another GPIO is used for the buzzer.
More technical stuff (SW):
- Probably in python
- Need to write a basic matrix decoding routine
- Also a menu system and some UI interface elements like moving the cursor around using arrow keys when editing values etc
- It will call directly Dr. Scott M. Baker's supervisor python scripts. The library might need some kind of expansion for more advanced features.
Any thoughts, ideads?