How did you fix this? I was having a similar issue, but mine is due to the Device ID resetting itself after the device is powered off.
EDIT: I did some research and found the DevEUI on the mDot Box is coded at the factory and not meant/able to be changed. In the end I updated my Device EUI in my TTN App to match the factory set DevEUI on the mDot Box. Joins are now successful after cycling the power on the mDot Box.
How are you intepreting the data from the mdot box? Got any suggestions how to plot this?
Trivia:
After losing several mdots to flash corruption I received some advice from @andrewl and Multitech. It involved rebooting into the bootloader and erasing the flash. This also erased the DevEUI so a special firmware to set the DevEUI was supplied. You could override the DevEUI here, but given that the DevEUI is printed on the sticker I’d seriously avoid changing it, and as you’ve done, fix the app. I’m also wondering how they knew the frequency without me specifying so perhaps it’s dictated by the DevEUI.
I just made my configure script always toggle it back and fourth. I never saw it happen again but the toggling seems to work, so I just left it as is to prevent it happening again.
Is there a way to change the frequency band from US915 to AU915 with the AT commands for the mdot-box ?, is the problem that I am having since my Conduit gateway is configured for AU915
I got the files from the local supplier I bought the hardware from (after I requested it). I’ve messaged you my email address, I can send you the files.
I asked about data format over on slack, and got an answer. Here’s the application payload format to decode temperature, lat and long at TTN:
function Decoder(bytes, port) {
// Decode an uplink message from a buffer
// (array) of bytes to an object of fields.
/*
Datenformat für Modus Survey GPS
Byte 0 is 0
Byte 1 is temperature in Celsius
Byte 2 is 0
Byte 3-6 is GPS Latitude
Byte 7-10 is GPS Longitude
Bytes 10+ is padding with 0
*/
var boardtemp = bytes[1];
var lat = ((bytes[3] << 24) | (bytes[4] << 16) | (bytes[5] << 8 ) | bytes[6]) / 2147483648*90; // 2^31 * 90
var long = ((bytes[7] << 24) | (bytes[8] << 16) | (bytes[9] << 8 ) | bytes[10]) / 2147483648*180; // 2^31 * 180
boardtemp = 1.8 * boardtemp + 32; //
// if (port === 1) decoded.led = bytes[0];
return {
boardtemp: boardtemp,
lat: lat,
long: long,
};
}
There is also a TTN application that will read your box and post to ttn mapper @Verkehrsrot can help with that.