ASAP 3 – The Almost Simple As Possible Computer

ASAP-3 12 - LED Display

[Pong] has joined an elite club of people who have designed and built their own computer – including a CPU created from discrete 7400 series logic. His computer is the  Almost Simple As Possible Computer 3 (ASAP-3). ASAP-3 is not a completely new design. The architecture is based upon the SAP series of computers from Albert Malvino’s book, Digital Computer Electronics. [Pong] looked at quite a few of the “modern retro” computers such as Magic-1Big Mess o’ Wires 1, and the Duo. These computers were beyond his skill levels back then, so he began to build his own system. His primary design goal was to be able to run a 4 function calculator program.

One thing that can’t be stressed enough is the fact that [Pong] made his design work much easier by using lots of simulation. His tool of choice was Proteus Design Suite. While simulation can’t solve every problem, it can often help in verifying that a given design is sound. The ASAP-3’s instruction set is microcode, based upon the 8085 series instruction set. The microcode itself is stored on Flash ROMS. Using microcode makes ASAP-3 very flexible. Don’t have a machine instruction you need? No problem – just write one up. When all was said and done, [Pong] had over 100 instructions spread over 3 Flash ROM chips.

The hardware was only half the battle – [Pong] found writing the software just as challenging. He wrote all the software by hand in his own machine code. This is where the simulation mentioned above really saved him some time. Even with simulation he still ran into some problems. The ASAP-1 is limited to a clock speed of around 500kHz. Above that, glitches from the ROM chips start triggering the asynchronous inputs in some of the registers. [Pong] doesn’t have a logic analyzer on hand, so he wasn’t able to track this one down further. He also found a (update simulation only) issue with the carry bit on the 74LS181 bit slice ALU. In certain circumstances the carry bit would not propagate correctly. [Pong] corrected this by using a ROM as a look up table replacement for certain ‘181 functions. Even with these limitations, this is still a great hack!

Continue reading “ASAP 3 – The Almost Simple As Possible Computer”

Turn A PC On With A Knock And An ATTiny

knockAttiny

Pressing the power button on your computer usually isn’t too much trouble, unless your computer is stored away somewhere hard to reach. [Joonas] has been hard at work on a solution that would also impress his friends, building a knock sensor to turn on his PC.

For around $10 in parts he put together an ATTiny45 that emulates a PS/2 device, which takes advantage of his computer’s ability to boot upon receiving PS/2 input. The build uses a Piezo buzzer and a 1M Ohm resistor as a knock sensor exactly as the official Arduino tutorial demonstrates, and one of those PS/2-to-USB adapters that are most likely lurking in the back corner of every drawer in your office.

[Joonas] used AVRweb to disable the 8X clock divider so there’d be enough clock cycles for PS/2 communication, then loaded some test code to make sure the vibrations were being detected correctly. You can check out his Github for the final code here, and stick around after the break for a quick video demo. Then check out a similar hack with [Mathieu’s] home automation knock sensor.

Continue reading “Turn A PC On With A Knock And An ATTiny”

VT100 Gets BeagleBoned

vt100

How do you make a great terminal even better?  The answer is simple: add a BeagleBone Black to it! [Brendan] got his hands on one of the staples of classic computing, the DEC VT100 terminal.  The VT100 was produced from 1978 to 1983. The terminal was so widely used that it became the standard for other terminals to emulate. Open any terminal program today and chances are you’ll find a setting for VT100 emulation.

[Brendan] originally hooked his terminal up to a laptop running Linux. The terminal, cables, and the laptop itself became quite a bit to manage on a small desk. To combat this he decided to add a BeagleBone Black inside the terminal case. It turns out the VT100 actually lends itself to this with its Standard Terminal Port (STP) connector. The STP was designed to add a “paddle board” in-line with the serial stream of the terminal. DEC and third party manufacturers used this port to add everything from disk drives to entire CPM computers to the VT100.

[Brendan] began by designing a board to interface between the VT100 and the BeagleBone. The board level shifts serial lines from the BeagleBone to the VT100. The STP also allows the terminal to provide power to the BeagleBone Black.  He did notice some power glitches as the supply of the VT100 came up. This was solved with a standard TI TL77xx voltage supervisor chip. The hardest part of the entire design was the card edge connector for the STP. [Brendan] nailed the dimensions on the first try.  In the end [Brendan] was rewarded with a very clean installation that didn’t require any modification to a classic piece of hardware.

We should note that most PCB houses use Electroless Nickel Immersion Gold (ENIG) as their standard coating. This will work for a card edge connector that will be plugged in and removed a few times.  Cards that will be inserted and removed often (such as classic console cartridges) will quickly scrape the ENIG coating off. Electroplated Gold over Nickel is the classically accepted material for card edge connectors, however the process most likely is not going to come cheap in hobbyist quantities.

More Drive Bays, Cooling, And Power For A DIY Raid Box

We’ve actually been on the look-out for a Network Attached Storage solution for home use. We want an embedded option just for power saving, but have you seen what a commercially available embedded RAID systems costs? It might be better to find an energy friendly PSU and use it in a PC case RAID conversion like this one that [Samimy] pulled off. He started with an old computer case and modded it to house more hard drives.

The image above shows his mounting scheme. Most of us have defunct optical drives in the junk bin. Many times they end up as a way to play with CNC, but in this case [Samimy] got rid of the guts and used a couple of angle brackets to mount a hard disk inside of the enclosure. Now that he can bolt more drives to the case he needed to power them, as the PSU didn’t have enough SATA power connectors. He clipped off a daisy-chain of connectors from a broken supply and spliced it into this one. Finally he cut a hole in the top of the case to add a bit more cooling to the system.

He’s using Windows 7 to power a RAID0 and RAID1 array using four drives. To help increase performance of the system he also used USB thumb drives as cache. This is something we’re not familiar with and we’re glad he provided a link to ReadyBoost, the software which makes it possible.

Continue reading “More Drive Bays, Cooling, And Power For A DIY Raid Box”

Build An FPGA Microbee In Three (Not So) Easy Steps

Microbee,_Melbourne_Museum

[Brad Robinson] was feeling a bit nostalgic for his Microbee, so he rebuilt it in an FPGA. Not once, but three times. For the uninitiated, the Applied Technology Microbee was a Z80 based computer 1980’s. Designed in Australia, the Microbee did not see much popularity outside its home continent. Even so, the introduction to home computers many Australians was on a Microbee. [Brad] actually wrote several programs for the Microbee, including some games sold by Applied Technology themselves.

Fast forward to 2012, [Brad] is learning FPGAs, and wants to build a Microbee in VHDL. The FPGAbee was born. The first iteration of the FPGAbee began with the CPU, which came from the T80 open source VHDL Z80 core. Around this core [Brad] added the video controller, keyboard, and sound. When he started adding disk functionality, [Brad] ran into some problems. He wanted to use a FAT formatted SD card for cassette and hard disk emulation.

The relative complexities of the FAT format meant he would have to use some custom software to make this work. [Brad] decided to run this software on a second Z80 core. Both cores would need access to memory, and this is where [Brad] learned what he calls “a hard lesson in cross domain clocks” on FPGAs. Multiple clock nets can cause major propagation delay issues. [Brad] was able to work through the problems, but it caused him to step back and re-evaluate the entire design. This was the start of FPGABee2.

Continue reading “Build An FPGA Microbee In Three (Not So) Easy Steps”

Create A Full Adder Using The C Preprocessor

Full_Adder

[Phillip] wanted to play with the C preprocessor. He decided to do that by creating a 4 bit full adder. We know this is pretty useless in everyday life, but it was a great learning experience. The beauty of this adder is right at the start. [Phillip] defines truth tables for XOR and AND. He’s able to then create strings that reference these truth tables.
For example: the first line of [Phillip’s] AND table is #define AND_00 0. If the preprocessor concatenates strings that equal “AND_00” they will then be converted to 0. This is the groundwork for the half adder .

The next step is the operational logic, which of course falls upon macros:


/* Full adder macros */
/* Out = (A ^ B) ^ cin */
#define FULL_ADD_OUT( a, b, cin ) \
 XOR( XOR( a, b ), cin )

/* Carry_out = (A & B) ^ (Carry_in & (A ^ B)) */
/* The standard adder uses OR for the last 'gate' - this
 can safely be changed  to XOR, which has been done here
 to avoid defining an OR operator */
#define FULL_ADD_CARRY( a, b, cin ) \
 XOR( AND( XOR( a, b ), cin ), AND( a, b ) )

Continue reading “Create A Full Adder Using The C Preprocessor”

Steam Controller: Open And Hackable?

SteamController

The folks over at Valve Corporation have been busy. Just this week they have made three announcements regarding the future of their company; SteamOS, a linux-based operating system, Steam Machines (for running SteamOS), and the one we’re most interested in, the Steam Controller, an open controller. Not to worry though, the controller is not exclusive to the Steam Machines!

This is why we’re intrigued:

The Steam Controller was designed from the ground up to be hackable … We plan to make tools available that will enable users to participate in all aspects of the experience, from industrial design to electrical engineering.

We’re curious to see what that exactly means, but it definitely sounds promising! We know that Valve already takes in tons of customer feedback through their Steam Community and Workshop contributors, but how open is this controller really going to be? To read more about it as the information unfolds, check out the topics in the Steam Universe forum.

If you’re interested in joining the hardware beta, head on over here, but space is very limited.

[Thanks Adam!]