Minicomputers on Microcontrollers

PDP

Developed in the very late 60s and through the 70s, the PDP-11 series of minicomputers was quite possibly the single most important computer ever created. The first widely distributed versions of Unix and C were developed on the PDP-11, and it’s hardware influence can be found in everything from the Motorola 68000 to the MSP430.

When [Dave Cheney] saw the recent 8086 simulator written in 4kB of C code, he realized simulating entire computer systems doesn’t actually require a whole lot of resources outside a big chunk of memory. Armed with an Arduino Mega clone, he set out on one of the coolest projects we’ve seen in a while: simulating a PDP-11 on an AVR.

[Dave] used an ATMega2560-powered Arduino Mega clone with an Ethernet module for the hardware of this build. Attached to it is a shield filled up with a pair of RAM chips that expand relatively limited amount of RAM on the ‘Mega.

So far, [Dave] has his simulated system booting Unix V6 off an SD card. For PDP-11 storage, he’s also simulating an RK05 disk drive, a massive 14 inch platter containing 2.5 Megabytes of data. Compared to the original PDP-11/40, [Dave] estimates his machine is about 10 times slower. Still, an original 11/40 system fills multiple server racks, and the most common installations consume several kilowatts of power. The Arduino Mega can fit in a pocket and can be powered over USB.

Future developments for this system include improving the accuracy of the simulator, running more advanced operating systems and the DEC diagnostic programs, and possibly speeding up the simulation. We’d suggest adding some switches and blinkenlights on an additional shield, but that’s just us.

All the code can be found on [Dave]‘s git, with a description of his SPI RAM shield coming shortly.

USB adapter for an old VT100 keyboard

VT100

Ah, the VT100, the first dumb terminal that was controlled with a microprocessor. This ancient beast from the late 70s is quite unlike the terminals you’d find from even five years after its vintage – the keyboard connects via a TRS quarter-inch jack – the electronic and code design of this terminal is a bit weird. [Seth] was up to the challenge of making this mechanical keyboard work as a standard USB device, so he created his own USB adapter.

On the little quarter-inch to USB adapter, [Seth] included an HD 6402 UART to talk to the keyboard, along with a Teensy dev board and a few bits of circuits stolen from DEC engineers. The protocol between the keyboard and terminal is a little weird – first the terminal sets a bit in a status word, then the keyboard scans all the key rows and columns in sequence before telling the terminal it’s done. Yes, this gives the VT100 full n-key rollover, but it’s just weird compared to even an IBM Model M keyboard that’s just a few years younger.

[Seth] finally completed his circuit and wired it up on a perfboard. Everything works just as it should, although a little key remapping was done to keep this keyboard adapter useful for Mac and Windows computers. It’s a wonderful bit of kit, and any insight we can get into the old DEC engineers is a wonderful read in any event.

Vidias below.

[Read more...]

Digital IR Theremin

Digital IR Theremin

This Digital IR Theremin creates tones based on the distance of an object from its IR sensor. There’s no microcontroller here, since the project is part of an Introduction to Digital Electronics course. Instead, it uses a handful of comparators, transistors, AND gates, and a 555 timer to make noise.

The comparators are connected to create window comparators. This configuration will output a digital 1 if the input is between two reference voltages, and 0 if it is not. Using this, the analog output of the IR range sensor can be converted to digital values.

The 555 timer takes care of creating the output waveform. A specific resistor is switched in to the timer’s RC circuit depending on which window comparator is active. This allows for a different tone to be played depending on the distance from the IR sensor.

The result is a square wave, which has a frequency dependant on how close an object is to the IR sensor. By selecting the right resistances for each distance, the theremin can be tuned to play a specific scale.

This is a neat project for people looking to learn digital electronics, and the write up does a great job of explaining the theory. After the break, check out a video of the theremin generating some tones.

[Read more...]

Increasing a digital servo motor’s range of motion

Unhappy with the 120 degree range of movement for this digital servo motor [Malte] set out to expand its flexibility. He settled upon a hack that alters the feedback potentiometer in order to give the motor a wider range (translated).

The test video (embedded after the break) shows tick marks for before and after his alterations. You can see that the wider tick marks get much closer to the 180 degree range he’s interested in. The control method is no different than it was before, the internal circuitry is still listening for a control signal with pulses between 1 and 2ms to establish the position of the servo horn. [Malte] added resistors on the two outside legs of the feedback potentiometer. This is what that control circuit measures in order to judge the position of the servo horn. He’s using 1.6k Ohm resistors in this demonstration. But he didn’t just drop them in willy-nilly. His writeup discusses the calculations he used to determine the target voltage for the motor position he wants.

[Read more...]

Intel’s new way of creating randomness from digital orderliness

Random number generation is a frequent topic of discussion in projects that involve encryption and security. Intel has just announced a new feature coming to many of their processors that affect random number generation.

The random number generator, which they call Bull Mountain, marks a departure from Intel’s traditional method of generating random number seeds from analog hardware. Bull Mountain relies on all-digital hardware, pitting two inverters against each other and letting thermal noise tip the hand in one direction or the other. The system is monitored at several steps along the way, tuning the hardware to ensure that the random digits are not falling more frequently in one direction or the other. Pairs of 256-bit sequences are then run through a mathematical process to further offset the chance of predictability, before they are then used as a pseudorandom number seed. Why go though all of this? Transitioning to an all-digital process makes it easier and cheaper to reduce the size of microchips.

A new instruction has been added to access this hardware module: RdRand. If it works as promised, this should remove the need for elaborate external hardware as a random number source.

[via Reddit]

chipKIT Sketch: Mini Polyphonic Sampling Synth

In our hands-on review of the Digilent chipKIT Uno32, we posed the question of what the lasting appeal might be for a 32-bit Arduino work-alike. We felt it needed some novel applications exploiting its special features…not just the same old Arduino sketches with MOAR BITS. After the fractal demo, we’ve hit upon something unique and fun…

[Read more...]

Real-time digital puppetry

digital_puppet_show

If it sometimes seems that there is only a finite amount of things you can do with your kids, have you ever considered making movies? We don’t mean taking home videos – we’re talking about making actual movies where your kids can orchestrate the action and be the indirect stars of the show.

Maker [Friedrich Kirchner] has been working on an application called MovieSandbox, which is an open-source realtime animation tool. A couple of years in the making, the project is cross-platform compatible on both Windows and Apple computers (with Linux in the works), making it accessible to just about everyone.

His most recent example of the software’s power is a simple digital puppet show, which is sure to please young and old alike. Using sock puppets fitted with special flex sensors, he is able to control his on-screen cartoon characters by simply moving his puppets’ “mouths”. An Arduino is used to pass the sensor data to his software, while also allowing him to dynamically switch camera angles with a series of buttons.

Obviously something like this requires a bit of configuration in advance, but given a bit of time we imagine it would be pretty easy to set up a digital puppet stage that will keep your kids happily occupied for hours on end.

Continue reading to see a quick video of his sock puppet theater in action.

[via Make]

[Read more...]

Follow

Get every new post delivered to your Inbox.

Join 96,369 other followers