Random Projects and Comments

Home 2012

Sanguino for Arduino >1.0 Release


Put together a full release of Sanguino that supports version 1.0.1.  Actually ended up not being as difficult as I expected since most of the directory layout has stayed the same.  I was hoping to use the new ‘variants’ to avoid making changes to the core files but ended up needing to do that to get some stuff working.Like I have said before the new method the Arduino team is using to guide the precompiler for different chips by using whether registers exist or not is much better and makes porting it to different hardware much easier.  Unfortunately the few libraries I have has issues with did not follow this lead.

The SDcard lib which is included with the install now has pin assignments hard coded for different processors rather then referencing the core/variant.  It is a quick workaround if you want to use Sanguino (with a atmega1284) with this libary.  Simply change line 120 of ‘arduino-1.0.1/libraries/SD/utility/Sd2PinMap.h’ from

#elif defined(__AVR_ATmega644P__) ||  defined(__AVR_ATmega644__)

to this

#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega1284P__)

I was able to get my DataLogger project up and running with a fresh bootloader burn and recompiled in 1.0.1.  The project uses SPI, I2C, ADC, and both UARTS so I generally use it as a test case since it covers the most common features used.  I did have to modify my GPX, and Producer/Consumer libraries to work with 1.0 which was fairly easy. Mostly just changing WProgram.h to Arduino.h in a few places as well as some string functions which changed.  I’m going to clean those up and post them soon hopefully.

You can grab the new version over on Google Code: http://code.google.com/p/sanguino/downloads/detail?name=Sanguino-0101r1.zip



Sanguino for Arduino >1.0

Published on July 15, 2012, by in Arduino, Software.

After putting it off long enough I started working on updating Sanguino to work with Arduino 1.0 and higher.   It looks like this could actually be easier then any version since. It looks like the Arduino guys are now doing all core features based on register values.   I first saw this tactic from msproul at http://www.avr-developers.com/ and used the same method whenever possible when I was modifying the core for Sanguino.

I haven’t really done any extensive testing but I was able to get blink, SPI, and UART functions working by just adding a ‘variant’ to the original core.  This brings up an interesting delema, which is how to install Sanguino.  If I stick with it as just a ‘variant’ (which I would really like to do) I need to be able to install into the variant directory which isn’t a big deal, but also append to the board.txt. This is no longer as simple as unzipping an archive into a directory, the boards.txt step would have to be manual or some sort of setup routine run. Not to mention making all of that cross platform.  I need to dig deeper but I’m guessing that using things like extra interrupts or UARTs might require actually modifying the core which will make my decision for me.  The traditional approach of adding a completely new directory under hardware is an option but I want to make that a last resort.



New Sanquino Version 0023R4

Published on June 23, 2012, by in Arduino, Software.

The last few months has been busy for me, but I’m finally getting time to put back into electronics.  I had found that INT2 was not accessible with the previous Sanquino core I had built so after fixing that as well as a couple other bugs others had pointed out I put together a quick release.  As I say on the Google Code site, this will probably be the last release for Arduino 0023.  I am going to start putting my time into getting the bootloaders/cores working with Arduino 1.0 ( If possible)  I do not want to go the route of a fully forked arduino environment.  There is not necessarily anything wrong with that but I like the idea of a plugin much better and hopefully we can keep that alive.

Download the new version HERE


GPS Logger Hardware v5.0

Published on March 20, 2012, by in Hardware.

Got another rev of the Skiing Datalogger, I had REV:B boards made but never built one up since I knew of the issue with the gyro and the holes didn’t line up with the case. This board is REV:C which I added some holes, all the flying wires are gone (so far) except the rework of the Venus GPS module which Sparkfun has changed in their new version. I have tested the individual components. Only the accelerometer is giving me issues at the moment. It is doing the same thing as the 6dof board though so it could be something in my code.
Datalogger Front Panel v1
I also had a board to be used as a front panel made, mainly to give a better way to connect to the remote keypad but it also serves as a place to LEDs and switches. The LEDs are bottom entry mounted on the back of the panel. Switches being surface mount on the front. (more…)


Sanguino Dev Enviroment

Published on March 4, 2012, by in Arduino, Software.

Should have posted about this earlier. I have been updating the Sanguino project over on Google Code with the changes I have made to support the atmega1284P and support up to arduino 0023.  If you have issues with the HEX files I posted here earlier check out the new versions.  If you still have problems open an issue on google code, I try to go through the issues reported ever week or two.


New Datalogger User Interface

Published on February 4, 2012, by in Hardware.

Previously I have used this interface sewn into a glove to start new tracks in the GPX file and also give me a visual indication that the device is logging data.  The main problem with this system is I can not come up with a good way of disconnecting the glove from the wire to the base unit making taking the jacket and gloves on and off a challenge.   It happens that Sparkfun has a nice ‘wearable keypad’ that I decided to use.  The keypad has a 4-way directional switch, a center switch, and a LED which lights it up.  All the switches and LED reference a single ground pin which is the same method I used for the glove interface so this was a drop in replacement.

Rather then attaching the keypad to the glove again I opted to attach it to the jacket, which should take care of the issue around removing and putting on the jacket.  I also did not want to sew it onto the jacket just yet, so I just pushed some wire through the excess rubber around the keypad making some loops that the strap in the jacket can pass through.

Hoping to try this setup out tomorrow, and collect some more data.


Finally Some Good SNOW!

Summit of Cannon Mountain, NH

Summit of Cannon Mountain, NH

We finally had some good snow move in, in the last 3 days around 12″ fell making for some good skiing. I logged today with the Skiing GPS Logger in it brand new case and got a TON of data.   In previous runs the datalogger would periodicity reset, I’m guessing due to a short in its old case or need to be manually reset for what ever reason.  After moving to this new case, it did not need to be reset all day! Also all of the data was written in a single file indicating that it did not reset it self all day.

Cannon - 2012-01-22

The days data.


I managed to cover a good part of the mountain today.  The image above was generated by Merkaartor.  There are a couple bugs in my software right now where it doesn’t close some tags, but the idea is that the files generated should be able to be opened directly by anything that can read GPX format, so I have some things to look at there.  After running a quick sed script to close the tags the data imported nicely.  I believe this is the first run I have done since upping the sampling rate to 5hz and it makes a huge difference. (more…)


GPS Logger Hardware v4.2


I didn’t change anything with the electronic parts, but did get a new case for the data logger.  I tried long and hard but could not find a way to fit the GPS antenna inside the case.  The Molex connector goes to the  status LED and switch shown earlier.  The switch I changed from being a run/stop switch to just switching power, which allows me to get everything packaged up the night before. The usual status LEDs are inside the case, but are not visible during operation, which seems to be ok.

The board doesn’t line up with any of the mounting holes, even REV:B which I added mounting holes do not line up, I am pretty sure I can modify the board to fit these mounting holes though.  Over all this case it larger then I would like, hopefully with some other modifications I can get the size down a bit.  Putting it into this case did stabilize the device quite a bit, I had a good run which I will talk about in another post where it did not reset all day and churned out some very nice data.



While it looks like congress is back peddeling pretty quickly, they are still going forward with SOPA/PIPA which could fundamentally break the internet. Messing with the distributed nature of the internet will but the United States on par with some of the most aggressive censorship countries.  In an open letter signed by the 83 high profile internet engineers including Vint Cerf a co-designer of TCP/IP explained their concerns that such legislation would damage the internet.

Below is a while a little outdated a very good explination of what SOPA/PIPA is:

PROTECT IP / SOPA Breaks The Internet from Fight for the Future on Vimeo.

© Ryan M Sutton, 2015