Thanks for your responses. I’ve managed to get it going fairly reliably on OTAA joins by using SF12 in the ‘EV_JOINING’ switch case then reverting to SF7 in the ‘EV_JOINED’ switch case.
In addition, within ‘\src\lmic\config.h’ I have changed the 0 to a 1 in ‘# define LMIC_ENABLE_arbitrary_clock_error 0’ to allow me to set a bigger clock error of 50% (massive I know). Will experiment further with trying to reduce this.
I have also set the Rx1 delay to 1 second in the TTN device network layer settings and I get fairly reliable receipt of downlinks.
I’m using MiniCore in the Arduino IDE so will investigate adding a 6MHz mode to see if I can fine tune things.
Resources that helped included:
https://www.thethingsnetwork.org/forum/t/adr-lmic/23167
https://github.com/RAKWireless/RAK811_LoRaWAN_Arduino/issues/2
https://www.thethingsnetwork.org/forum/t/using-lmic-setclockerror-on-mcci-lmic-howto/39776/1