SX 10: RX from all nodes

This example shows how to configure the SX1272 module in LoRa mode and then receive packets from any node. This code works as a network sniffer because independently the packet is sent to, this module gets it and shows it.

Required Materials

1 x Waspmote PRO 1 x Battery 1 x MiniUSB wire 1 x SX1272 module (LoRa) 1 x At least one sender to check this receiving code

Notes

  • The SX1272 module is provided with a special 4.5 dBi antenna, which enables maximum range. The only exception is Smart Parking; in this case the antenna is smaller, 0 dBi, to fit inside the enclosure.

  • It is not recommended to work without an antenna screwed to the module. The module could be damaged due to RF reflections.

  • The SX1272 module can only be used in special Waspmote units which have been modified to drive the SPI pins to SOCKET0. (only SOCKET0 is available for SX1272)

  • This module does not save the configuration. So, the network settings as the mode or the channel MUST be configured every time it is switched on.

  • This example can be executed in Waspmote v12 and Waspmote v15

Code

/*  
 *  ------ [SX_10] - RX LoRa from all Nodes -------- 
 *
 *  Explanation: This example shows how to configure the semtech 
 *  module in LoRa mode and then receive packets from any node. This
 *  code works as a network sniffer because independently the packet is
 *  sent to, this module gets it and shows it.
 *  
 *  Copyright (C) 2014 Libelium Comunicaciones Distribuidas S.L. 
 *  http://www.libelium.com 
 *  
 *  This program is free software: you can redistribute it and/or modify  
 *  it under the terms of the GNU General Public License as published by  
 *  the Free Software Foundation, either version 3 of the License, or  
 *  (at your option) any later version.  
 *   
 *  This program is distributed in the hope that it will be useful,  
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of  
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 *  GNU General Public License for more details.  
 *   
 *  You should have received a copy of the GNU General Public License  
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.  
 *  
 *  Version:           0.1
 *  Design:            David Gascón 
 *  Implementation:    Covadonga Albiñana, Yuri Carmona
 */

// Put your libraries here (#include ...)
#include <WaspSX1272.h>

// status variable
int8_t e;


void setup() 
{
  // init USB port
  USB.ON();
  USB.println(F("SX_10 example"));
  USB.println(F("Semtech SX1272 module RX in LoRa from All Nodes"));

  // Init SX1272 module
  sx1272.ON();

  // Select frequency channel
  e = sx1272.setChannel(CH_10_868);
  USB.print(F("Setting Channel CH_10_868.\t state ")); 
  USB.println(e);

  // Select implicit (off) or explicit (on) header mode
  e = sx1272.setHeaderON();
  USB.print(F("Setting Header ON.\t\t state "));  
  USB.println(e); 

  // Select mode (mode 1 is the faster)
  e = sx1272.setMode(1);  
  USB.print(F("Setting Mode '1'.\t\t state "));
  USB.println(e);  

  // select CRC on or off
  e = sx1272.setCRC_ON();
  USB.print(F("Setting CRC ON.\t\t\t state ")); 
  USB.println(e);  

  // Select output power (Max, High or Low)
  e = sx1272.setPower('H');
  USB.print(F("Setting Power to 'H'.\t\t state "));  
  USB.println(e); 

  // Select the node address value: from 2 to 255
  e = sx1272.setNodeAddress(9);
  USB.print(F("Setting Node Address to '9'.\t state "));
  USB.println(e);
  USB.println();
  
  delay(1000);  
  
  USB.println(F("----------------------------------------"));
  USB.println(F("Receiving from all nodes:")); 
  USB.println(F("----------------------------------------"));
}


void loop()
{
  // Receive packets from any address as a sniffer
  sx1272.receiveAll(10000);

  // check rx status
  if( e == 0 )
  {
    USB.println(F("\nShow packet received: "));

    // show packet received
    sx1272.showReceivedPacket();

  }
  else
  {
    USB.print(F("\nReceiving packet TIMEOUT, state "));
    USB.println(e, DEC);  
  }
}

Output

H#
SX_10 example
Semtech SX1272 module RX in LoRa from All Nodes
Setting Channel CH_10_868. state 0
Setting Header ON. state 0
Setting Mode '1'. state 0
Setting CRC ON. state 0
Setting Power to 'H'. state 0
Setting Node Address to '9'. state 0

----------------------------------------
Receiving from all nodes:
----------------------------------------

Show packet received:
==============================
dest: 8
src: 2
packnum: 0
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 1
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 2
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 3
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 4
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 5
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 6
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 7
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 8
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 9
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 10
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 11
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 12
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 13
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 14
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 15
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 16
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 17
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 18
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 19
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 20
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 21
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 22
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 23
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 24
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 25
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 26
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 27
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 28
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 29
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 30
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 31
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 32
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 33
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 34
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================

Show packet received:
==============================
dest: 8
src: 2
packnum: 35
length: 26
retry: 0
payload (HEX): 546869735F69735F615F6E65775F6D657373616765
payload (string): This_is_a_new_message
==============================
...

Last updated