Over the years, we’ve seen a lot of DIY retro computers, but [Dirk Grappendorf] has created one of the most polished looking 6502 systems to date. His battery-powered portable machine utilizes a 4 line by 40 character LCD, and a modified USB keyboard. Cover all that in a slick 3D printed case, and you have a machine that reminds us quite a bit of the venerable TRS-80 Model 100.
[Dirk] has some great documentation to go with his computer. He started with a classic MOS 6502 processor. He surrounded the processor with a number of support chips correct for the early 80’s period. RAM is easy-to -use static RAM, while ROM is handled by UV erasable EPROM. A pair of MOS 6522 Versatile Interface Adapter (VIA) chips connect the keyboard, LCD, and any other peripherals to the CPU. Sound is of course provided by the 6581 SID chip. All this made for a heck of a lot of wires when built up on a breadboard. The only thing missing from this build is a way to store software written on the machine. [Dirk] already is looking into ways to add an SD card interface to the machine.
The home building didn’t stop there though. [Dirk] designed and etched his own printed circuit board (PCB) for his computer. DIY PCBs with surface mount components are easy these days, but things are a heck of a lot harder with older through hole components. Every through hole pin and via had to be drilled, and soldered to the top and bottom layers of the board. Not to mention the fact that both layers had to line up perfectly to avoid missing holes! To say this was a lot of work would be an understatement.
[Dirk] designed a custom 3D printed case for his computer and printed it out on his Ultimaker. To make things fit, he created his design in halves, and glued the case once printing was complete.
If awesome hardware and a case weren’t enough, [Dirk] also spent time designing software for the machine. He wrote his own abbreviated BASIC interpreter along with several BASIC programs. You can find everything over on his GitHub repository.
We always love writing up well-documented, and just generally awesome projects like [Dirk’s]. If you know of any retro computers like this one, drop us a tip!
[Thanks MicroHex!]
I think an orange datasette drive would definatly be an appropriate storage device.
Make it state of the art and use micro-cassettes.
Why? Do you like five-minute load times? Why not just rip off the cassette routines in the Apple II firmware? They’re much more efficient. :P
SD is probably beyond the bounds of 6502 era hardware to control (minimum of an 800KHz serial stream to start with), but that doesn’t mean he can’t use something more modern to interface between it and the machine.
It brings the old Sinclair Z88 to mind for me. Shame there is nothing in that class these days.
Exactly. SD2IEC comes to mind…
There have been localbus options for MMC/SDcards on 6502’s for a while. Mmc64 for example is an old one that’s no longer produced, using the system clock at 1mhz and a tiny bit of logic in a PLD to initialize the card. As I remember, the logic also allows the mmc clock to be switched to the system’s pixel clock at approximately 8mhz for faster access.
There are “SD to IDE adapters” from China for $7-$12. It is a matter of interfacing Parallel ATA to a 8-bit processor which has been done before.
You can use SPI to control an SD card, and as far as I know the minimum speed is 100kHz for the clock, which should be doable.
A simple SPI flash chip is probably easier. No limitations on speed, well documented, and big enough to hold a box of floppies, which should be plenty for a system like this.
this
How About 3.5″ Floppy? shouldn’t be too difficult for someone like him :>
I just think about all these slim-line USB-Floppy Drives, they are Small enough that they might fit into the form-factor (with a new designed Housing) and the USB Interface may be discarded and swapped against an home brew interface
Something tells me a USB stack to get to a floppy is out of the question.
Check out some of the slim laptop-style FDDs with a “PC floppy” interface. They’re not much bigger than the disk itself.
He was saying to tear out the USB interface, presumably to tie directly to the driving circuitry with a custom circuit.
There is a good chance that on a modern USB floppy everything is integrated into a single ASIC.
It is a bit involved to make a floppy interface on a slow microprocessor. Even with a floppy controller, you would still need to transfer the RAW data in real time as the drive do not have any intelligence/buffering.
Better off interfacing with a CF or SD (with a $10 PATA adapter board). M-System (now San Disk) make overpriced DiskonChip that is simple to interface to.
here is one for 6502 cpu
http://6502.org/users/andre/cbmhw/ryo1581/index.html
Floppy disks are a total PITA, well into ASIC/FPGA/fast dedicated microcontroller range. For just reading off a 720K density floppy, you need something that can continuously measure clock edges with 2µs precision. Writing requires the ability to generate either a whole track’s data (for a 720KiB floppy, 12500 bytes for a whole track of pregenerated MFM) or react within 100µs to the incoming read stream to enable writing.
On the other hand, he might be able to just find an old 8271 floppy drive controller instead. That’d hurt less.
The easiest way to give this thing mass storage might be to use a teensy or some such as a disk controller for an sd card.
There’s that Teensy word again!
I think using an off board processor ( not the 6502) to control an SD card would not be too far from the desire to write 6502 applications.
Just add another serial port:
https://www.sparkfun.com/products/9530
No EPROM in that picture… And the project page says he decided to use EEPROM.
Ah, the good old days with an EPROM eraser in the office (smellily) erasing tray after tray in the rush up to ROM tapeouts…
Smelly, yes, but at least it’s sterile.
This is an amazing, excellent build!
Tack a 6847 video chip in there and make it an Acorn Atom!
Ah!
Acorn Atom, I have had one, but it got broken long time ago. Saved all the ICs somewhere, but can’t find them anymore :(. Even lost the ROMs. Does anyone have them, and make a copy to me?
It was a favorite, I really liked the BASIC with its ? operator for peek or poke. Worked like the * in C.
I, for some reason, always liked the idea of the Acorn Atom. never having one myself, I started to design a clone that I never got around to building. if anyone is interested, the schematics (with a few errors) are located at http://content.thetechnickel.com/misc/acorn-atom/
Wow, beautiful work. This is really, really great.
anyone else even slightly worried by the lips battery capable of dumping 64 amps connected directly to those tiny wires without so much as a fuse?
Great project, I’d just hate to see it destroyed if there was ever a short somewhere.
The tiny wires ARE a fuse.
You can make bitbang SPI go faster by using memory decode signal as the SPI clock. i.e. each I/O cycle automatically send/receive 1 bit of data and toggle the clock. (vs 3 cycles if clock is toggled by software)
Either that or use the 6526/8520 with built-in shift register.
http://en.wikipedia.org/wiki/MOS_Technology_CIA#Serial_I.2FO
There is already a shift register in the 6522
Outstanding work! My hat’s off to you sir.
All I need to do is procrastinate long enough and my projects get done for me! I was doing this exact thing with an old clicky keyboard, 4×40 LCD and a Z80. Its all in a box waiting to get started, lol.
Nice use of a Cherry ML keyboard. Adds to the Model 100 aesthetic.
This is truly amazing. Very well done, and very impressive.
That being said, I must also say that I have no idea what drives the whole retro computing thing. I have lived through the entire lifetime of the home computer, and I can say without reservation that the last thing I want to do is go back to the way things were in 1982!
Three different possibles. One nostalgia, person grew up with them, and like the simplicity, repairability, and security better. Two, a person didn’t grow up with them and what’s to see what one was like, or likes retro objects, like the NES or whatever. Three, learning a system from the ground up, sometimes the best way to learn is to perform the sames processes as history, so you learn the knowledge and wisdom of each choice, action, and mistake.
How would someone take something like this and make it so you hit button and spit everything in open document out onto whatever the keyboard is plugged into?
Basically how would I use this basic design as a DiY alphasmart?
I am impressed by this guy’s work. Very polished looking and can work on it’s own. Thank you for sharing and I’m sorry I don’t have anything technical to add to the discussion.
Found this: http://www.computer-engineering.org/ps2protocol/
Not an electronics whiz — what hardware would be needed? Can the VIA handle this?
Wouldn’t USB be a better/more widely recognized protocol? Example being one of alphasmart’s uses is plugging it into a tablet and hitting send to autotype file contents out.
On the other hand is the PS/2 protocol used in USB keyboard/mice?
Nearly all USB keyboards are backwards compatible with the PS/2 protocol. I don’t know if that applies to mice.
Oh, and now I also see all VIA pins are in use. Would need another.
Given that even the AVR need to be running at 12MHz to bitbang USB at 1.5Mbps, you would need a USB host controller. The software host stack is going to be fun to write.
PS/2 is a completely different protocol than USB. Just a engineering/marketing decision that the same chips are programmed to do both to sell to a bigger market.
PS/2 protocol on the other hand is quite simple. Just a matter of reading in a serial clock stream when you see a clock edge. Get the key packet and use a translation table to look up the key modifier/key code.
Sounds better, but how would you hook something like this to something that only has USB?
In case it isn’t already easy to tell. I have no idea about any of this stuff other than ‘oh hey that looks like a neat use for a CPU chip that was in EVERYTHING EVER IN THE 80s (that wasn’t using a z80.)’ I mean seriously. The nes, apple ii, commodore 64….
This is beautiful. Did I miss what the battery life is for this?
Quite the plucky little thing, ain’t it?
I think using an off board processor ( not the 6502) to control an SD card would not be too far from the desire to write 6502 applications.
Just add another serial port:
https://www.sparkfun.com/products/9530
[Dirk], as in Z88DK and MAME Dirk?
I like it. Though, it oddly reminds me of the Speak and Spell. Or am I the only one?
http://en.wikipedia.org/wiki/Speak_%26_Spell_%28toy%29