lr 2.1.0.0
Main Page

LR click

LR Click is a compact add-on board that contains a low-power, long-range transceiver. This board features the RN2483, RF technology-based SRD transceiver, which operates at a frequency of 433/868MHz from Microchip Technology. This Click boardâ„¢ features an embedded LoRaWAN Class A compliant stack, providing a long-range spread spectrum communication with high interference immunity. The RN2483 module is a fully certified 433/868MHz European R&TTE directive assessed radio modem combined with the advanced and straightforward command interface.

click Product page


Click library

  • Author : Stefan Ilic
  • Date : Feb 2023.
  • Type : UART type

Software Support

We provide a library for the LR Click as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.

Package can be downloaded/installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.

Library Description

‍This library contains API for LR Click driver.

Standard key functions :

  • lr_cfg_setup Config Object Initialization function.
    void lr_cfg_setup ( lr_cfg_t *cfg );
    void lr_cfg_setup(lr_cfg_t *cfg)
    LR configuration object setup function.
    LR Click configuration object.
    Definition lr.h:276
  • lr_init Initialization function.
    err_t lr_init ( lr_t *ctx, lr_cfg_t *cfg );
    err_t lr_init(lr_t *ctx, lr_cfg_t *cfg)
    LR initialization function.
    LR Click context object.
    Definition lr.h:248
  • lr_default_cfg Click Default Configuration function.
    void lr_default_cfg ( lr_t *ctx, bool cb_default, void ( *response_p )( char *response ) );
    void lr_default_cfg(lr_t *ctx, bool cb_default, void(*response_p)(char *response))
    LR default configuration function.

Example key functions :

  • lr_mac_tx Function for writing mac parameters
    uint8_t lr_mac_tx ( lr_t *ctx, lr_mac_t *mac );
    uint8_t lr_mac_tx(lr_t *ctx, lr_mac_t *mac)
    Function for writing mac parameters.
    Mac object definition.
    Definition lr.h:235
  • lr_join Function for setting join mode
    uint8_t lr_join ( lr_t *ctx, char *join_mode, char *response );
    uint8_t lr_join(lr_t *ctx, char *join_mode, char *response)
    Function for setting join mode.
  • lr_tick_conf Timer Configuration
    void lr_tick_conf ( lr_t *ctx, uint32_t timer_limit );
    void lr_tick_conf(lr_t *ctx, uint32_t timer_limit)
    Timer Configuration.

Example Description

‍This example shows the usage of the LR Click board by transmitting and receiving data.

The demo application is composed of two sections :

Application Init

‍IInitializes the driver and performs default configuration and reads System version.

void application_init ( void )
{
log_cfg_t log_cfg;
lr_cfg_t lr_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
lr_cfg_setup( &lr_cfg );
LR_MAP_MIKROBUS( lr_cfg, MIKROBUS_1 );
if ( UART_ERROR == lr_init( &lr, &lr_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
lr_default_cfg( &lr, 0, 0 );
log_printf( &logger, "System VER: %s \r\n", resp_buf );
log_printf( &logger, "MAC PAUSE: %s \r\n", resp_buf );
log_printf( &logger, "RADIO SET WDT 0: %s \r\n", resp_buf );
log_info( &logger, " Application Task " );
}
#define LR_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition lr.h:170
#define LR_CMD_MAC_PAUSE
Definition lr.h:74
#define LR_CMD_SYS_GET_VER
LR Click Commands.
Definition lr.h:73
#define LR_CMD_RADIO_SET_WDT
Definition lr.h:75
void lr_cmd(lr_t *ctx, char *cmd, char *response)
Send command function.
void application_init(void)
Definition main.c:70
char resp_buf[50]
Definition main.c:39

Application Task

‍Transmitter mode - sends one-by-one byte sequence of the desired message each second and checks if it is sent successfully Receiver mode - displays all the received characters on USB UART.

void application_task ( void )
{
lr_process( );
#ifdef DEMO_APP_RECEIVER
char *ptr;
uint8_t int_data;
if ( LR_OK == lr_rx( &lr, LR_ARG_0, resp_buf ) )
{
resp_buf[ 12 ] = 0;
ptr = ( char* ) &int_data;
hex_to_int( &resp_buf[ 10 ], ptr );
log_printf( &logger, "%c", int_data );
}
#endif
#ifdef DEMO_APP_TRANSMITTER
for ( uint8_t cnt = 0; cnt < 9; cnt++ )
{
int8_to_hex( send_message[ cnt ], send_hex );
if ( LR_OK == lr_tx( &lr, &send_hex[ 0 ] ) )
{
log_printf( &logger, " Response : %s \r\n", resp_buf );
}
Delay_ms ( 1000 );
}
#endif
}
#define LR_ARG_0
Definition lr.h:76
uint8_t lr_rx(lr_t *ctx, char *window_size, char *response)
Main receiver function
uint8_t lr_tx(lr_t *ctx, char *buffer)
Main tnanceiver function.
@ LR_OK
Definition lr.h:301
char send_hex[50]
Definition main.c:38
uint8_t send_message[9]
Definition main.c:40
void application_task(void)
Definition main.c:112

The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.

Other Mikroe Libraries used in the example:

  • MikroSDK.Board
  • MikroSDK.Log
  • Click.LR

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. UART terminal is available in all MikroElektronika compilers.