Arduino In-Circuit Tester: Build Project

Dave2084

Active member
vacBacker
Feedback
7 (100%)
Credits
453CR
PaulSwan said:
6802

- It looks like since the CPU generates the clock on "E" you don't need a separate external master clock like 6809. You can just drive "E" from the CPU like the 6502 CLK outputs (i.e. the 6502 example is a closer fit to what you want than the 6809 example is). The two 6802 XTAL inputs can be set to input and ignored.

Thanks Paul, I did get as far as the ignoring the bust test and I'm able to read valid data, but D6 is stuck high. Going to investigate that this evening.
 

Dave2084

Active member
vacBacker
Feedback
7 (100%)
Credits
453CR
So I wrote a simple test program the blinks all the outputs a few times a second. I could then push an LED into the ribbon header at the UUT plug board end, this tests the Arduino and the cables but not the UUT plug board. After this i tried the LED on the UUT plug board and finally plugged straight into the Arduino itself.

My Arduino has a bad pin 53, (Pin 21 of the UUT board plug) the LED drive is significantly lower than the others (the LED barely lights up you have to have the lights off to see it.

This shouldn't affect my testing for now as the pin 21 is GND on the 6802.

So, I still need to figure out why my reads don't work properly.

Dave20842016-01-26 20:59:44
 

Dave2084

Active member
vacBacker
Feedback
7 (100%)
Credits
453CR
Dave2084 said:
So, I still need to figure out why my reads don't work properly.

And I can now successfully read a ROM.
smiley1.gif


The issue in the end was a typo. D6 is pin 27 but I defined at as pin 37 (E) so I had two 37's and no 27.

Still don't have the bus test working so I have just commented it out and before I progress to a different CPU I'll need a fully working Arduino.

Next step writing to RAM!
 

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,048CR
Regarding further revisions of the hardware there's two things I'd put forward if anyone was interested. One trivial and might give a bit more room to move the jumpers, one not so trivial.

First one, I'd go SMD on the resistors. Yeah, I know, SMD - ooo, scary! Actually, no. Sure fine pitch QFP package chips are not pleasant (but even they can be done just with a decent iron easy enough), but simple resistors and caps and stuff (AKA bird seed) are no more difficult than through hole. Granted if you're like me you might need to buy a magnifying lamp
smiley36.gif


Without trying it in a PCB package I'd have no idea what impact that would have on the design. It actually might not help one bit because your design would either become single layer or you'd end up with a hell of a lot of VIA's. So OK, thinking aloud, maybe it won't help.

The other one would certainly not be trivial. Adding a CPU to the "POD". In a very simplistic way, maybe there is some cheap CPLD or similar device that could simply switch all pins based on a single switch input. But given that would need to be an 80+ pin device, I doubt such a beast exists. The other problem is that you'd probably be making the design of the POD CPU specific. But maybe not, maybe it could be jumpered in just the same way as the head.

Would be nice to have a quick way to switch between CPU and ICT though.

Oh well, no harm in dreaming
smiley17.gif
 

chadsarcade

Lord of Vectors (tm)
Feedback
11 (100%)
Credits
442CR
I'm still waiting on a few parts so a little behind on this but have been reading the thread, and thought I'd chuck a couple of thoughts in:

1. Couldn't the CPU select jumpers be moved to the main PCB if a rev 2 were to be designed to make it easier to get to them?

2. Has anyone considered using an 80-pin IDE cable? Ignoring the fact for a moment that one pin is keyed off, it has a gnd per signal to minimise e-m induction so perhaps a single ribbon could be used? This would also make the CPU jumpers easier to get at, and the CPU pod end not much bugger than a 40 pin DIL package.

I can also confirm that Paul's software build instructions work fine under Linux. Like Dave, I got a £10-odd Arduino and LCD shield combo, the software compiles and uploads OK but I'll be checking the output pins after reading the comments above.
 

Adrian Purser

Moderator
Staff member
vacBacker
Feedback
2 (100%)
Credits
213CR
chadsarcade said:
2. Has anyone considered using an 80-pin IDE cable? Ignoring the fact for a moment that one pin is keyed off, it has a gnd per signal to minimise e-m induction so perhaps a single ribbon could be used? This would also make the CPU jumpers easier to get at, and the CPU pod end not much bugger than a 40 pin DIL package.

I looked at this a while ago because I have a drawer full of these cables. I found that all of the ground pins are shorted together so this only leaves 32 available pins (including one gnd pin). This may be enough if you only use the bare minimum signals but I wanted to include all signals including interrupts (6502).
 

chadsarcade

Lord of Vectors (tm)
Feedback
11 (100%)
Credits
442CR
adrian purser said:
I looked at this a while ago because I have a drawer full of these cables. I found that all of the ground pins are shorted together so this only leaves 32 available pins (including one gnd pin).  This may be enough if you only use the bare minimum signals but I wanted to include all signals including interrupts (6502).

Thanks for the info Ade, I too have a few of these but I haven't deconstructed one. Pity so many of the pins are common.
 

PaulSwan

ZZZ
Feedback
1 (100%)
Credits
1,117CR
I simply copied the Fluke design so that the cable set and probe head could also be used to replace a damaged Fluke pod head (i.e. it was designed for both purposes).

Paul.
 

Dave2084

Active member
vacBacker
Feedback
7 (100%)
Credits
453CR
PaulSwan said:
I simply copied the Fluke design so that the cable set and probe head could also be used to replace a damaged Fluke pod head (i.e. it was designed for both purposes).

And for this I thank you. Never will I have to fear I can't fix a probe lead again.
smiley4.gif
 

Dave2084

Active member
vacBacker
Feedback
7 (100%)
Credits
453CR
I think I've sorted out my iffy pin now or it has just started working on its own!
smiley1.gif


Anyway here's the code I was using to flash all the pins we use for the ICT (though I skip the ones for the LED Keypad shield). I then just used an LED to check them.

Code:
void setup() {

  for (int thisPin = 14; thisPin < 70; thisPin++) { 

    if ( !(thisPin > 53 && thisPin < 62) ) pinMode(thisPin, OUTPUT);

  }

}

void loop() {

  for (int thisPin = 14; thisPin < 70; thisPin++) {

    if ( !(thisPin > 53 && thisPin < 62) ) digitalWrite(thisPin, HIGH);

  }

  delay(100);

  for (int thisPin = 14; thisPin < 70; thisPin++) {

    if ( !(thisPin > 53 && thisPin < 62) ) digitalWrite(thisPin, LOW);

  }

  delay(100);

}

Dave20842016-01-26 19:52:06
 

Judder

Active member
Feedback
2 (100%)
Credits
976CR
** Hardware run update **

I've had a few more enquiries from arcade collectors on UKVac to get hold of a set of Paul's Arudino tester boards, so I'm thinking of doing another run of boards through DirtyPCBs

The cost for a set will be £5.00, which is pretty much at cost of what it costs to get the boards produced and posted so I will open a separate thread over on the For Sale board, and anyone interested can sign up there - leaving this thread for the build / expand project

We will need at least 8 people signed up to do the production run, and I have one already so that leaves 7 more interested parties to get it going

Feel free to invite friends over at other boards to sign-up for a set too

Thanks!

Alex
 

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,048CR
Right, I've just got mine working. It was those damn jumpers. I had it on 20 instead of 21. That'll be why A11 was tied low then
smiley36.gif


Everything is now working as expected in Asteroids except for the bus test which appears to be returning 7c for the data bus. I'm going to try a few boards now and see if that is just this Meteoroids booty or if it's all Asteroids boards. If it's the same across all of the boards that I have here then maybe I could implement it as an entry in the custom menu?

As ever I'm juggling too many things at once so maybe tomorrow I'll get the time to add the different ROM variants and then I might be somewhere near making a pull request.
 

Dave2084

Active member
vacBacker
Feedback
7 (100%)
Credits
453CR
Judder said:
I've had a few more enquiries from arcade collectors on UKVac to get hold of a set of Paul's Arudino tester boards, so I'm thinking of doing another run of boards through DirtyPCBs

I would like another another set ...

Also how about running extra CPU Socket boards?

These would be handy for fixing fluke pods with damaged cables.
 

Nes4life

Active member
vacBacker
Feedback
11 (100%)
Credits
1,113CR
Making progress on mine! Also, made good headway with the host Mac app. Implementing the core communication in C so that it's cross-platform. I'm focusing on usability and robustness.

 

Judder

Active member
Feedback
2 (100%)
Credits
976CR
Nes4life said:
Making progress on mine! Also, made good headway with the host Mac app. Implementing the core communication in C so that it's cross-platform. I'm focusing on usability and robustness.

Looking good!

One helpful trick I used for mine was to get a pair of nail clippers and use them to clip off the bottom of the resistor legs once soldered in - means you can remove any excess leg and solder and keep them all well away from each other

@Dave - good point about more CPU adapters versus shields - I'll see how interest goes for the second run and maybe run a 2 to 1 to get more
 

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,048CR
@Phill - check the resistors up in the top left near your forefinger, they look like they're overhanging where you're going to need to put the pin headers.

I would definitely like some additional head PCBs. My idea was to use wire links instead of the jumpers (because they're not the easiest to get to) and have a head per CPU, then maybe use sockets with the quick release clips to change CPU.
 

Dave2084

Active member
vacBacker
Feedback
7 (100%)
Credits
453CR
guddler said:
I would definitely like some additional head PCBs. My idea was to use wire links instead of the jumpers (because they're not the easiest to get to) and have a head per CPU, then maybe use sockets with the quick release clips to change CPU.

Good idea! I think actually I'd be interested in maybe 1 set + 6 extra Head PCBs

Now if only I can get write work on the 6802. Reading works just fine.

Spent a number of hours looking at it today and can't figure out why it doesn't work.

I've also coded up initialising the 6821 etc for the IO test, but since I can't write to the 6821's DDR to initialise it I can't test that either.
 

Nes4life

Active member
vacBacker
Feedback
11 (100%)
Credits
1,113CR
Hey Paul, after fitting the shield into the arduino alongside the lcd I think there's a small change you can make to the pcb layout to make the fit more snug. I found that the resistors in the top left (see my last photo) were about one resistor's width too far left. This meant that the edge of the lcd shield sort of sat on the far left resistor. I managed to push the resistor's right a little but probably better to address it on the pcb layout itself. I'll get a better photo of the issue tonight.
 

Dave2084

Active member
vacBacker
Feedback
7 (100%)
Credits
453CR
PaulSwan said:
Point me to your fork/branch and I can take a look.

I hadn't yet got round to forking and branching from guthub, I have now but the version of the code on my laptop isn't the latest, I'll sort it out later and send you a link.
 
Top