Random Projects and Comments

Home 2011

No More Flying Wires!

No more flying wires!

Finished board, I don't think the date is correct should be 11/19. Least the rev code is right.

Now on REV: C finally no flying mod wires on my accelerometer / gyro board. Only the accelerometer is populated as I left off the RC filter for gyroscope, so the board is only half working. With the micro, xbee, and accelerometer it draws 57.4ma. Since the xbee claims to take 50mA, 7.4mA for micro and accelerometer seems pretty good.


Skiing Data

The first trip I took the data logger proved that for some reason there is an error that stops it from logging after about an hour and a half. Since I powered it up before leaving home it had stopped before getting to the mountain. Went out again yesterday and this time powered up the logger in the parking lot and actually got some data! It did stop again after about an hour and a half so I only captured the first three runs. I did reset the main processor at lunch, but it did not start back up so I am guessing it is something on the sensor processor which does narrow down the issue at least.
The detail was good, especially after the initial run, I’m guessing it locked some additional satellites once I reached the top of the mountain, as the initial chair lift up track has about 20ft error the west. The one of the tracks does show crossing the trail to stop show above. I want to get the timestamps and speed working next, and hopefully figure out why it stops after an hour and a half.


GPS Logger Hardware v4.1

I’m now back to the same functionality I had on the version I built on proto boards though now much smaller. I added a run/stop switch on the side. Each transition from stop to run will result in a new file being started. Two lights on the top, the green one is lit when the uC is in a ‘RUN’ state, the red one flashes after each track point is written to the SD card.
Since the plan is to use this while skiing I used a LilyPad wearable switch and LED sewn into a glove for status and control. The LED is just a duplication of the SD write led on the case. As long as it is blinking, there should be data being written to the card. Each push of the switch will result in a new track segment started ( and the old one closed ).  I couldn’t find any of my LED LilyPad stuff so I de-soldered one of the switches and mounted a 1206 LED across the pins. The glove is connected back to the main box with a three conductor ribbon.
Hopefully will be trying this setup out tomorrow, interested to see if it actually works.


More Data!

Was able to get everything working enough to record some tracks today. The box I used was a bit larger then I would like but it’s the only thing I could find. The tracks came out pretty good as far as accuracy, and it does not appear that it dropped any points.  Still do not have the timestamps working so I can’t be 100% sure on that last part.   It did create three different files indicating that the main uC reset for some reason, though it did recover.
There is some issue with my GPX library, I think strings have some additional overhead in the new version of arduino which is causing problems.  I was working on converting things to using pgmprint and char*s anyways so I will keep moving forward with that.  I’m going to add some switches, secure the box some more and try again tomorrow.


Dev Environment r2

Just a quick update to the Sanguino enviroment I’m working with.  Fixed an issue in boards.txt where only one of the 1284 boards would show up. Also changed some pin definitions so that hardware SPI works. Full details here.



Updated Dev Enviroment

In order to get some of the features like serial ports and I2C working on my atmega1284p chips, I needed to update the Sanguino core I have been using. The latest one published is based off arduino 0018 which works ok, but 0018 is before they had added strings and other useful features built into the core. I initially started updating the Sanguino core to 0021 which is what I was using as my dev environment but was having some issues with some conflicts in stdio and stdlib. From looking at the release notes the arduino team moved to register based pre-compiler directives rather then the CPU based ones used before. This method seems to be much better suited to alternative processors and is illustrated well here.

So I moved forward updating the Sanguino core files to 0023 which is the current version on arduino.cc. The modifications are pretty simple, update the pin outs in pins_arduino.c and everything else just falls into place.

I am currently working through testing functions on the atmega1284p I have gotten both UARTs  working with out issue.  I did need to make some modifications to the Wire library to get I2C working.  Just needed to have it add pullups to the correct pins, this could have been done in hardware but I like using the software pullups.  I believe SPI will work, but am still testing that.

Here are the modified Sanguino files which support 644p,1284p,and 1284p @8mhz and also the updated Wire library:

Sanguino-0023r1.zip UPDATED (details): Sanguino-0023r2.zip UPDATED (details): Sanguino-0023r3.zip UPDATED (details):Sanguino-0023r4.zip  UPDATED(details): Sanguino-0101r1.zip


GPS Logger Hardware v4.0

After having the boards for at least a month I finally built one up.  This board dosn’t really do much new it is basically my GPS logging hardware v3.1 built onto one board.  Since I was building my own boards I opted to use a atmega1284p since I was having issues running out of sram before (though I did clear that up in software).  So there are two atmega1284p processors one to deal with the GPS and sensors, and another to talk to remote sensors as well as build and write the GPX file to the SD card. I also added an accelerometer and gyroscope to add to the data the sensor uC is collecting, I will probaly replace the atmega1284p on the sensor side with a atmega88 if the memory utilization is low enough, the 1284 seems a bit overkill for what it is doing.


18 years of Thinkpad Tablet

So 38 days after I ordered it and 31 days after the original ship date I finally have a new Thinkpad Tablet.  Shortly after ordered it I remembered that I have a old Thinkpad Tablet from 1993.  When you look at some of the key features of both of them they are quite similar.


First off the size, they are both roughly the same size length and width, thickness is a different story.  Though screen size is nearly identical.  Unfortunately the 1993 version dosn’t power up any more as I do not have the OS cards for it, at some point in the past I had gotten linux running on it but have no idea where those flash cards went.  Also the batteries are completely shot.

Thinkpad Tablet Docks

Both tablets also have available docking stations with keyboards.  The 1993 version would be a bit tougher to carry around every day.  But even the 2011 version is enormous by today’s standards when but into the dock.  Just for comparison the new Thinkpad Tablet in it’s keyboard ‘Folio’ as Lenovo calls it is bigger then my Lenovo s205 netbook which is pretty insane.  My biggest complaint about the new keyboard folio is that it connects to the only full sized USB port and does not have another on the folio.  I was intending to use the tablet to write this post, but realised to upload the photos I would have to remove it from the folio, then put it back in to finish typing.


The next thing that IBM/Lenovo thought was important in both tablets was printing.  The 1993 version comes with a thermal printer in the dock, in 2011 Lenovo opted for a program called ‘PrinterShare’ being loaded. I don’t own a printer, and even at work I pretty much only use them for printing boarding passes so I really don’t have a use for either of these.


The the new tablet already feels more useful then the Blackberry Playbook which I’m currently using. I will still continue to use the Playbook, mainly for the Blackberry Bridge feature which is great, but the Thinkpad may become my tablet for ‘everything else’ already got some critical applications working that do not on the playbook such as the admin interface to Cisco Communications Manager which is a big one. I’m hoping to get a physical ethernet connection working via the USB host interface but that will be tougher.


Yikes! Invalid device signature.

Published on September 4, 2011, by in Hardware.

So, I got my PCBs in yesterday, imediatly grabbed the solder paste put a bunch of components down, reflowed them and everything looked good.  The power supply was actully very stable, even the components that didn’t have leads looked to be good.  I did know of some errors on the board such as not running VCC, GND, and RST to the ISP header.  Tying AREF to VCC rather then decoupling it. Fixed thoes issues, in the case of AREF I just cut the trace and moved on, no decoupling added. Oh an the biggest oversight on the board design was I left off the power connector.

Many attempts at fixing a non-existent hardware problem.

Many attempts at fixing a non-existent hardware problem.

Imediatly after getting everything fixed, and hooking it up to my ISP programmer I started getting the message that was going to haunt me for the next 24hrs or so.

avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.

I tried everything, followed every trace, added decoupling caps everywhere!  Finally I decided I must have fried the chip when reflowing it and built up another board.  Same results (this one the power supply wasn’t nearly as clean though, need to fix that).

MOSI - Blue, MISO - Yellow , The slave would answer but would fail to read the signature correctly.

What was really bugging me is that I was seeing traffic on both MOSI and MISO which ment both devices were talking to eachother at some point.  I decided it must be something with the board design, went back to the computer and checked everything.  Ran across a couple of posts that mentioned SPI clock speed being an issue, as these are new devices they are set to run off the internal oscillator which is 8mhz, with the divide by 8 fuse set resulting in a 1mhz clock.  Come to find out the default SPI rate in avrdude is  roughly 1mhz which will work for devices running at 4mhz or higher.  Setting the SPI clock down caused avrdude to imediatly recognize the chip as valid on both boards I built.  Tomorrow will be filled with trying to get a bootloader on them, and seeing what if any data I can get in and out of the sensors on the chip.


Homemade Flex Circuit Boards

Published on July 24, 2011, by in Hardware.


A while ago I came up with an idea for a project that seemed to require a flexible LED matrix. I could not find any comerically available, and even flexible LCDs aren’t nearly as common as I would expect. Getting a custom flexiable PCB created is possible, but pretty expensive and not exactly easy. Seeing as a LED matrix is a pretty simple circuit I started looking around for a way to make something at home.


© Ryan M Sutton, 2015