Dev environment and compiling firmware

Hello, I would love to compile and build the linkit core firmware so that I can upload the firmware image using pylinkit software.
I have git cloned the firmware from github
And I have build the docker image using

docker build -t my-linkit-image .

Now, I assume that I should run the docker image, but it doesn’t run.
Then I assume that I should use cmake in the CLS-Argos-Linkit-CORE\ports\nrf52840 directory to build the firmware image, but I haven’t gotten there yet. ( I assume that the README is still up to date, because I am using that as a reference)

Am I on the right track, or am I missing something here?
(The plan is to add some code to the firmware in order to access the Extra GPIO pins and get readings from the accelerometer, so I would want to create my own .img files to flash the linkit device with).

Kind regards

Hi Quina,

Before modifying the firmware, there is support for a BMW160 accelerometer already included in the latest release of Linkit and a footprint provided to include it on the board.

The accelerometer (BMX160) configuration options supports either periodic polling (X, Y, Z, TEMPERATURE) and/or a wake-up that may optionally trigger a GNSS on a specified G-force threshold. The logging format (CSV) is:


Any periodic sampled data is logged to its own “axl” logfile type which can be retrieved using pylinkit.

Let us know if you’d still like help adding a custom accelerometer via the GPIO pins if you are thinking of adding your own custom device vs the Bosch BMX160.

The BMX160 accelerometer is a discontinued product, but I see that the BMA400 was part of revision 2.0 and 3.1 in the Schematic documents. I also see that the BMX160 is a 14-pin IC, whereas the BMA400 is a 12-pin IC, which means that they are not drop-in replacements.
I can see that U7 is the footprint for the BMA400 accelerometer (confirming that in the Schematic document for revision 3.1)

I am working on a Linkit Core (PCB rev 3.1) device.

So, with that said,

  1. Would the firmware (v3.3.27) work if I use a BMA400 accelerometer?
  2. I want to run and test an edge classifier onboard the device instead of keeping the samples and doing that computation afterwards. That is why I want to be able to build and compile the firmware on my side. Would I be able to do that?

Hi Quina,

Yes, v3.3.27 will allow you to connect external I2C devices to the board via the GPIO pins allowing you to use the BMA400 if required.

In response to your earlier question regarding compiling the fireware, you will need to make sure that you have the arm-none-eabi-xxxx tools on your path when invoking cmake. We use arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-eabi downloadable from ARM.

The README should be up to date.

Let us now how you get on.

1 Like