I'm a newbie to Linux, and wanted a short intro project to gain some familiarity. I followed this step-by-step tutorial from Octavo Systems to make my Magic 8 Ball. It was fairly straightforward to follow; even installing a Linux image on my PocketBeagle was not hard when I followed the PocketBeagle System Reference Manual linked in the tutorial. Connecting the board via Cloud9 IDE was also much easier than I expected to be. As you can see in the video below, my Magic 8 Ball works great!
I have one note - simply invoking the device tree overlays is not possible because the one for the MPU assumes the wrong I2C address, and will need to be updated. For simplicity's sake, I ended up downloading both the binaries provided in the tutorial, and edited the one for the MPU. This is what I did:
I first dragged and dropped the overlays into my Cloud9 directory and then used the following commands:
I got the source code:
git clone https://github.com/beagleboard/bb.org-overlays
I got the drivers:
To update the I2C address I went to the source code using this command:
I saw this:
reg = <0x68>
Which I changed to 0x69, and exited using Ctrl-X.
I next recompiled the binary driver and then copied the binary file over to the firmware directory:
sudo cp src/arm/PB-I2C2-MPU-9DOF-CLICK.dtbo /lib/firmware/
Finally, I rebooted.
Note that the password for debian is temppwd.
After this, I proceeded to invoke the overlays as per normal and then continued.
By following this tutorial, I was able to meet my goal of learning more about programming a microprocessor using an Embedded Linux system. Being guided step-by-step ensured that I actually understood the commands that I was using, as opposed to just following them.
I was even able to follow the extension and enable AutoBoot, and now I can have my Magic 8 Ball up and running simply by powering it up through USB. I'm never going to sweat a decision again!