[SOLVED] Tracker One + AB1805 Watchdog Timer -> Not compiling

Hello Folks,

I am getting a compile error when I expose line 49
ab1805.loop(); in my code.

I am following the “minimal” example from AN0023 link

I’d like help understanding the error I am getting during compilation. Currently I am unable to understand what the error I am getting is.

tracker deviceOS@2.0.0-rc.3

Thanks!

Here is my code:

#include "Particle.h"
#include "tracker_config.h"
#include "tracker.h"
#include "Devices.h"
#include "AB1805_RK.h"

SYSTEM_THREAD(ENABLED);
SYSTEM_MODE(AUTOMATIC);

PRODUCT_ID(XXXXXX);
PRODUCT_VERSION(XXX);

SerialLogHandler logHandler; 
   
Devices Device;

AB1805 ab1805(Wire);

void setup()
{
    Serial.begin(115200);
    Tracker::instance().init();
    ab1805.setup();
    ab1805.resetConfig();
    ab1805.setWDT(AB1805::WATCHDOG_MAX_SECONDS);
    Device.setup();
}

void loop()
{
    Tracker::instance().loop(); 
    ab1805.loop(); // This causes the compile error
    Device.loop();
}

Here is the compile error I get.
I’m not able to understand what is causing the issue from the error message.

:::: COMPILING APPLICATION

Creating /Users/name/Documents/TW_Tracker_1/target/2.0.0-rc.3/tracker/platform_user_ram.ld ...
/Users/name/.particle/toolchains/gcc-arm/9.2.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: /Users/name/Documents/TW_Tracker_1/target/2.0.0-rc.3/tracker/TW_Tracker_1.elf section `.data' will not fit in region `APP_FLASH'
/Users/name/.particle/toolchains/gcc-arm/9.2.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: region `APP_FLASH' overflowed by 308 bytes
collect2: error: ld returned 1 exit status
make[2]: *** [/Users/name/Documents/TW_Tracker_1/target/2.0.0-rc.3/tracker/TW_Tracker_1.elf] Error 1
make[1]: *** [modules/tracker/user-part] Error 2
make: *** [compile-user] Error 2
The terminal process "/bin/bash '-c', 'make -f '/Users/name/.particle/toolchains/buildscripts/1.9.2/Makefile' compile-user -s'" terminated with exit code: 2.

Press any key to close the terminal.

You can’t use the AB1805 Watchdog Timer tutorial on the Tracker SoM/Tracker One as the Tracker already has AB1805 support built into the Tracker Edge firmware.

The wake and watchdog features are already built into Tracker Edge (v10) so you should not use the external library.

Ok Great! Thanks @rickkas7. That explains why I was getting the error.

Going one step further. I see the in the Tracker Edge v10 release the WDT is enabled by default, but I’m having trouble understanding what that means.

Does that mean that the HW WD timer is already enabled?

I was looking at the documentation and I am having trouble understanding how to use this service.

Is there a similar usage pattern on another feature on the Tracker One that I could follow?