Programming AVR I2C Interface

I2C as many of you know, is a simple serial interface for many peripheral devices to micro controllers, but it can quickly become confusing to people who may not be accustom to it. Because of that, I2C tutorials are always welcome, and this new tutorial by [Embedds] does an excellent job of how to use I2C with an AVR with a 24C16 2Kbyte EEPROM.

The first half of the tutorial provides a clear explanation of how I2C works, including its signal structure, addressing, and data packets. It then moves on to AVR territory showing how to setup the I2C in an AtMega micro controller. The author uses a pretty standard to most of us Arduino, with software written in AVR C and a nifty little GUI programming application which eases the hassle of dealing with AVRDude directly.

Plenty of code samples follow from twiddling registers to a full blown application reading and writing bits from the EEPROM to a serial terminal on a PC.

[Alex] Shows Us What Happens When Dance Dance Revolution Meets Simon

ddr-simon

[Alex] was digging through his closet and came upon an old PS2 game pad for Dance Dance Revolution. He hated the idea of throwing it out just slightly more than the idea of playing DDR again, so he decided to find a way to reuse it.

He was a big fan of the game Simon (aka Genius) as a kid and thought that the DDR pad would make a novel interface for the classic game. Using the PS2XLib by [Bill Porter], which allows an Arduino to easily communicate with a PS2 controller, [Alex] put his Simon replica together in no time flat.

He painted an empty ice cream container with the classic Simon colors, installing a small LED under each quadrant, then wrote the game’s code.

As you can see in the video below, his version of the game works nicely, and forces you to actually get up and move a bit, which we like.

Continue reading “[Alex] Shows Us What Happens When Dance Dance Revolution Meets Simon”

Minimalist RGB LED Cube Has A Very Short BoM

charlieplexed-led-cube

[Asher Glick] wrote in to share a project he has been working on with his friend [Kevin Baker], a 4x4x4 RGB LED cube. The pair are students at Rensselaer Polytechnic Institute and also members of the newly-formed Embedded Hardware Club on campus. As their first collaborative project, they decided to take on the ubiquitous LED cube, trimming down the component count to nothing more than 64 LEDs, a protoboard, some wire, and a single Arduino.

Many cubes we have seen use shift registers or decade counters to account for all the I/O required to drive so many LEDs. Their version of the cube has none of these extra components, solely relying on 16 of the Arduino’s I/O pins for control instead. You might notice something a bit different about the structure of their cube as well. Rather than using a grid of LEDs like we see in most Charlieplexed cubes, they constructed theirs using 16 LED “spires”, tucking the additional wiring underneath the board.

The result looks great, as you can see in the videos below. The cube looks pretty easy to build, and with a cost around $60 it is a reasonably cheap project as well.

Nice job, we look forward to seeing all sorts of fun projects from the Embedded Hardware Club in the future!

Continue reading “Minimalist RGB LED Cube Has A Very Short BoM”

GSM Remote Control With The TiDiGino

tidigino-gsm-remote

If you’re looking to remotely control things around the house, but can’t do it over the Internet or via WiFi, the TiDiGino just might have what you’re looking for. [Boris Landoni] from Open Electronics sent some information on the TiDiGino our way, and it certainly looks like a useful device if you’re in need of a solid GSM remote control module.

At the heart of the TiDiGino lies an ATmega2560, which is normally used in the Arduino Mega, so there’s plenty of processing power to go around. While the form factor differs just a wee bit from what you would expect from an Arduino, the TiDiGino sports all the proper connectivity to support any standard Arduino shield along with the requisite libraries required for use.

Through a contest/community effort, the TiDiGino supports remote alarm, gate control, remote thermostat control, and DTMF remote control functionality right out of the box. We imagine that our readers can dream up a litany of other uses as well, since GSM remote control tends to be pretty popular around here.

Be sure to check out the Open Electronics site if you’re interested in learning more about the TiDiGino – you’ll find a complete BoM along with code and schematics, making it easy to build your own.

LED Cube Is A Little Bit Of Kit, A Lot Of Point-to-point Soldering

[Craig Lindley] recently finished building his own RGB LED cube project. It’s made up of four layers of 4×4 LED grids, but you may notice that the framework that supports the structure is not the usual ratsnet of wires we’ve come to expect. They’re actually long, thin circuit boards. [Craig] grabbed the Rainbow Cube kit sold by Seeed Studio for this project. But instead of pairing it with their Rainbowduino driver, he built his own to give him more options on how to control the blinky lights.

He’s using an Arduino Uno to control the display, choosing TLC5940 driver chips to safely provide the juice necessary to light up the grid. These drivers also offer 12-bit pulse-width modulation for easy color mixing. Driving the LEDs directly would have taken a large number of these expensive chips (over $4 a piece), but if multiplexed the design only calls for two of them.

Check out a video of the finished cube reacting to music thanks to the microphone and amplifier circuit [Craig] build into the driver board.

Continue reading “LED Cube Is A Little Bit Of Kit, A Lot Of Point-to-point Soldering”

OsPID: The Open Source PID Controller

Need PID control in your next project? Perhaps this little beauty can help. It’s an Open Source PID controller that also follows the Open Hardware guidelines. [Brett Beauregard] based the project on the newly minted Arduino PID library which he wrote. In the video after the break [Brett] takes apart the device, walking through some of the ways this might be hacked. If you want an overview of every part of this project to-date the best resource is probably his personal blog post.
The front circuit board is the meat and potatoes of the device. It hosts the user interface in the form of buttons, LEDs, and a graphic LCD screen. You can also see the USB mini-b connector which gives you access to the Arduino compatible ATmega328 microcontroller on the back. There is also a piezo buzzer for your alarm needs.
The prototype that [Brett] shows off uses pin connectors to join the main board to the two daughter boards. Unfortunately, the production model moved to dual-sided edge connectors. That’s fine if you you’re using it in its stock condition, but it makes it a bit harder to replace those boards with your own hardware. None-the-less, we love to see great Open Hardware projects brought to market! Continue reading “OsPID: The Open Source PID Controller”

Reading NAND Flash With An Arduino

[HC] took a gander around the Googles and saw a number of people trying to read NAND flash chips with an Arduino. It’s an interesting problem; at 16 Megahertz, [HC] is looking at about 60 nanoseconds per instruction cycle, and flash chips normally operate around 20 ns. He got the build working, and was able to read the memory contents and ID of a flash chip.

Right now, it’s just a proof-of-concept to demonstrate that reading flash memory is possible. [HC] used an Arduino Mega to pull the manufacture ID off a flash chip. Because there isn’t exactly a whole lot of storage on an Arduino to hold Megabytes of data, so [HC] is looking for a way to pull data off his flash chip. He’s considering sending it over Ethernet or storing it on an SD card.

This isn’t the first time we’ve seen a roundabout way to use those cheap, ubiquitous NAND flash chips. Considering we’ve got a few dozen of them housed in unused thumb drives, [HC]’s work shows a lot of potential. He posted a topic on his forum to see if there’s any interest in further developments, something we’d like to see.