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!]

UTF-8 – “The Most Elegant Hack”

While it may not look like much, the image above is a piece of the original email where [Ken Thompson] described what would become the implementation of UTF-8. At the dawn of the computer age in America, when we were still using teletype machines, encoding the English language was all we worried about. Programmers standardized on the ASCII character set, but there was no room for all of the characters used in other languages. To enable real-time worldwide communication, we needed something better. There were many proposals, but the one submitted by [Ken Thompson] and [Rob ‘Commander’ Pike] was the one accepted, quite possibly because of what a beautiful hack it is.

[Tom Scott] did an excellent job of describing the UTF-8. Why he chose to explain it in the middle of a busy cafe is beyond us, but his enthusiasm was definitely up to the task. In the video (which is embedded after the break) he quickly shows the simplicity and genius of ASCII. He then explains the challenge of supporting so many character sets, and why UTF-8 made so much sense.

We considered making this a Retrotechtacular, but the consensus is that understanding how UTF-8 came about is useful for modern hackers and coders. If you’re interested in learning more, there are tons of links in this Reddit post, including a link to the original email.

Continue reading “UTF-8 – “The Most Elegant Hack””

Classic PDA Finds Second Life As A Network Touch Screen Display

pocketviewer

[Tomas Janco] had an old Casio Pocket Viewer PDA collecting dust. Rather than throw it away, He decided to re-purpose it as a display for time, weather, and the current status of his garage door.

The Casio Pocket Viewer was a competitor to the Palm Pilot. The two systems even shared the same LCD resolution – 160×160 monochrome. [Tomas’] particular model is an S660, sporting 6 megabytes of ram and an NEC V30MZ (Intel 8086 compatible) processor. Similar to Palm, Casio made an SDK freely available.

The SDK is still available from Casio, and [Tomas] was able to get it running on his PC. Development wasn’t without pitfalls though. The Pocket Viewer SDK was last updated in April of 2001. Software is written in C, but the then new C99 standard is not supported. The SDK does include a simulator and debugger, but it too is not as polished as todays systems – every simulator startup begins with setting the clock and calibrating the touch screen. Keep reading after the jump to learn about the rest of the hurdles he overcame to pull this one off.

Continue reading “Classic PDA Finds Second Life As A Network Touch Screen Display”