LoRa 2 click is a LoRa® RF technology based SRD transceiver, which operates at a sub-gigahertz frequency of 915MHz. This click board™ features an embedded LoRaWAN™ Class A compliant stack, providing a long-range spread spectrum communication, with high interference immunity. The LoRa module used on this Click board™ is compliant with the United States (FCC) and Canada (IC) regulations, which combined with the advanced and simple command interface, allows for an easy integration into the final application, reducing development time, costs, and time to market.
Equipped with LoRaWAN Class A compliant stack, LoRa 2 click offers an easy and reliable solution for developing low power, highly integrated LoRaWAN IoT networks, security systems, alarm networks, building control, M2M interfaces, and similar applications that require simple and reliable networking solutions. IT offers a programmable RF communication data rate up to 300 kbps with FSK modulation or 12500 bps with LoRa™ Technology modulation.
How does it work?
The main active element of the LoRa 2 click the RN2903, low-power long range LoRa® technology transceiver module, from Microchip. It features the Class A LoRaWAN compliant stack, optimized for a robust LoRaWAN networking, immune to interferences, and suitable for the long-range wireless operation. It offers a long-range spread spectrum communication with high interference immunity. A receiver with the sensitivity of -146dBm combined with the 18.5dBm integrated amplifier allows for extended range links that can achieve up to 15km in open area (by the module manufacturer specification). LoRa 2 click offers data rates of 300 kbps with FSK modulation and 12500 bps with LoRa Technology modulation. The radio frequency of the Lora 2 click is located within the 915MHz ISM band, which allows the Click board™ to be used in United States, Canada, Australia and New Zealand.
The LoRaWAN network is sorted into three different classes. Class A compliant devices network is a network where end nodes are battery operated, the communication payload is small with longer intervals, and the communication is initiated by the end node (uplink). Communication is bidirectional, and the server responds in predetermined response windows.
The communication is done via the UART interface. There are three groups of commands, used to configure and operate the separate layers of the RN2903. These layers are the SYSTEM layer, the MAC layer, and the RADIO layer. Each of these layers is controlling a certain area of the module, and every UART command starts with one of the three keywords, which represent an abbreviation of the layer name they are controlling. Some UART commands also require parameters, depending on their nature. For example:
sys sleep <length>
This is a system command that will put the module into a Sleep state for a period forwarded by the <length> parameter (in milliseconds). The module is also equipped with the non-volatile memory (EEPROM) for storing the configuration settings, as well as some additional data. The default UART communication speed is 57600 bps, 8N1 with no hardware flow control enabled.
The break condition can be transmitted to the module if keeping its UART_RX pin low for a period longer than required to transmit a single character. This will interrupt the Sleep mode before the timer expires, also it can be used to sense the communication speed. After the break condition has been signaled to the module, sending character 0x55 will match the communication speed of the module with the speed at which the 0x55 character was sent.
To join a LoRaWAN network, the device requires a LoRaWAN concentrator/gateway. The endpoint device has to use a unique endpoint address, an application session key, and network session key. The first method is called over-the-air activation (OTAA), where these keys are issued after a specific join procedure (more info can be found in the LoRaWAN specification). The second method is to assign these keys manually, using UART commands. This method is called activation by personalization (ABP) and can be prone to some security issues. In any case, before an end-device can communicate on the LoRaWAN network, it must be activated.
The LoRaWAN MAC layer can also be suspended by a command, allowing simple p2p (peer-to-peer) communication, where two nodes directly communicate with each other. Although an explanation of all the configuration parameters, as well as the in-depth explanation of each feature of the RN2903 module, can be found in the Command Reference User’s Guide, please note that the improper settings of some parameters might render the device unresponsive. Therefore a care should be taken to read and understand the explanations before applying these settings. To simplify the design and avoid errors, MikroElektronika includes a Click board™ library, which contains simple functions used to set up and operate the LoRa 2 click. The included demo application illustrates how to use them in a real application. It can be used as a reference for the custom design.
To allow interfacing with both 3.3V and 5V MCUs, this click board™ employs the TXB0106, a bidirectional level shifter and voltage translator from Texas Instruments, supported by a 3.3V LDO. This translates the external voltage levels to acceptable levels that can be used on the LoRa module. All the used I/O pins of the module are routed via this IC to the mikroBUS™ pins.
The UART RX and TX pins are routed to the appropriate mikroBUS™ UART pins, via the level shifter. CTS pin is routed to the INT pin of the mikroBUS™ – also via the level shifter and can be used when hardware flow control is required. The #RESET pin is routed to the mikroBUS™ RST pin and it is used to reset the device. It is internally pulled up with a resistor.
LoRa 2 click features an SMA connector, so it can be equipped with the appropriate 915MHz compliant antenna. The onboard SMD jumper labeled as VCC SEL is used to select the voltage input for the level shifter for interfacing with 3.3V or 5V MCUs.
Note: For a 433/868MHz sub-gigahertz frequency LoRa® RF technology based Click board™ see LoRa click.
Specifications
Type
LoRa
Applications
Automated Meter Reading, Home and Building Automation, M2M, IoT, Industrial Monitoring and Control
On-board modules
Microchip’s RN2903 915 MHz Radio Modem
Radio Region
America
Key Features
Modem is compliant for use in USA (FCC), Canada (IC), Australia and New Zealand. Sensitivity: -146 dBm. Embeds LoRaWAN™ Class A protocol stack
Interface
UART
Compatibility
mikroBUS
Click board size
L (57.15 x 25.4 mm)
Input Voltage
3.3V or 5V
Pinout diagram
This table shows how the pinout on LoRa 2 click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
LoRa click electrical specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Operating Frequency Range 1 | 902.000 | 928.000 | MHz | |
UART interface baud rate | – | 57600 | – | bps |
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
JP1 | PWR SEL | Left | Logic level voltage selection: Left position 3V3, right position 5V |
LD1 | PWR | – | Power LED indicator |
Software support
We provide a library for LoRa 2 click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers and mikroSDK. The provided click library is mikroSDK standard compliant. The demo application can run on all the main MikroElektronika development boards.
Library Description
The library covers all functionalities of the Click board through simplified API calls.
Key functions:
uint8_t lora2_tx( char *buffer )
– Transmits the function, sends the message provided using the buffer.uint8_t lora2_rx(char* window_size, char *response)
– Receives the function, provides a message using the response buffer.void lora2_process()
– The library state machine must be placed inside an infinite loop.
Examples Description
The application is composed of three sections:
- System Initialization – Initializes the UART module and CS pin, RST pin as output and INT pin as an input.
- Application Initialization – Initializes the driver and the LoRa module found on Click board.
- Application Task – (code snippet) – Can be used as a receiver or a transmitter. It is necessary to uncomment the appropriate part of the code. The transmitter sends one by one byte, each second, while the receiver receives the message using continuous mode and logs the received data on UART.
void applicationTask() { lora2_process(); // RECEIVER rxState = lora2_rx( 0, &tmp_txt[0]); if (rxState == 0) { _data = xtoi(&tmp_txt[11]); mikrobus_logWrite( &_data,_LOG_BYTE); mikrobus_logWrite( " ",_LOG_LINE); } // TRANSMITER for (cnt = 0; cnt < 7; cnt++) { send_data = sendMessage[cnt]; IntToHex(send_data,sendHex); txState = lora2_tx( &sendHex[0] ); if (txState == 0) { mikrobus_logWrite( " Response : ",_LOG_TEXT ); mikrobus_logWrite( tmp_txt,_LOG_LINE ); } Delay_1sec(); } }
The full application code, and ready to use libraries can be found on our Libstock page.
Other mikroE Libraries used in the example:
- UART
- Conversions
Additional notes and information
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
mikroSDK
This click board is supported by mikroSDK – MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.