In case you haven’t been reading Hackaday for the last few weeks, we just had an amazing 10th anniversary party in Pasadena this weekend, full of workshops, talks, and a party that reportedly went until four in the morning. One of the amazing hackers we invited to give a talk was [Quinn Dunki], creator of Veronica, the modern 6502 computer stuffed inside an old radio.
We first saw Veronica a few years ago, but [Quinn] figures she’s been building her computer for about five years now. She’s a software developer by trade that decided one day to dip her toes into the murky seas of hardware development and build a computer from the ground up. She chose the 6502 as the brains of her contraption, laid out everything on single-sided boards etched in a kitchen, and connected everything with a backplane. Right now it has a USB keyboard, (technically a PS/2 keyboard with a USB plug), NES controllers, a VGA display, and a monitor and Pong in ROM. [Quinn]’s goal was to build a computer that could program itself, and after five years, she’s accomplished that goal.
[Quinn] admits her software background was responsible for a few of her admittedly bad design choices; the VGA is generated by an ATMega microcontroller, working under the theory that if she could clock the micro fast enough, she could do VGA. She now believes an FPGA would have been a better choice for video output, but now that the video circuit is done, she probably won’t revisit that problem.
There is one thing missing from Veronica, and something that [Quinn] will be working on in the future: mass storage. Right now every program Veronica can run is either stored in ROM or entered via the keyboard. A hard drive is the next problem to solve, either with an SD card, or a Compact Flash or IDE hard drive.
Veronica, the one computer that has massively influenced my own ventures into computer hardware.
Some ATMega microcontrollers *can* sort of create a VGA “signal”. It’s a hack at best though and as she points out, not the first choice. Maybe once we get these new IntelGalileo/ArduinoTre/RPi next gen hardware out there, we can simply address this problem by throwing more cheap but powerful hardware at it? Isn’t the idea to quit reinventing the wheel but instead accelerate improvements by continuing to advance the state of the art such that development cycles quicken over time? It’s better than it was but it’s still clunky, slow and awkward.
http://hackaday.com/2014/06/10/640×480-vga-on-an-arduino/
Perhaps, but not when you are building a personal computer for yourself built on a 6502.
Thanks for featuring Quinn and thanks for posting the video! Her face and voice are somewhat hard to find on the Interwebs. I’ve been following Veronica for a long time and I love how she keeps coming up with new and inventive ways to solve problems that I simply wouldn’t think of, and that just make total sense. Great stuff!
Lately she’s been working on a Johnny Mnemonic pinball machine which is also extremely interesting to read about, but she hasn’t done much with Veronica except take it to Kansasfest and the Hackaday anniversary; I was wondering if she would tell us in the video what her future plans are, but I guess nobody thought of asking. Maybe adding mass storage?
Anyway Quinn, as always, keep up the good work!
Yup, storage is the next thing. I do intend to get to it, but so many projects, so little time!
I’d suggest IDE, rather than SATA. Nice parallel bus with strobes. Trading off bus width for clock speed makes sense (and IDE is backwards compatible with ATA, IIRC).
And not SD? For a modern retro computer I don’t know if I would waste my time with spinning media. If you want to get fancy you could support SD’s 4 bit mode which would improve throughput a lot, but it may not even matter given the speed of a 6502
Thanks for having me, HaD. It was great to meet everyone, and the whole conference was fantastic.
Impressive build! Congratulations on HaD panel, interesting presentation. One thing..
Quinn, why You use a limited eagle version? Something like Kicad didn’t get your attention?
You mentioned about PCB making and that people use very common technique with photo paper and iron. Still its robust in DIY. Of course, with UV photoresist and mask is a lot easer make PCB’s, but photeresist coated PCB’s are more expensive than uncoated, thus you need more chemicals, UV lamps, mask holders etc.
About etchant (HCl+H2O2). This thing is quite nasty, but not like a FeCl3. Actually when you etch, there’s CuCl2 colouring everything in green, clothes, rubber gloves etc. And you can’t just leave that mix in closed box, because of decomposition peroxide. Once i left closed erlenmeyer flask with glas cork over some time i’ve found that it poped out.
And once I’ve left that etchant for a long time in open box.. When needed I saw, that etchant evaporated (not fully, about 0,3 litres) and interesting point is, that all metall things near box with etchant covered with rust :))
Yeah. I stored a partially used bottle of 31.45% HCl, with the lid on tightly, on a shelf with some other chemicals. Then one day I smelled solvent. Found that somehow the HCl had fumed out of the bottle, causing everything near it to rust. Including the metal shelf it was on, and multiple metal cans of solvents. One of which had leaked and emptied itself, in turn causing more destruction. It was a horrible mess.
These days I use only the “safer” HCl, which is prediluted to half that strength, but fumes about 90% less. I also store it more carefully. And am trying to get away from using it altogether in favor of a non-fuming acid. Acetic acid + H2O2 works. But is awfully slow if plain old vinegar is used, and I know of no commonly available sources of stronger acetic acid.
Plus the H2O2 in homebrew etchant poses a possible danger too. I often use acetone to clean and strip PCBs. If the two were accidentally mixed, it can produce acetone peroxide. That’s a primary high explosive, extremely dangerous and unstable due to its high sensitivity to heat, friction, and shock; earning it the nickname “Mother of Satan”, and no one makes it intentionally if they value their own life. Many people know about it, not by name but as the explosive that caused the TSA to adopt liquid limits for carry-on items.
Honestly, FeCl3 doesn’t look so bad to me anymore. It has no surprises. Just avoid stains and neutralize/dispose of it properly.
Things may have improved now, but when I started, KiCad didn’t have the parts libraries to match Eagle.
Also, just to be clear, my etching process uses vinegar, not HCl. Also, presensitized boards are only slightly more expensive than plain ones. I’m not sure why people get hung up on that. No other special equipment is needed. Any desk laMp will work, and the mask is held to the board with an old picture frame. This process could not be easier, yet is extremely precise and extremely repeatable.
Quinn, apologies for asking this without (yet) watching your recorded talk — but — what was it that made you decide to start?
If that’s in the video, just point me that way and I’ll watch it. My ‘Net connection is pretty lousy, but I think it’ll manage…
Thanks HaD for inviting “them” (Quinn and Veronica)! I don’t like listening/watching online videos longer than my attention span (Look! A squirrel!) but I did this talk.
Back in the mid ’80’s I had a plan to wire wrap a simple CPU with RAM, ROM and RS-232, but never finished it. So kudos to Q-D the cutie for doing it.
Looking the way it does, she should try use 8track tapes for data storage
Don’t know if she would think it cheating, but I wonder if she had considered implementing an ISA bus bridge and then using an old PC super I/O card for a mass storage interface. Typically one of these would give you a pair of IDE interfaces (which you could use an IDE to SATA bridge with), a pair of floppy disk controllers, parallel (Centronics-ish) printer, two RS232 ports and a PC joystick interface all in a single chip. The ISA bus could also host a Soundblaster 16 or clone of one too.
An ISA bus bridge would be a good idea for interfacing things like a serial or parallel port but doesn’t really make sense for mass storage unless you insist on using an old MFM/RLL controller, or a SCSI controller. I would guess an ISA bridge is more trouble than it’s worth because it runs at 4.77MHz and the 6502 runs at 1MHz.
An IDE/PATA controller (which also works for CF cards) can be implemented easily, it’s basically an address decoder, some glue logic and a bidirectional bus driver (and the driver can probably be left out if the ribbon cable is short enough). It may take a boatload of software to implement a file system but since compatibility is not an issue, she could make some serious shortcuts there.
But knowing Quinn, she will probably not take the beaten path, and instead of hard disks or SD cards, she’ll probably use mercury delay lines as storage or something :-)
Keep on tinkering, Quinn :) We have loved following the progression of Veronica and look forward to your next breakthru. Glad ya keep making the HaD blogroll :)
Quinn, I am not sure whether this qualifies as crazily impressive or impressively crazy… but big thumbs up anyways :)