The LongReach mLink module is a LoRa-based wireless device that connects to most microcontrollers using a serial mLink (I2C) interface. Once connected, it enables your microcontroller to communicate with other devices through its built-in RM95 LoRa radio transceiver. By using two or more modules, you can establish wireless communication between multiple microcontrollers over far greater distances than technologies like WiFi or Bluetooth.
Please note: RM95 modules are a higher frequency variant of the RM96. As such they are fitted with an IC marked RM96 which operates at the higher 868MHz frequency band.
The module is also compatible with other LongReach modules such as the LongReach USB module for communication from a microcontroller to a computer, or remote sensing and control using the LongReach 4CH Relay module or Tx module, etc.
mLink I2C interface
As the module incorporates the mLink I2C interface it is also compatible with our range of mLink modules meaning it can be daisy-chained with other mLink modules such as LCD displays, keypads, sensors, relays etc., all via a single I2C interface and only requiring one compact library to be installed.
For Arduino and Raspberry Pi users we have a dedicated library and Python module which makes transmitting data and sensor readings via your sketches or python scripts as simple as possible (see below for examples and library links).
Specification:
Product code: HCMODU0250 Supply voltage: 5V via mLink interface Supply current: 2mA (sleep), 19mA (Rx), 150mA (Tx) Radio type: LoRa RM95 Range: >1 kilometre in free air Frequency: 868 to 915MHz Max packet size: 256 bytes Max bitrate (nominal): 9380bps (at -118dBm sensitivity) Interface: 4 pin male mLink 0.1” headerI2C Interface speed: 400kbits/s (fast mode) I2C default address (HEX): 0h5F Maximum number of modules: 5 with pullups fitted, 112 with pullups removed** Dimensions (ex antenna): 42mm x 22mm x 5mm
*Note the maximum number of connected modules will depend on cable lengths and power requirements of each module. Do not exceed 5 mLink modules connected in series with I2C pullups fitted to all modules. For disconnecting pullups see forum post.
Dimensions:
Removing I2C pullups:
If your development board already has pullups for its I2C interface fitted, or you wish to connect more than 5 mLink boards to the same I2C interface, then you can remove the pullups for the additional boards by cutting the tracks between the solder pads shown below.
mLink Arduino library
viewtopic.php?f=58&t=3001
Please note that you will need at least V2.2.0 (09 Sep 2024) of the library to support this module. If you have an older version already installed please update it to the latest version.
mLink Raspberry Pi Python module
The mLink python module can be installed with the following terminal command:
- pip install hc-mlink
Alternatively the library can be manually installed by downloading it from the forum and unzipping it to your project folder. See the Python module forum thread for more information and download link:
viewtopic.php?f=131&t=3062&p=8592#p8592
Please note that in some cases there may be additional configuration required. If you have issues getting your Raspberry Pi to communicate with the mLink module then please see the Python module forum thread here: viewtopic.php?f=131&t=3062
mLink Specifications and Register Map
https://hobbycomponents.com/downloads/m ... V1_0_1.pdf
FAQ:
When I use my terminal program to enter an AT command the module just responds with ‘Error’
This could be caused by one of two things:
All AT commands must be terminated with a carriage return and a linefeed (CR+LF). You will need to set this in your terminal program.
By default a complete AT command including the CR+LF must be entered within ~2 seconds. If you are typing the command in manually and sending each character of the command one at a time then this may be the cause of the issue.
Either use a terminal program that can send the command in one go or try cutting and pasting the command into the terminal program.
You can change the default timeout time by using the AT+ATT command.
When I connect power to the module the LED does not illuminate, is it faulty?
The LED is a communication LED and will blink whenever there is communication between the USB interface or the RF interface. When there is no communication the LED will default to being off.
Libraries, example code, and diagrams are provided as an additional free service by Hobby Components and are not sold as part of this product. We do not provide any guarantees or warranties as to their accuracy or fitness for purpose.