Rhf76-052am - getting it working with OTAA


(Th Koeln G Mpw) #61

This timeout parameter works on my Node :slight_smile:

TY jturello


(Wayne Peacock) #62

Anyone trying to get these modules working with the AU915 band and OTAA must update to firmware version V2.1.19 (25 May 2018) This can be downloaded from RisingHF’s wiki page once you have a login.

If you don’t upgrade, you will be able to send a join request to a gateway, the gateway will acknowledge with a join accept, but the RHF76-052 will never receive the join accept and fail. ABP will work if you never need to use the downlink.

There was a AU915 downlink issue fixed in V2.1.17 and also a DR6 issue fixed in V2.1.19.

As we use sub-band 2 in Australia, simply delete channels that are not used with AT+CH=‘Channel to Del’, 0.
In most cases this is 0 to 7, 16 to 64, 66 to 71. It should then work first go!


(Kalon33) #63

Could you post the firmware file somewhere for people without RisingHF wiki login?

Is there a changelog from 2.1.16 to this one?

Thanks!


(Nick Iot) #64

Hi !

Is it possible to share the firmware release 2.1.19 or later I am stuck with 2.1.15 and having issues in joining to network, Thanks in advance


(Balisteri) #65

This code I customized and I am sharing works perfectly for me.
I’m using version 2.1.16
I use the default libraries of seeeduino.

#include <TheThingsNetwork.h>
#include <LoRaWan.h>
#include “DHT.h”

#define DHTPIN 8
#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);

unsigned char data[4];

char buffer[256];

void setup(void)
{
dht.begin();

SerialUSB.begin(115200);
while(!SerialUSB);

lora.init();
memset(buffer, 0, 256);
lora.getVersion(buffer, 256, 1);
SerialUSB.print(buffer); 

memset(buffer, 0, 256);
lora.getId(buffer, 256, 1);
SerialUSB.print(buffer);
lora.setId("XXXXXXXX", "XXXXXXXXXXX","XXXXXXXXXXX" );        
lora.setKey(NULL, NULL, "XXXXXXXXXXXXXXXXXXXXXXXXXXXX");

lora.setDeciveMode(LWOTAA);    

lora.setDataRate(DR5, EU868);

lora.setAdaptiveDataRate(true);    

lora.setChannel(0, 868.1);
lora.setChannel(1, 868.3);
lora.setChannel(2, 868.5);
lora.setChannel(3, 867.1);
lora.setChannel(4, 867.3);
lora.setChannel(5, 867.5);
lora.setChannel(6, 867.7);

lora.setReceiceWindowFirst(1, 868.3);
lora.setReceiceWindowSecond(869.525, DR0);

lora.setPower(14);

while(!lora.setOTAAJoin(JOIN));

}

void loop(void)
{

bool result = false;
delay(2000);
SerialUSB.println("-- LOOP");

uint32_t humidity = dht.readHumidity(false) * 100;

// float t = dht.readTemperature(false);
uint32_t temperature = dht.readTemperature(false) * 100;

byte payload[4];

payload[0] = highByte(temperature);
payload[1] = lowByte(temperature);
payload[2] = highByte(humidity);
payload[3] = lowByte(humidity);

SerialUSB.print("Temperatura: ");
SerialUSB.println(temperature);
SerialUSB.print("Umidade: ");
SerialUSB.println(humidity);

// SerialUSB.print("Temperatura: " + String(temperature));

// SerialUSB.print("Umidade: " + String(humidity));

//byte payload[4];
//data[0] = highByte(t);
//data[0] = lowByte(t);
//data[2] = highByte(h);
// data[1] = lowByte(h);

// data[1] = h;
// data[2] = t;

result = lora.transferPacket(payload, 4, 10);
//result = lora.transferPacket("Marcelo Balisteri!", 10);

if(result)
{
    short length;
    short rssi;
    
    memset(buffer, 0, 256);
    length = lora.receivePacket(buffer, 256, &rssi);
    
    if(length)
    {
        
        SerialUSB.print("Length is: ");
        SerialUSB.println(length);
        SerialUSB.print("RSSI is: ");
        SerialUSB.println(rssi);
        SerialUSB.print("Data is: ");
        for(unsigned char i = 0; i < length; i ++)
        {
            
            SerialUSB.print("0x");
            SerialUSB.print(buffer[i], HEX);
            SerialUSB.print(" ");
        }
        SerialUSB.println();
        
    }
}
delay(5000);

}

This is the TTN decoder Temp and Hum


// Decodificação do payload no tttn

function Decoder(bytes, port) {
var humidity = (bytes[0]<< 8) | bytes[1];
var temperature = (bytes[2] <<8) | bytes[3];

return {
humidity: Umidade,
temperature: Temperatura
}
}

mensagem%20temp%20e%20umidade%20chegando


(Kean Tatt Ong) #68

Hi, have you managed to solve the problem of unsuccessful update the firmware? I also encountered the same problem. I followed the steps in Seeeduino wiki and firmware version 2.1.19.

I’m in Malaysia, asia region with frequency band AS920-923. My current firmware version is 2.0.10. On my first attempt, using extraputty to connect to the seeeduino lorawan board w/gps, the small window of the transferring file via Ymodem -> send have no progress as the packet# shown 0/58. After that, the small window disappeared and I assumed failed then proceed to the next attempt. But now the small window cannot read the file of the firmware with error file not found.

Hope get some insight to solve the problem. Anyone is welcome.


(Kean Tatt Ong) #69

Hi, I have another question. I referred to the sample code, Seeeduino_LoRaWAN_for_hybrid_gateways provided by @brady_aiello. I get the following output in Arduino serial monitor:

+RESET: OK
+ID: DevAddr, XX:XX:XX:XX (My DevAddr from AT+ID in serial monitor)
+ID: DevEui, XX:XX:XX:XX:XX:XX:XX:XX (My DevEui from AT+ID in serial monitor)
+ID: AppEui, XX:XX:XX:XX:XX:XX:XX:XX (From the console of ttn)
+ID: DevEui, XX:XX:XX:XX:XX:XX:XX:XX (My DevEui from AT+ID in serial monitor)
+ID: AppEui, XX:XX:XX:XX:+KEY: APPKEY XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
//Both AppEui and AppKey are from the console of ttn
+MODE: LWOTAA
+DR: US915HYBRID
+DR: DR0
+DR: US915HYBRID DR0 SF10 BW125K
+CH: ERROR(-2)
+CH: ERROR(-2)
+CH: ERROR(-2)
+CH: ERROR(-2)
+CH: ERROR(-2)
+CH: ERROR(-2)
+CH: ERROR(-2)
+CH: ERROR(-2)
+RXWIN1: 0,923200000
+RXWIN2: 923300000,DR8
+LW: DC, OFF, 0
+LW: ERROR(-2)
+POWER: 10
+JOIN: Start
+JOIN: NORMAL
+JOIN: LoRaWAN modem is busy
+JOIN: Join failed
+JOIN: Done
+MSGHEX: Please join network first
+JOIN: Start
+JOIN: NORMAL
+MSGHEX: LoRaWAN modem is busy
+JOIN: Join failed
+JOIN: Done

I found that the are setting the DevEui and AppEui 2 times according to the output. (I wonder why?) But it not able to set the DevAddr to the one generated from the console of ttn, is set according to the one get from AT command, AT+ID. Therefore, the are different DevAddr between the console of ttn and the AT+ID command from the serial monitor. I’m not able to change the DevAddr from the console.

There are also error in setting the 8 channels for AS1 region. Also, the join is failed.
Any idea?