Sharp Memory LCD with Arduino

Submitted by fabio on Sat, 2012-12-15 17:49.

Simple tests on the LS013B4DN04 (3.3v version of the 96x96 Sharp Memory LCD with Flat Cable connection) using a custom made breakout board I designed etched by my friend Franco Magni.

This uses this Arduino Library:

Posted in:

Arduino: Creation is Child’s Play - I'm in Wired Arduino documentary!

Submitted by fabio on Thu, 2012-12-06 16:36.

This is Wired Italia documentary Arduino: Creation is Child’s Play. I'm interviewed around minute 9:50 and I talk about my FreeIMU project and I fly my quadcopter.

Thanks to Wired Italia, Arduino and Opificio Ciclope for the opportunity.

Posted in:

Complementary Filtering High Res Barometer and Accelerometer for Reliable Altitude Estimation

Submitted by fabio on Mon, 2012-09-17 17:59.

This is a simple example of some of the stuff I've been working on recently. This is a demonstration of the soon to be released filtering capabilities of the FreeIMU library using the FreeIMU v0.4.3 as sensor board.

The sensor fusion algorithm estimates the orientation of the board and from that an estimation of the dynamic acceleration is computed by subtracting the gravity from the accelerometer readings. The dynamic acceleration is the fused with the high resolution barometer readings coming from the MS5611 through a complementary filter.

The result, as seen in the graphs is an extremely reliable altitude estimation which can go up to 5-10 cm of precision with almost immediate response to motion.

Graphs programmed in python with pyqtgraph.

An USB Inertial Mouse with FreeIMU and Arduino Leonardo in 10 lines of code

Submitted by fabio on Mon, 2012-07-23 18:20.

Today the Arduino team officially presented the Arduino Leonardo with a video from Massimo Banzi, while it's been a while that the board has been launched and available for sale.

I really like the Arduino Leonardo and I'm already using it in some projects.. today however, I decided to make a simple little example program which shows the potential of the Arduino Leonardo.

I connected one of my FreeIMU to the Leonardo, wrote a bunch of lines of code and then, I had a simple USB inertial mouse! The code for this example is attached below.

Here is a video demonstration and a little explanation on how it works!
Kudos to the Arduino team for this great board!

Hacking Adafruit NFC shield for Arduino Leonardo compatibility

Submitted by fabio on Mon, 2012-07-09 10:59.

Yesterday night, me and Federico Vanzati (one of the guys working for Officine Arduino at Fablab Torino) had a good time hacking the NFC shield by Adafruit so that it could work with the new Arduino Leonardo.

The hacking started when we connected the Leonardo to the NFC and discovered that I2C, the default hardware communication bus used by the shield to communicate with the Arduino, was not working on the Leonardo. This shield, even if already designed for Arduino UNO R3 pinout, wasn't working with the Arduino Leonardo at all! This blog post is a small summary of what we did to address these issues.

Adafruit NFC shield hacked for Arduino Leonardo compatibility

We started investigating the problem.. the first strange thing worth noting is that this shield, even if it comes with the various Open Hardware logos on it, it doesn't actually have any shematics nor EDA CAD designs available The designs were actually available on Adafruit github but simply not linked from the product page, that's why we missed them. So, we had to kind of reverse engineering the shield in order to understand the problem.

So, the first problem we discovered is that the IRQ pin of the PN532, used to signal the microcontroller on a successful read, is connected to pin Digital 2 on the shield.. this is not good at all with the Leonardo since D2 is also I2C SDA making communication impossible. Fixing this was as simple as cutting out the trace going from the IRQ pin into the D2 pin on the shield.

We decided to use a two ways on-on switch (see picture below) connecting IRQ to D2 in one position and IRQ to D8 in the other position.. the idea was being able to switch between D8 and D2 when used with UNO or Leonardo respectively. On a second thought, it is probably better to move that to another pin usable on both the UNO and Leonardo.

The next problem we had to address was a pin conflict: this shield connects I2C SDA and SCL both on the new SDA and SCL pins on the new Arduino UNO R3 pinouts (top left near the various digital pins) as well on the legacy A4 and A5 pins used for I2C in legacy Arduino Duemilanove and previous boards. Fixing this was as simple as cutting out the traces connecting I2C to A4 and A5.

With a small modification to the reference code from the Adafruit NFC library (attached below), instructing the library to use D8 instead of D2 as IRQ connection, we finally had a perfectly functioning NFC shield with I2C on the Arduino Leonardo!

Suggestion for Adafruit: in case backward compatibility with legacy boards is needed, I'd use a 2 ways on-on switch (eg: JS202011SCQN) allowing the connection to A4 and A5 when needed on legacy boards. Solder jumpers will work too.

LibreMote v0.1 is Alive!

Submitted by fabio on Wed, 2012-05-30 16:53.

During the past weekend, with the precious help of Franco Magni, we assembled the very first prototype of LibreMote v0.1, the simple remote controller programmable just like an Arduino Pro Mini which has an integrated accelerometer and a joystick, we developed during the electronics workshop I held at Fablab Torino.

Here is a first video of LibreMote v0.1 and below some pictures of the assembling. Thanks Franco and Davide for the videos.

LibreMote Soldering

LibreMote Soldering

LibreMote Soldering

LibreMote Soldering

LibreMote Soldering

4-Digit 7-Segment Display with Arduino

Submitted by fabio on Thu, 2012-05-24 10:15.

I've been playing with Sparkfun's 4-Digit 7-Segment Display, of course connected to an Arduino. I recorded this short video to show how it works. I'm using the blue model which is very bright and visible indoor. Unfortunately, under direct sunlight doesn't work well and requires a bit of shadow to be visible.

In the video, I'm using the reference example code created by Sparkfun which is a simple timer.

Posted in:

FreeIMU with Arduino FIO over Xbee

Submitted by fabio on Wed, 2012-05-16 12:38.

I'm doing my first steps with Xbee/Zigbee, since I'm using it in a project for the Ph.D... to get started with it I decided to do a little orientation sensing prototype. I used an Arduino FIO as brain, connected to an Xbee and one of my FreeIMU.

Here is a picture of the setup:
Arduino FIO with FreeIMU and Xbee

Here is a little video demonstrating the setup.. as you can see it's pretty laggy.. I just using 9600 bauds here, so that's why it lags so much. Of course, configuring the modules for faster speeds and optimizing communication more I don't have doubts that I can get almost real-time tracking.

Femtoduino on sale!

Last updated on Mon, 2012-04-23 11:51. Originally submitted by fabio on 2012-04-20 10:39.

Do you know Femtoduino, the smallest Arduino compatible board I designed some time ago?

Well, it's an ultra-small (20.7x15.2 mm) board with exactly the same computing power of the Arduino UNO/Duemilanove. Perfect if you are up for ultra small Arduino prototyping.

I released the designs as Open Hardware some time ago, and some brave people built their own Femtoduinos from the open designs.. however, I never decided to do a big batch of these.

But now, Alejandro from USA decided to be brave and organize a production run of 150 Femtoduinos.. I'm saying brave because he's going the hard way: hand assembling!

The boards can be bought from and are already available for shipping. If you are up for very small Arduino prototyping, nothing is smaller than the Femtoduino!

Here are some pictures from Alejandro's boards..

Femtoduino is so small!

Femtoduino is so small!

How to connect and test FreeIMU v0.4 with Arduino and the FreeIMU library

Submitted by fabio on Tue, 2012-04-17 10:31.

One of the FreeIMU users, who bought one of our production run FreeIMU boards, shipped me his board as a faulty one. We promptly shipped him a replacement board but when I tested his board I found out that it was working perfectly.

This motivated me enough to record this video (actually using exactly his board) showing you how to correctly connect a FreeIMU board and testing it with the FreeIMU library.