-
Notifications
You must be signed in to change notification settings - Fork 414
Basics
The purpose if this page is to provide an overview of the basic usage of the library API. For details on each supported radio module, please refer to the provided examples.
-
Connect the wireless module to the Arduino. This includes connecting the appropriate communication channel (SPI bus or UART), as well as some GPIO pins. The extra pins are used for SPI chips select, hardware reset and GPIO or interrupts. Each module uses slightly different setup. For example, some modules might only have one interrupt pin, while others may have multiple. Some modules might have reset pin, others might do without one.
-
Provide the pin setup to the library. This is done using the
Module
constructor in the following format:
-
SPI modules:
Module(cs, irq, rst, gpio)
. For example:RF69 rf = new Module(10, 2, 3);
- CS: this is the pin that's used as SPI chip select.
- IRQ: this is the interrupt pin, it's usually connected to external interrupt on Arduino. It's a fast way for the module to tell Arduino something has happened - for example, a packet was received. All SPI modules have at least one interrupt pin.
- RST: most modules have a hardware reset pin. If the module doesn't have a reset or chip enable pin (e.g. CC1101), set
rst
toNC
. - GPIO: this is the fourth possible pin. It's optional for most modules, but may be required for some. SX127x requires additional interrupt pin to perform CAD and blocking receive. SX126x also uses this pin as the BUSY indication pin. If not in use, this pin can be left unassigned, or set to
NC
.
-
UART modules:
Module(tx, rx)
. For example:ESP8266 wifi = new Module(10, 9);
- Note: On some platforms that do not support SoftwareSerial, an instance of
HardwareSerial
can be provided to the constructor. When no instance is specified, the constructor will default toSerial1
:
ESP8266 wifi = new Module(10, 9, &Serial1);
- Note: On some platforms that do not support SoftwareSerial, an instance of
-
After the object is created, the module has to be initialized using the
begin()
method. Typically, this is done in Arduinosetup()
function. If you want to change the module settings, this can be done by providing appropriate values to thebegin()
method. -
At this point, your module is ready to send or receive any data you want!
Using RadioShield
-
Plug the wireless module into either of the two slots and select the required communication channels/GPIO pins using jumper pins.
-
In Arduino code, select the slot the module is plugged into. For example, assuming SX1278 module plugged into slot A:
SX1278 lora = RadioShield.ModuleA;
-
After the object is created, the module has to be initialized using the
begin()
method. Typically, this is done in Arduinosetup()
function. If you want to change the module settings, this can be done by providing appropriate values to thebegin()
method. -
At this point, your module is ready to send or receive any data you want!