Working With I2C Port Expanders

There are times when you don’t need much processing power for your project but you do need a lot of I/O pins. It often doesn’t make economic sense to choose a larger microcontroller just to get extra pins so the answer is to use a port expander chip. [Raendra] posted a guide for using one of these chips, it’s a Microchip MCP23008 chip that uses the I2C protocol for communications.

You are probably already familiar with using shift registers like the 595 series for port expansion. There can be benefits to using an I2C device instead. One of them comes when using multiple port expander chips. With cascading shift registers you must always shift in the data for the entire chain of chips. But I2C devices are individually addressable, so you only need to push data over the I2C bus for the chips that need to be changed, the others will remain unaffected. It is especially easy to use these if you already have another I2C device in your project design as the addition only requires the connection of the SDA and SCL lines. Keep them in mind for future undertakings.

DIY Digital Bench Power Supply

[Guido Socher] built himself a great little bench power supply that’s able to put out 30 Volts at 2 Amps.

Instead of taking the easy way out by putting a few taps on an ATX power supply, this project was built around a generic 24 Volt laptop power brick. An ATmega8 generates a PWM signal that is sent though a low-pass filter, allowing everything to be very precisely controlled. This DC signal is then sent through a BD245 power transistor to bring everything up to the desired output. [Guido Socher] included a USB port for computer control of everything, and the final project is something we’d be happy to have on our bench.

We’ve seen a few computer power supplies converted into a bench power source, but we’re impressed with [Guido Socher]’s build log. It’s not often we see a hack that goes over the theory of operation, and the end product is very nice (and functional) too.

Washing Machine Mechanical Timer Replaced With Microcontroller

After the electromechanical timer on [Paul Canello’s] washing machine broke for the third time he decided he needed to stop repairing it and find a more permanent fix. He decided to build his own microcontroller-based system for washing his clothes (translated). Caution: The image links on [Paul’s] page seem to be broken and will unleash a never-ending storm of empty pop-up windows if you click on them. We’ve embedded all of the images after the break to save you some hassle.

The controller on a washing machine is nothing more than a mechanical alarm clock. It starts the cycle, then moves through various modes based on the passage of time. [Paul] started his hack by observing how long the delay between cycles was meant to be, and recording which parts of the machine were switched on and off at each stage.

It turns out that when the mechanical knob is turned, it reroutes how water flows through the detergent chamber. Since that knob won’t be in the new system [Paul] came up with a way for the microcontroller to handle this by using a servo motor. The rest of the control involves relays to control the motor, and solenoid valves for the water. There are also pressure switches that give feedback for the level of the water in the machine. A PIC 16F872 serves as the new controller, with the help of a 7 segment display, a buzzer, and a pair of buttons as the user interface.

This is an older project, but after reading about the Arduino controlled dishwasher [Ramiro] sent us a link. Thanks! Continue reading “Washing Machine Mechanical Timer Replaced With Microcontroller”

Precision Frequency Measurement Library For 8-bit Microcontrollers

[Paul] has been working on porting over Arduino libraries for use with the Teensy microcontroller platform. This tends to be pretty simple since they both use the same Atmel chip architecture. But once in a while he finds the Arduino libraries are not what they’re cracked up to be. When looking to port over a frequency measurement library he ended up writing his own that works better and is much more portable.

He had two big beefs with the Arduino Frequency Counter Library. The first is that it required the compensation factor the be calibrated using an accurate frequency counter. That’s a chick-and-egg problem since many people who build a frequency counter with an Arduino are doing so because they don’t already have a standalone tool. The second problem is that the Arduino library was hardcoded for ATmega168 or ATmega328 chips.

This new library fixes both issues with just one trade-off. Your hardware setup must be using a crystal oscillator. You can see above in the image above that the frequency measurement is quite accurate with this method. The package also uses a thin abstraction layer which will make it easy to port to any 8-bit microcontroller which is programmed in C.

VGA Out On A Maple Board

The team at Leaf Labs just released a new library to demonstrate the VGA capabilities of their Maple dev board. Although it’s only a 16 by 18 pixel image, it shows a lot of development over past video implementations on the Maple.

The Maple is a great little Ardunio-compatible board with a strangely familiar IDE. We’ve covered the Maple before. Instead of the somewhat limited AVR, the Maple uses an ARM running at 72MHz, making applications requiring some horsepower or strict timing a lot easier.

We’ve seen a few projects use the increased power, like a guitar effects shield. It’s possible the Maple could be made into a game console that would blow the Uzebox out of the water, but we’re wondering what hackaday readers would use this dev board for.

Watch the video after the jump to see how far the Maple’s VGA capability has come after only a few months, or check out Leaf Lab’s Maple libraries.

Continue reading “VGA Out On A Maple Board”

ChipKIT Uno32: First Impressions And Benchmarks

Following Maker Faire, we’ve had a few days to poke around with Digilent’s 32-bit Arduino-compatible chipKIT boards and compiler. We have some initial performance figures to report, along with impressions of the hardware and software.

Continue reading “ChipKIT Uno32: First Impressions And Benchmarks”

Color Object Tracking With An 8-bit Microcontroller

[Craig] sent in a link to this project which manages to implement color tracking on an 8-bit microcontroller at 60 frames per second. That’s some pretty incredible performance, but we’re also not talking about using a hobby-grade microcontroller. The C8051F360 is an ARM microcontroller with 100 MIPS throughput and with a system clock that can operate at up to 100 MHz. You also must consider that the chip will be able to do nothing else while in the tracking mode. Even with those gotchase, it’s still pretty incredible.

The setup uses an Omnivision OV7720 camera module. It has its own 24 MHz clock, which is used as the clock signal on the microcontroller’s PLL to generate a 96 MHz system clock. The code, which is written in a combination of C and assembly language, pushes captured tracking data to a PC via a serial port connection. After the break you can watch a bare-bones demo video that illustrates what the camera sees and what data shows up on the PC.

If you had the system in hand, what would you use it for? Perhaps it’s a perfect addition to that paintball sentry gun at which you’ve been hacking away?

Continue reading “Color Object Tracking With An 8-bit Microcontroller”