Hacker News new | past | comments | ask | show | jobs | submit login
SmartyKit Apple I replica (smartykit.org)
85 points by bdcravens 54 days ago | hide | past | web | favorite | 46 comments

The bottom photo shows an ATmega328P. So this is just a software emulation of an Apple I? What’s the point?

I think it is just there for generating the video signal. This sort of thing is common. The earlier (solder-based) Briel Replica I Apple I clone used a Propeller chip for that. But it still had a 6502 for the actual computing, and I imagine this does too.

I built a 6502 "laptop" (a 6502 SBC and LCD stuffed in a toy laptop case). I used a Propeller chip to generate a video signal, as well as to load a program into RAM and generate bus control signals. The 6502 was directly connected to all of the RAM address and data lines, but I could also interpose different values on the database.

Another Propeller enthusiast made a pretty good write-up here: http://dangerousprototypes.com/blog/2012/02/22/prop-6502-pro...

A lot of modern hobby computer projects use a FPGA, micro-controller, or dedicated modern CPU to bit-bang the video signal.

How did the original 8-bit computers do it? Did they have access to chips that are no longer produced?

The Apple I and Apple II both used discrete logic to generate a composite video output. The Apple I used a couple of unusual Signetics parts (2504, 2513, 2519) and a character generator ROM to implement a text-only "video terminal" with a UART-like interface; the Apple II used a more complex system built around the system's DRAM refresh which allowed for graphical output.

None of this required any truly unique parts (although the Signetics parts used in the Apple I are hard to find nowadays), but most hobbyists prefer something more modern than composite video. :)

It's also a problem using discrete components for noise and EMC compliance, you need a shielding because you have a lot more higher frequency traces compared to otherwise. It's still possible to do without too much trouble but compared to doing most of it in a single devices there's just very little point in spending that much work most of the time.

EMC compliance isn't really a concern until you're building a consumer product. A breadboard kit… nah. :)

Noise is a real issue -- but the main concern there is the CPU. Video generation isn't unusually noisy.

“EMC compliance isn’t really a concern”...

Unless you’re this guy


But seriously, you’re totally right.

http://www.swtpc.com/mholley/RadioElectronics/TV_Typewriter.... was one of my favorites (the TV Typewriter)

Seriously though, as amusing as they are, and as much programming as I did on a 16 line by 64 character "terminal" screen, I really could never go back to that. For grins I set up an xterm that way just to experience it and yeah, it still hurts. A lot. Even the 80 character by 25 line experience (although tolerable for many things) feels so very cramped these days.

Enlightenment may come from looking at an IBM-PC MDA (Monochrome Display Adapter) board:


...or a VT100 main-board:


80% of these boards are "the graphics part." Dozens of chips! This is what the sibling commenters mean when they're saying that the video signal is "discrete logic" (as opposed to integrated logic.)

It'd be a bit of an ask to have a hobbyist build one of those themselves (adding an 800% complexity increase to what is otherwise a very approachable hobby project.)

Well, and an exact replica would output composite video, which wouldn't work with anything most people already have.

Most used the 6845 CRTC or compatible but the Apple 1 used discrete logic & shift registers instead of CRTC & RAM from my understanding

I don't think the particular shift registers etc are still available but it is still possible to do it with discrete logic these days

I guess different projects have different focus and some probably don't care too much how they get video as long as it works. I've built discrete and CPLD based video circuits for my own 6502 project which is fun but took months to get working perfectly

Exactly. :)

Yes, they had.

Yep, I use ATmega just as video and keyboard controllers. All real work is done by 6502 - it communicates with memory and keyboard and video controllers. Just as in the original Apple I

Even if it's an emulated Apple I, the kit looks like fun :)

Thanks!) But it’s not emulated - it uses microcontrollers for keyboard&video and original CPU 6502 with ROM/RAM to do the work. Original Steve Wozniak’s code is on ROM. ROM chip is bigger then in the original and it’s possible to load BASIC interpreter or other programs and run them from ROM

It might also be reading the PS/2 keyboard input.

was wondering the same. Just run an emulator on your raspberry pi, no need for a single use kit

I really enjoyed building and programming on the Briel Computers Apple I replica, http://www.brielcomputers.com/wordpress/?cat=17

Is anyone else seeing OpenDNS security warnings on the headlone link to the site?


I'm really curious how they're doing video. That was the big roadblock I hit when making a Z80 computer a while ago (and what led me to FPGAs).

We also made our drivers open-source - here is video driver’s source code that we use. It’s code for Arduino that could be uploaded to Atmel 328P that we use - https://github.com/smartykit/apple1/blob/master/SmartyKitApp...

Do you have any notes on your build?

I'm in the early stages of planning a Z80-based system. I hadn't really considered video, just serial-console I/O. Currently I'm using an arduino to emulate RAM and I/O. I'm at a stage where I can run simple programs, and have a working BASIC interpreter running on the processor.

The next step will be wiring up real RAM/ROM, along with serial I/O, making the system completely standalone.

The photo is low res, so can't say for sure, but I expect it uses a microcontroller of some sorts to generate a composite video output.

That's a lot harder than it seems, so, I have my doubts. It needs to not only run fast enough to bit-bang the signal but also simultaneously respond to bus requests from the 6502.

All depends on which microcontroller it is using. The Propeller microcontroller has multiple cores and specialized registers for video, so it can just dedicate independent core to video and bus control. An Arduino is certainly fast enough to bit bang video, and it could probably interleave bus control between servicing pixels, but the code and timing for that would get complex.

There's no graphical display on the apple I. You just need the atmel to handle the big banging. The rest is uart and there's quite a number of PAL and NTSC composite libraries out there that can do this for arduino.

The microcontroller doesn't go on the 6502 memory bus. If data is sent to the microcontroller over a serial channel (e.g, SPI or UART), it can handle incoming data during blanking periods.

Yep, I use ATMega as a videocontroller. You could drop me a line and I’ll give you a pice of advice for your project

Also worth looking at if you're into this sort of thing:


I wonder why an Apple I? Are they perhaps concerned about IP-related problems with the ROM and other firmware in the II? They're pretty similar but the latter is still easily recognizable as a personal computer and the former not so much.

The Apple II is significantly more complex. In particular, its video output architecture is constructed around the DRAM refresh cycle, making it difficult to replicate without duplicating most of the original system.

Wasn't the Apple I originally shipped as a kit that you had to put together? I think it's trying to recreate that same idea, but with easier assembly.

That could be it, although I guess they also have some earlier kit that seems to be capable of more. But maybe this can too - the 'screenshots' on that page show things an Apple I doesn't do as it is, like display lower case letters. I just have a hard time seeing how the end result can hold a kid's interest. An Apple II can be made to fill the screen with rude words in a line of code!

Don't have to worry about a case?

If I ordered an Apple II replica I'd expect an apple II case and keyboard which might present IP and manufacturing issues.

I think it's intended to be a kit for children rather than a strict 'replica'. A no-solder kit that ends up pretending to be some ancient computer can pretend to be more or less any kind of ancient computer.

It's a lot easier (not to mention cheaper) to get a working Apple II. Lots of folks out there want the chance to meet around with an Apple I for less than $100k.

It's supposed to be a kit for kids, not really a thing for collectors. It's historically important but I find it hard to come up with a more limited and boring computer of similar vintage. It's basically a prototype idea a few of which they managed to sell to hobbyists. What do kids or non-kids do with this thing after they've plugged it together?

That depends on what you mean by "similar vintage" of the Apple I. The Apple I was actually one of the more exciting computers when the Steves presented it at the Homebrew Computer Club in 1976. Remember it was competing with things like the Altair and IMSAI, not the graphical home computers of the 1980s like the Commodore 64.

Heh, no, I think it depends on what I mean by 'boring' and it's 'not of great interest, as a working, interactive thing, to learners today'. A fully realized Altair or IMSAI is a system that runs BASIC and CP/M - not just a box with switches and blinkenlights. A fully realized Apple I is... an Apple ][. I'd put the minimum required level of retro-PC non-boringness somewhere around 'should be easy to make it infinitely yell BUTTFACE at you shortly after booting'. An Apple I that just drops you into monitor ROM seems well below that.

Building, exploring, and programming the workings of early computers builds foundation knowledge that helps with a wide variety of newer technologies. It's good to see projects like this, in my opinion.

Serious question:

Do kids want to do this? Is this mainly for geeky adults.

Bit of both. Kids like making things with their parents, and geeky parents are more likely to spend the time making stuff with their kids if there’s a fun nostalgia trip for themselves at the same time.

I’ve done a lot of retro gaming projects with my kids because I get some nostalgia, they learn how to make things, and we all get to play some games at the end. It’s fun for everyone.

Why so little information on this thing? It doesn't even mention if it's using a real 6502, which one, etc.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact