Building A One-instruction Computer

[Hasith] sent in this project where he goes through the process of designing a one instruction CPU in Verilog. It may not win a contest for the coolest build on Hack A  Day, but we really do appreciate the “applied nerd”  aspect of this build.

With only one instruction, an OISC is a lot simpler than the mess we have to deal with today. There are a few instructions that by themselves are Turing-complete (like Subtract and branch if negative, and Move). Designing an OISC with one of these instructions means it can also emulate a Turing machine.

Continue reading “Building A One-instruction Computer”

A Study In AVR Power Saving Techniques

amtel_avr

[Scott] found the iCufflinks from Adafruit Industries pretty interesting, but he thought that the stated run time of 24 hours was a bit short. He figured he could improve the product’s power consumption at least a little bit, to improve the overall battery life.

From their schematics, he placed an order for parts and built two identical iCufflink mock-ups side by side – one running their code and one running his. He took baseline current draw measurements, then got busy slimming down the cufflinks’ software. It had been 20 years since he touched assembly, and he has never written it for an AVR, but judging by his work he’s not rusty in the least.

He slowed the ATtiny’s clock down and tweaked a few other settings for a savings of 53μA, but the real improvements came via a fairly simple fix. The original code called for the processor to institute a counting loop to sleep, which he found to be very wasteful. Instead, he chose to put the processor in an idle state, using the chip’s watchdog timer to wake it when it was time to pulse the LED. The power savings from this change alone was a whopping 261μA!

When he was said and done, the changes save about 315μA of current draw, and should allow the cufflinks to run for up to 38 hours without swapping batteries. In [Scott’s] opinion, a nearly 60% improvement in battery life is pretty good for a day’s work, and we’re inclined to agree.

Zzstructure Emulator

[John Ohno] has been working on a zzstructure operating system written C since January. [John] realizes not many people know what a zzstructure is, so he posted a demo of his project. [John] has also put all the code online.

A zzstructure is both a hypertext and operating system unlike anything we have today. You could say that when it was first conceived in 1960 it was 100 years ahead of its time. [John]’s implementation of zzstructures operates on a 256-dimension grid and functions a lot like a multidimensional forum thread. Although that’s a lot to wrap your head around, it can probably best be explained by [Ted Nelson], the creator of zzstructures.

Continue reading “Zzstructure Emulator”

Voice Recognition System Controls Everything, Hopefully Won’t Kill Us.

[Aaron Bitler] and [Bud Townsend] have been working a natural user system that is, in their own words, “what android@home should have been.”

The video they posted is pretty impressive. The automation system responds to voice and can control appliances, ‘throw a party’, and provide a user with their location. This is just the foundation of a system that can be built upon – developers  can easily integrate a microphone and speaker into a device so it can connect to the system’s server. Apps, too, are pretty extensible – they’re registered on the server with meta tags that provide a wealth of data to be manipulated. It’s a very, very cool project that we really want to try out.

Continue reading “Voice Recognition System Controls Everything, Hopefully Won’t Kill Us.”

Official Kinect SDK Released

Microsoft just released the beta of the Kinect for Windows SDK. Although, “Microsoft does not condone the modification of its products” it appears Microsoft have changed their tune and released APIs for C++, C# and Visual Basic seven months after the Kinect was officially hacked.

We’ve seen libraries being developed since the launch of Kinect, culminating in the OpenKinect project. The Microsoft release covers the same ground as the OpenKinect project, and will hopefully improve on attempts to get audio out of the Kinect.

We’ve seen Kinect hacks run the gamut from telepresence, to robotics, to 3D modeling, so the Kinect seems like a great tool in the builder’s arsenal. The Kinect is a wonderful tool, and even though most of the functionality has already been replicated by the open-source community, it’s nice to know there’s official support for all the great projects we’ve seen.

How Canonical Automates Linux Package Compilation

pandaboard

What do you do when it’s time to port the most popular Linux distribution to a completely different architecture? Canonical employee [David Mandalla] works on their ARM development team and recently shared the answer to that question with his fellow Dallas Makerspace members.

Canonical needed a way to compile about 20,000+ packages for the ARM platform, however they did not want to cross-compile, which is quite time consuming. Instead, they opted to build a native solution that could handle the load while ensuring that all packages were compiled securely. To tackle this immense task, [David] and his team constructed a 4U server that runs 20 fully-independent ARM development platforms simultaneously.

The server is composed of 21 PandaBoards, small OMAP development boards featuring a dual-core ARM cortex processor with just about all the connectivity options you could possibly ask for. One board operates as the server head, keeping track of the other 20 modules. When someone requests server time to build a package, the main board checks for unused server, triggering a relay to reboot it before the server is automatically reimaged. Once the pristine, secure environment is ready to go, it’s handed off to the customer who requested it.

If you’re interested in learning more about the build process, [David] has put together a blog with additional details.

[Thanks Leland]

FPGA Mandelbrot Fractal Engine

fpga_mandelbrot

[Mike Field] has always been interested in the Mandelbrot Set since he first read about it back in the ‘80s. Having coded it on a Commodore VIC20 back int he day, he always returned to the Mandelbrot set when he wanted to try out some new programming technology.

He wanted to delve deeper into the world of FPGAs, so [Mike] figured the best way to do so would be to use one to program a Mandelbrot fractal engine. He started out with a goal of creating a 640×480 Mandelbrot display, but over time, he found that he could push his Nexus 2 FPGA to 800×600. He didn’t stop there, and after tweaking a few things, he was amazed to find that he could push a 1024×768 display from the small board.

He kept a pretty detailed log as he went along, should you be interested in trying your hand at the process as well. Though there is no video of the FPGA in action, there are a few cool pictures showing off his handiwork.