# Tilt compensation when reading a digital compass

If you’re familiar with using a compass (the tool that points to magnetic north, not the one that makes circles) the concept of holding the device level makes sense. It must be level for the needle to balance and rotate freely. You just use your eyes to make sure you’re holding the thing right. Now think of a digital compass. They work by measuring the pull of a magnetic field, and have no visual method of showing whether they’re level or not. To ensure accurate readings you might use an accelerometer to compensate for a tilted magnetometer.

The process involves taking measurements from both an accelerometer and a magnetometer, then performing calculations with that data to get a true reading. Luckily the equations have been figured out for us and we don’t need to get too deep into trigonometry. You will, however, need to use sine, cosine, and arctangent in your calculations. These should be available in your programming language of choice. Arduino (used here) makes use of the avr-libc math library to perform the calculations.

# Do you know WHY you’re supposed to use decoupling capacitors?

[Bertho] really enjoyed pawing through the pile of projects submitted to the 7400 logic contest. But one thing kept hitting him with the vast majority of the entries: decoupling capacitors were missing from the circuits. If you’ve worked with microcontrollers or digital logic chips you probably know that you’re supposed to add a small capacitor in between the voltage and ground pins for decoupling purposes. But do you know why? [Bertho] put together a great post that looks that the benefits of using decoupling capacitors in your circuits.

He set up a circuit using a 74HC04 inverter and put it to the test. The image above shows current measurments with the inverter under load. Images on the right show a decoupled circuit and the ones on the left shows a circuit without that capacitor. You can see that the decoupled circuit has much smoother signals when driven high. But it’s not just the smoothness that counts here. [Bertho] goes on to discuss the problem of slow rise-time caused by a dip in current flowing into a chip’s VCC pin. It can take a long time to get above the threshold where a chip would recognize a digital 1. Throwing a capacitor in there adds a little reservoir of current, just waiting to fill in when the power rail dips. This feeds the chip in times of need, keeping those logic transitions nice and snappy.

# Singing house lights up Halloween again this year

[KJ92508] is flooding the neighborhood with light again this year. Everyone knows of that one house in town that really goes all out, but few put on a show anything like this one. The four Jack-o’-lantern faces lead the way with the opening sequence from A Nightmare Before Christmas. Each has at least four different mouth poses, and two eye orientations which are surprisingly well synchronized with the audio. The image above shows mostly orange lighting, but the home is outfitted with addressable RGB LEDs for a full color performance. In fact, it has seen an upgrade this year, increasing the channels by eight-fold to 1144! Don’t miss the performance which we’ve embedded after the break.

We had considered not featuring this, since we looked in on the same home last year. But the number of tips that rolled in made us think that a lot of you missed it, or are just delighted by the multitude of blinky lights. Either way, it’s worth the four minutes out of your day– it will either put a smile on your face, or make you glad not to live across the street from this guy.

# Recovering a corrupted EEE PC BIOS

[Jeremy] had an ASUS EEE PC 1000HE netbook on his hands which had succumbed to a corrupted BIOS. In most situations, people replace a motherboard when the BIOS is damaged beyond repair, but considering the price of motherboards, especially those built for portable devices, he simply refused to go that route.

Instead, he took it apart and did a little investigation to find out what SPI flash chip ASUS used in the netbook. With that information in hand, he put together an SPI flash programmer using a breadboard and a DLP-USB1232H USB to UART module. He couldn’t program the flash chip in-circuit, so he had to desolder it and deadbugged it onto his programmer. Using a few Linux-based flashing tools, he was able to reprogram the chip with a functioning BIOS in short order, saving him from a costly motherboard replacement.

While some motherboard manufacturers have built in secondary BIOS chips to prevent the need for this sort of recovery, it’s nice to know that the process is relatively straightforward, provided you have some basic soldering and Linux skills.

This also isn’t the first time we’ve seen someone recover an EEE PC from the brink – if you’re looking for an Arduino-based alternative, be sure to check this out.

# Wicked use of HTML5 to display sensor data

This project shows you one possible way to use HTML5 to fully integrate sensor data from a microcontroller into our technological lives. Now, when we saw this tip come through our inbox we thought it would be an interesting example to learn from but we weren’t ready for how truly cool the setup is. Take a look at the video after the break and you’ll see that scanning the QR code on the project box will immediately start a 10ms resolution live stream of the accelerometer data. Furthermore, the browser page that the phone loads allows you to send what you’re currently viewing to the main frame of a browser running on a different computer with the touch of a button. In this way you can build a dashboard of streaming sensor data. Talk about the future of home automation. Imagine a QR code on your thermostat that allows you gain access to your home’s heating, air conditioning, humidifier, and water heater performance and controls just by snapping a pic? The sky’s the limit on this one so let us know what you’d use it for by leaving a comment.

In this case an mbed microcontroller is handling the data acquisition and pushing that to a server via a WiFly module using the WebSockets library. This data is pushed in the form of a JSON packet which is distributed by the server as a data stream. Clients can access it via a browser through a page that makes use of JavaScript.

# Millivolt meter Nixie clock

Surprisingly, up until a year ago, [Jimmy] hadn’t seen a Nixie tube. Awful we know, but he has come around to the beauty of glowing numbers in a tube. He recently found an old millivolt meter in a junk pile that used Nixie tubes. The wondrous orange glow beckoned him, so [Jimmy] decided to build a clock.

Just about all of the Nixie clocks we’ve seen (including non-clock builds) rely on building a controller for the Nixie tubes. The controllers range from Nixie Arduino shields to the good ‘ol 74141 IC. [Jimmy] realized he didn’t need to bother with controlling the tubes in an already functional millivolt meter – he only needed to send the right voltage.

For his clock build, [Jimmy] used an Arduino to output a voltage through a bunch of resistor dividers. For example, if the time is 12:30, the output voltage will be 12.30mV. Using this technique, the values for the needed resistors don’t exist, so a little bit of PWM means the Arduino keeps fairly good time.

There’s one added bonus of [Jimmy]’s clock – because the voltage varies around 0.01mV, the finished project acts like a digital version of Lord Vetinari’s clock. It may not be perfect, but at least a nice piece of equipment was saved from the trash.