Arduino In-Circuit Tester: Build Project

ColinD

Active member
Feedback
6 (86%)
Credits
1,367CR
DanP said:
Would love to be involved in this but realistically I can't guarantee I can devote the required time to it so I've stayed out of the first batch of volunteers. If another batch happens I'm happy to look to work on 6502 based Atari stuff (Centipede or ROTJ say).

Will be keen to see how you get on chaps!

Dan

Same here.... Looks cool :)
 

DanP

Administrator
Staff member
vacBacker
Feedback
5 (100%)
Credits
2,172CR
guddler said:
You know that at the moment it's a standalone item? Yes? No computer interface at all...

Yep
smiley2.gif
 

DanP

Administrator
Staff member
vacBacker
Feedback
5 (100%)
Credits
2,172CR
How difficult would it be to build an interface to output a modern system? Doesn't the arduino have USB onboard? Wouldn't an initial terminal output type view be fairly simple to code? Something similar to the Fluke output to AUX onto a terminal via RS232? Sorry if I'm talking gibberish here, not really had much time to loom into it, just thinking out loud really.

Dan
 

Nes4life

Active member
vacBacker
Feedback
11 (100%)
Credits
1,113CR
Not gibberish at all. I can make a Mac app with full gui interface; simples.
After the arduino performs all its tests for a game it could wait for further instructions from the USB (from a Mac or PC) and then return results to the USB for display. It's no bother. I'd try and make it generic enough for any game. I already have sample code.

What d'ya think?Nes4life2016-01-15 18:18:17
 

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,048CR
It's what I'd like to see. Like I say, I already did it in the past in C# / Windows (I don't think I got to Mono / Mac at the time but it was the intention).

It should be easy enough to separate the two sides and it would therefore be easy enough to issue the commands that are already there.

Important thing is to make sure it works WITH the original design and doesn't drive a wedge between the two. Let's see what happens when people receive them. It's important not to forget that a considerable knowledge of the hardware that is being tested is required. You can't just add a new game. Well, you can, of course, but you're not going to have much of a clue whats going on when it doesn't work. There's a lot of little nuances that may not be implemented yet. Paul has already stated that this is particularly true for 6502.
 

PaulSwan

ZZZ
Feedback
1 (100%)
Credits
1,117CR
You should fork the repo and submit pull requests back to it to update the code base. The right way to manage source code with GitHub is widely documented online.

IIRC the Arduino does have a USB device library you can use to communicate with it over the USB port to a Windows app so you could use a Windows app to control it if you wish.

Paul.
 

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,048CR
So...




http://www.visualmicro.com/

I'll stick that there first as a bit of a TL;DR for those that don't want to read the rest of this. I'm a bit of an odd beast (yeah, I know, it's been said MANY times
smiley36.gif
) but what I really mean is that most of the time you will notice me pushing for everything Mac in this world. That is because my day to day computer is a MacBookAir and if Apple made a gaming rig (and I could afford it), so would my gaming machine.

However, given that Apple do NOT make a decent MODERN gaming machine (flame me all you like, it's the truth), I have a Skylake based W10 machine that I use for gaming. I also tinker with development. Quite a lot since it used to be my day job for 99% of my career so far, and when it comes to development I'm firmly split between Mac OS X and Windows. In the arcade (hardware) world, it's difficult to get away from Windows so I use Visual Studio 2015 Community Edition (which is legitimately 100% free for anyone that doesn't know).

I discovered the above when it was in it's early days in 2012 / 2013. I just re-downloaded and re-installed after not having Arduino anything installed for a long time so thought I'd mention it.

Personally I believe that if you already have VS installed, or you have a machine that you could, you'd be doing yourself a complete injustice by not installing this add-on. A lot of the functionality is free and it will be fully functioning for 45 days. That includes full debugger and allsorts but best of all, full library management and intellisense. It's a godsend!

I'm lucky enough to have bought the pro version back in 2013 and my license is still valid even though the product is vastly improved (happy days!) but having said that, the pro version is only 15 quid for personal use anyhow!!

I haven't imported this project yet to see if there are any issues but I've used VS for C++ on the Arduino before so I don't see why there would be.

smiley1.gif
 

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,048CR
Oh, PS: I'll still be pushing Phill for anything Mac, and maybe contributing because at the end of the day my machine in the games room is a Mac (sort of) and I only drop into a Windows VM there when I need to use stuff like my logic analyser or my EPROM reader.
 

Morty

User
Feedback
1 (100%)
Credits
67CR
Looks like an exciting project, lets face it the more tools people have access to, the more likely some of these old cabs have of surviving

Being a software developer meant I could not resist coding an app a few years ago, work in progress to assist in fixing video games, I'll start a separate thread but in summary:

Application with an XML file per game

Collection of PCB's that make up the game

PCB hi res scan

Component list

How to/fix logs (referenced to components)

Memory map (maps suitable components into a memory map such as RAM/ROM/IO)

Schematics

Tools include

ROM Test - scans ROM, graphical display of pass/fail of each location, CRC matching to ROM name (I found 1 rev2 ROM mixed in with rev1 ROM's for example on a centipede PCB)

RAM test - write/read test patterns

Analysis of patterns for example bit 1 always low (grounded), bit 7 always as bit 8 (shorted tracks?) etc

Writes all results to screen and a PDF so you can keep copies or study off line later

+lots more in progress (example is a virtual control panels so you can drag and drop joysticks, buttons, spinners, coin mechs etc then test a PCB without real controls hardware)

The actual test equipment hardware is abstracted away from the application...so it can be used with different hardware, such as this project if a PC link was added, it only requires the mapping of a few different commands such as read/write to a memory location

I developed it using the Fluke 9010A, also had it using a HP analyser to probe up to 80 pins (I was going to try to add features for testing descite PCB's without CPUS or in place component testing using logic maps to see if components matched the specifications)

Also I did some work with Neil ("Mitchell Gant") using his CPU tester PCB, so this application was working with that, it was fun running Centipede and being able to stop and start the game (he emulates a 6502). I was able to do the same testing of RAM/ROM etc with this as I did with the Fluke, the application had no idea what hardware was actually in use

ROMTest.jpg


PCB.png


Memmap.png


Just thought i would mention it in case it was of any use for this project. Its all coded in C#/visual studio btw
 

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,048CR
Just a heads up that I've added Asteroids to the code but I'm waiting for my parts to arrive before I do any kind of push to my fork or pull request. And sorry, not to steal anything away from Phill but Asteroids is the one I know most about and have all the kit ready to go and a working board set. Phill, you can add Deluxe if you like
smiley4.gif


I've done this as a base game and a derived game just like Astro Fighter and Tomahawk 777. I did this because there is Asteroids and Asteroids Deluxe which vary slightly. There's also stuff like Meteroids and Planet but I think they use the same setup as Asteroids.

I'm hoping that we will have a little more success with this 6502 game than Paul had with Astro Fighter / Tomahawk 777. Yes, CLK2 is used on Asteroids but it looks like basic ram and rom tests shouldn't utilise it. From a CPU point of view we should be in pretty good shape since everything exotic like IRQ, SO, SYNC are not used.

From what I can see the main things that will be impacted by the lack of CLK2 are a couple of the sounds (thump for example) and sadly, some of the signals used by the state machine. That's a pain as it means drawing is probably out. Will see.

Need to walk before we run. Will report back on how the ROM and RAM tests perform (if they do!) There is always the possibility that I've misunderstood something in the code yet
smiley1.gif


[EDIT] Should have looked better at the schematics before I posted that! The NMI is not the watchdog so I need to look at what is going on every 4ms in the NMI routine to see if we need to concern ourselves with it or not. That will be well documented on the web I expect.

guddler2016-01-18 21:59:02
 

Judder

Active member
Feedback
2 (100%)
Credits
976CR
Just a heads up that I've added Asteroids to the code

Fantastic stuff and great to be making progress so quickly
smiley1.gif


We also have another set going out to a rather good Williams expert so I'm hoping with myself and Phil we can make some dent into that!

Alex
 

Nes4life

Active member
vacBacker
Feedback
11 (100%)
Credits
1,113CR
Guddler, you submit what you want mate! There's a good possibility that my main contribution will be with the app extension. We'll need a way of passing generic read / write commands along with an address to each game from the host app. My first thought is that we can have each game (arduino side) present a list of addresses and the commands each block can support (read and / or write) and the host app will consume that dictionary / array. The host app can then present a decent GUI. We'd need to implement a standard protocol basically.
 
Top