This click board™ features a complete LoRa stack onboard: it implements physical, network and MAC layers, allowing for easy operation via the UART interface. The transceiver is compliant to REACH and RoHS regulations, allowing for an easy integration into the final application, reducing development time, costs, and time to market. With the high emphasis on lowered power consumption and simplified usage, It can be used for the development of a range of IoT based applications.
How does it work?
The heart of the LoRa 5 click is a wireless transceiver module from Mipot company, labeled as 32001409. It is the LoRa RF technology-based long range transceiver, optimized for a robust wireless networking, immune to interferences. The network is implemented as a star topology, where endpoints work in duty cycle mode, significantly reducing the overall power consumption. This allows endpoint nodes to be battery operated.
The communication is done via the UART interface. A communication between the module and the host MCU starts with the MCU pulling the NWAKE pin to a LOW logic state. This will wake up the module, after which the module expects the 0xAA code. This code is a header of every data packet that has been sent or received. After the header, a command code is sent, followed by the payload and the checksum. After a complete packet has been received and its checksum is verified, the module pulls the NDATA_INDICATE (ND_IND) to a LOW logic level. After a short timeout, the data (message) is sent via the UART TX pin of the module, back to the host MCU. At the end of the communication cycle, the ND_IND pin is pulled to a HIGH logic level and the module goes into the sleep mode, waiting to be awakened again by the NWAKE pin. Every command from the host results with a response from the module in the same format, with the command code ORed with 0x80.
LoRa 5 click can be configured to work as either END NODE or MASTER NODE, by using simple AT commands. While working as the MASTER NODE, the click board™ can use a set of master-specific commands, such as the pairing command. This command will add the end node which requested pairing, to the master network table. While working as the END NODE, LoRa 5 click can issue slave specific commands/requests, such as the pairing request command, which will allow that end node to be paired with the master. However, the provided LoRa 5 click library offers easy to use functions, which simplify configuration and communication tasks. Their usage is demonstrated in the included example application.
To allow interfacing with both 3.3V and 5V MCUs, this click board™ employs the TXB0106, abidirectional level shifter and voltage translator from Texas Instruments. This translates the external voltage levels to acceptable levels that can be used on the Mipot LoRa module. All the I/O pins of the 32001409 LoRa module are routed via this IC to the mikroBUS™ pins.
The NWAKE pin from the 32001409 LoRa module is routed to the mikroBUS™ CS pin, while the UART RX and TX pins are routed to the appropriate mikroBUS™ UART pins, via the level shifter. ND_IND pin is routed to the INT pin of the mikroBUS™ - also via the level shifter - so it can be used to easily trigger an interrupt, or some other type of alert indicating that the module transmits data.
The NRST pin is routed to the mikroBUS™ RST pin and it is used to reset the device. It is internally pulled up with a resistor.
The LoRa 5 click board features an SMA connector so it can be equipped with the appropriate 915MHz antenna. The onboard SMD jumper labeled as is used to select a voltage input for the level shifter for interfacing with 3.3V or 5V MCUs.
Specifications
Type |
LoRa,RF Sub 1GHz |
Applications |
LoRa 5 click offers an easy and reliable solutions for developing low power, highly integrated IoT networks, security systems, alarm networks, and similar applications that require simple and reliable networking solutions |
On-board modules |
MIPOT 32001409, Lora RF technology-based long range transceiver |
Key Features |
The click board™ features robust Lora RF technology based wireless networking, full network stack, easy to use UART interface and low power consumption |
Interface |
GPIO,UART |
Input Voltage |
5V,3.3V |
Click board size |
L (57.15 x 25.4 mm) |
Pinout diagram
This table shows how the pinout on LoRa 5 click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes |
Pin |
|
Pin |
Notes |
---|
|
NC |
1 |
AN |
PWM |
16 |
NC |
|
Device Reset |
RST |
2 |
RST |
INT |
15 |
INT |
Data TX indication |
Wake up |
WK |
3 |
CS |
RX |
14 |
TX |
UART transmit |
|
NC |
4 |
SCK |
TX |
13 |
RX |
UART receive |
|
NC |
5 |
MISO |
SCL |
12 |
NC |
|
|
NC |
6 |
MOSI |
SDA |
11 |
NC |
|
Power Supply |
3.3V |
7 |
3.3V |
5V |
10 |
+5V |
Power supply |
Ground |
GND |
8 |
GND |
GND |
9 |
GND |
Ground |
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 |
LoRa 5 click electrical specifications
Description |
Min |
Typ |
Max |
Unit |
---|
Operating Frequency Range |
902 |
|
928 |
MHz
|
Absolute Input/Reference Voltage (unbuffered) |
|
115.5 |
|
kbps
|
Software support
We provide a library for the LoRa 5 click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
Library allows user to send a commands to the Mipot module and to receive the response from the module. The full communication control between the Mipot module and the user (host) is allowed by using this library. Also the library is able to perform a radio frame transfer with desired configurations. Library performs a communication with the module by using uart serial interface. For more details check documentation.
Key functions:
void lora5_uart_isr( void )
- - This function reads the received bytes from the module and sets flag when entire response packet is received.
T_LORA5_RETVAL lora5_task( void )
- This function makes a response from the MIPOT 32001409 module.
void lora5_join_cmd( uint8_t mode )
- This command performs a joining to the network.
void lora5_get_activation_status_cmd( void )
- This command allows user to get the module activation status.
Examples description
The application is composed of the three sections :
- System Initialization - Initializes peripherals and pins.
- Application Initialization - Initializes UART interface and UART interrupt, and performs a module reset commands.
- Application Task - (code snippet) - Performs a group of commands to get FW version, the serial number provided by Mipot, DevEUI, the session status, the activation status and the parameters for the selected channel. Also sets the next transmission data rate to the desired value. The responses from the Mipot module to the host will be sent to the uart terminal.
void applicationTask()
{
mikrobus_logWrite( "** FW version reading...", _LOG_LINE );
lora5_get_FW_version_cmd();
waitResponse();
mikrobus_logWrite( "** Serial number reading...", _LOG_LINE );
lora5_get_serial_No_cmd();
waitResponse();
mikrobus_logWrite( "** DevEUI reading...", _LOG_LINE );
lora5_get_dev_EUI_cmd();
waitResponse();
mikrobus_logWrite( "** Session status reading...", _LOG_LINE );
lora5_get_session_status_cmd();
waitResponse();
switch (response.cmdData[0])
{
case 0x00 :
{
mikrobus_logWrite( "Idle.", _LOG_LINE );
break;
}
case 0x01 :
{
mikrobus_logWrite( "Busy (LoRa session running).", _LOG_LINE );
break;
}
case 0x02 :
{
mikrobus_logWrite( "Device not activated.", _LOG_LINE );
break;
}
case 0x03 :
{
mikrobus_logWrite( "Delayed.", _LOG_LINE );
break;
}
default :
{
break;
}
}
mikrobus_logWrite( "***********************************************", _LOG_LINE );
Delay_ms( 1000 );
mikrobus_logWrite( "** Activation status reading...", _LOG_LINE );
lora5_get_activation_status_cmd();
waitResponse();
switch (response.cmdData[0])
{
case 0x00 :
{
mikrobus_logWrite( "Not activated.", _LOG_LINE );
break;
}
case 0x01 :
{
mikrobus_logWrite( "Joining...", _LOG_LINE );
break;
}
case 0x02 :
{
mikrobus_logWrite( "Joined.", _LOG_LINE );
break;
}
case 0x03 :
{
mikrobus_logWrite( "MAC ERROR.", _LOG_LINE );
break;
}
default :
{
break;
}
}
mikrobus_logWrite( "***********************************************", _LOG_LINE );
Delay_ms( 1000 );
mikrobus_logWrite( "** Next TX Data Rate setting...", _LOG_LINE );
lora5_set_next_DR_cmd( _LORA5_SF10_125KHZ );
waitResponse();
if (response.cmdData[0] == 0x00)
{
mikrobus_logWrite( "Success!", _LOG_LINE );
}
else
{
mikrobus_logWrite( "Error!", _LOG_LINE );
}
mikrobus_logWrite( "***********************************************", _LOG_LINE );
Delay_ms( 1000 );
mikrobus_logWrite( "** Channel parameters reading...", _LOG_LINE );
lora5_get_ch_param_cmd( _LORA5_CH_IDX_15 );
waitResponse();
Delay_ms( 10000 );
}
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
Additional notes and informations
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 with 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.