Build Failed ruuvi.firmware.c on SES

Hi,

I am new to ruuvitag.
I have cloned the repository from GitHub - ruuvi/ruuvi.firmware.c: Ruuvi Firmware version 3. Built on top of Nordic SDK 15, uses both Ruuvi and external repositories as submodules. In Beta, no breaking changes are intended but may be done if absolutely necessary and running SES V5.68. I was using the last version of SES but because I had a problem with the compiler telling me that “__vfprintf not such file or directory” this is why I retrograded. I have also extracted nRF5_SDK_15.3.0_59ac345 into my ruuvi.firmware.c. repository.

The goal is to compile a custom firmware where I can dictate the sampling rate and the freqency at which I can send the data with the bluetooth protocol.

Trying to compile “ruuvitag_b” return me “invalid storage class for function ri_bme280_mode_set_single”. Reading about class storage function I remove the “static” keyword from “ri_bme280_mode_set_single” and “ri_bme280_check_humidity” thinking it could solve my problem. Trying to recompile again and I am now seeing other error on the compiler.

I do not know what I am doing wrong and am at a loss here.

Hello,

Personally I’m using SES v5.50 Nordic Edition, but it seems that is not available anymore. I tried latest SES version as well, but some stdint macros make the compiler think some case labels are not constant and that crashes the build.

I don’t have a quick fix for SES here, but you should be able to compile the project using ARMGCC / Makefile

Hello Osto,
using make into ./ruuvitag_b/armgcc but it gives me this message
It sayd that arm-none-eabi-gcc --version failed but next line in type this exact command but it still doesn’t work. I am really confused.

Hello,

The toolchain expects a specific version of ARMGCC installed in specific folder, please check that configuration in file /nRF5_SDK_15.3.0_59ac345/components/toolchain/gcc/Makefile.windows matches yours.

You should use the recommended version 7.3.1 of compiler.

Hi Osto, thank you for your help. I did as you said, installed the proper version of make and it compiled successfully. I used the .hex to generate a .zip DFU. I unfortunately encountered another problem trying to upload the package from my phone using nrfConnect I get:

[DFU] Remote DFU error: EXTENDED ERROR
[DFU] Details: Signature mismatch (code = 8)
[DFU] Disconnected
and then i get a GATT error 8.

This is the command I used to create the.zip
nrfutil pkg generate --debug-mode --application F:\git\ruuvi.firmware.c\src\targets\ruuvitag_b\armgcc_build\nrf52832_xxaa.hex --hw-version 3 --sd-req 0x91 F:\git\ruuvi.firmware.c\firmwareOutput\ruuvi.zip

In this case I think you are trying to upload your own package signed with your own key to RuuviTag.

To generate the package compatible with bootloader we are using, you need to use our signing key. You can find the key at https://github.com/ruuvi/ruuvi.nrf5_sdk15_bootloader.c/releases/download/3.0.0/ruuvi_open_private.pem and use command nrfutil pkg generate --application _build/nrf52832_xxaa.hex --application-version 1 --hw-version 0xB0 --sd-req 0xB7 --key-file ruuvi_open_private.pem ${BINNAME}\_dfu_app.zip to generate a compatible, signed DFU package. If you want to use you own signing key, you’ll need to use a SWD programmer to erase and reprogram the chip.