Zikzak - crummiest 8bit console/computer ever .. but I'm making it!


The sharkfin is a TQFP64 avr8 mcu, thats it.

Given that I know the sharkfin seems a bit springy-outy, my first thought was to jump on that as the cause of woes (you know how our brains love to make associations..), but if you think on it for a moment .. that sucker drives the data writes to both banks, just one at a time; it controls the switch too.

So if one bank clears properly -> we know the sharkfin must be more or less okay; the problem must be downstream, at the MUX to the VRAM sort of area.

Possibilities..

- Lose wiring on the A-side of one of the 4 muxes

- Lose wiring going into the VRAM

- Bad solder on the adaptor board for the SRAM to DIP

- Bad RAM (who knows, maybe I cooked or shorted a piece) -> fairly unlikely; these two are well done I think. (My earlier one was a mess, but I took it out once wiring got hectic :)

Its fairly hard to probe in here, due to the wiring arching all over.

I was fairly tempted to start soldering to perfboards and make it modular .. even had a pile of ribbon cable parts in hand! .. but I think in the end, havin2-3 boards (with say 4-6 or more ribbons between them) seems goofy; pros: build each board separately, and then lay out a mnice header on each side; and then hook them up. Cons: Be annoying to constantly unhook and re-hook every time want to turn over one board to solder or debug it. *HMRF*

Right this moment I'm waffling, more leaning towards screwing together a few perfboards (I've picked up a dozen of the 4x6" one side padded kind for random hacking on.) I maybe could get away with a 2x2 grid of them (a little smaller than my monster breadboard now), but I've also picked up a half dozen little spools of 30AWG wire wrap wire. (Very cheap since its so thin, and tiny little spools.. look smaller than what you'd have on a sewing machine bobbins..); coudl even do something like a 5 board (2 board top row, 3 board middle row?) or something weird like that. Pros .. nice and sturdy, no messing with ribbon cables; Cons: flipping it over all the tiem to work on it, it'd be large; with BB you never flip over, but its tight on surface; with perfboard you work botyh sides, and I'm using smaller wire now.. so more room... but working both sides.

Just not sure :)

BB is so convenient, its hard to toss it away; but ultimately need to go to a more permanent/semi-permanent build.

At leas tthe 30AWG stuff is tiny; you can bundle like 30 strands of it into the space taken up by a thin pencil.

A few folks really wanty me to go to wire wrap, which would mean buyying a good WW tool, or a WW gun, plus a dozen or two dozen WW sockets; probably another $100 down the drain :p Not sure if the same spacing or not, maybe need all new perfboard too (ouch). But not really sure it'd help me out, besides taking on yet another ucnertain skill :p

I'd like ot stay on solder perfboard though.

To hold perfboards together, I'm going to check hardware store see if they have nylon nuts/bolts (assuming they stay tightly done.. maybe should just use regular metal ones..); but a few nylon long nuts/bolts could be nice -- use a drill bit to widen a hole as needed in the perfboard, then put up a long bolt, and tie the nut down to secure it; then coudl use the bolt as a 90degree-turn sort of post .. to organize the wire runs without so much strapping them down. Not sure if that'd work, but cute idea :p

jeff
 
I may be making stuff up here, and this may not be good advice, but I think I've seen soldered perfboard projects using little wire bridges trapping the signal wire to the board and allowing up to 90 degree turns. I know I've done it myself on little veroboard projects as cable relief. Bolts should work as well, though I could imagine it might be problematic that you need to keep the wire under a little tension to stop it pinging over the head of the bolt at a moment's notice. You'd need to cut all your wires to pretty much the exact length to eliminate too much slack.


I'd have though that as long as your clock speed isn't too high and you're not including any clock lines, bundling together bus lines all going in the same direction with cable ties might be a quick way of making your existing board a little tidier. Although I did buy a job lot of cable ties a year or two back, so now almost any project looks like it can be improved with cable ties to me ;)
 
Last edited by a moderator:
I don't really 'get' how 'these people' (who post pics of boards ;) make their wiring all perfect .. perfect layout to minimize overlaps (experience?) and perfect length every wire .. I must assume they measure the distance every wire and adjust as they go. Insane!

For my bolt idea, I was thinking .. normally on a perfboard (I've only done a few!) I bend the wire in place, or as I go, to the right layout; fine -- but if you're doing a bus or something, theres a lot of wires and they're not going to align quite nicely.. hard to do it in place on a board. So _maybe_ it'd be useful to use a form of some sort, such as a bolt, to help you get good tight turns .. and then when you're done, tie them down with a nylon cable tie, or a wire loop soldered into place, or something.

ie: For close joints, within a couple of pads, you can just run solder over .. or drop in a stripped piece of old wire, or use the long lead you've clipped off of a cap or something But for anythign more than a couple cm away, you use real wire. But for me, with like 100 bus wires all over the damned place, ... yeugh :) At least this time a lot of the wiring will be on the other side, so I shoudl be able to get at the topside (chipsiode), with probes. Mind, that could squish wiring, so I wonder if I need risers on the thing, to keep it up off the tbale.. bleh :)

"What fresh hell is this?" :)

jeff
 
Must say the neatest boards I've ever seen are from a time before the internet. Before colour telly even. When any spare time you had was exactly that - spare and you couldn't fritter it away on forums and crap multichannel telly.


I do wonder why you didn't put more effort into using ribbon cable though, given you went and got the parts. I've always thought ribbon cable must've been invented for computer hackers in the early 70s.
 
Seems every time you talk to an expert, they tell you a new best way.

This or that kind of material!

Use Wire wrap, don't use regular wire!

Use wire pen and magnet wire (but don't let it get into your eyes or inhale it.. it burns!)

....

Decisions decisions :)

jeff

I think I will have to save up some pennies and get a wire wrap tool and some IC sockets, see about doing a small little project just ot trial that method out for future. A wire pen for magnet wire seems cute (its a pen with a spool at the back end, so you can 'draw' your wiring down..) seems cute too.
 
Must say the neatest boards I've ever seen are from a time before the internet. Before colour telly even. When any spare time you had was exactly that - spare and you couldn't fritter it away on forums and crap multichannel telly.


I do wonder why you didn't put more effort into using ribbon cable though, given you went and got the parts. I've always thought ribbon cable must've been invented for computer hackers in the early 70s.
I didn't get the parts.. I just had them in hand at the store ;)

ie: Buy a 16pin ribbon cable.. 10' fot $10

$1.50 for 2* male end, or 2x female end.

I figured.. if I wanted to start carving out boards.. say, a cpu board (so 2 of them.. a 40 pin board, and a 64pin board), and then have a ram board or two (32-34 address lines, plus 16 data lines, plus control lines), plus interchange board .. it'd end up being a lot of individual cables and boards, and flopping all around as I work on them, sounds nasty. Some advantages though.. work on small little board, get it done and testeds, and know its good; prove all the little boards and then just assemble it.. pretty nice! And modular, to swap parts..

.. but not somethign oyu just rush; ideally you'd want to design it .. a 16/17pin address bus .. well, your shrouded connectors are 16 or 20pin; do you put in some control lines there? I couldn't find handy 8pin shroud, but could get a 10pin shroud; so do you do 24pin (address+data), or 16+8 address and datas, or 16+16 (address, data+control) ... and do you try to be logical; on the cpu .. do you do 16/17 address, 8 data, 8 misc pins ... and what about power? do you just run power into the boasrd, or do you route power/etc through the ribbons as well?

So is a 64pin chip going to be .. a few big ribbons, or a half dozen 16pin ribbons?

And with all these ribbons, better plan on the boards where to put them...

So yeah, big mess unless very careful. Figured I better not just pick up a half dozen bits and see what happens .. could end up needing a lot, or a few, or different sizes, etc.

One saving grace is you can buy wide pincount ribbons, and then just split it up on demand into smaller widths and lengths; ie: buy a 50pin ribbon of 10foot, and you're good for awhile :)

...

But having 3-5 or more little boards flopping around sounds goofy; one large perfboard might be the way to go?

Or maybe a couple perfboards; I've got female/male jumpers, so I could prototype joiun them to see how it works, and then add ribbons if I like it, etc.

...

So, _design first_, buy parts later. Buying up front would more than likely be a waste of money ..

But _so close_ :)

jeff
 
Heh, yeah fair points. As for 64-pin chip -> 64-line ribbon, I'd say nah. Each ribbon is best if it serves one purpose - either data bus, address bus, other bus, control lines etc. And as for splitting up a mahoosive ribbons, best get a red permanent marker while you're at it to mark the new line 1 - I find it too easy to twist ribbons, and a bugger to debug (and then a pain to fix).


By male-female ends I assume you're talking IDC headers - I was thinking more fanning the ends and plugging them straight into your board at proto stage, though I dunno how well breadboard handles that gauge of wire tbh.


I can see ribbon cables aren't ideal, but it still sounds preferable to the current nest of wires you've got. Realistically, what are the options? Ribbons, jumper interconnects, multiple monster DIN sockets, or the current spaghettified bunch of wires but spread over multiple mechanically independent boards?
 
I'm referring more to perfboard now; the big breadboard _works_ fairly well, just a tad flaky; its very hard to probe and such due to the mess.. and cleaning it up is sort of annoying (hate to take it apart when it mostly works!) ..

So I'm thinking of building the more solid perfboard version and keeping the BB version as reference; then when perfboards working ("if" ;) , I can take apart the monster BB and use it for something else (a 6502 system? ..)

jeff
 
Now I'm back to thinking ribbon cables.. decisions decisions :) (if they're floppy and long enough, can turn over one board without turning them all over maybe, and keeping boards smaller is better I think..)

Not sure yet, need to do some design but maybe a CPU board, limited to address lines, data lines, and unswitching misc-lines; so two * 16pin ribbons (or 16, 8, 8 .. but 3 seems a bit goofy.) This would abstract away the cpu's in a way, so they take their own power requirements, and can have their own IO's like joysticks or the like (still mulling), but the switching parts (address, data) can route threough ribbon to the interconnect board.

Interconect board, if I can fit it all together, would have RAM + MUXes, plus ribbon connector for the video out.

A 4th board for video handler, that just does the DAC and buffer and some stuff, to VGA.

The cpu unswitched pins would route through to all other boards, so that the video board could get some pins to/from the cpus.

This design would let .. plug in just the gpu cpu into that ribbon, and turn it on, and it should work (do nothing :) , and then plug in the video board and it should show random gunk (working!) .. and then plug in the cpu board to get the switching and show actual artwork..

jeff
 
As I said previously, I really like the idea of having a modular design. Various pcb that interconnect to make the whole computer, like it's done in modern computers (even if, lately, it's more and more "everything integrated to the mainboard").
It'll be better since you'll be able to improve one PCB at a time without having to redo the whole circuitry.

I'm currently looking at these website :
http://searle.hostei.com/grant/zx80/zx80.html#Links%20to%20other%20sites%20of%20interest
http://www.microwave.gr/giannopk/zxcomputer/index.htm
http://echorod.home.xs4all.nl/zx/zx_spectrum_issue_7.htm
These peoples made clones of Sinclair computers, it's really interesting to understand how Z80 works.
If you don't create a Z80 Zikzak, I'll try to do it myself! (with a 20MHz CPU it'll be a powerful beast :D )
 
Last edited by a moderator:
Very awesome links; that searle one looks amazing.. o-scope pics to etching printables to colour coded circuit diagram.. wow :)

I'm thinking of brute force modular now :)

Need to work out space and what I need to add later on, but .. 2 mid-size perfboards, one ofr each cpu; then bolt them together with nylon bolts .. just so easier to hold onto, and treat it as one board; 4 or 5 ribbons coming out of it (2 per cpu on their respective halves.)

Jack them into the interconnect board, and add a display board, good to go.

There are much simpelr w2ays to build a machinem; even a C64 etc is way simpler than what I'm doing in a lot of respects; but I want that hardware double buffering, so the code is easier :) Its probably doable to run a fast clock, and run 2-3 ticks to the display and then a tick to the cpu, or 2 ticks in a row to each, or somehting along those lines . problem being that RAM is stateful (need those read / write control lines set, so setting to write from cpu and then having gpu try to read == boom .. but I bet it could be timed right to work; run a 80mhz clock, and 2-3 ticks to one sife, 2-3 to the other .. and then just not need all this switching logic at all.) Ny power consumption seems pretty high too .. having 10 MUXes plus some buffers.. they're probably what, 20mA each to run .. only get a coupe hours out of a 9V battery.

But its fun and interesting a design :)
 
A really quick job in the CAD, but this is the sort of thing I'm thinking for the cpu boards (this being the GPU):

You can see on the board layout the idea..

Top edge:

- serial port on top (not yet connected at all)

- LED for heartbeat, on top edge

- AVR ISP programmer port on top edge

- maybe add a debuffer port up there too..

Bottom edge:

- Power header (2 pin)

- Address bus header (2x8pin ribbon)

- Data/Misc header (2x8pin ribbon .. tried to keep parts inventory sane, so all 16pin ribbons and IDC connectors)

The data/misc header is..

- 1 row is data (1x8; so its like pins 1,3,5,... or 2,4,6.. whateve;r not 1,2,3,4... since that clumps it at an end, and I like them in a nice row instead :)

- 1 row is 4-bit parts: ToOther and FromOther; the ToOther will route to the FromOther on the other cpu board, say, and also down through to the video board; a shared bus.

    -> But I may just jumper these guys . if I make the two cpu boards, and then nylon bolt them together to make it easier to work with, I could just jumper from the 1 pin needed on gpu over to the cpu (vblank pin), to save all that routing :)

Board (with airwires not laid down):

zikzak3-module-gpu-board1.png

Schematic:

zikzak3-module-gpu-sch1.png
 
Last edited by a moderator:
Did a very quick hackjob to build the gpu board.. and hey, it seems to work! (well, not hooked up to anything, but the lines are acting like they should on the o-scope, and the LED turns on without exploding.. thats good, right? ;)

The empty space in the top-left is where the MAX232 serial level driver IC will go, and the serial port.

Top right is the heartbeat LED and the ISP port for programming it; bottom left 2pin is the power lead; middle bottom is the addrtess bus out, and the bottom right is the data and misc in/out bus. (GPU doesn't use the data pins mind you, but keeping same pinout for both cpu boards for consistency.)

1044279_596069380425372_455069363_n.jpg
 
Sick thing..

I'm redoing my little power supply board.. make it a little more professional. ie: Instead of chewing through 9V batteries, I've added a barrel socket for a 9V wall wort, and got that in; added some spring-clip terminals, so I can stick in a + or - wire with just a level push; added a nice switch so I can turn the power on and off without having to remove anything.

And left some space .. maybe I can add a high voltage and high amperage side of this too ... stick it into the robot car/tank I'm building!

Turns out this little 8bit computer may be useful for driving a car too (minus half the graphics stuff) :eek:

Just ordered some big spikey rubber wheels, some DC motors, a metal box for chassis, etc :)

jeff
 
I kinda like the good old bus computer style of the seventies and early eighties, with a backplane that is all bus connectors and power supply, and the rest plugs into that. 

I have one with a lot of pictures here: http://moxie.kfib.org/opus68/opus68.html

...and I thought I'd ask, whilst there are discussions of these kinds of things - Does anybody have any idea of what this thing is? The only identification that I can find is the name "Opus 68" which clearly refers to this being a 6809-machine. It runs Flex, I've gathered, but apart from that I know exactly as mych as you can see on this page - I have the physical machine, I have some schemas, and that's all. Anyone recognizes this?
 
Love the big wire wrap bus on that :)

The zikzak stuff I'm doing now is a half dozen little 4" square boards, with ribbons between them; it was hard finding edge connectors and 'fingerboards' years ago when I was doing arcade stuff, but its nigh impossible now; you can order 'em online of course.. but used to be you could easily get perfboards with a fingerboard at one end, and then just buy edge connectors for your backplane. Can't easily find those perfboards anymore .. seem to be Very expensive online, like $15 a pop each, and just too much .. so I'm going with ribbons, since they're cheap and parts are common; picked up lik 15 feet of 16pin ribbon for a few bucks, and the connectors are two a baggie for $1.15CDN up the road from me.

On the one hand, I sort of hate 'double soldering' everything ... component to ribbon connector, and then other board the connector to its component, when if it was one it'd just be component to component; but at least it'll help keep me a bit honest on the design (not very, I'm still cheating/laming it :p ) .. but it'll make boards easier to test individually.. not one giant rats nest!

I'm designing it more or less like .. one backplane board with some logic on it, and then plug in 2-4 other boards to do the work. Once I get some useful bits done in a week or two, I'll post more pics.

jeff
 
Ahright, finally (6 weeks later?) received a half dozen one-foot wide perfboards; about 12x6 inch or thereabouts .. nice :) Not quite as large across as my Enormous Breadboard From Hell, but nearly .. if I plan my layout better, and use the AWG30 wire, I shoudl be able to get the main body to fit on here. Hell, with two of them put side by side, it'd be like the giant breadboard but in perfboard form and no need for ribbon cables.. decisions decisions. One slab of these perfboards is also about right for sitting on top of my robot car .....

Good times coming :eek:
 
With so little time, I've gottem myself into way too much :p

OKay, so hooking up an r-pi to talk i2c or bitbang to my microcontroller board is not too bad; drop it all onto my robot car chassis should be okay. But now, thinking abnout charge circuits for the batery packs, and so on.. ugh! Got a 7.2V standard RC car nimh battery (not a new lipo one); need a 9V battery too.
 
Not much free time, but getting myself into too much :p

So driving my microcontroller board from an r-pi (say) is not too hard; can bitbang on the GPIOs, or use i2c or spi or serial... easy. An r-pi shoudl run nicely on 3.3V or 5V.

So need a 9V battery (say) through a 7805 to get a nice 5V oout, to feed the electronics.

Need a 12V source to feed into a charge circuit; got a 7.2V standard RC car battery to drive the chassis around.

So need to build up my power supply board to do 3.3, 5, 7.2, 9V and 12V (some generated, some just carrying through); need voltage and current monitors (esp for charging), and display onto text-LCD.

.... *goes back to his comptuer project, much easier* ;)

jeff
 
Back
Top