RAK811 as Arduino Uno Shield



  • @xc.c
    Thanks,
    You got my message and I'm glad to see RAK whant's to improve things for users.

    Harald



  • @xc.c

    Could you help me with a clear understanding how to wire the original Uno to the Wisnode and verify the jumper settings when using the OTAA example?

    0_1530003328800_IMG_20180626_104838.jpg

    regards,
    Harald



  • @Harald
    I have already answered how to connect and give a picture.If you don't have a USB-to-serial accessory, you can connect it like this.
    0_1530022774315_upload-4958d492-698d-4a64-a07c-56ea5b250388



  • @xc.c

    That helped.

    Stacking and connecting those 2 worked.
    I can see the result on both com ports.

    thx,

    Harald



  • I can only agree with Harald when he talks about the documentation!
    I stacked the WisNode onto an Arduino Uno trying to communicate with the WisNode via SoftwareSerial, TX on pin 10 and Rx on pin 11. I set up the jumpers as you showed and connected to pin 10 and 11 as drawn on the photo. However, I don't get the answer "ok" from the WsiNode when sending at commands. When connecting a USB to serial interface to pins 10 and 11 I see that the at command is sent on those pins.
    Uli



  • In fact I saw that the boot jumper was in the wrong position. Yesterday I made a backup copy of the flash. When putting it right, I cannot flash the Arduino any more. Seems that Serial0 is still connected to the WisMode who answers when flashing occurs.



  • hello! I was working with this model of RAK 811 LoRa enabled chip and, tried to use this forum and the hackster one; neither had the information as i needed, so im going to try to put it clearly so everyone else can make the node work without all the hassle:
    first of all you need to flash the correct firmware to the RAK811 board, this is the link where you can find all the software and the firmware to do this:
    https://github.com/RAKWireless/RAK811/tree/master/AT Firmware

    then you shoud use an arduino MEGA if for some reason you can´t find one you can use software serial but be aware that you need to use it as a separate function to call it when necessary and for the software serial to be able to interrupt whatever the arduino is doing at the moment.

    when pluging the board to the arduino bend all the pins in the right side( the one side that has the rx and tx) and then proceed to connect a jumper cable from the rx2 and tx2 of the mega(in my case i decided to use rx3 and tx3 due to space constrains on the device) or the pins that you defined as the software serial to the shield this way:

    0_1532323525022_WhatsApp Image 2018-07-23 at 12.23.03 AM.jpeg
    where tx3 is connected to tx pin and rx3 is connected to rx pin on the rak.

    the jumpers on the board should be connected this way:
    0_1532323655319_WhatsApp Image 2018-07-23 at 12.23.03 AM (1).jpeg
    so the voltages on the arduino wont damage the shield and the commands sent by the arduino make it to the actual chip and not the serial monitor on the usb line of the arduino.

    for coding the arduino is recommended to use the RAK811 library instead of the ttn one due to the more granular control it gives the programmer.
    https://github.com/RAKWireless/RAK811/tree/master/Arduino Library
    it comes with some examples but heres mine (i also used cayenneLpp library to make the data into binary code)

    #include "RAK811.h"
    #include <CayenneLPP.h>
    #define WORK_MODE LoRaWAN // LoRaWAN or LoRaP2P
    #define JOIN_MODE OTAA // OTAA or ABP
    String DevEui = "3530353064375B16";
    String AppEui = "70B3D57ED000D398";
    String AppKey = "28672DED58AE65387A24F18C54044F72";
    #define ATSerial Serial3
    #define DebugSerial Serial
    float temp=0;
    int resetPin = A8;

    RAK811 RAKLoRa(ATSerial);
    CayenneLPP lpp(51);

    void reset(){
    DebugSerial.println("conexion no exitosa, reintentando");
    digitalWrite(resetPin, LOW);
    }

    void setup() {
    DebugSerial.begin(115200);
    while(DebugSerial.read()>= 0) {}
    while(!DebugSerial);
    DebugSerial.println("StartUP");
    ATSerial.begin(115200);
    pinMode(resetPin, OUTPUT);
    digitalWrite(resetPin,HIGH);
    DebugSerial.println(RAKLoRa.rk_getVersion());
    delay(600);
    DebugSerial.println(RAKLoRa.rk_getBand());
    delay(600);
    if(RAKLoRa.rk_setWorkingMode(WORK_MODE)){
    delay(4000);
    DebugSerial.println("you set Working mode is OK!");
    if (RAKLoRa.rk_initOTAA(DevEui,AppEui,AppKey)){
    delay(4000);
    DebugSerial.println("you init OTAA parameter is OK!");
    DebugSerial.println(RAKLoRa.sendRawCommand("at+join=otaa\r\n"));
    DebugSerial.println("you join Network is OK!");

     }
    

    }
    }

    void loop() {
    /lpp.addTemperature(1, temp);
    temp+=0.5;
    /
    lpp.addTemperature(1, 24.5);
    while (RAKLoRa.rk_sendData(1,1,lpp.getBuffer())){
    DebugSerial.println(RAKLoRa.rk_recvData());
    }
    //delay(30000);
    }

    also i recommend doing some adjustments to the RAK811 library so it wont throw some errors heres my github with the libraries i used (and the rak811 one modiffied already).
    https://github.com/jcastell7/JoinNetworkOTAA

    :)



  • hi,

    453/5000
    I made the right fit between arduino and rak with:
    jumper => tx = rxd
    => rx = txd

    => txd = 5_3R
    = rxd = 5_3T

    two cables between:

    CRX => 11
    CTX => 10

    I used the example of the OTA member, the program sends the data well to the gateway but like many others, I do not have the answers for the command OTA and I do not understand on which port it is necessary use the nod return message,

    0_1535033293163_cap_rak.PNG

    ![0_1535033331557_IMG_20180823_154631.jpg](Uploading 100%)



  • ![0_1535033722386_IMG_20180823_154631.jpg](Uploading 100%)



  • @jaja_iot @xc-c help me please


Log in to reply
 

Looks like your connection to RAK Support Center was lost, please wait while we try to reconnect.