Carduino 2.0
Over a year ago I got an Arduino Uno and a CAN-BUS Shield to try and make some kind of datalogger for my car. I was also interested in using the OpenXC library with it (which might need a port if there isn’t one already, since it uses the Digilent chipKIT Max32 development board). While OpenXC allows interfacing with Android stuff for phones, I’m more interested in a self-contained datalogging type deal. Connecting a phone to review/control things would be a plus, but not required. Mainly, it would record to an SD card for later manipulation on any platform.
The problem with the Uno was that it has limited flash storage space, 32KB total. Lots of strings (for LCD output) in my source combined with some poorly written C++ CAN-BUS/SD/GPS libraries that SK PANG provide with the CAN-BUS shield, and the compiled output is just too large. The libraries are a hodge-podge of various OSS projects. I intend to rewrite them in C. You can run the binaries off the SD Card, but that’s not what I wanted the SD Card for.
So, I just got a Arduino Galileo, which is way overkill. It was either get a Arduino Mega, which has enough flash but is otherwise relatively the same (and likely going to be obsolete soon), or get the Galileo. Instead of Atmega powered, it has a real Intel x86 SoC and runs Linux! No more AVR cross-compiling. And since it is Arduino Uno “shield compatible”, I don’t have to worry about the shield not working (I think! I’m assuming the shield follows the Uno spec.).
8MB Flash, 400MHz clock speed and a whole other bunch of superior specs I don’t remember. Now, the embedded Linux kernel is on that 8MB, and takes most of it up. So at first it looked like I was in the same boat. However, it has a built-in SD card slot that you can load up another, larger, image onto. Now I have two SD Card slots, one on board and one on the CAN-BUS shield. One for the OS, one for logging data. Perfect.
First I have to get familiar with the Galileo and setup the environment. After that I can start developing. So this will be split up into at least two other parts.