Tracker - the finer points

I recently bough a Cow Tracker … for a project to track wild horse in Namibia. With a little recent experience in TTN and LoraWAN, I have got it conneted to TTN and displaying a position in Node Red.

However it is not clear to me from the instructions

how I put the following comments in

  • Turn off ADR: adr=0
  • Set Spreadingsfactor 7, 8 or 9: sf=9

or, say, enable Cayenne

Enable the cayenne low power payload by sending cay=1 in the bootmenu of your device.

Therre must be some place in the code to be compiled (as there is for the AppEUI’s) to set these parameters.

In particular, I am concern about the drop in battery voltate over three days…while in the South of England Sun… and may not have some low-power setting enabled

Advice much appreciated

Richard Wylde


If you scroll down on the page you linked, refer to the section under ONE v3 titled Universal Tracker - SODAQ payload and Cayenne LPP, Configure Your Board.

You will need to connect to your board with a Serial Monitor. The three parameters you mentioned (ADR, SF and Cayenne) are set by command. Once set, save the configuration and allow the tracker to exit the config mode.

I’m surprised you were able to get your board connected at all as this is the same process used to enter the DevEUI, AppEUI and AppKey.

Thansk for this. I will have another go at the terminal screen, but it did not look editable when I looked at it…

Hence setting the TTN parameters in the top page of the sketch.


In passing, can these other parameters be set this way… It seem a more secure method?

Any comment on the dropping value of the battery voltage? What setting are need to conserve power?

Advice appreciated


I have now reactived the Tracker and appera to have set the spreading factor to 9 and turned ADR off

however the gateway is still showing the data rate as SF7


What am I doing wrong?

Help appreciated


There might be a number a few things happening here which could result in another SF being used. Primarily, either the device is not being configured for the correct SF or ADR is not being disabled, or somehow those settings are being overridden on the MAC layer.

To start with I would recommend enabling full debug for the RN2483 library and capturing all the raw commands and response sent during the configuration. Using that it will be possible to confirm that at least the configuration is being done correctly.

In order to enable debug, you need to make sure the ‘#define DEBUG’ in the cpp file is not commented out. Additionally, the instance needs to be assigned a debug / diagnostic stream.


Thansk for this. Have set the “#define DEBUG” and recompiled.

Setting the satelite to 6 gave me 7 satellites, rather than 4.

Not sure I undertand your comment

Additionally, the instance needs to be assigned a debug / diagnostic stream.

but there is (as one might expect) now change in the SF7


I have a particular interest in the SF as the plan is to use this to track wild horse in Namibia, and range is therefore important… and at the same time the Gateway is not likely to be overloaded.

Help appreciated


Just a quick additional comments… other changed paameters - such at the “fi” are being stored…

Is there somewhere in the code (I fear I can’t see it) where the inital “ADR” and “SF” parameters are set.


Hi @cavediver,

Default setting values can be found in the config.cpp file.
Some default settings are overwritten in the .ino file.

Best regards,


Thanks for this…Mea Culpa . I should have seen it.

(remembering I am serching for long range, and can cut down the GPS frequency if battery consumption turns out to be poor)

I have set sf=11 there, adr =0 etc…and it appears correctly on the boot terminal screen.

However TTN is still showing “data_rate”: “SF7BW125”,

Is this an error on the part of TTN (coming from, say the first contact)… or is the sf=11/adr being overruled?

Can I check this by looking at the actual S/N or rssi values?

Best Wishes


I performed some tests by setting the sf to different numbers (7,9,12) and there is no change in the rssi number/snr… from which I conclude that - notwithstanding what the ternal says, the SODAQ ONE is not changng the sf parameter.

Advice appreciated please

Richard Wylde

From the comment

Some default settings are overwritten in the .ino file.

I found a setting in “LoRaHelper” which I also changed… to sf=11, as below

but still no luck.

are there other commands lurking about somewhere?

Help appreciated


Hi @cavediver,

We have different versions of the Universal Tracker, which one are you using?

Best regards,

It is this version

Is it the case that the unit will not go beyond sf=9… ie trying to work at sf=11 etc will fail too?

Though I am lost as to why increase the time to transmit a fixed number of bytes should mean that “a payload” should not fit.

and - if sf=9 is the maximum sf value, are ther parameters lurking elsewhere in the code?

Advice/Help appreciated


Hi @cavediver,

Thanks for sharing the version of the Universal Tracker you use.

I can see in your order you bought a EU version RN2483.
Here you can use all spreadingfactors. 7, 8, 9, 10, 11 and 12.

There is a known bug in the v1.0.3
In the systemSleep() you should remove “network.setActive(false);”

I recommend to not change anything in the LoRaHelper.
Keep the changes to the config.cpp and the .ino
You should be able to check in the menu the current/used settings.

I don’t see anything in the code what could cause an issue.
Can you turn on debug, dbg=1 in the menu.
And share the logfile. You can email it to me jan at sodaq dot com.

Best regards,

Thanks… will try that when a second cow tracker arrived

I fear - during tests in some woodland I own - the first on has been taken/stolen… I am ever hopeful it might pop up somewhere…


The replacement Cow tracker has arrive, and is now gving my required sf=12… Thank you

In passing, if this is a know bug… will you be correcting the files on the net?



I fear, Jan , that this problem has returned… in an odd way

I now have two Cow trackers: The firse one I bout, which was “removed” while testing, but has now been recovered, and a second one.

The second one - refere two above - is working with the

There is a known bug in the v1.0.3
In the systemSleep() you should remove “network.setActive(false);

code in place, and give me sf=12

The initial one - recovered - for some reason had failed - would not join TNN, and I therefor purchase a new SODAQ one board and install it inthe old housing (reusing the battery and solar cell)

That has sf=12 set, has joined TTN, with the same code, but different DEVEUI etc…

has sf=12

bu still gives a TTN timing of SF=7

You can see the two here

Any ideas? To the besy of my knedhe the “sketch” just differs by the EUI #sara

Anying odd about the most recent SODAQ one boards?

Any help appreciated. Sf=12 one being shipped off tomorrow to Namibia to track these wild horse


Hi @cavediver,

It’s strange behaviour that one is accepting the SF settings and the other isn’t.
Do you get this error on both OTAA and ABP ?

There haven’t been any changes to the boards hardware.

The software on the RN module could be different.
You can use this tool to check the firmware on the module and to update it.

Can you check if the firmware on the RN modules is the same?

Best regards,


I fear that the SF12 working one has been shipped to Namibia, so I now don’t have access to that one anf more…and the people who will be trying to use it are not “geeks” (I’m a part-time geek)

I downloaded the RN2483 Firmware updater.

Made a guess that I needed the RN2483_105 version,and loaded it in (I hope)

#error “Please define one the the following: HEXFILE_RN2483_101, HEXFILE_RN2483_103, HEXFILE_RN2903AU_097rc7, HEXFILE_RN2903_098”

12:56:19.356 -> …
12:56:19.856 ->
12:56:19.856 -> * Starting HEX File Image Verification…
12:56:19.856 -> 0% |||||||||||| 25% |||||||||||| 50% |||||||||||| 75% |||||||||||| 100%
12:56:23.882 -> HEX File Image Verification Successful!
12:56:25.285 ->
12:56:25.285 -> * The module is in Application mode:
12:56:25.285 -> RN2483 1.0.5 Oct 31 2018 15:06:52
12:56:25.285 ->
12:56:25.285 -> Ready to start firmware update…
12:56:25.285 -> Firmware Image: RN2483_105
12:56:25.285 ->
12:56:25.285 -> Please press ‘c’ to continue…
12:56:41.352 -> Erasing firmware and attempting to start bootloader…
12:56:43.549 ->
12:56:43.549 -> * The module is in Bootloader mode.
12:56:43.596 -> Bootloader Version: 101
12:56:43.596 -> Device ID: 5424
12:56:43.596 ->
12:56:43.596 -> * Starting firmware update…
12:56:43.596 -> 0% |||||||||||| 25% |||||||||||| 50% |||||||||||| 75% |||||||||||| 100%
12:57:18.229 -> Firmware update has finished successfully! Please unplug the module to restart.
12:57:18.229 -> Elapsed Time: 35.88s

and the reloaded the Tracker software

The terminal gives the required SF=12

Sorry to say that I am still getting


Where next?.. It is perfectly possible that I am just being stupid…


…and update over the weekend.

I managed to get the third SODAQ One v3 board to work…(it had failed to join, or rather rejoin TTN).

By using the “sys factoryRESET” on the RN2483, via your code, amd setting up a new node.

[So my operational need are now fixed… and, with spare time, will see if I can get the spare SODAQ one board to work]