How The 8085 ALU Is Structured

8085-alu-reverse-engineering

This is a microscopic photograph of an 8085 processor die. [Ken Shirriff] uses the image in his explanation of how the ALU works. It is only capable of five basic operations: ADD, OR, XOR, AND, and SHIFT-RIGHT. [Ken] mentions that the lack of SHIFT-LEFT is made up for by adding the number to itself which has the effect of multiplying a number by two; the same mathematical function performed by a shift operation.

His post details the gate arrangement for each ALU operation. This is clear and easy to follow, and was based on reverse engineering work already done by a team who meticulously decapped and photographed the dies.

Not long ago this explanation would have been voodoo to us. But we worked our way through The Elements of Computing Systems text-book by following the online Nand to Tetris course. It really demystifies the inner working of a chip like the 8085.

Now if you really want to understand this ALU you’ll build it for yourself inside of Minecraft.

[Thanks Ed]

Google Talk Bot Running On Raspberry Pi

google-talk-raspberry-pi

[Michael Mitchell] put together a demonstration of how Google Talk can be used to communicate with scripts. Although the concept isn’t new we haven’t seen very many projects that use the chat interface for issuing commands and receiving data. The one that does come to mind is this home automation project which uses Google Talk because it’s quite a bit faster than SMS or email communications.

Luckily there’s already a Python library called pygtalkrobot which helps with the XMPPPY protocol used by Google Talk. In addition to that package, [Michael] also installs some extras which allow him to access the GPIO pins on the RPi via Python. In the video after the break he demonstrates switching and LED on and off, as well as reading from a slide switch connected to pin 8. Of course it’s a snap to code feedback from the OS itself. As you can see in the image above the RPi is reporting it’s uptime after being issued a command by [Michael]

Continue reading “Google Talk Bot Running On Raspberry Pi”

Veronica VGA Board Finalized

veronica-vga-board-finalized

The latest update in the Veronica 6502 computer project is this finalized VGA board which now has a home in the machine’s backplane.

We’ve been glued to the updates [Quinn Dunki] has been posting about the project for many months now. Getting the GPU working proved to take quite a bit of time, but we learned a ton just by following along. The video output had humble beginnings way back in March. That breadboarded circuit got complicated very quickly and that was before it was even interfaced with the CPU. As you can see from the image above, etching and populating the GPU board really cleans up the build. We’re sure it’s robust enough to move around at this point. We wonder if she’s planning on showing it off at a Maker Faire or another geeky gathering?

It really has become clear how wise [Quinn] was to design a backplane board early on. It plays right into the modular concept. She was even smart enough to include that SIL pin header on the near side of the board which was used heavily while prototyping this video module.

Bluetooth Network Monitor

Bluetooth Network Monitor

[Zak] wanted to keep tabs on his network connection without needing to log into his router. Since his router was a PC running Debian Linux, he rigged up a Bluetooth Network Monitor to display the information.

The monitor is based on a ATMega328P that reads data from a Bluetooth serial connection and displays it on the TFT screen. It uses a low cost Bluetooth module to receive data from a router. A shell script fetches the data and formats it into a string that can be sent over the Bluetooth link.

A USB connection with a desktop computer is used to power the device, but [Zak] also added USB support using V-USB. He plans to use it to get data from the desktop. For example, he could display CPU load and temperature data.

Overall, this is a nice project for fetching data wirelessly and displaying it on your desk. [Zak] has provided the code and Eagle files with his write up for anyone interested in building their own.

Interfacing A GPU With A CPU

interfacing-a-gpu-with-a-cpu

[Quinn Dunki] pulled together many months worth of work by interfacing her GPU with the CPU. This is one of the major points in her Veronica project which aims to build a computer from the ground up.

We’ve seen quite a number of posts from her regarding the AVR-powered GPU. So far the development of that component has been happening separately from the 6502 centered CPU. But putting them together is anything but trivial. The timing issues that were so important to consider when developing the GPU get even hairier when it comes writing to the VRAM from an external component. Her first thought was to share a portion of the external RAM between the CPU and GPU as a way to push rendering commands from one to the other. This proved troublesome both in timing and in the number of pins available on the AVR chip. She ended up using something of a virtual register on the AVR chip that can receive commands from the CPU asynchronously. Timing dictates that these commands be written only during vertical blanking so this virtual register also acts as a status register to let the CPU know when it can send the next command.

Her post is packed with the theory behind the design, timing tests on the oscilloscope, and a rather intimidating schematic. But the most important part is the video showing her success in the end.

Heavy Metal Computer Case Desk

heavy-metal-computer-case-desk

This desk is also a computer case. From this view it may not seem like much, but the build log has hundreds of images which could be called metal fabrication porn. The desk surface is made of wood, but all of the other parts were crafted from stainless steel.

The three components that weren’t fabricated by [Paslis] are the pair of legs and the column supporting the screens. These pieces are actually lifting columns that allow you to adjust desk and screen height at the touch of a button. The build starts off with a sub-surface to house the computer guts. After careful cutting, bending, welding, and polishing this comes out looking like the work surface in a commercial kitchen. After attaching the lifting legs to that assembly a foot for the desk takes shape from square pipe which is then skinned with stainless steel to match the finished look of the sub-surface. After spending countless hours on brackets, trim pieces, grills, and wood accents he sent everything off for painting before the final assembly.

Certainly this is in a different realm than the case desk from yesterday. But a mere mortal can pull that off while this is surely the work of an experienced tradesman.

[Thanks Andreas]

Hacked Together NAS In A Box

hacked-together-nas-in-a-box

[David] is serving up files on his home network thanks to this Frankenstein’s monster of a Network Attached Storage device. It looks like he raided all the good bits from his parts bin to bring it all together.

The case is a tin box which may have been for a card/board game or some holiday treats. The hardware started with an NS-K330 server which he picked up from Deal Extreme. It has a NIC and a couple of USB ports but it tends to run really hot so he added a heat sinks to the board’s main chips. The hard drives are both 2.5″ form factor from old laptops. He uses some 2.5″ to 3.5″ mounting adapters to attach them to the tin box. A pair of USB to IDE adapters shed their cases and were solder directly to the wires which make a connection with the server’s USB ports.

There is a Linux distro specifically for this hardware but [David] wasn’t impressed with it. He ended up compiling OpenWRT for it and is satisfied with the functionality that provides.