Low Level Programming Weekend

This weekend I did a lot of programming on this project. All the interesting stuff related to the math is still pending, but most of the boring stuff is now complete.

  1. Setting up an appropriate development environment.
    • Enabling Raspberry programming with code-completion from Windows.
    • Enabling Windows builds of the code for testing the math algorithms.
  2. Developing application drivers for the Raspberry hardware components.
    • Ensuring correct setup of hardware components.
    • Ensuring adequate correctness and performance of application drivers.
    • Added documentation for the classes in the hardware layer.
  3. Adding high level documentation for the math components that will be added next.

Reading up on the hardware specifications for the sensor board was a TODO identified as part of the first posting about the sensor board. I am not a hardware guy, so that took a long time.

With a few lines of replacements for the standard wiringPi code, I managed to bring down the resource usage of data collection, so that we have sufficient CPU cycles avilable for all the clever math coming up next. I have written a high level description of the upcoming math libraries here.

I am looking forward to adding the math libraries so I can test the new hardware on the road.

CPU consumption when collecting 102.8 movement vectors per second is down to around 2.3%. When running as root, the process can run with increased priory, which apparently results in lower CPU usage of only 2.1%. And the system currently runs with standard baud rate (100 kHz).

Leave a comment