Skip to main content

Módulo WM1302 Gateway LoRaWAN®

pir

pir

LoRaWAN® es una marca utilizada bajo licencia de la LoRa Alliance®. La marca LoRa® es una marca registrada de Semtech Corporation o sus subsidiarias.

note

Recientemente hemos lanzado la serie Wio-E5 basada en el módulo Wio-E5.

Haz clic aquí para conocer a los nuevos miembros de la familia LoRa-E5, desde el módulo Wio-E5, módulo Grove, mini placas de desarrollo hasta el Kit de Desarrollo.

Para saber más sobre cómo crear un nodo final LoRaWAN® usando el paquete STM32Cube MCU para la serie STM32WL (SDK), unirse y enviar datos a la red LoRaWAN®, consulta las páginas wiki de las mini placas de desarrollo y el 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 de banda base Semtech® SX1302, WM1302 desbloquea un mayor potencial 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 anteriores SX1301 y SX1308.

El módulo gateway LoRaWAN® WM1302 cuenta con versiones SPI y USB para las bandas de frecuencia US915 y EU868, lo que te permite elegir entre una amplia gama de planes de frecuencia LoRaWAN®, incluyendo EU868, US915, AS923, AS920, AU915, KR920 e IN865.

El módulo WM1302 cuenta con certificaciones CE, FCC y Telec, lo que ayuda a simplificar el desarrollo y proceso de certificación de dispositivos gateway LoRaWAN®.

WM1302 está diseñado para aplicaciones M2M e IoT, y puede aplicarse ampliamente en escenarios compatibles con gateway LPWAN. Es una opción ideal para reducir significativamente las dificultades técnicas y el tiempo de desarrollo al crear dispositivos gateway LoRa®, incluyendo gateways LoRaWAN®, hotspots, etc.

Características

  • Impulsado por el chip de banda base Semtech® SX1302 LoRa®, con consumo de energía extremadamente bajo y alto rendimiento.
  • Factor de forma mini-PCIe con conector estándar de 52 pines, fácil de integrar con diversos dispositivos gateway.
  • Temperatura de operación ultra baja, no requiere disipación de calor adicional, reduciendo el tamaño del gateway LoRaWAN®.
  • Alta sensibilidad, hasta -139 dBm @SF12 con el front-end SX1250 TX/RX; potencia de transmisión hasta 26 dBm @3.3V.
  • Certificado con CE, FCC y TELEC, lo que simplifica el proceso de certificación del producto final.

Visión General del Hardware

Diagrama

pir

Pinout

pir

pir

Especificaciones

RegiónEU868US915
Frecuencia863-870MHz902-928MHz
Sensitividad-125dBm @125K/SF7
-139dBm @125K/SF12
-125dBm @125K/SF7
-139dBm @125K/SF12
Poder TX26 dBm (with 3.3V power supply)25 dBm (with 3.3V power supply)
LEDsPower: Green Config: Red TX: Green RX: Blue
Form FactorMini PCIe, 52pin Golden Finger
Consumo energético (Versión SPI)Reposo: 7.5 mA
TX al máximo: 415 mA
RX: 40 mA
Consumo energético (Versión USB)Reposo: 20 mA
TX al máximo: 425 mA
RX: 53 mA
LBT(Listen Before Talk)Soportado
Conector de AntenaU.FL
Temperatura Operativa-40°C a 85°C
Dimensiones30 mm (ancho) × 50.95 mm (largo)
CertificaciónCE

Applicación

  • Desarrollo de dispositivos gateway LPWAN

  • Desarrollo de cualquier aplicación de comunicación inalámbrica de largo alcance

  • Aprendizaje e investigación en aplicaciones LoRa® y LoRaWAN®

Dimensiones

pir

Primeros Pasos

Diferencias entre la versión SPI y la versión USB

Para la versión SPI del Módulo Gateway LoRaWAN® WM1302, los chips Semtech SX1302 y SX126x están conectados a la Raspberry Pi mediante el mismo bus SPI pero con diferentes pines de selección de chip (CS).

Para la versión USB del Módulo Gateway LoRaWAN® WM1302, los chips Semtech SX1302 y SX126x están conectados a un microcontrolador STM32L4, y este MCU programado de fábrica funcionará como un dispositivo USB, actuando como un puente entre la Raspberry Pi y los chips SX1302/SX126x.

Inicio Rápido con WM1302

Hardware Necesario

  • Módulo Gateway LoRaWAN® WM1302

  • Placas Raspberry Pi con encabezado GPIO de 40 pines (por ejemplo, Raspberry Pi 4B o Raspberry Pi 3B+)

  • WM1302 Pi Hat para Raspberry Pi

  • Adaptador de corriente para Raspberry Pi

  • Una antena LoRa®

  • Una tarjeta SD de 8 GB o más y un lector de tarjetas

  • Un cable USB tipo C si se usa la versión USB del Módulo Gateway LoRaWAN® WM1302

Software Necesario

Paso 1. Montar el Pi Hat de WM1302 en la Raspberry Pi e instalar el módulo WM1302

Es fácil montar el Pi Hat en el encabezado de 40 pines de la Raspberry Pi. Primero apaga la Raspberry Pi, inserta el módulo WM1302 en el Pi Hat como se muestra en la imagen siguiente y atorníllalo en su lugar.

pir

Si se utiliza la versión USB del módulo WM1302, también se debe conectar su puerto Tipo C al puerto USB de la Raspberry Pi usando un cable USB Tipo C.

pir

Paso 2. Habilitar la interfaz I2C y SPI en Raspbian

El módulo WM1302 se comunica con la Raspberry Pi mediante SPI e I2C. Sin embargo, estas dos interfaces no están habilitadas por defecto en Raspbian, por lo que el desarrollador debe habilitarlas antes de usar el WM1302. Aquí presentamos una forma mediante línea de comandos para habilitar las interfaces SPI e I2C.

Primero, inicia sesión en la Raspberry Pi vía SSH o usando un monitor (no uses la consola serie ya que el módulo GPS en el Pi Hat utiliza los pines UART de hardware de la 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

pir

  1. Selecciona Interface Options

  2. Selecciona SPI, luego elige Yes para habilitarlo.

  3. Selecciona I2C, luego elige Yes para habilitarlo.

  4. Selecciona Serial Port, luego elige No para "Would you like a login shell..." y selecciona Yes para "Would you like the serial port hardware...".

  5. Después de esto, reinicia la Raspberry Pi para asegurarte de 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 el gateway LoRa SX1302) desde GitHub:

sudo apt update
sudo apt install -y git
cd ~
git clone https://github.com/Lora-net/sx1302_hal

Desplazate a la carpeta sx1302_hal y compila todo:

cd ~/sx1302_hal
make

Paso 4. Ejecutar el reenviador de paquetes Semtech SX1302

En el nuevo kernel de Linux, la interfaz sysfs ha sido reemplazada por la interfaz chardev.

Esto provoca que el script reset_lgw.sh proporcionado en el repositorio de sx1302 no reinicie correctamente el módulo y se muestren los siguientes registros:

...
./reset_lgw.sh: 26: echo: echo: I/O error
./reset_lgw.sh: 27: echo: echo: I/O error
./reset_lgw.sh: 28: echo: echo: I/O error
./reset_lgw.sh: 29: echo: echo: I/O error
./reset_lgw.sh: 32: cannot create /sys/class/gpio/gpio17/direction: Directory nonexistent
./reset_lgw.sh: 33: cannot create /sys/class/gpio/gpio5/direction: Directory nonexistent
./reset_lgw.sh: 34: cannot create /sys/class/gpio/gpio18/direction: Directory nonexistent
./reset_lgw.sh: 35: cannot create /sys/class/gpio/gpio13/direction: Directory nonexistent
CoreCell reset through GPIO17...
SX1261 reset through GPIO17...
CoreCell power enable through GPIO18...
CoreCell ADC reset through GPIO13...
./reset_lgw.sh: 45: cannot create /sys/class/gpio/gpio18/value: Directory nonexistent
./reset_lgw.sh: 47: cannot create /sys/class/gpio/gpio17/value: Directory nonexistent
./reset_lgw.sh: 48: cannot create /sys/class/gpio/gpio17/value: Directory nonexistent
./reset_lgw.sh: 50: cannot create /sys/class/gpio/gpio5/value: Directory nonexistent
./reset_lgw.sh: 51: cannot create /sys/class/gpio/gpio5/value: Directory nonexistent
./reset_lgw.sh: 53: cannot create /sys/class/gpio/gpio13/value: Directory nonexistent
./reset_lgw.sh: 54: cannot create /sys/class/gpio/gpio13/value: Directory nonexistent
...

Para determinar que el sistema en el que lo estas corriendo aun tenga la interfaz sysfs, puedes correr el siguiente comando:

ls /sys/class/gpio

:::

Para Linux con interfaz sysfs:

Si aparece una serie de carpetas gpiox, significa que el kernel de tu sistema aún tiene la interfaz sysfs, y puedes usar el script mencionado anteriormente para reiniciar el módulo.

Modifica el pin de reinicio para SX1302 y SX1261 en el script reset_lgw.sh, con el editor de texto nano:

nano tools/reset_lgw.sh

El siguiente código se muestra al inicio del editor de texto:

# 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)

Usa las teclas de navegación para mover el cursor, cambia SX1302_RESET_PIN=23 por SX1302_RESET_PIN=17 y SX1261_RESET_PIN=22 por SX1261_RESET_PIN=5, como se muestra a continuación:

# GPIO mapping has to be adapted with HW
#

SX1302_RESET_PIN=17 # SX1302 reset
SX1302_POWER_EN_PIN=18 # SX1302 power enable
SX1261_RESET_PIN=5 # SX1261 reset (LBT / Spectral Scan)
AD5338R_RESET_PIN=13 # AD5338R reset (full-duplex CN490 reference design)

Guarda estos cambios presionando CTRL + x, luego y, y finalmente Enter para cerrar el editor de texto.

Para Linux sin interfaz sysfs:

Si no hay ninguna carpeta llamada gpiox, entonces necesitas controlar los GPIO utilizando el paquete Libgpiod.

El script reset_lgw.sh para controlar los GPIO utilizando el paquete Libgpiod es el siguiente:

reset_lgw.sh
SX1302_RESET_PIN=17     # SX1302 reset
SX1302_POWER_EN_PIN=18 # SX1302 power enable
SX1261_RESET_PIN=5 # SX1261 reset (LBT / Spectral Scan)


WAIT_GPIO() {
sleep 0.1
}

reset() {
echo "CoreCell reset through GPIO$SX1302_RESET_PIN..."
echo "SX1261 reset through GPIO$SX1261_RESET_PIN..."
echo "CoreCell power enable through GPIO$SX1302_POWER_EN_PIN..."

# write output for SX1302 CoreCell power_enable and reset
gpioset gpiochip0 $SX1302_POWER_EN_PIN=1; WAIT_GPIO

gpioset gpiochip0 $SX1302_RESET_PIN=1; WAIT_GPIO
gpioset gpiochip0 $SX1302_RESET_PIN=0; WAIT_GPIO

gpioset gpiochip0 $SX1261_RESET_PIN=0; WAIT_GPIO
gpioset gpiochip0 $SX1261_RESET_PIN=1; WAIT_GPIO
}

case "$1" in
start)
reset
;;
stop)
reset
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac

exit 0

Copia reset_lgw.sh a la carpeta packet_forwarder, luego ejecuta lora_pkt_fwd. Ten en cuenta que debes seleccionar un archivo de configuración global_conf.json.sx1250.xxxx según el módulo que estés utilizando:

cp tools/reset_lgw.sh packet_forwarder/
cd packet_forwarder

# Por favor, selecciona uno de los siguientes comandos según tu módulo:

# Para el Módulo Gateway LoRaWAN WM1302 (SPI) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868

# Para el Módulo Gateway LoRaWAN WM1302 (USB) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB

# Para el Módulo Gateway LoRaWAN WM1302 (SPI) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915

# Para el Módulo Gateway LoRaWAN WM1302 (USB) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915.USB

Ahora, el packet forwarder puede ejecutarse correctamente. Pero aún hay algunas cosas que hacer si los desarrolladores necesitan reenviar paquetes LoRa® a su servidor LoRa® (por ejemplo, TTN o ChirpStack).

Para lograr este objetivo, los desarrolladores deben agregar primero la gateway Raspberry Pi al servidor LoRa. Tomando como ejemplo TTNv3, inicia sesión en la consola de TTNv3, haz clic en Go to gateways y luego en Add gateway. En la página Add gateway encontrarás varios campos para completar. En lo que debes enfocarte es en Gateway EUI, Gateway Server address y Frequency plan, los demás campos pueden dejarse con los valores predeterminados.

  • Gateway EUI: Un identificador único extendido de 64 bits para tu gateway. En esta wiki, lo hemos definido como AA555A0000000000.

  • Gateway Server address: La dirección del servidor a la que se conectará el gateway. Cópiala al portapapeles; los desarrolladores deberán guardarla en el archivo de configuración más adelante.

  • Frequency plan: Si utilizas un módulo EU868, selecciona Europe 863-870 MHz (SF9 for RX2); si usas un módulo US915, selecciona United States 902-928 MHz, FSB 2.

pir

Después de agregar la gateway, vuelve a la Raspberry Pi, presiona `CTRL + C` para detener `lora_pkt_fwd`, luego edita el archivo de configuración `global_conf.json.sx1250.xxxx` que usaste antes con el editor de texto `nano`:
# Por favor, selecciona uno de los siguientes comandos según tu módulo:

# Para el Módulo Gateway LoRaWAN WM1302 (SPI) - EU868
nano global_conf.json.sx1250.EU868

# Para el Módulo Gateway LoRaWAN WM1302 (USB) - EU868
nano global_conf.json.sx1250.EU868.USB

# Para el Módulo Gateway LoRaWAN WM1302 (SPI) - US915
nano global_conf.json.sx1250.US915

# Para el Módulo Gateway LoRaWAN WM1302 (USB) - US915
nano global_conf.json.sx1250.US915.USB

Básicamente, necesitas modificar estos parámetros: "gateway_ID", "server_address", "serv_port_up" y "serv_port_down", que se encuentran al final del archivo de configuración.
Copia la dirección del servidor del gateway (Gateway Server address) en "server_address", y cambia "serv_port_up" y "serv_port_down" a 1700.

Estos parámetros deberían quedar editados de la siguiente manera:

"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,

Guarda estos cambios presionando CTRL + x, luego y y finalmente Enter para cerrar el editor de texto.

Reinicia lora_pkt_fwd, y verás que tu Gateway Raspberry Pi estará conectado a TTNv3.

# 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 (USB) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB

# for WM1302 LoRaWAN Gateway Module (SPI) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915

# for WM1302 LoRaWAN Gateway Module (USB) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915.USB

Fuentes

Certificados

Soporte Técnico y Discusión de Producto

Por favor, envía cualquier problema técnico a nuestro foro.

¡Gracias por elegir nuestros productos! Estamos aquí para ofrecerte 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 atender distintas preferencias y necesidades.

Loading Comments...