Módulo Gateway LoRaWAN® WM1302

LoRaWAN® es una marca utilizada bajo licencia de LoRa Alliance®. La marca LoRa® es una marca comercial de Semtech Corporation o sus subsidiarias.
Recientemente hemos lanzado la Serie Wio-E5 basada en el módulo Wio-E5.
Haz clic aquí para conocer los nuevos miembros de la familia LoRa-E5 desde el Módulo Wio-E5 módulo Grove, placas de desarrollo mini hasta el Kit de Desarrollo.
Para aprender más sobre la creación de un Nodo Final LoRaWAN® con el Paquete MCU STM32Cube para la serie STM32WL (SDK), para unirse y enviar datos a la Red LoRaWAN®, lee más en las páginas wiki para placas de desarrollo mini y Kit de Desarrollo.
El módulo WM1302 es una nueva generación de módulo gateway LoRaWAN® con factor de forma mini-PCIe. Basado en el chip LoRaWAN® de banda base Semtech® SX1302, el WM1302 desbloquea el mayor potencial de capacidad de transmisión inalámbrica de largo alcance para productos gateway. Presenta mayor sensibilidad, menor consumo de energía y menor temperatura de operación que los chips LoRa® anteriores SX1301 y SX1308.
El módulo gateway LoRaWAN® WM1302 tiene versiones SPI y USB en las bandas de frecuencia US915 y EU868, permitiéndote tener una amplia gama de opciones de planes de frecuencia LoRaWAN® para elegir incluyendo EU868, US915, AS923, AS920, AU915, KR920 e IN865.
El módulo WM1302 está certificado CE, FCC y Telec, lo que ayuda a simplificar el proceso de desarrollo y certificación de los dispositivos gateway LoRaWAN®.
El WM1302 está diseñado para aplicaciones M2M e IoT y puede ser ampliamente aplicado en escenarios compatibles con gateway LPWAN. Sería una elección perfecta para reducir significativamente las dificultades técnicas y el tiempo de consumo al desarrollar dispositivos gateway LoRa®, incluyendo gateway LoRaWAN®, hotspots, etc.
Características
- Alimentado por el chip LoRa® de banda base Semtech® SX1302, consumo de energía extremadamente bajo y alto rendimiento.
- Factor de forma Mini-PCIe con el conector dorado estándar de 52 pines, fácil de integrar con varios dispositivos gateway.
- Temperatura de operación ultra-baja, no se necesita disipación de calor adicional, reduciendo el tamaño del gateway LoRaWAN®.
- Alta sensibilidad hasta -139 dBm @SF12 con front-end TX/RX SX1250; potencia TX hasta 26 dBm @3.3V.
- Certificado con CE, FCC y TELEC. Simplifica el proceso de certificación del producto final.
Descripción General del Hardware
Diagrama

Pinout


Mapeo de Pinout de Raspberry Pi
| Pin No. 40 (BOARD#) | Raspberry Pi GPIO(BCM#) | Pinout WM1302 Pi HAT |
|---|---|---|
| 1 | 3.3V | NC |
| 2 | 5V | 5V |
| 3 | GPIO 2 | I2C_SDA |
| 4 | 5V | 5V |
| 5 | GPIO 3 | I2C_SCL |
| 6 | GND | GND |
| 7 | GPIO 4 | NC |
| 8 | GPIO 14 | GPS_RXD |
| 9 | GND | GND |
| 10 | GPIO 15 | GPS_TXD |
| 11 | GPIO 17 | SX1302_RESET Versión SPI: Activo ALTO Versión USB: Activo BAJO |
| 12 | GPIO 18 | SX1262_BUSY |
| 13 | GPIO 27 | NC |
| 14 | GND | GND |
| 15 | GPIO 22 | NC |
| 16 | GPIO 23 | SX1262_DIO1 |
| 17 | 3.3V | NC |
| 18 | GPIO 24 | SX1262_DIO2 |
| 19 | GPIO 10 | SPI_MOSI |
| 20 | GND | GND |
| 21 | GPIO 9 | SPI_MISO |
| 22 | GPIO 25 | GPS_RST |
| 23 | GPIO 11 | SPI_SCK |
| 24 | GPIO 8 | SX1302_CS |
| 25 | GND | GND |
| 26 | GPIO 7 | NC |
| 27 | GPIO 0 | I2C_SDA(EEPROM) |
| 28 | GPIO 1 | I2C_SCL(EEPROM) |
| 29 | GPIO 5 | SX1262_RST |
| 30 | GND | GND |
| 31 | GPIO 6 | SX1262_CS |
| 32 | GPIO 12 | GPS_WAKE_UP |
| 33 | GPIO 13 | NC |
| 34 | GND | GND |
| 35 | GPIO 19 | NC |
| 36 | GPIO 16 | NC |
| 37 | GPIO 26 | NC |
| 38 | GPIO 20 | NC |
| 39 | GND | GND |
| 40 | GPIO 21 | NC |
Especificaciones
| Región | EU868 | US915 |
|---|---|---|
| Frecuencia | 863-870MHz | 902-928MHz |
| Sensibilidad | -125dBm @125K/SF7 -139dBm @125K/SF12 | -125dBm @125K/SF7 -139dBm @125K/SF12 |
| Potencia TX | 26 dBm (con fuente de alimentación de 3.3V) | 25 dBm (con fuente de alimentación de 3.3V) |
| LEDs | Alimentación: Verde Config: Rojo TX: Verde RX: Azul | |
| Factor de Forma | Mini PCIe, Conector Dorado de 52 pines | |
| Consumo de Energía (versión SPI) | Standby: 7.5 mA TX potencia máxima: 415 mA RX: 40 mA | |
| Consumo de Energía (versión USB) | Standby: 20 mA TX potencia máxima: 425 mA RX: 53 mA | |
| LBT(Listen Before Talk) | Soporte | |
| Conector de Antena | U.FL | |
| Temperatura de Funcionamiento | -40°C a 85°C | |
| Dimensiones | 30 mm (ancho) × 50.95 mm (largo) | |
| Certificación | CE | |
Aplicación
-
Desarrollo de dispositivos Gateway LPWAN
-
Desarrollo de cualquier aplicación de comunicación inalámbrica de larga distancia
-
Aprendizaje e investigación de aplicaciones LoRa® y LoRaWAN®
Dimensión

Introducción
Diferencia entre la versión SPI y la versión USB
Para el Módulo Gateway LoRaWAN® WM1302 versión SPI, los chips Semtech SX1302 y SX126x están conectados a Raspberry Pi a través del mismo bus SPI con diferentes pines de selección de chip (CS).
Para el Módulo Gateway LoRaWAN® WM1302 versión USB, los chips Semtech SX1302 y SX126x están conectados a un MCU STM32L4, y este MCU programado de fábrica funcionará como un dispositivo USB, convirtiéndose en un puente entre Raspberry Pi y SX1302/SX126x.
Inicio Rápido con WM1302
Hardware Requerido
-
Módulo Gateway LoRaWAN® WM1302
-
Placas Raspberry Pi con conector GPIO de 40 pines (ej. Raspberry Pi 4B o Raspberry 3B+)
-
WM1302 Pi Hat para Raspberry Pi
-
Adaptador de Alimentación para Raspberry Pi
-
Una antena LoRa®
-
Una tarjeta SD de 8G o mayor y un lector de tarjetas
-
Un cable USB Type C si usas el Módulo Gateway LoRaWAN® WM1302 versión USB
Software Requerido
-
Imagen más reciente de Raspberry Pi OS: Se recomienda Raspberry Pi OS Lite
-
Balena Etcher: Para grabar la imagen de Raspberry Pi OS en la tarjeta SD
-
putty: Para conectarse a Raspberry Pi vía SSH en Windows
- Versión SPI WM1302
- Versión USB WM1302
Paso1. Montaje del WM1302 Raspberry Pi Hat e instalación del módulo WM1302
Apaga primero la Raspberry Pi, inserta el módulo WM1302 en el Pi Hat como se muestra en la siguiente imagen y atorníllalo.

Paso2. Habilitar las interfaces I2C y SPI de Raspbian
El módulo WM1302 se comunica con Raspberry Pi a través de las interfaces SPI e I2C. Pero estas dos interfaces no están habilitadas por defecto en Raspbian, por lo que el desarrollador necesita habilitarlas antes de usar WM1302. Aquí, introducimos una forma de línea de comandos para habilitar las interfaces SPI e I2C.
Primero, inicia sesión en Raspberry Pi vía SSH o usando un monitor (no uses la consola serie ya que el módulo GPS en el Pi Hat toma control de los pines UART de hardware del Pi), luego escribe sudo raspi-config en la línea de comandos para abrir la Herramienta de Configuración de Software de Raspberry Pi:
sudo raspi-config

-
Selecciona
Interface Options -
Selecciona
SPI, luego seleccionaYespara habilitarlo -
Selecciona
I2C, luego seleccionaYespara habilitarlo -
Selecciona
Serial Port, luego seleccionaNopara "Would you like a login shell..." y seleccionaYespara "Would you like the serial port hardware..." -
Después de esto, por favor reinicia Raspberry Pi para asegurar que estas configuraciones funcionen.
Paso3. Obtener y compilar el código fuente SX1302
Ahora instalemos git y descarguemos sx1302_hal (biblioteca y programas para SX1302 LoRa Gateway) desde github:
sudo apt update
sudo apt install -y git
cd ~
git clone https://github.com/Lora-net/sx1302_hal
Muévete a la carpeta sx1302_hal y compila todo:
cd ~/sx1302_hal
make
Paso4. Ejecutar el reenviador de paquetes Semtech SX1302
Copia reset_lgw.sh a la carpeta packet_forwarder, y modifica el reset pin para SX1302 y SX1261 en el script reset_lgw.sh con el editor de texto nano:
cp tools/reset_lgw.sh packet_forwarder/
cd packet_forwarder
nano tools/reset_lgw.sh
Verás el reset pin por defecto como sigue:
# GPIO mapping has to be adapted with HW
#
SX1302_RESET_PIN=23 # SX1302 reset
SX1302_POWER_EN_PIN=18 # SX1302 power enable
SX1261_RESET_PIN=22 # SX1261 reset (LBT / Spectral Scan)
AD5338R_RESET_PIN=13 # AD5338R reset (full-duplex CN490 reference design)
Modifica el SX1302_RESET_PIN, SX1302_POWER_EN_PIN y SX1261_RESET_PIN como sigue:
# GPIO mapping has to be adapted with HW
#
SX1302_RESET_PIN=588 # SX1302 reset
SX1302_POWER_EN_PIN=589 # SX1302 power enable
SX1261_RESET_PIN=576 # SX1261 reset (LBT / Spectral Scan)
AD5338R_RESET_PIN=13 # AD5338R reset (full-duplex CN490 reference design)
Guarda estos cambios presionando CTRL + x, seguido de y y Enter para cerrar el editor de texto.
También puedes consultar el script completo a continuación:reset_lgw.sh
#!/bin/sh
# This script is intended to be used on SX1302 CoreCell platform, it performs
# the following actions:
# - export/unpexort GPIO23 and GPIO18 used to reset the SX1302 chip and to enable the LDOs
# - export/unexport GPIO22 used to reset the optional SX1261 radio used for LBT/Spectral Scan
#
# Usage examples:
# ./reset_lgw.sh stop
# ./reset_lgw.sh start
# GPIO mapping has to be adapted with HW
#
SX1302_RESET_PIN=588 # SX1302 reset
SX1302_POWER_EN_PIN=589 # SX1302 power enable
SX1261_RESET_PIN=576 # SX1261 reset (LBT / Spectral Scan)
AD5338R_RESET_PIN=13 # AD5338R reset (full-duplex CN490 reference design)
WAIT_GPIO() {
sleep 0.1
}
init() {
# setup GPIOs
echo "$SX1302_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO
echo "$SX1261_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO
echo "$SX1302_POWER_EN_PIN" > /sys/class/gpio/export; WAIT_GPIO
echo "$AD5338R_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO
# set GPIOs as output
echo "out" > /sys/class/gpio/gpio$SX1302_RESET_PIN/direction; WAIT_GPIO
echo "out" > /sys/class/gpio/gpio$SX1261_RESET_PIN/direction; WAIT_GPIO
echo "out" > /sys/class/gpio/gpio$SX1302_POWER_EN_PIN/direction; WAIT_GPIO
echo "out" > /sys/class/gpio/gpio$AD5338R_RESET_PIN/direction; WAIT_GPIO
}
reset() {
echo "CoreCell reset through GPIO$SX1302_RESET_PIN..."
echo "SX1261 reset through GPIO$SX1302_RESET_PIN..."
echo "CoreCell power enable through GPIO$SX1302_POWER_EN_PIN..."
echo "CoreCell ADC reset through GPIO$AD5338R_RESET_PIN..."
# write output for SX1302 CoreCell power_enable and reset
echo "1" > /sys/class/gpio/gpio$SX1302_POWER_EN_PIN/value; WAIT_GPIO
echo "1" > /sys/class/gpio/gpio$SX1302_RESET_PIN/value; WAIT_GPIO
echo "0" > /sys/class/gpio/gpio$SX1302_RESET_PIN/value; WAIT_GPIO
echo "0" > /sys/class/gpio/gpio$SX1261_RESET_PIN/value; WAIT_GPIO
echo "1" > /sys/class/gpio/gpio$SX1261_RESET_PIN/value; WAIT_GPIO
echo "0" > /sys/class/gpio/gpio$AD5338R_RESET_PIN/value; WAIT_GPIO
echo "1" > /sys/class/gpio/gpio$AD5338R_RESET_PIN/value; WAIT_GPIO
}
term() {
# cleanup all GPIOs
if [ -d /sys/class/gpio/gpio$SX1302_RESET_PIN ]
then
echo "$SX1302_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
fi
if [ -d /sys/class/gpio/gpio$SX1261_RESET_PIN ]
then
echo "$SX1261_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
fi
if [ -d /sys/class/gpio/gpio$SX1302_POWER_EN_PIN ]
then
echo "$SX1302_POWER_EN_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
fi
if [ -d /sys/class/gpio/gpio$AD5338R_RESET_PIN ]
then
echo "$AD5338R_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
fi
}
case "$1" in
start)
term # just in case
init
reset
;;
stop)
reset
term
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0
Elige tu Servidor de Red LoRaWAN preferido server_address y el EUI del gateway gateway_ID en el correspondiente global_conf.json.sx1250.xxxxx basado en el módulo que estés usando, y modifica el up/down port a 1700. Luego ejecuta el siguiente código para iniciar el concentrador:
cd ~/sx1302_hal/packet_forwarder
# Please select one of the following comands based on your module
# for WM1302 LoRaWAN Gateway Module (SPI) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868
# for WM1302 LoRaWAN Gateway Module (SPI) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915
Paso1. Montaje del WM1302 Raspberry Pi Hat e instalación del módulo WM1302
Apaga primero la Raspberry Pi, inserta el módulo WM1302 en el Pi Hat como se muestra en la siguiente imagen y atorníllalo. Conecta su puerto Type C a uno de los puertos USB de Raspberry Pi con un cable USB Type C.

Paso2. Habilitar las interfaces I2C y SPI de Raspbian
El módulo WM1302 se comunica con Raspberry Pi con SPI e I2C. Pero estas dos interfaces no están habilitadas por defecto en Raspbian, por lo que el desarrollador necesita habilitarlas antes de usar WM1302. Aquí, introducimos una forma de línea de comandos para habilitar las interfaces SPI e I2C.
Primero, inicia sesión en Raspberry Pi vía SSH o usando un monitor (no uses la consola serie ya que el módulo GPS en el Pi Hat toma control de los pines UART de hardware del Pi), luego escribe sudo raspi-config en la línea de comandos para abrir la Herramienta de Configuración de Software de Raspberry Pi:
sudo raspi-config

-
Selecciona
Interface Options -
Selecciona
SPI, luego seleccionaYespara habilitarlo -
Selecciona
I2C, luego seleccionaYespara habilitarlo -
Selecciona
Serial Port, luego seleccionaNopara "Would you like a login shell..." y seleccionaYespara "Would you like the serial port hardware..." -
Después de esto, por favor reinicia la Raspberry Pi para asegurar que estas configuraciones funcionen.
Paso 3. Obtener y compilar el código fuente de SX1302
Ahora instalemos git y descarguemos sx1302_hal (biblioteca y programas para SX1302 LoRa Gateway) desde github:
sudo apt update
sudo apt install -y git
cd ~
git clone https://github.com/Lora-net/sx1302_hal
Ve a la carpeta sx1302_hal y compila todo:
cd ~/sx1302_hal
make
Paso 4. Ejecutar el reenviador de paquetes Semtech SX1302
Para obtener el puerto USB específico, sigue los pasos a continuación:
lsusb
En mi caso, el ID de Product de nuestro módulo WM1302 es 8047
pi@raspberrypi:~/sx1302_hal/packet_forwarder $ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 003: ID 2886:8047 Seeed Technology Co., Ltd. WM1302 USB Port
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Luego obtén el dispositivo USB con el Product ID 8047.
sudo dmesg | grep 8047
sudo modprobe cdc_acm
En mi caso, el número de puerto USB es 1-1.3.
pi@raspberrypi:~/sx1302_hal/packet_forwarder $ sudo dmesg | grep 8047
[ 215.459617] usb 1-1.3: New USB device found, idVendor=2886, idProduct=8047, bcdDevice= 2.00
Ahora podemos obtener el puerto del dispositivo usando:
sudo dmesg | grep 1-1.3
pi@raspberrypi:~/sx1302_hal/packet_forwarder $ sudo dmesg | grep 1-1.3
[ 215.364299] usb 1-1.3: new full-speed USB device number 3 using xhci_hcd
[ 215.459617] usb 1-1.3: New USB device found, idVendor=2886, idProduct=8047, bcdDevice= 2.00
[ 215.459643] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 215.459657] usb 1-1.3: Product: WM1302 USB Port
[ 215.459669] usb 1-1.3: Manufacturer: SEEED
[ 215.459680] usb 1-1.3: SerialNumber: 4E100336FF7F
[ 215.543301] cdc_acm 1-1.3:1.0: ttyACM0: USB ACM device
Así que en mi caso, el dispositivo USB es ttyACM0. La configuración predeterminada del dispositivo USB en global_conf.json.sx1250.xxxxx.USB es ttyACM0, por lo que no necesitamos hacer nada aquí.
Si tu dispositivo usa otro puerto USB, podemos usar el comando sed sed -i 's/search_string/replacement_string/g' filename para modificar el archivo de configuración global_conf.json.sx1250.xxxxx.USB para la región correspondiente.
Elige tu servidor de red LoRaWAN preferido server_address y el EUI del gateway gateway_ID en el global_conf.json.sx1250.xxxxx correspondiente basado en el módulo que estés usando, y modifica el up/down port a 1700. Luego ejecuta el siguiente código para iniciar el concentrador:
cd ~/sx1302_hal/packet_forwarder
# Please select one of the following comands based on your module
# for WM1302 LoRaWAN Gateway Module (USB) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB
# for WM1302 LoRaWAN Gateway Module (USB) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915.USB
Ahora, el reenviador de paquetes puede ejecutarse correctamente. Para reenviar exitosamente los datos a nuestro Servidor de Red LoRaWAN (por ejemplo, TTN o ChirpStack), aún necesitamos hacer algunas configuraciones en el lado del servidor.
Para hacer eso, necesitamos registrar primero el Gateway de Raspberry Pi que acabamos de construir en nuestro Servidor de Red LoRa. Tomando TTN como ejemplo, inicia sesión en la consola TTN, haz clic en el botón Gateways en el panel del lado izquierdo y haz clic en Register gateway. Completa el Gateway EUI, Gateway Server address y Frequency plan, deja las otras opciones con la configuración predeterminada.
-
Gateway EUI: Un identificador único de 64 bits para tu gateway.
-
Gateway Server address: La URL del clúster en el que está desplegado el servidor de red (
eu1.cloud.thethings.networkpor ejemplo). -
Frequency plan: Configura el plan de frecuencia correspondiente basado en tu región.
Europe 863-870 MHz (SF9 for RX2-recommended)para Europa,United States 902-928 MHz, FSB 2para EE.UU.

Después de registrar exitosamente el gateway, presiona CTRL + c para detener lora_pkt_fwd, luego edita y verifica el archivo de configuración global_conf.json.sx1250.xxxx para asegurar que las entradas "gateway_ID" y "server_address" coincidan exactamente con la configuración en LNS.
...
"gateway_conf": {
"gateway_ID": "AA555A0000000000",
/* change with default server address/ports */
"server_address": "eu1.cloud.thethings.network",
"serv_port_up": 1700,
"serv_port_down": 1700,
...
Reinicia lora_pkt_fwd usando el comando ./lora_pkt_fwd -c global_conf.json.sx1250.xxxxx, y deberías poder encontrar que tu Gateway de Raspberry Pi está conectado a TTN.
Preguntas Frecuentes
¿Por qué mis dispositivos no pueden unirse al servidor de red incluso si todas las configuraciones son correctas?
Hemos observado que ciertos módulos (versión USB WM1302-US915) pueden fallar al transmitir paquetes de datos de enlace descendente correctamente debido a diferencias del hardware. Para solucionar este problema, por favor modifica el valor de la macro TX_JIT_DELAY (puedes encontrar esta macro en /sx1302_hal/packet_forwarder/src/jitqueue.c) de 40000 a 120000 y recompila el sx1302_hal.
Fuentes
Certificados
Soporte Técnico y Discusión de Productos
Por favor envía cualquier problema técnico a nuestro foro.
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.
