

The SM5100B is a low-power, high-performance RF transceiver designed for wireless communication applications. Operating in the sub-GHz frequency range, it supports multiple protocols, including LoRa and FSK, making it a versatile choice for Internet of Things (IoT) devices. Its compact design and energy efficiency make it ideal for battery-powered applications, such as remote sensors, smart meters, and industrial automation systems.








| Parameter | Value |
|---|---|
| Operating Frequency | 433 MHz, 868 MHz, 915 MHz |
| Modulation Techniques | LoRa, FSK, GFSK |
| Supply Voltage | 2.0V to 3.6V |
| Transmit Power | Up to +20 dBm |
| Sensitivity | -137 dBm (LoRa, SF12, 125 kHz) |
| Data Rate | 0.3 kbps to 300 kbps |
| Current Consumption | 10 mA (Rx), 120 mA (Tx @ +20 dBm) |
| Operating Temperature | -40°C to +85°C |
| Package Type | Surface Mount (SMD) |
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | GND | Ground connection |
| 2 | VCC | Power supply input (2.0V to 3.6V) |
| 3 | ANT | RF antenna connection |
| 4 | DIO0 | Digital I/O pin 0 (interrupts, status signals) |
| 5 | DIO1 | Digital I/O pin 1 (configurable for protocols) |
| 6 | SCK | SPI clock input |
| 7 | MISO | SPI data output |
| 8 | MOSI | SPI data input |
| 9 | NSS | SPI chip select (active low) |
| 10 | RESET | Reset pin (active low) |
Below is an example of how to initialize and communicate with the SM5100B using an Arduino UNO:
#include <SPI.h>
// Define SPI pins for SM5100B
#define NSS_PIN 10 // Chip select pin
#define RESET_PIN 9 // Reset pin
#define DIO0_PIN 2 // Interrupt pin
void setup() {
// Initialize serial communication for debugging
Serial.begin(9600);
Serial.println("Initializing SM5100B...");
// Configure SPI
pinMode(NSS_PIN, OUTPUT);
pinMode(RESET_PIN, OUTPUT);
pinMode(DIO0_PIN, INPUT);
digitalWrite(NSS_PIN, HIGH); // Set NSS high (inactive)
digitalWrite(RESET_PIN, HIGH); // Set RESET high (inactive)
SPI.begin();
// Reset the SM5100B
digitalWrite(RESET_PIN, LOW); // Pull RESET low
delay(10); // Wait for 10ms
digitalWrite(RESET_PIN, HIGH); // Release RESET
delay(100); // Wait for the module to initialize
Serial.println("SM5100B initialized.");
}
void loop() {
// Example: Send a command to the SM5100B
digitalWrite(NSS_PIN, LOW); // Select the SM5100B
SPI.transfer(0x01); // Example command (replace with actual command)
digitalWrite(NSS_PIN, HIGH); // Deselect the SM5100B
delay(1000); // Wait for 1 second
}
0x01 in the SPI.transfer() function with the actual command for your application.No Communication with the Module
Poor RF Performance
High Power Consumption
Q: Can the SM5100B operate at 2.4 GHz?
A: No, the SM5100B is designed for sub-GHz frequencies, such as 433 MHz, 868 MHz, and 915 MHz.
Q: How do I configure the modulation type?
A: The modulation type (LoRa, FSK) can be configured via SPI commands. Refer to the module's datasheet for specific register settings.
Q: What is the maximum range of the SM5100B?
A: The range depends on factors such as antenna design, operating frequency, and environmental conditions. Under ideal conditions, it can achieve several kilometers using LoRa modulation.
Q: Is the SM5100B compatible with Arduino?
A: Yes, the SM5100B can be interfaced with Arduino boards using SPI communication.