posted Jun 7th 2011 7:08am by
Mike Szczys
filed under:
Microcontrollers

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.
posted May 24th 2011 2:22pm by
Mike Nathan
filed under:
arduino hacks

[Wayne] wrote in to share an item he just finished working on, an I2C GPS shield for the Arduino. While other GPS solutions have existed for quite some time, his caught our eye due to its feature list.
The shield removes a good bit of the hassle associated with parsing raw NMEA data from traditional GPS addons. While you have the option to communicate with the GPS module over serial in order to obtain the raw data, the use of the I2C interface makes getting the most commonly used GPS data a breeze. The GPS module itself can be set to update at anywhere from 1 to 10 Hz, and [Wayne] says that the I2C bus blows away the oft-used 9600 baud serial interface. While I2C is primarily used for receiving data, it can also be utilized to configure the GPS via its control registers, allowing for on the fly settings tweaks.
While he does sell the units pre-assembled at a competitive price, [Wayne] also provides a full schematic, making this an easy afternoon project once you have sourced the proper components.
posted May 21st 2011 7:47am by
Caleb Kraft
filed under:
arduino hacks,
tool hacks

[Johngineer] found himself in need of an I2C sniffer, but didn’t have one available. Necessity is the mother of invention, so he put together this I2C sniffer sketch for Arduino. The arduino will record what is going on for a set time interval, then dump the data via serial as a .csv. You then have to plot it to see what is going on. [Johngineer] recommends Livegraph, since it is portable and easy. As you can see in the code, the time interval is adjustable, but you have the physical limitations of the RAM on the board to consider. This seems like a pretty handy piece of code stored around, effectively giving you a passable I2C sniffer in a pinch.
posted May 11th 2011 8:06am by
Kevin Dady
filed under:
how-to

Embedded Labs has come out with a very detailed I2C 101 tutorial, that you should check out if you have any questions on the system. I2C is a short distance serial interface that only requires 2 bus lines. Keep in mind that as wires go down complexity goes up. While there are more than a few I2C devices out there in the wild, and the 2 wire system does make wiring a breeze sometimes, the information required to make use of it often seems confusing to someone who is just starting with it.
The tutorial covers basic theory, stop / start conditions, addressing, data transfer, and acknowledgment plus illustrations. A couple of specific examples are given in the form of a 24LC512 serial eeprom, and a DS1631 digital thermometer complete with code.
posted Apr 27th 2011 8:15am by
Jesse Congdon
filed under:
arduino hacks,
Featured,
how-to

A little while back I attended the largest east coast gathering of folks from the ever popular social news site, Reddit.com. Those of you familiar with Reddit already know that it is all about link aggregation. Users post links to interesting websites and material, and can then vote up or vote down content based on interest or relevance. Through the magical site algorithms original and interesting content is, as implied, aggregated up to the front page. The whimsical nature of this big DC event lead many people to furnish signs of all types based on the culture of the site, internet memes, etc… The signs that really caught my attention were based primarily on the stylistic site layout, blowing up mail icons and other Reddit specific graphics.
The concept of using site graphics gave me the idea of being able to personally vote up or down other peoples’ signs. It was far too easy to just make a cardboard arrow, and I don’t have a color printer. I happened to have a shelved coffee table project involving orange and blue LEDs. Same colors as the arrows! Sweet. To make this project work I would have to work entirely from my project pile, there simply was no time to order anything from the internet. I managed to crank out a functional up/down voting sign in 3 days leading up to the gathering (and the morning of), here is what I did:
Read the rest of this entry »
posted Mar 12th 2011 8:00am by
Mike Szczys
filed under:
home entertainment hacks

[Ed Zarick] continues work on his NBA Hangtime pinball machine with the completion of the scoreboard and backglass. You should remember this project as we already covered the layer audio he developed for the system. Now he’s proving to be a protoboard master, using point-to-point techniques to build a pair of two and a half digit LED displays for team scores, as well as a shot clock timer and other status indicators.
The lighting board that controls it all is commanded via the i2c protocol, just like the three audio modules. It uses shift registers along with MOSFETs and [Ed] has taken the time to add pin headers and sockets for board interconnects. As is true with the audio system, one Arduino Mega acts as the master on the i2c bus and you’ll notice in the video after the break that the display works in perfect harmony with the sound effects.
We can’t wait to see what he comes up with for the play field!
Read the rest of this entry »
posted Feb 2nd 2011 3:30pm by
Mike Szczys
filed under:
Microcontrollers

[JB's] driving a Nokia 6100 LCD using an MSP430 with input from a Wii Nunchuck. He’s using the G2211 microprocessor that came with the Launchpad, and developing his code with MSP-GCC. As you can see in the video after the break, this works but there’s some room for improvement. That’s being said, he is bumping up against the code memory limit, with just around 500 bytes left to work with. The LCD screen is SPI and currently it’s hogging the pins that are used for the hardware i2c. Since he needs an i2c bus to talk to the nunchuck he had to go with software i2c which explains part of his program memory troubles.
We’re in no way experts on this, but it seems like he could save space (and improve the input responsiveness) by rewriting his LCD drivers in order to remap the pins. Then again, it might just be better to move up to a larger MSP430. If you’ve got some advice, make sure to share it by leaving a comment.
Read the rest of this entry »
posted Jan 28th 2011 1:00pm by
James Munns
filed under:
parts

When it comes to using servos in projects, there is a definite distinction between the cheap ones and the expensive high power and precision models. The OpenServo project gives you a couple options for enhancing your servo experience. By replacing the control board with a new one based on a familiar microcontroller, a whole new set of features can be attained. For those of you out there with a need for servos like these, you can buy the pre-built replacement board (unfortunately sold out right now), or build your own from the provided schematic, BOM, and source code.