setFrequencyBand() isn't works
- This topic has 4 replies, 2 voices, and was last updated 8 years ago by .
Viewing 5 posts - 1 through 5 (of 5 total)
Viewing 5 posts - 1 through 5 (of 5 total)
- You must be logged in to reply to this topic.
Tagged: mdot gcc
Hello! I’m trying to change frequency band on my mdot with following code (based on latest MTDOT-BOX-EVB-Factory-Firmware):
int32_t code;
if ((code = dot->setFrequencyBand(mDot::FB_EU868)) != mDot::MDOT_OK) {
std::string error = mDot::getReturnCodeString(code) + " - " + dot->getLastError();
logError("CANNOT SET BAND: %s", error.c_str());
}
logTrace("BAND: %s", mDot::FrequencyBandStr(dot->getFrequencyBand()).c_str());
but this code still printing “[TRACE] BAND: US915” on debug uart.
After some exploration I found that setFrequencyBand() in libmDot-GCC_ARM.a from libmDot-mbed5 and libmDot-dev-mbed5 repos have following stub:
Disassembly of section .text._ZN4mDot16setFrequencyBandERKh:
00000000 <mDot::setFrequencyBand(unsigned char const&)>:
0: 2000 movs r0, #0
2: 4770 bx lr
Does that mean building with gcc isn’t really supported/tested?
Eugene,
The ability to change the device’s factory configured frequency band isn’t in normal firmware. Can you help us understand why you need to do this?
Cheers,
Mike
By default gcc-compiled firmware chooses US915 band, but my device (mtdot-box-g-868) intended to work in EU868 band.
Eugene,
That may mean the flash filesystem on your device has been corrupted. Can you share debug logs so we can diagnose the issue?
Cheers,
Mike
Resolved by moving to opensource loramac-node stack.