TTN UNO - BETA release - Documentation

Thanks for your reply JamesC.
I want to know if someone succeeded in getting an ack after sending a confirmed frame with an RN2483 in version 0.9.5 ?

Thanks

Hi Lespagnol,

Updating to v1.0 is not that difficult. I think it would be a good idea to upgrade your RN2483 first.
Other posts in this forum describe how to do this.

I also would like to add my own devadr reservation (temp) to the given list, however logging on does not work ? I used the same credentials as for logging on to the forum. Correct ? Or should I create a dedicated acount for accessing the list ?

Wiki uses separate account database, you need to create an account on it.

clear, Thnx !

Hi,

I solved my problem with confirmed messages.
Now I can send unconfirmed messages or confirmed messages…Receive them on the server side and answer.
But sometimes the RN2483 send ‘busy’ when i try to transmit messages or ack and i wanted to know if some can help me because when the module answers me ‘busy’ i can never recover from this state…
Is there anything to do ?

My other question is when the module resets, the sequence number restes too but on the server side when the netxork server receives a frame from a known motes but with a sequence number lower than the last it rejects the frame.
Somebody knows how to advertise the server that the mote has been reseted ?

Thank you for your help.

I think that because the RN2483 has the official LoraWAN stack installed, and with respect to the 868mhz ISM band regulations (else it would never have got the CE marking), it will prevent you from going over the ISM duty cycle limitations … so … correct me if i’m wrong, but busy simply means you have used up your air time…

solution… SEND less data :slight_smile:

secondly, TNN never answers (yet) to a confirmed message, because it hasn’t been implemented yet, so the channel stays busy for a verrry long time waiting for resonse… for now, only “uncnf”(unconfirmed) messages will work as expected.

Hi Niels,

Thank you for your answers.
I thought about the ISM band regulations and it maybe the problem because i’m doing some tests so I send lots of data.
To answer to your second message part, i’m not using TTN server but my own server (semtech server sources) so it answers to cnf messages and it works well.

I’m gonna try to respect ISM band regulation.

Thnaks

which the RN2483 doesn’t allow you to :wink:

Hi everybody,

Happy new year for all of you.
Did someone use the Adaptative Data Rate with the rn2483? If yes, is thatt working (use a SF12 for exemple and some frames later the network tells your mote to use SF10 or lower) ?

Thanks for your answers

TTN does not support ADR at the moment so you would need to use another backend like Semtech for these tests.

Hi Kersing,

Thanks for your answer, but i’m using the semtech server.
I’m studying the source code and it seems there is a pbm with my gateway region and the mote region. The parameter seems to change after i add my gateway on the server withe a europe region and when the Network Controller wants to see the mote region it sees American region.
I will investigate but i don’t understand why.

Hi Kersting,

Do you know by any change if the “Upstream transmition control” (Semtech server) should work on a RN2483 ?
My Twisted Python reference application that I am working on, I would like to implement this feature (that is reationg on it)…
I expect the RN2483 already to respond correctly on forced settings from the server, but using the status info of the RN2483 I can’t find out wheter these settings are actually send or acted on. Might be a problem that my close by Gateway might use a SF7/125, so probably a change in upstream settings will never be send…

Haven’t tried it so I don’t have a clue if it works.

Hi kersing ,

1day back i started playing with RN2483,After uploading the code on RN2483 by using Arduino Uno board i am getting garbage type output

Below code I am using
// RN2483
#include “SoftwareSerial.h”

SoftwareSerial lora(3, 4); // RX, TX

void sendCmd( char *cmd) {
Serial.write( cmd );
Serial.write("\n");
lora.write(cmd);
lora.write("\r\n");
while (!lora.available() ) {

delay(100);

}
while (lora.available()){

Serial.write(lora.read());}

}

void waitForResponse() {
while (!lora.available() ) {
delay(100);
}
while (lora.available())
Serial.write(lora.read());
}

char getHexHi( char ch ) {
char nibble = ch >> 4;
return (nibble > 9) ? nibble + ‘A’ - 10 : nibble + ‘0’;
}
char getHexLo( char ch ) {
char nibble = ch & 0x0f;
return (nibble > 9) ? nibble + ‘A’ - 10 : nibble + ‘0’;
}

void sendData( char *data) {
Serial.write( "mac tx uncnf 1 " );
lora.write( "mac tx cnf 1 " );

char *ptr = data;
int idiotCount = 50;
while (*ptr && idiotCount ) 
{
	lora.write( getHexHi( *ptr ) );
	lora.write( getHexLo( *ptr ) );

	Serial.write( getHexHi( *ptr ) );
	Serial.write( getHexLo( *ptr ) );

	ptr++;
	idiotCount--;
}

lora.write("\r\n");
Serial.write("\n");
delay(5000);

while (lora.available())
{
Serial.write(lora.read());
}
}

void setup()
{
Serial.begin(57600);
lora.begin(57600);
Serial.println(“RN2483 Test”);

pinMode(5, OUTPUT);
digitalWrite(5, HIGH);
delay(50);
digitalWrite(5, LOW);
delay(50);
digitalWrite(5, HIGH);
delay(50);

waitForResponse();

// set the resolution to 9 bit

sendCmd(“sys factoryRESET”);
sendCmd(“sys get hweui”);
sendCmd(“mac get deveui”);

// For TTN
sendCmd(“mac set devaddr AABBCCDD”); // Set own address
sendCmd(“mac set appskey 2B7E151628AED2A6ABF7158809CF4F3C”);
sendCmd(“mac set nwkskey 2B7E151628AED2A6ABF7158809CF4F3C”);
sendCmd(“mac set adr off”);
sendCmd(“mac set rx2 3 869525000”);
sendCmd(“mac join abp”);
sendCmd(“mac get status”);
sendCmd(“mac get devaddr”);
}

void loop() {
// put your main code here, to run repeatedly:

char msgBuf[40]=“divum”;
//sprintf(msgBuf, “{“temp”:%d.%01d}”, (int)temperature, (int)(temperature * 10) % 10);
Serial.println(msgBuf);

sendData(msgBuf);
delay(5000);
Serial.println(“After Delay”);
while (lora.available()){
Serial.print(“ENTERED IN WHILE LOOP”);
Serial.write(lora.read());
}

delay(60000);
}

ouput on Arduino Uno SerialPort

RN2483 Test
RN²šœ™˜—N©j
ÉAdh@2°™š˜šLM§¦VHøsys factoryRESET
RN’šœ™˜—N©j
ÉAdh@2°™š˜šLM§¦VHøsys get hweui
00˜š ™˜¡˜˜L0¨&¦§Hømac get deveui
00˜˜˜˜˜˜˜LLLLLLCámac set devaddr AABBCCDD
ok„mac set appskey 2B7E151628AED2A6ABF7158809CF4F3C
ok„mac set nwkskey 2B7E151628AED2A6ABF7158809CF4F3C
ok
mac set adr off
ok†mac set rx2 3 869525000
ok
mac join abp
ok„ac³²¸ºYY#ámac get status
00˜†
mac get devaddr
AA¢¡¡¡¢¢Cádivum
mac tx uncnf 1
in¶±¶´²
ÉÅÚAfter Delay

Please Kindly Tell me the solution for this Anyone

Thanks in Advance.

Im not sure which softserial library you are using (the official?) but I haven’t seen any softseriallib reliably receiving at anything > 38400 baud on an atmega running at 16 mhz (like a normal arduino) not even talking about the 3.3v 8mhz ones … so it could be quite expectable to get garbage then.

@niels: Thanks for Your rply i am using predefined softserial library,which one have given by default Arduino IDE .

@divum123 I’ve had no problems with using soft serial talking to the RN2483 and using that sketch. It also looks like one of the sketches used at a recent workshop in Reading.

What version of firmware is in the RN2483?

Thanks

Andrew

@thinginnovations That also i am trying to get the firmware version when i am using firmware "sendCmd(“sys get ver”);"this command then i am getting garbage type ,not getting firmware version…

Thanks.

@divum123 Exactly what hardware are you using and how is it connected up?

Andrew