This example cycles through sending a LoRa packet, indicating the send status using the onboard LEDs, and then sleeping.
This example also configures the button to reset and trigger the bootloader for immediate programming using a serial bootloader utility, like ccbootutil.
See app.c for more information.
git clone https://github.com/OpenChirp/LoRaBug_TX.git
git submodule update --init --recursive
- LEDs
- Radio for TX Only
- Button callback (with bootloader launching)
We have configured the button to make the MCU jump into the bootloader when pressed. This allows for quick programming using a bootloader utility. To make this happen, we utilize two key features.
- The ability to have the MCU hard reset itself when the button is pressed
(uses
SysCtrlSystemReset()
). - The ability to use the button as the backdoor to trigger the bootloader on boot (configured in ccfg.c).
When the button is pressed, the button callback forces a hard reset. Since you finger is still depressing the button when it starts to boot, the bootloader backdoor is triggered, which launches the ROM bootloader. The green LED always glows when the bootloader is launched.
This example is based on the CC2650 Launchpad empty_min example project.
The empty_min is the same as the Empty example except many development and debug features are disabled. For example:
- No Kernel Idle task
- No stack overflow checking
- No Logs or Asserts are enabled
The ROM is being used in this example. This is controlled by the following lines in the .cfg file:
var ROM = xdc.useModule('ti.sysbios.rom.ROM');
ROM.romName = ROM.CC2650;
Since the kernel in the ROM is being used, there is no logging or assert checking done by the kernel.
-
For GNU and IAR users, please read the following website for details about enabling semi-hosting in order to view console output.
-
Please refer to the Memory Footprint Reduction section in the TI-RTOS User Guide spruhd4.pdf for a complete and detailed list of the differences between the empty minimal and empty projects.
Unfortunately, the LoRaMAC-node implementation of LoRaWAN uses C99's in for loop variable declaration. For this reason, you MUST change the C compiler Language mode to allow C99 syntax. Currently, the C99 syntax usage is isolated to the LoRaMac.c file.