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.

minibloq

Drag And Drop Programming Gets Kids Started Early

While programming an Arduino is a piece of cake for EEs who have been around the block a few times, there are some groups who would still find it difficult to get started with the IDE. It is touted for its ease of use, but there is a steep learning curve if say, you are 5 or 6 years old. [Julián da Silva] has been hard at work for a while now, to make the Arduino more accessible than ever.

Earlier today, we posted a story about moldable putty which can be used by children to build rudimentary circuits, enabling them to enter the fun world of hobby electronics at a young age. [Julián’s] project “Minibloq” aims to do the same thing with the Arduino. A work in progress, Minibloq uses a graphical interface to “build” Arduino code a block at a time. The code components are dragged and dropped into place on one side of the screen, while the source code is generated on the other half. This helps gently introduce those people new to the Arduino how to write actual code, a little bit at a time.

[Julián] is working hard to ensure that his application works well on OLPC and other classroom-oriented computers to ensure it can reach as wide an audience as possible. We think this would be a great introduction to the world of micro controllers for children as well as those who have never tinkered with electronics at any point in their lives.

Keep reading to see a quick demo of the software in action.

Continue reading “Drag And Drop Programming Gets Kids Started Early”