LoRa support

Since 2015 Moteino also supports LoRa transceivers:

The LoRa technology from Semtech brings exceptional features like high reception sensitivity and spread spectrum modulation allowing these radios to dramatically increase range at low bitrates, while still operating at a battery friendly output power (20dBm/100mW) and ultra low power sleep mode. These radios also support FSK modulations but they are intended to be used with the LoRa (Long Range) modulation technology and as such they will only be supported by LowPowerLab in that operation mode. This also implies they cannot communicate with any RFM69 radios (except via a bridge module between two such networks is built). In other words, they are a completely different type of radio for a different category of communications.

While Moteinos are pin compatible with all LoRa radios (RFM92-RFM98), the LowPowerLab Shop carries the RFM95 (868-915mhz) and RFM96 (434mhz).

Long range possibilities of LoRa

For an in-depth technical review of this technology please see this great instructable. Here’s how the LoRa modulation looks like:Here’s a test performed at 1000bps (see instructable for more details):

Library & usage of LoRa modules with MoteinoMEGA & MoteinoM0

The recommended library to use with RFM95/95 LoRa modules can be downloaded here (this should be installed like any other library under your Arduino/libraries folder). This the popular RadioHead library by Mike McCauley. The examples to get started with are under examples/rf95: rf95_server and rf95_client. Choose your Moteino target under Arduino>Tools>Board and upload the examples to your Moteino. Note that the LED is on D15 (MoteinoMEGA) and D9 (all other Moteinos). If you have an RFM95 then set frequency to 915Mhz, for RFM96 use 434Mhz. For details and documentation visit the official RadioHead library page.

For MoteinoMEGA, the SPI slave select pin is digital pin 4, and radio interrupt pin is digital pin 2. If you use the original RadioHead library you must call the constructor like this with MoteinoMEGA (complete reference here):

RH_RF95(4); //SPI CS init with MoteinoMEGA

For MoteinoM0 you must call the constructor like this:

RH_RF95(A2, 9); //SPI CS init with MoteinoM0

You may also download a patched version of RadioHead v1.8.4 which ensures the default constructor works with MoteinoMEGA and MoteinoM0.

If you use IDE 1.0.6 or older and having trouble compiling the latest RadioHead, you may try this older archived version of RadioHead.