[Quinn Dunki]’s awesome 6502-based computer is coming right along, and she decided it’s time to add one of the most important features found in the 80s microcomputers she’s inspired by – gamepads.
There were two ways of implementing gamepads back in the 80s. The Apple II analog joysticks used a potentiometer for each joystick axis along with a 556 timer chip to convert the resistance of a pot into a digital value. Analog controls are awesome, but a lot of hardware is required. The other option is the Atari/Commodore joystick that uses buttons for each direction. Surprisingly, these joysticks are inordinately expensive on the vintage market but a similar hardware setup – NES gamepads – are common, dirt cheap, and extremely well documented.
[Quinn] wrote a few bits of 6502 assembly to read these Nintendo controllers with Veronica’s 6522 VIA with the help of an ATMega168, and then everything went to crap.
In testing her setup, she found that sometimes the data line from the controller would be out of sync with the clock line. For four months, [Quinn] struggled with this problem and came up with one of two possible problems: either her circuit was bad, or the 6522 chip in Veronica was bad. You can guess which option is correct, but you’ll probably be wrong.
The problem turned out to be the 6522. It turns out this chip has a bug when it’s used with an external clock. In 40 years of production this hasn’t been fixed, but luckily 6502 wizard [Garth Wilson] has a solution for this problem: just add a flip-flop and everything’s kosher. If only this bug were mentioned in the current datasheets…
Now Veronica has two NES controller inputs and the requisite circuitry to make everything work. Video evidence below.
Continue reading “Veronica Gets A Pair Of Gamepads And A Bugged Chip”
[Tim] is a homebrewer. Temperature profiling during the mashing process is apparently even more critical than the temperature curve of a solder reflow oven. His stove just wasn’t giving him the level of control he needed, so [Tim] added a PID temperature controller to his stove. Electric stoves generally use an “infinite switch” to control their burners. Infinite switches are little more than a resistor and a bimetallic strip in a single package. Not very good for accurate temperature control. The tricky part of this hack was to make it reversible and to have little visual impact on the stove. A stove top with wires hanging out would not only be dangerous electrically, it would also create a hazardous situation between [Tim] and his wife.
[Tim’s] brewpot only fit on the stove’s largest burner, so that was the only one that needed PID control. To keep things simple, he kept the commercial PID controller outside the stove’s enclosure. Inside the stove, [Tim] added a solid state relay. The relay is mounted to a metal plate, which screws to the back of the stove. The relay control lines run to an audio jack on the left side of the stove. Everything can be bypassed with a switch hidden on the right side of the stove. In normal operation, the switch is in “bypass” mode, and the stove works as it always has. When mashing time comes along, [Tim] flips the switch and plugs the jack into his PID controller. The temperature sensor goes into the brewpot itself, so no stove modification was needed there.
The end result is a very clean install that both [Tim] and his wife can enjoy. Save a few bottles for us, [Tim]!
Perfection is achieved not when there is nothing more to add, but when there is nothing left to fail. Going by that metric, [Stian]’s three-chip 6502 homebrew computer is the epitome of perfection. It’s a real, working, homebrew retrocomputer using only three chips: a CPU, some RAM, and a microcontroller to bootstrap the computer and provide a video output,
The key to this minimalist build is having the entire boot process controlled by an ATMega16 microcontroller, This interfaces to the 6502 through a dual-port SRAM, a 1 kilobyte Cypress CY7C130. This dual-port RAM allows the CPU and microcontroller to access the same bit of memory, making it easy to bootstrap a computer from a bit of AVR code.
Output is provided with [Stian]’s ATMega video text generator putting a 37×17 characters on any television with an RCA jack. While input isn’t handled yet, [Stian] says it should be possible with his AVR PS/2 keyboard library.
While other 6502 homebrew computers such as [Quinn Dunki] Veronica can reach unparalleled heights of complexity, there is a lot to be said about the minimalism of [Stian]’s three-chip computer. With some clever coding and a modified parts list, it may well be possible to put a retrocomputer in the hands of everyone with a bare minimum of cost and parts.
The Hackaday tips line is always full of the coolest completed projects, but only rarely do we see people reaching out for help on their latest build. We’ll help when we can, but [Tim]’s relay-based CPU has us stumped.
[Tim] already has the design of his relay CPU completed with a 12-bit program counter, sequencer, ALU, and a transistor-based ROM. The problem he’s having deals with the mechanics and layout of his homebuilt CPU. Right now, all the relays (PC pin, we guess) are glued top-down to a piece of cardboard. This allows him to easily solder the wires up and change out the inevitable mistakes. This comes with a drawback, though: he’s dealing with a lot of ‘cable salad’ and it’s not exactly the prettiest project ever.
The ideal solution, [Tim] says, would be a PCB with through-hole plating, but this isn’t easy or cheap for the home fab lab. We’d suggest some sort of wire wrap setup, but proper wire wrap sockets and protoboards are for some reason unreasonably expensive.
If you have an idea on how to do the mechanical layout and connections of a relay-based computer, drop a note in the comments. [Tim] has a very cool project here, and it would be a shame if he were to give up on it due to a lack of tools.
Video below, and if you’re having a problem with a project, feel free to send it in.
Continue reading “How Do You Build a Relay CPU?”
Your desktop has two, four, or even eight cores, but when’s the last time you’ve seen a multicore homebrew computer? [Jack] did just that, constructing the DUO Mega, a 16 core computer out of a handful of ATMega microcontrollers.
From [Jack]’s description, there are 15 ‘worker’ cores, each with their own 16MHz crystal and connection to an 8-bit data bus. When the machine is turned on, the single ‘manager’ core – also an ATMega328 – polls all the workers and loads a program written in a custom bytecode onto each core. The cores themselves have access to a shared pool of RAM (32k), a bit of Flash, a VGA out port, and an Ethernet controller attached to the the master core.
Since [Jack]’s DUO Mega computer has multiple cores, it excels at multitasking. In the video below, you can see the computer moving between a calculator app, a weird Tetris-like game, and a notepad app. The 16 cores in the DUO Mega also makes difficult calculations a lot faster; he can generate Mandelbrot patterns faster than any 8-bit microcontroller can alone, and also generates prime numbers at a good click.
Continue reading “16 core computer made of ATMegas”
We’ve been following the work of [Andrew Holme] and his homebrew GPS receiver for a while now. A few years ago, [Andrew] built a four-channel GPS receiver from scratch, but apparently that wasn’t enough for him. He expanded his build last year to track up to eight satellites, and this month added a Raspberry Pi for a 12-channel, battery-powered homebrew GPS receiver that has an accuracy of about 3 feet.
The Raspi is attached to an FPGA board that handles the local oscillator, real-time events, and tracks satellites automatically. The Pi handles the difficult but not time-critical math through an SPI interface. Because the Pi is attached to the FPGA through an SPI interface, it can also load up the FPGA with even more custom code, potentially turning this 12-channel receiver into a 16- or 18-channel one.
An LCD display attached to the FPGA board shows the current latitude, longitude, and other miscellaneous data like the number of satellites received. With a large Li-ion battery, the entire system can be powered for about 5 hours; an impressively portable GPS system that rivals the best commercial options out there.
When you’re building one of the best homebrew computers ever created, you’ll also want a great case for it. This was [Simon]’s task when he went about building an enclosure for his Kiwi microcomputer.
We were introduced to the Kiwi last year as the end result of [Simon] designing the ultimate computer from the early to mid-1980s. Inside is a 68008 CPU, similar to the processor found in early Macs and Amigas, two SID chips taken from a Commodore 64, Ethernet, support for IDE hard drives and floppy disks, and a video display processor capable of delivering VGA resolution video at 32-bit color depth. Basically, if this computer existed in 1982, it would either be hideously expensive or extraordinarily popular. Probably both, now that I think about it.
The case for the Kiwi was carefully cut from ABS sheets, glued together with acetone, and painted with auto body paint by a friend. It’s a great piece of work, but the effort may be for naught; [Simon] is reworking the design of his Kiwi computer, and hopefully he’ll be spinning a few extra boards for everyone else that wants a piece of the Kiwi.