Monday, July 28, 2014

Breadboard wiring finalized

At least for now, I've finalized the wiring of the components on the breakout board. Initially I used big arcs of prefabbed jumper wires. Once I felt good about my choice of pins I went back and custom cut perfect lengths of wire to make it clean. This isn't just being nitpicking. It makes the breadboard easier to inspect avoiding mistakes. It also makes the board more durable if you transport it. This is particularly important be cause many hours of development on this project have taken place at dropzones, in coffee shops, and in bars.

Gallery of Errors

In my explorations with Arduino, I have encountered many errors with the compiler and other areas. This is a place to list those issues and their solutions in the hopes of helping others and easily fixing them next time I encounter them.

Arduino compiler error

error: expected constructor, destructor, or type conversion before '.'
Caused by calling a instance method outside of a function. This is confusing because I instantiate/initialize the object instance outside of any function, but I cannot call a configuration method on the object on the next line.

Arduino compiler error

error: 'void Example::loop()' cannot be overloaded
Caused by failing to close the class declaration of 'Example' in the Example.h header. Add "};" to the end of the file. ;-p

Friday, July 25, 2014

Little details

In order to share the InView with the world, I'm going to have to be able to show how it's wired up. For that there is a wonderful tool called Fritzing. It already had most of the parts I needed except for the bubble display I've chosen to use on the Mk1. So, in order to get my illustration pretty, I needed to draw my own part. Just like everything else I do, I did it in a way that I believe will make it useful to others. It's simply called QDSP-6064 out on GitHub.

Example of a QDSP-6064 bubble display driven by two 74HC595 shift registers
Sometimes it's the little things that matter.

Tuesday, July 22, 2014

First code commit made

Okay, so it's not going to do much to help you make your own altimeter, but the important part is that I created a github account and started a repo. So far I've only documented the hardware I've chosen. My C code is going to need a lot of work before I publish any of that. But, this is already more than any of the competitors in the market have done!

Thursday, July 17, 2014

Choosing a name

There are only two hard things in Computer Science: cache invalidation and naming things.
-- Phil Karlton

If that's true it's all down hill from here. I wanted to name both the device I'm building and the organization responsible for it. I first wanted something both "techie" and skydiving related like "Blue Skies". Combined searches on a domain name registrar and a name search of the Georgia Secretary of State was pretty discouraging. After a few hours I returned to one of my first ideas of "OpenSkies" and realized that by shortening it also became personally relevant. The last half of my last name is "osky". Of course I couldn't get the "dot com" of that, but as if to confirm the name I should choose for the device, I did find available and for a good price. Up to that point I was unsure if I wanted to give the project a name that specified the form factor I intend to implement. After all, this is Open Source software and hardware. Even though you could use this project to build a wrist altimeter or a purely audible altimeter, there is no product on the market that attempts to put an altimeter on your helmet and "in view" at all times. For that reason I've decided to name the first ever "completely open" skydiving altimeter, the OSky InView.

Thursday, July 10, 2014

Making an altimeter in under 2 hours

Well, it's technically an altimeter. But I will not be jumping out of a plane with it any time soon. Yesterday I received the shipment from SparkFun. I soldered headers onto all of the PCBs. I positioned them on a breadboard, and had the discipline to walk away. This morning I got up at 5am and got started. I've managed to accomplish 6 of this weeks development goals.

  1. read altitude from MPL3115A2
  2. read temp from MPL3115A2
  3. write data to OpenLog
  4. set current time on RTC
  5. read time from RTC
  6. illuminate a segment via shift register

That's pretty amazing because I only expected to accomplish the first 2.