Hi there!
I am using LMIC 1.5. Looking for the same answers as you…
Found a way to lock join frequencies to a single channel by setting CH0,1,2 to the same frequency.
To fix the spreading factor: in lmic.c, in initJoinLoop modify
// setDrJoin(DRCHG_SET, DR_SF7); setDrJoin(DRCHG_SET, LMIC.datarate);
In the main code use:
LMIC.datarate=DR_SFx
- where x stands for the SF use want to use
To avoid SF hopping during join: in lmic.c, modify nextJoinState:
// setDrJoin(DRCHG_NOJACC, decDR((dr_t)LMIC.datarate)); setDrJoin(DRCHG_NOJACC, (dr_t)LMIC.datarate);
So it wont try to decrease the SF when previous join failed.
Cheers