You have a sensor node in mind, maybe a temperature probe in the basement or a door contact on the garden shed, and you have narrowed the hardware down to two RAKwireless parts. So, RAK3172 vs RAK4631? The short answer: the RAK3172 is a tiny solderable LoRaWAN module that you either put on your own PCB or drive with AT commands from another microcontroller. The RAK4631 is a WisBlock Core, a ready-made plug-in board with a more powerful processor, Bluetooth and USB that snaps onto a WisBlock base board and can be programmed straight from the Arduino IDE.
Both modules operate in the 868 MHz band, both speak LoRaWAN and LoRa peer-to-peer, and both come from RAKwireless. What separates them is form factor, processing headroom, the way you program them, and whether you need Bluetooth. After both modules, we cover what gets overlooked: factory firmware, the TCXO question and real-world power draw.

What is the RAK3172?
The RAK3172 is a LoRa module from the RAKwireless WisDuo line. At its heart is ST’s STM32WLE5CC, a chip that combines a 32-bit Arm Cortex-M4 microcontroller and a sub-GHz radio in one package. Your application gets 256 kB of flash with error correction and 64 kB of RAM.
Mechanically, the RAK3172 is a module you solder down. It has 32 edge pads and goes onto a carrier board like any other component, either a PCB you design yourself or a breakout board. It exposes UART, I2C, SPI, several ADC inputs and general-purpose GPIOs. According to the datasheet, the supply voltage range is 2.0 to 3.6 V, with 3.3 V typical.
The version we stock is the 8xx MHz variant with an MHF1 (IPEX) antenna connector and no TCXO, listed by RAKwireless as RAK3172-8-SM-I, SKU 305045. It covers the EU868, IN865 and RU864 frequency plans, so in Europe it is exactly what you need for LoRaWAN. Other versions exist with an RF pad instead of the connector, with a temperature-compensated oscillator (RAK3172-T) or with extra flash (RAK3172-F). Everything here refers to the base version without TCXO.
On the protocol side, the RAK3172 supports LoRaWAN 1.0.3 in Class A, B and C, activation via OTAA or ABP, and LoRa peer-to-peer without a network server. It has no Bluetooth and no Wi-Fi.
What is the RAK4631?
The RAK4631 is a WisBlock Core, the compute unit of the modular WisBlock system from RAKwireless. A 20 × 30 mm board carries two chips: Nordic Semiconductor’s nRF52840 as the microcontroller and Semtech’s SX1262 as the LoRa transceiver. The nRF52840 runs a Cortex-M4F core at 64 MHz with 1 MB of flash and 256 kB of RAM, which is a lot more headroom than the RAK3172 offers. It also includes a Bluetooth Low Energy radio and native USB.
Unlike the RAK3172, you don’t solder the RAK4631. It plugs into a WisBlock base board through a connector and is held down with screws. The base board handles power, the battery connector, the USB port and the slots for sensor and IO modules. The trade-off: you need at least a base board, and the build ends up larger than a bare module.
Per the datasheet, the SX1262 in the RAK4631 transmits at up to 22 dBm and the Bluetooth radio at up to +4 dBm. Each radio has its own IPEX antenna connector, which you can see clearly in the photo above. Logic supply is 2.0 to 3.6 V, and over USB the board runs from 5 V. The operating temperature range is −40 to +85 °C. We carry the 868 MHz version.
One naming detail matters: RAKwireless sells the RAK4631 with an Arduino BSP and the RAK4631-R with RUI3 firmware. According to the manufacturer, the hardware is identical; only the software and the programming workflow differ. As a side note, many Meshtastic nodes are built on the RAK4631 as well, but this article is about using it as a LoRaWAN end device.
RAK3172 vs RAK4631: what’s the difference?
The fundamental difference is architecture. On the RAK3172, your application and the radio stack share a single chip with limited resources. On the RAK4631, the radio has its own chip and the microcontroller has plenty of room for larger programs, Bluetooth and USB. The table compares the key datasheet figures.
| Feature | RAK3172 (no TCXO) | RAK4631 |
|---|---|---|
| Form factor | Solderable SMD module, 32 pins | WisBlock Core plug-in board, 20 × 30 mm |
| Processor | STM32WLE5CC, Cortex-M4 | nRF52840, Cortex-M4F, 64 MHz |
| Memory | 256 kB flash, 64 kB RAM | 1 MB flash, 256 kB RAM |
| LoRa radio | Integrated in the STM32WLE5 | SX1262, up to 22 dBm |
| Bluetooth | No | BLE 5.0 |
| USB | No | Yes, native |
| Antenna connector | 1 × IPEX (LoRa) | 2 × IPEX (LoRa and BLE) |
| Sleep current (datasheet) | 1.69 µA | 2.0 µA |
| Operating temperature | −20 to +85 °C | −40 to +85 °C |
| Factory firmware | RUI3 with AT commands | Arduino BSP or RUI3 (RAK4631-R) |
The table suggests a simple rule of thumb. If you want to build a compact device in volume, or you already have a microcontroller that just needs a LoRaWAN link, the RAK3172 is the leaner choice. If you would rather put a prototype together quickly, plug in sensors without soldering and write code in the Arduino IDE, the RAK4631 is the more convenient path.
A common mistake is to compare only the price of the two modules. The RAK3172 is cheaper, but it does nothing without a carrier board, a voltage regulator, a programming header and an antenna cable. The RAK4631 costs more, and it still needs a base board and an antenna. Always compare the complete build up to a working node rather than two loose parts. For one device, a custom PCB eats the savings; for a hundred, the math changes.
RAK3172 AT commands or custom firmware?
Out of the box, the RAK3172 runs RAKwireless’ RUI3 firmware. It exposes an AT command set over UART that lets you treat the module like a modem: set the frequency plan, enter the DevEUI, AppEUI and AppKey, join the network and send data. Current RUI3 builds default to 115200 baud. In a finished device, a host microcontroller such as an ESP32 reads the sensors and sends the readings via AT commands.
This approach has one clear advantage: you don’t have to deal with the LoRaWAN stack, because it is already implemented and maintained by RAKwireless. The downside is a second processor that costs board space and power and needs its own firmware.
The alternative is to run your application directly on the STM32WLE5. RUI3 provides an Arduino API for this: you install the RAKwireless board package in the Arduino IDE, write your sketch and upload it to the module as its firmware. The LoRaWAN stack stays in place and you save the host processor. For reading an I2C sensor and transmitting periodically, 256 kB of flash is plenty.
If you want to go deeper still, you can skip RUI3 entirely and work with ST’s STM32Cube ecosystem. In that case you are responsible for the LoRaWAN stack yourself, and the AT commands are gone. RAKwireless documents two ways to flash: a .bin file via the RAK DFU Tool or WisToolBox, or a .hex file including the bootloader via STM32CubeProgrammer. Keep in mind that uploading the .hex file erases all stored settings, including your keys. There is also a dedicated firmware image for the base variant (RAK3172-E) which, according to the manufacturer, does not work on the RAK3172-T or RAK3172-F. Modules on firmware 1.0.4 or older need migrating to RUI3.

How do you program the RAK4631 with Arduino?
For many makers, the RAK4631 is the easiest way into programming a LoRaWAN node because you program it over a USB cable straight from your computer. You need the core, a WisBlock base board with a USB port, a LoRa antenna and the Arduino IDE. Always connect the antenna before the first transmission, since running the radio without one can damage the power amplifier.
In the Arduino IDE, add the RAKwireless board manager URL in the preferences and then install the matching board package. This is where you pick your path. With the classic Arduino BSP for the nRF52840, LoRaWAN is typically handled by the SX126x-Arduino library, and you work from the examples in the WisBlock repository on GitHub. With the RUI3 package for the RAK4631-R, you write your sketch against the RUI3 API and can also configure the board via AT commands. Examples written for one path won’t run on the other without changes, so check which firmware your board runs and stick to one.
To upload, select the board and the serial port and click Upload. If that fails, a double press on the base board’s reset button usually helps: it starts the bootloader and the port reappears. For a first test, an OTAA join example is a good choice. Enter the DevEUI, AppEUI and AppKey from your network server, select the EU868 frequency plan and watch the serial monitor to see whether the join succeeds.
Does the RAK3172 have Bluetooth?
No. The STM32WLE5 inside the RAK3172 only has a sub-GHz radio for LoRa and (G)FSK. There is no Bluetooth Low Energy on board, and no firmware update will change that. If your device needs to be set up from a smartphone, you either add a separate BLE chip to your PCB or use a different core. RAKwireless also offers a pin-compatible module with BLE for exactly this case, although we don’t carry it.
The RAK4631, on the other hand, has BLE 5.0 built in because the nRF52840 includes a Bluetooth radio. That is handy for changing settings from an app or reading values on site. But the hardware alone does not give you an app connection; your firmware decides how Bluetooth gets used. If your node only sends a reading every few minutes and sleeps otherwise, Bluetooth is no reason to pick the RAK4631.
RAK3172 with or without TCXO: what does it mean?
TCXO stands for temperature-compensated crystal oscillator. The oscillator provides the clock from which the module derives its transmit frequency. A TCXO compensates for the drift a regular crystal shows with temperature. RAKwireless specifies ±2.5 ppm for the RAK3172-T and as tight as ±0.5 ppm for the RAK3172-TE. The base variant we stock has no TCXO, just a conventional crystal.
Why does it matter? LoRa tolerates some frequency offset between transmitter and receiver, but not an unlimited amount. It becomes critical with long symbols, meaning high spreading factors such as SF11 and SF12, narrow bandwidths and large temperature swings. Then the drift can grow large enough that the gateway stops receiving packets cleanly. For LoRaWAN in the EU868 band with 125 kHz bandwidth and moderate temperatures, this rarely makes a difference in practice.
A second, very concrete difference is the temperature range. According to the datasheet, the RAK3172 without TCXO is rated for −20 to +85 °C, while the TCXO variants are rated for −40 to +85 °C. Indoors, the base variant is a good fit; for an outdoor enclosure on a north-facing wall or a cold storage room, look at the TCXO version. When flashing, make sure you use the image that matches your hardware, because the firmware differs between variants.
How much power do the RAK3172 and RAK4631 draw?
The datasheets list 1.69 µA sleep current, 5.22 mA receive current and 87 mA transmit current at 20 dBm on 868 MHz for the RAK3172. For the RAK4631, the figures are 2.0 µA in sleep (LoRa and BLE both asleep), 17 mA for LoRa receive, 92 mA when transmitting at 17 dBm and around 125 mA at 20 dBm. Bluetooth on the RAK4631 adds about 9 mA when transmitting at 4 dBm and 11.5 mA when receiving.
For battery life, what counts is the average over a full cycle, and that depends mostly on how long the radio transmits. An example: a node sends a short reading every 15 minutes. At SF7 the transmission takes well under 0.1 seconds; at SF12 it takes more than a second. With 87 mA and one second of airtime, that averages out to about 97 µA; with 0.07 seconds, it is just under 7 µA. The roughly 0.3 µA difference in sleep current between the two modules barely registers by comparison. In Europe you also usually transmit at no more than 14 dBm in the 868 MHz band, so the actual transmit currents sit below the 20 dBm figures.
The rest of the circuit has a much bigger impact than the module itself. With the RAK4631, the base board adds its own draw from the charger, the voltage regulator and possibly a status LED. A sensor that stays powered all the time can easily exceed the core’s sleep current many times over. The same goes for your own PCB and any host processor driving the RAK3172. So measure the finished build over a complete cycle with a meter that captures both microamps and short spikes. Only then will you know whether two AA cells last one year or five.
Where can you buy a LoRaWAN module?
Before you order a LoRaWAN module, settle the form factor: do you want to design your own PCB, or would you rather plug things together than solder? Then check the frequency variant; for Europe it has to be EU868. Ask yourself whether you really need Bluetooth or whether the node just measures and transmits. Decide on the firmware path, whether that is AT commands from a host, RUI3 with the Arduino API or fully custom firmware, because your tools and examples depend on it. For outdoor devices, look at the temperature range and the TCXO question. And budget for every part still missing between the module and a working node: an antenna with the right connector, a carrier board or base board, a power supply and an enclosure.
Those points decide whether the RAK3172 or the RAK4631 is the right LoRaWAN module for your project, which is what the RAK3172 vs RAK4631 question really comes down to. If you are looking for either one, you can find both in our RF modules category.