An RNode is an integrated, long-range data-radio that uses raw LoRa modulation in a variety of frequency bands. You can think of it as a general-purpose LoRa-based network card for your computer or mobile device. It connects to a host via USB, UART serial, Bluetooth or WiFi. It can also be programmed for independent operation. In short: A swiss army-knife of a LoRa-based communication device.

You can turn different kinds of LoRa development boards into an RNode, build one yourself, or buy a ready-to-use version from my shop. Self-built versions, and RNodes repurposed from other LoRa dev boards will be functionally identical, but may come in many different shapes and sizes, and have different pin layouts. Most of the details on this page concern the original RNode design, but will also be applicable to any other type of RNode.

An RNode can functions as a:

RNode is controlled by a powerful ATmega1284p MCU, and is fully Arduino compatible. You can use the included firmware, or it can be programmed any way you like, either from the Arduino IDE, or using any of the available tools for AVR development. The included firmware can also be edited and compiled directly from the Arduino IDE.

For adding RNode to your Arduino environment, please see this post.
For configuring an RNode, please have a look at the RNode Config Utility.


  • High-quality LoRa module with genuine Semtech SX1276 chip
  • Powered by an ATmega1284p MCU clocked at 16 MHz
  • 128 kilobytes of flash
  • 16 kilobytes of RAM
  • Large payloads with a packet MTU of 500 bytes
  • Up to 17 dBm continuous TX output in 820-1020 MHz
  • Up to 14 dBm continuous TX output in 410-525 MHz
  • Sensitivity down to -139 dBm
  • Data rates ranging from 20 bps to 21.88 kbps
  • Mini-USB connector
  • SMA antenna connector
  • Fully programmable
  • Arduino compatible
  • Open source firmware and config util
  • 17 multi-purpose IO ports available
    • All ports can be used as digital inputs or outputs
    • 5 ports can be used as analog inputs
    • An extra UART serial port is available on two of the pins
    • I2C port
    • Two PWM outputs are available
    • JTAG port available
  • Operating range: -20Β°C to 60Β°C (non-condensing)
  • 23.3 mA idle power consumption

Frequency Bands

RNode can operate in the following two frequency bands:

  • 410 - 525 MHz
  • 820 - 1020 MHz

Custom made or RNodes made from repurposed boards may be able to utilise other frquency bands depending on their transceiver setups.

Operating Modes

RNode can operate in two modes, host-controlled (default) and TNC mode:

  • When RNode is in host-controlled mode, it will stay in standby when powered on, until the host specifies frequency, bandwidth, transmit power and other required parameters. In host-controlled mode, promiscuous mode can be activated to sniff any LoRa frames on the specified channel configuration.
  • When RNode is in TNC mode, it will configure itself on powerup and enable the radio immediately. This mode can be enabled by using the configuration utility (the utility will guide you through the settings if you don't specify them directly). This is useful for using RNode as an amateur radio TNC with any legacy packet radio applications.

Resources and Downloads

Examples and Learning Resources

If you want some inspiration to get started with RNode, have a look at the following examples. Most of them contain step-by-step instructions on how to do them yourself.

Pinout and Overview

Programming Interface

Using the included libraries, it's easy to use RNode in your software. Here's a Python example:

from RNode import RNodeInterface
def gotPacket(data, rnode):
	print "Received a packet: "+data
rnode = RNodeInterface(
	callback = gotPacket,
	name = "My RNode",
	port = "/dev/ttyUSB0",
	frequency = 868000000,
	bandwidth = 125000,
	txpower = 2,
	sf = 7,
	cr = 5,
	loglevel = RNodeInterface.LOG_DEBUG)
rnode.send("Hello World!")

USB and Serial Protocol

You can communicate with RNode either via the on-board USB connector, or using the serial pins on the board (labeled RX0 and TX0). RNode uses a standard FTDI USB chip, so it works out of the box without additional drivers in most operating systems.

All communications to and from the board uses KISS framing with a custom command set. RNode also does not use HDLC ports in the command byte, and as such uses the full 8 bits of the command byte is available for the actual command. Please see table below for supported commands.

Command Byte Description
Data frame 0x00 A data packet to or from the device
Frequency 0x01 Sets or queries the frequency
Bandwidth 0x02 Sets or queries the bandwidth
TX Power 0x03 Sets or queries the TX power
Spreading Factor 0x04 Sets or queries the spreading factor
Coding Rate 0x05 Sets or queries the coding rate
Radio State 0x06 Sets or queries radio state
Radio Lock 0x07 Sets or queries the radio lock
Device Detect 0x08 Probe command for device detection
Promiscuous 0x0E Sets or queries promiscuous mode
Ready 0x0F Flow control command indicating ready for TX
RX Stats 0x21 Queries received bytes
TX Stats 0x22 Queries transmitted bytes
Last RSSI 0x23 Indicates RSSI of last packet received
Blink 0x30 Blinks LEDs
Random 0x40 Queries for a random number
Firmware Version 0x50 Queries for installed firmware version
ROM Read 0x51 Read EEPROM byte
ROM Write 0x52 Write EEPROM byte
TNC Mode 0x53 Enables TNC mode
Normal Mode 0x54 Enables host-controlled mode
ROM Erase 0x59 Completely erases EEPROM
Error 0x90 Indicates an error

A few notes on the EEPROM

As a completely open device, RNode does not block you from modifying the EEPROM contents, which specifies things like radio parameters, serial number, manufacture date and similar. But please be aware that doing so might render the device inoperable or burn out the radio. Before making any modifications, please make sure to create a backup of the EEPROM. RNode includes a cryptographic signature of the EEPROM contents, which validates all the information stored within it. You will not be able to re-create a valid signature if you erase it! Without this signature, the board will still function, but warranty will be void. If you upload your own programs or alternative firmwares to RNode, you should make sure that they don't write to the last 200 bytes of EEPROM. You can back up your EEPROM with the config utility.

How do I get it?

You can buy one from my shop, or make it yourself. Using the circuit design files, it is possible to build a fully functional RNode on a breadboard. See the following articles for more info on how to easily make your own RNodes from common boards:

59 thoughts on “RNode

    1. Hi there! They’ll be available in my shop very soon. You can preorder them already, and I will ship out as soon as the first production batch is ready, on the 12th of July the latest, but probably before that.
      If you want to build it yourself, there’s some preliminary resources available in the GitHub repository, but it will be easier once I upload files for a breadboard layout.

    1. Hi there!
      Absolutely, RNode works perfectly with a Raspberry Pi!

        1. Will do! You can also subscribe to the blog feed, I’ll definitely write a post when it’s ready.

  1. Hello,
    Is it possible to set IPAddress to Arduino device using RNode and send/receive data within Arduino devices itself?
    I want to connect one more sensor in Arduino device with Rnode and send sensor data to another server also should able to receive commands from server using ipaddress.

    1. Hi there!
      Currecntly RNode itself does not include an IP stack in the firmware. As such, it is up to the host device (computer, Raspberry Pi, other Arduino or similar) to implement the IP stack, or other networking layer. That being said, there is still enough room in the firmware, that a simple TCP/IP stack could be included on board. I might add this in a future firmware update, but not making any promises as to when πŸ˜‰

    1. Because it’s much more sturdy and mechanically secure than micro USB. I also find micro-b much more fiddly to connect, and harder to visually see the orientation at a glance. You can still buy mini-b cables most places online πŸ™‚

      1. I see your point, but it’s really frustrating to have to pack and track a legacy connector that I’ve worked to abandon, to support a single device. It would be great if you’d consider a USB Micro-B or USB C option in a future hardware redesign. If I could find a drop-in replacement receptacle for USB micro-B for that pad layout, I’d try swapping it out myself (on this and on a couple of other things I’d like to keep using), but I don’t think one is made.

        1. Yeah, I totally get you. I will be moving all hardware to USB-C in the not too distant future, but I have been holding out on this until adoption was a bit more widespread. I have another product coming out in the next couple of months, and that will probably be the last of the mini-b connectors you will see from me πŸ˜‰
          I’m not sure a micro connector with the same layout exists, but if you do find one, I will be happy to supply some boards to you with no USB connector soldered on, so you can put it on yourself. Or depending on the volume you need, I can make a custom version with a micro-b connector.

          1. I applaud your use of the more robust connector and I have so many bits of test gear and GPSs I’ll never use all the Mini USB cables I have.
            Also, I own zero usb-c cables, so don’t rush that connector redesign on my account.

          2. Thanks for the comments! Don’t worry, I still have a couple of thousand mini-b connectors to go through before USB-C will be considered πŸ˜‰ And then again, I will probably do a poll for current customers on what they’d like to see for the future before doing any design changes. I’m definitely not going to change existing designs over, without also offering an option that keeps the old connectors, since many people rely on these.

    1. I will have new stock on november 14th, I really underestimated how popular these would be, so sorry for the wait! I’m considering opening pre-orders, since so many are asking when they will be back.

  2. Hey Mark, does this support a mesh network? Looking to get something like this onto people in an area and have them mesh network back to a single bresknout poiht to log aprs locations etc.

    1. Hi Chris, that is definitely possible, but depending on what you want to do, there’s different ways to achieve it. You’re welcome to send me an email with some more details on exactly what you’re building, and I’d be happy to offer some guidance on the system design.

    1. I assume you want to connect the RNode to another device using RS-232? If that is correct it is very easy to do, and you can do so directly by using the TX, RX and GND connectors on the board itself, so you can skip the USB part entirely if you want.

  3. Could this be purchased pre programmed and ready to go?
    What is the maximum range if placed above structures?

    1. Yes, I do offer custom programming services. Please contact me by mail for the details, you can reach me via mark at unsigned dot io. The maximum range is very, very long. If there is no obstructions it is several hundred kilometers, but it obstructions will of course attenuate the signal. If you send me a mail, with a quick overview of what you are trying to achieve, I can give you a general assessment of whether it will be possible range-wise with these units.

  4. Hey!
    would the Rnode normally be delivered without an antenna ? because i already bought one and it delivered without it.
    best regards.

    1. Hello!
      Yes, it is normally delivered without antenna. This is described on the product page on the shop, but I am sorry if you missed it. Since different uses and frequencies requires different antennas, there is not one standard one that will fit everyone, and you have to select it separately. I have a variety of suitable ones available in the shop, or you can use any other antenna with an SMA connector and suitable frequency. Or you can even build one yourself.

      Kind regards,

      1. hello Mark,

        Thank you for your quick reply!
        I see πŸ™‚ it,s not a problem.

        best regards

  5. Hi – is there a reference showing the bandwidth requirements for the different data rates? Sorry if i missed it in the docs …

  6. Hello,
    how do I recompile the RNodefirmware from the source code on a Linux host ?
    Best 73

    1. The current firmware version will compile inside the Arduino IDE, so the easiest way is to just install Arduino and compile it within that. You can also compile it outside, but that’s a bit more involved. The next version of the firmware source will have a standard makefile, so you can just run β€œmake” to compile.

  7. Hello,
    is it possible to slowdown the speed on the USB side of a rnode ? I’d like to use it at 38400 bps instead of 115200.

    Best 73

    1. Yes, but you will have to change the baudrate in the source code and recompile the firmware. If you’re having trouble doing this, shoot me an email, and I’ll help you out.

    1. Due to some current logistical challenges, and me having moved to another country, I won’t be able to ship any products until january, unfortunately. I apologise for the inconvenience, and hope you understand. I will open the orders for back-ordering soon, so you can place an order if you like, and I’ll ship as soon as I’ve got my inventories moved as well. Everything is just a bit more slow in these times, especially when cross-country moving is involved πŸ˜‰

  8. Hi,
    really great work. I’m totally new to LoraWan, but I have a RFM95 module laying around. Would this be compatible to the Semtech SX1276 for building a RNode with it?

    Best regards,

    1. At the moment, the RNode firmware only supports communicating with SX1276 based modules. The RFM95 is different enough that it would require a new driver in the firmware.

  9. Is there a no code way of interfacing a Bluetooth adapter to Rnode? It would be sorta handy. You can then run all those phone APRS programs ( ones that do kiss) .

    1. Yes! You should simply be able to connect the TX/RX pins from the bluetooth adapter to the RX0/TX0 pins on the RNode. Simple as that πŸ™‚

    1. In theory, yes, that should be perfectly possible. RNode can achieve high enough bitrates and low enough turnaround for low-latency audio streaming. But currently no software exists that lets you do this, at least not as a “plug-and-play” solution. If you want to experiment with implementing it, have a look at codec2.

  10. hi markqvist, I love what you’ve accomplished here!

    I have a question. I’m a network engineer, and we have a remote switch with no external network access. To configure the switch, we physically approach the switch with a console cable (RJ-45 on one end, serial on the other, and then we use a USB to serial converter to configure this switch via serial on a laptop (COM4, etc.) )

    We would like to be able to utilize LoRa to be able to console into this switch without being physicall in the room, using LoRa to bridge the connection between our laptop, and the remote switch.

    Would you have any thoughts on how either your device or LoRa as a whole could work in our goal?


    1. Hi Jim

      Currently, RNode expects data to be framed by a controlling host; it acts a network device, and expects the host to send data to it in a certain way. As such it lacks a mode for taking an unframed stream of data from the serial port, and transporting it to the other end. To do so securely would also entail encrypting the link by the RNode hardware.

      While this sort of functionality has been on my list for a while (you are not the first one asking), until now it has not been implemented. It will happen at some point, but unfortunately I currently don’t have a timeframe.

      If you are handy enough in C, it’s not a major project to take the open source RNode firmware and implement it yourself, maybe only apart from the encryption part, but you could lift that from my open source implementation in OpenModem.

      Hope it helps a bit at least! Let me know if you have any other questions.

      – Mark

  11. Hello,

    I’m working with a small team and we’re coming up to speed with Reticulum and we are loving it!

    With the virus impact on the global supply chain and shortage of silicon chips, are you still selling these RNode LoRa devices? Do you ship to the USA? Glad to also see you accept cryptocurrency!

    1. Hello

      Demand has been higher than usual, but I have managed to source all the components and materials I need for production for the foreseeable future, and I will have plenty of stock again very soon. All devices should be ready to ship again mid january at the latest.

      Hope that helps!

  12. The Semtech datasheet for the SX1276 seems to indicate that the 1276 supports 137-175MHz (“Band 3”). If so, that would make it suitable for 2-meter packet applications. Would that be true of the RNode? The docs on RNode seem to mention only “Band 1” and “Band 2” frequencies. Thanks!

    1. The original 420-525 MHz model of the original RNode will actually allow you to use those frequencies, and many other LoRa modules probably will too. The problem is that the matching of the output stages for those modules are usually not tuned for those frequencies, so you will have very bad performance, unless you account for this with some unusual loading and antenna setup.

Leave a Reply

Your email address will not be published. Required fields are marked *