JeeNode v6 - Assembling and Soldering trough hole PTH components

Submitted by fabio on Mon, 2012-01-09 15:23.

I recently bought a couple of JeeNode v6, a small form arduino compatible board which has wireless communication capabilities through the RFM12B module. I'll be using this in an internet of things project we are prototyping at University.

Btw, since the boards came in kits you had to assemble, I took the camera out and recorded the process. The video is a nice example of soldering through hole components. Enjoy!

Posted in:

FreeIMU v0.4: a closer look

Submitted by fabio on Mon, 2012-01-09 15:02.

I've sent one of the early prototypes of FreeIMU v0.4 to Tilman from μmicrocopters so that he could help us with testing. Tilman just sent me the following great pictures, looking awesome to me!

FreeIMU v0.4.1 top view perspective

FreeIMU v0.4.1 bottom view perspective

FreeIMU v0.4.1 top view

FreeIMU v0.4.1 bottom view

FreeIMU v0.4.1 top view cut

FreeIMU v0.4.1 bottom view cut

Posted in:

MultiWii support for FreeIMU v0.4 and MPU6050

Submitted by fabio on Sun, 2012-01-08 14:33.

Thanks to myself, timecop and Alexinparis, FreeIMU v0.4 and its MPU6050 are now supported in MultiWii. At the moment, the code doesn't use the DMP due to the lack of documentation for it. The MPU6050 I2C master features are instead used, so the magnetometer is now read directly from the MPU6050.

Code available on MultiWii SVN: http://code.google.com/p/multiwii/source/checkout
Development discussion: http://www.multiwii.com/forum/viewtopic.php?f=8&t=1080
FreeIMU project: http://www.varesano.net/projects/hardware/FreeIMU

FreeIMU v0.4 status: progresses on prototypes and production

Submitted by fabio on Tue, 2011-12-20 13:13.

It's been a while since the announcement of the first FreeIMU v0.4 prototype built and you may be asking what I've been doing with it..

Well, the tests I've been doing so far with my v0.4 prototypes have been completely successful.. the unit works great. Unfortunately, I've been able to only test the 6 axis (gyro & acc) sensor fusion of the DMP in the MPU6050. As far as I know, Invensense only released software examples for that and documentation and code for a complete 9 axis DMP sensor fusion is still not available. So, I haven't been able to test the accelerometer, magnetometer and gyro on DMP sensor fusion. Please, if you happen to have more documentation or code for this please let me know!

My original plan was to build other v0.4 prototype boards and send them to various developers working on this kind of application so that, by sharing efforts, we would be able to provide good software for the new sensors.

Unfortunately, me and Jussi have had a lot of troubles with our suppliers. Both the MS5611 and MPU6050 have been almost unfindable for about 3 months while we had a lot of troubles with the HMC5883L that ACAL sent us. It seems that at ACAL they don't know how to properly store/ship moisture sensitive devices as we had many issues with them: they once even shipped them unsealed!

This kind of troubles really slowed down my progresses of building some prototype boards for developers, that's why the v0.4 testing didn't progressed much in the past month.

Fortunately, it looks like we are again on track again with the prototype boards and I hope to have them ready before Christmas. I'll announce later this or next week the availability of FreeIMU v0.4 prototypes for developers.

Meanwhile, we are also starting organizing the production run of the boards. I'm already in contact with local SMD assembling factories so we are now in the process of sourcing all the components and finalizing the designs so that we can start the production.

This is actually the first time I deal with organizing a factory made production run of a board, yes last time they were all hand made by me, so this is really an interesting experience and I'm really learning a lot.

I'll leave you with a picture of all the components I just received. As you can see, these are reels of components: hundreds of caps, resistors and sensors! Great!

I'll keep you posted on the production progresses.

FreeIMU v0.4 production run component reels

Posted in:

Updating to Arduino 1.0 APIs and improvements

Last updated on Mon, 2011-12-19 12:33. Originally submitted by fabio on 2011-12-05 18:01.

As you may have heard, the Arduino team just released the version 1.0 of their IDE which comes with quite some changes in the programming APIs. So, I spent some time updating all my Arduino libraries to be used with Arduino 1.0.

From now on, I consider previous versions of the IDE/API no more supported. So, if you are using my libraries, you are strongly suggested to update to Arduino 1.0 and the most recent version of my libraries.

Here are the new versions with the changes made:

  • HMC58X3 library: updated to Arduino 1.0 with a better calibration.
  • MS5611-01BA: better reading functions which cache the results when the sensor can't provide a newer reading, update to Arduino 1.0.
  • FreeIMU library: updated to Arduino 1.0 and to the new algorithm by Sebastian.

Enjoy it!

UPDATE 2011-12-07: The Arduino 1.0 API has a bug in the Wire implementation which throws an error on compiling: call of overloaded 'write(int)' is ambiguous. In order to fix it, search Wire.h within your Arduino install and add the following lines:

inline size_t write(unsigned long n) { return write((uint8_t)n); }
inline size_t write(long n) { return write((uint8_t)n); }
inline size_t write(unsigned int n) { return write((uint8_t)n); }
inline size_t write(int n) { return write((uint8_t)n); }

Your Wire.h will look like this. See the bug report for all the details.

LibreTooth: libre hardware bluetooth modules using RN-41 and RN-42

Last updated on Wed, 2011-11-30 10:41. Originally submitted by fabio on 2011-11-28 11:42.

LibreTooth Boards

LibreTooth is a side project I developed during my various human-computer interaction device prototyping. In the past, I've been a fan of Sparkfun's Bluetooth Mate Gold, a breakout board for the Roving Networ's RN-41 Class 1 bluetooth module. It's quite superior to other cheaper Bluetooth modules you may find in China through ebay.

Unfortunately, Sparkfun sells it at more than 60$ (which became 70€ on EU sellers) and they also don't release its designs as open hardware. The RN-41 and RN-42 (same as RN-41 but Class 2) can both be bought from Mouser at about 20€ while cheap PCB are available from Dorkbot PDX as usual. So, I decided to design my own Bluetooth Mate inspired hardware: LibreTooth!

LibreTooth is a completely libre hardware project, released under CC-BY-SA 3.0. It has been designed using KiCAD, a Free/Libre/Open-Source Electronic Design Autonomation suite. You find all the schematics and designs for building your Libretooth in the links at the bottom of the page.

Libretooth can both be used with the RN-41 or RN-42. The first one is a Class 1 module which will offer longer distances but higher current consumption while the RN-42 is a Class 2 module offering smaller distances but it is also more energy efficient. The board design is fairly similar to Sparkfun Bluetooth Mate. I just also broke out the reset pin on the bluetooth module to allow programmable reset of bluetooth communication.

Below all the desings:

Human body motion tracking with FreeIMU

Last updated on Wed, 2011-11-16 16:48. Originally submitted by fabio on 2011-11-12 22:31.

John Patillo, one of the very first guys in starting a "child" project based upon my FreeIMU hardware and library, just posted a comment sharing his last progresses in his own Smart Skeleton project.

John, who's a Biology and Human Anatomy & Physiology College teacher by day and an Arduino/electronics hacker by night, is working on using inertial sensors in FreeIMU to track human body motion.

Hi Fabio, I hope all is going well with your studies. I just wanted to give you an update on what I've been doing with my modification of your FreeIMU circuit. After I lot of work with a logic analyzer, I finally got multiple IMU's talking to one arduino without tripping over each other. Now I'm working on the software. The video shows three IMU's (in white plastic boxes) attached to a skeleton arm. These are communicating with an arduino using i2c over flat cat5 cables. The arduino is hidden behind the laptop. The sketch I'm running here is a modification of your FreeIMU cube sketch. There are a few calibration issues to work out, but I gotten over all the major technical hurdles. I couldn't have done any of this without your hard work on the FreeIMU libraries. Thank you very much!

Following a picture of the "Skeleton IMU" John designed basing upon FreeIMU, designed especially for daisy-chaining using the PCA9509 I2C repeater to allow long wires on the SDA and SCL I2C bus lines. Using the PCA9509 also allows to have an enable pin which allows to communicate singularly with each IMU (Similarly to what happens with the CS channel in the SPI bus). For connecting the various IMUs, John is using flat cat5 Ethernet cables and connectors which delivers the signals just fine. Very smart.

FreeIMU variation used for human motion tracking

Even if commercial and research projects focused on human motion tracking using inertial sensors have been around for quite some time, I'm sure that an open hardware/libre software based project would be really great to have as I'm sure it could be a very good starting point for many medical, virtual reality, sport, etc. projects.

I'm really looking forward having access to more details on this project. John, where are you putting out some sources/design??? ;-)

My review of China made Pick Up and Place Vacuum Pen for SMT SMD

Last updated on Sun, 2011-11-13 09:32. Originally submitted by fabio on 2011-11-11 11:03.

If you are following my blog, you know that I'm into hand assembling of SMD/SMT components on PCB boards for prototyping or small series. So, I'm always in search of tools to make me more productive by making the job easier or faster.

A month ago, I stumbled upon a China made Pick Up and Place Vacuum Pen for SMT SMD which also came with a 5 way feeder. See the picture below:

China made Pick Up and Place Vacuum Pen for SMT SMD

The thing is very simple: a motor compressor with adjustable speed with goes into two connectors whose you can attach plastic pipes with a vacuum pen. The pen has different needles and suction pads. I give a complete review in the following video.

Conclusions are that the product seems to be working pretty well. It's capable of sucking up the components pretty effectively and reliably. The presence of various needles and suction pads make it effective even for heavier components. The only thing I'm skeptical about is the need to cover the pen hole with a finger: I think that in long hand assembling sessions this can be tiring for the hand. A part from this, I think I'm quite satisfied by this product.

Also here are some detailed pictures about the product.

The whole product:
2011-11-11 08.53.36.jpg

5 ways feeder:
2011-11-11 08.39.00.jpg

Feeder Channels:
2011-11-11 08.39.11.jpg

Feeder tapes mounting:
2011-11-11 08.39.27.jpg

Vacuum pens:
2011-11-11 08.40.03.jpg

Air pump motor:
2011-11-11 08.40.26.jpg

The original mains plug and the replacement plug for using within Italy:
2011-11-11 08.40.49.jpg

UPDATE 2011-11-13: according to the product webpage this looks like a 220-250 V AC only device. However, I'm attaching a couple of pictures of the inside, just in case someone wanna hack this into 110V.

Inside the motor pump

Motor supply PCB

This post has been posted at 11:11 on 11/11/11

Submitted by fabio on Fri, 2011-11-11 10:11.

Cool uh?

Initial tests with FreeIMU v0.4 and MPU6050

Submitted by fabio on Sat, 2011-11-05 11:10.

I've been playing with FreeIMU v0.4 and its MPU6050 for some initial testing. I used the code that Noah Zerkin shared on a previous post (thanks Noah!) which supports 6DOM accelerometer+gyroscope on chip DMP sensor fusion and changed it slightly to output quaternion data as expected by the FreeIMU_cube Processing sketch in the FreeIMU library. Programs used for this tests are attached at the end of this page.

The result (see video below) has been very successful. 6DOM sensor fusion looks pretty good. It remains to be tested the 9DOM sensor fusion and it's integration with the HMC5883L: I suspect this will be quite an headache.. I'll let you know.

Scoping SDA and SCL I2C signals showed pretty solid signals. I've been also testing the MS5611 barometer on FreeIMU without any issue (not on video).