Electronics Workshop Lesson 1

Submitted by fabio on Thu, 2012-03-22 17:38.

Last Tuesday we had the first lesson of my electronics workshop we are having at Fablab Torino, thanks to the organization of OpenLab Torino and Fablab itself.

In the workshop we are designing LibreMote, an open hardware remote controller containing an accelerometer, 5 input buttons and a battery which communicates wirelessly via Bluetooth.

In the first lesson we prototyped LibreMote on a breadboard with its main components. The following picture shows the on-breadboard prototype.

LibreMote Breadboard Prototype

I also quickly sketched the prototype on a more formal schematic, using KiCAD of course. Also available as PDF and KiCAD source.

LibreMote on breadboard Schematics

The prototype has been demonstrated using a simple Arduino firmware, capable of reading the accelerometer and input buttons and stream them over bluetooth, and a Processing application which displayed the incoming data from bluetooth in a simple GUI as in the following screenshot.

LibreMote Processing GUI

In the next lessons, we'll convert this breadboard prototype into a complete schematic and then we'll design a PCB for it. Using KiCAD. Then we'll build it using DIY methods.. will be fun!

See you in the next lessons ;-)

Electronics Workshop at Fablab Torino

Last updated on Thu, 2012-03-22 18:04. Originally submitted by fabio on 2012-03-14 10:24.

Electronics Workshop at Fablab Torino

I'm happy to inform you that, on the next 4 Tuesdays (20 and 27 March, 3 and 10 April) I'll be teaching an Electronics Workshop at the Fablab Torino.

During the workshop we'll be designing a remote control powered by an ATMEGA 328p, so this will be practically an Arduino remote control, which will have an accelerometer, some input buttons and communicate wireless using a Bluetooth module and with a rechargeable battery with associated recharging circuitry.

During the workshop we will be covering the theoretical and practical aspects of the project design, from component selection to functioning aspects of the various elements (eg the I2C bus, UART communication, device power designs, etc..)

We will design the device schematics and PCB using KiCad and in the last lesson we'll try to build and assemble a PCB using DIY methods.

For those of you happening to be around Turin, here is where to register. Hopefully, I'll have video recordings of the workshop which I hope to be able to post here in some weeks. See you there!

FreeIMU v0.4 availability: 2nd March 2012 at 18:00 CET

Submitted by fabio on Fri, 2012-03-02 10:13.

I'm happy to inform you that today, Friday 2nd March at 18:00 CET the new FreeIMU v0.4, featuring the MPU6050 accelerometer and gyroscope, the HMC5883L magnetometer and the MS5611 high resolution barometer, will be finally up for sale online.

The shops which will sell FreeIMU v0.4 are:
Jussi's ViaCopter: http://viacopter.eu/
Stefano's SDModel: http://www.sdmodel.it/
Paul's Flyduino: http://flyduino.net/

I don't still have the exact shop webpages for the FreeIMU v0.4 boards but I'm sure you'll find your way around the websites.

For more informations about FreeIMU v0.4, please visit http://www.varesano.net/projects/hardware/FreeIMU#v0.4

If you happen to have any question, I'm here!

Thank you!

FreeIMU v0.4

Posted in:

FreeIMU v0.4 factory assemblying

Submitted by fabio on Thu, 2012-03-01 09:04.

Good news. The factory production of FreeIMU v0.4 has been completely successful and now the boards have been assembled, tested and shipped to Jussi's viacopter.eu, Paul's flyduino.de and Stefano's sdmodel.it. We still didn't fixed the shops opening date/time but expect it to be pretty soon. I'll post here later the date/time as usual.

I've been able to make a video during the production process and I'm sure you guys will enjoy it so here it is:

Posted in:

When big companies pay to fight libre software, yes also in EDA software

Submitted by fabio on Thu, 2012-02-16 18:04.

If you open a web browser and point it to google.co.uk then search for KiCad, which is an awesome free/libre/open source Electronic Design Automation used to design circuits and printed circuits boards, you'll be shown this advertising:

KiCad Farnell Advertising

Is Farnell supporting KiCad? Of course not: if you click the link you'll be brought to this webpage in which Farnell will try to convince you that buying Eagle is way better than using a libre software as KiCad.

Is this something incidental or not by purpose, perhaps due to automatic tools used by Farnell? I don't think so! Note how the advertising is designed to confuse people. They do use uk.farnell.com/Kicad as URL, so that people know that they'd get a webpage on KiCad while users instead are driven to their Eagle shop page! I don't think automatic tools can do such a thing!

This is not the first time that big companies buy ads on Google or general advertising to discredit a libre software competitor. Massive media coverage got the Get the Facts Microsoft campaign in which Microsoft spent millions of dollars trying to discredit Linux.

However, in the scene of Electronic Design Automation this is something new. What does this proves? Just one thing, KiCad has arrived to such an high quality level that it's starting to scare proprietary EDA software vendors.

I just hope that Farnell will realize that buying advertising against an Free/Libre/Open Source competitor won't be seen well by the huge Open Hardware comunity. This is the kind of bad move which can destroy thousands of dollar investments in a couple of hours (yes, I'm thinking about element14).

What do you think?

FreeIMU v0.4: getting ready for assembling

Last updated on Sun, 2012-03-04 21:00. Originally submitted by fabio on 2012-02-09 17:06.

Just a quick update on the FreeIMU v0.4 production. We've finally received all the components needed to start the assembling. Yes, also the MPU6050 :-)

In this video I show you our nicely panelized design with all the various reels needed for factory production.

Here is a more detailed picture of our panel:

FreeIMU v0.4 production panel

Visiting KiteGen

Submitted by fabio on Fri, 2012-01-27 17:05.

On Wednesday I've been invited to visit Kitegen. What's that? Well, it's an EU founded research project aimed to produce energy from high altitude winds by means of a kite based system. A good introduction to the project in English is given in this article while Italians can watch this SuperQuark episode (SuperQuark is an Italian television program about science).
Why would I be invited to visit them? Well, I didn't had a clue until I got there...

It turns out that they may be the most advanced users of my FreeIMU as well as probably one of the biggest viacopter.eu clients (viacopter.eu is the official reseller of FreeIMU).

They are using FreeIMU as their base IMU during various steps of the prototyping of the automated system used to control the kite. Basically, the idea is to put various FreeIMU on the Kite as well as many different other sensors to precisely estimate the kite orientation in order to automatically control it.

I've seen a demo of some of their controlling software, wow.. tough stuff! Unfortunately, I haven't been able to make a video of the software.. that's a pity.

But, I do have a picture of one of a prototype of their controller boards! (Thanks Ivan for the picture!). Can you see FreeIMU???

Kitegen controller board with FreeIMU

I know there has been some criticism around this project. Personally, having seen the progress the guys have done, I think it is doable and they are actually not that far from success. Will it change the way we all think about energy? I surely hope so.

Good luck to Massimo and his crew.. I'll surely be around again there.. too cool to miss any of it ;-)

Meanwhile, have a look at some pictures..

This is the Kitegen Steam, as of 2 days ago, during a calibration of the PID for the ropes controlling.

Kitegen Steam

In the facilities of the company some "spare parts" for the next KiteGen Stem:

The ropes reels with integrated motors for controlling speed as well as lateral offsets motors.

Kitegen motors reels

This is the new full carbon Steam.. whoa that's expensive!

Kitegen Steam full carbon

They call this "the hand" and it is used to automatically open the kite during the take off procedure.. nice piece of custom mechanical design.

Kitegen The Hand

Functions with variable lenght arguments in Arduino

Submitted by fabio on Wed, 2012-01-18 17:27.

I was reading about variable length arguments for functions in the C programming language and I thought, "hey, will this thing work on an Arduino?".. well, it turns out that yes, it's working great!

But, what are functions with a variable length? Well, the standard C printf function is a good example (not available on Arduino of course). You can call it with how many arguments you want, for example:

printf("%d", 5);
printf("%d %d", 5, 7);

So, how can we make this with the Arduino? Here is an example, using the same example from here, just ported into Arduino code:

#include <stdarg.h>
#include <stdio.h>

/* this function will take the number of values to average
   followed by all of the numbers to average */
float average ( int num, ... )
    va_list arguments;                     
    float sum = 0;

    /* Initializing arguments to store all values after num */
    va_start ( arguments, num );           
    /* Sum all the inputs; we still rely on the function caller to tell us how
     * many there are */
    for ( int x = 0; x < num; x++ )        
        sum += va_arg ( arguments, double ); 
    va_end ( arguments );                  // Cleans up the list

    return sum / num;                      

void setup() {

void loop() {
  float avg = average( 3, 12.2, 22.3, 4.5 );
  avg = average( 5, 3.3, 2.2, 1.1, 5.5, 3.3 );

New version of the FreeIMU library adds support for Sparkfun boards

Submitted by fabio on Sat, 2012-01-14 23:50.

The FreeIMU library has traditionally only supported FreeIMU boards out of the box. However, changing it to support Sparkfun's IMUs has always been very simple and it has been done by many people.

Unfortunately, it seems that many are still unable to modify the library by themselves so I finally decided to add support for Sparkfun's boards in the new version of FreeIMU library out of the box.

So, if you happen to own one of the following Sparkfun boards, you should be able to simply use the FreeIMU library by uncommenting your board definition in the FreeIMU.h file.

The boards currently supported are:

  • IMU Digital Combo Board - 6 Degrees of Freedom ITG3200/ADXL345 SEN-10121
  • 9 Degrees of Freedom - Razor IMU SEN-10736
  • 9 Degrees of Freedom - Sensor Stick SEN-10724
  • 9 Degrees of Freedom - Sensor Stick SEN-10183

I don't own any of these boards, I simply supposed the code based on those products pictures. If you happen to have one of these, please test the new version of the library with your board!

Posted in:

First flights of FreeIMU v0.4

Submitted by fabio on Wed, 2012-01-11 00:19.

The testing of FreeIMU v0.4 is proceeding nicely.. finally my friends Tilman and Warthox received their boards and as soon as they could they mounted them on their quadcopters for some flying tests. They used the brand new MultiWii software which me, timecop and Alexinparis have produced... the result?

Judge it by yourself..

p.s.: huge thanks to Warthox and Tilman for their time in testing the boards and making the videos!