Descarga del Software

Historia de las diferentes versiones del software RadioShuttle. Se requiere un código de 8 dígitos, que se encuentra en la parte posterior de la tarjeta LongRa, para descargar el software:

Versiones disponibles de RadioShuttle

Versión 4.1 (4 septiembre 2020)

Mejoras importantes en el software, ejemplos actualizados y correcciones de errores. El MQTT Gateway es ahora definitivo y funciona con la tarjeta ECO Power así como con la nueva tarjeta Eagle. El código fuente del protocolo RadioShuttle está ahora incluido para revisar. Véase https://github.com/RadioShuttle.

  • MQTT Gateway se completa con el enrutamiento bidireccional LoRa <-> MQTT
  • El programa “Property Editor” está ahora incluido en todos los ejemplos y puede ser activado pulsando brevemente el pulsador “Reset” y luego manteniendo el pulsador “User” durante aprox. 5 segundos
  • El sensor de calidad del aire “PMSensorRadio” ha sido actualizado para trabajar con las tarjetas LongRa, ECO Power y Eagle
  • Actualización del protocolo RadioShuttle para soportar mensajes directos sin una sobrecarga de peticiones de protocolo. Esto es bueno para aplicaciones o emisiones en las que el tiempo es crítico y en las que la respuesta del protocolo de muchos clientes no funciona en paralelo.
    Los mensajes directos son soportados a través del indicador “MF_Direct” de SendMsg()
  • Soporte parpadeante indicando modo “deepsleep” en tarjeta Eagle
  • Las bibliotecas suministradas por RadioShuttle incluyen una referencia de GitHub en “library.properties”. Ya no se incluyen las copias de GIT Repro
  • Soporte StopWatchDog() para detener al watchdog en caso de que no se utilice
  • Se aumentó a 12 el número de temporizadores de tiempo de espera paralelo (antes era de 10, puede cambiarse en “Arduino-mbed.h” si es necesario)
  • El registro de callback de microsegundos del temporizador a través de attach_us() ahora utiliza un parámetro de 64 bits para permitir los timout de más de 35 minutos.
    Lo mismo se aplica a attach() (milisegundos) o attach_sec()
  • El programa de pruebas de referencia “CPUBench” ha sido modernizado para usar una plantilla C++. Las pruebas se han ampliado para incluir: Entero, Flotante, Int64 y Doble
  • Las API del SDK ESP32 han sido actualizadas para reemplazar las API obsoletas
  • Añadida la función idleCbs.RegisterIdeCallback() para registrar los callback en el nivel de interrupción, por ejemplo, dentro de los temporizadores. Estos callback se llamarán en el bucle dentro del modo “sleep” / “deepsleep”. Véase userButtonTimerFunc() en “RTCUtil.cpp”
  • Añadió un ejemplo preliminar de “Remote Relay” para Arduino ESP32 & D21. Esto también está incluido en el software Mbed OS Turtle

Nota:
Los programas existentes deben actualizarse a los últimos archivos “LoRa.cpp”, “LoRa.h”, “xPinMap.h” y “RTCUtil.cpp”, de lo contrario no funcionarán. El archivo “PinMap.h” ha sido renombrado a “xPinMap.h” por razones de compatibilidad con un nombre conflictivo en el sistema operativo Mbed.

Versión 4.0 (8 julio 2020)

Soporte para la tarjeta Eagle, ejemplos actualizados y correcciones de errores. Arduino y el sistema operativo Mbed están en el mismo nivel de características. El código fuente del protocolo RadioShuttle está ahora incluido para su revisión. Véase https://github.com/RadioShuttle.

  • Soporte para la tarjeta ESP32 Eagle (tarjeta con WiFi, LoRa, pantalla)
  • Soporte para la versión 1.8.3 de Arduino D21
  • Añadido el controlador HELIOS_Si7021 (idéntico para los sistemas operativos Arduino y Mbed)
  • Controlador OLED_SSD1306 driver, anteriormente OLED (idéntico para los sistemas operativos Arduino y Mbed)
  • Añadido el código fuente de NVProperty (idéntico para los sistemas operativos Arduino y Mbed)
  • Biblioteca de RadioShuttle actualizada (idéntica para los sistemas operativos Arduino y Mbed)

Nota:
Los programas existentes deben actualizarse a los últimos archivos “LoRa.cpp”, “LoRa.h”, “xPinMap.h” y “RTCUtil.cpp”, de lo contrario no funcionarán. El archivo “PinMap.h” ha sido renombrado a “xPinMap.h” por razones de compatibilidad con un nombre conflictivo en el sistema operativo Mbed.

Versión 3.8 (2 octubre 2019)

Esta nueva versión contiene importantes mejoras, nuevos ejemplos y correcciones de errores. La mayoría de los comentarios sobre el software proceden de conversaciones con los usuarios y de la reciente encuesta realizada a los clientes de RadioShuttle.

  • El modo Node Offline ahora también funciona correctamente con los mensajes AES
  • “AddRadio” permite especificar un parámetro personalizado para el rretraso en la repetición de mensajes (en lugar de la configuración predeterminada). En versiones anteriores, había un retraso adicional de 4000 ms antes de las repeticiones, este largo retraso para la depuración fue eliminado
  • Se ha añadido el ejemplo “RadioShuttleSimpleNode”, que envía los datos del sensor a una estación remota. Esto incluye temperatura, humedad y estado de la batería. Los datos se envían automáticamente cada 30 minutos o al pulsar el pulsador “User”. Este ejemplo está optimizado para baterías con soporte “deepsleep” y proporciona una plantilla fácil de usar para aplicaciones de nodos
  • Se ha añadido el ejemplo “RadioShuttlePanicButton”, que es muy similar al ejemplo “RadioShuttleSimpleNode”, pero tiene un soporte adicional de sonido de zumbador básico para confirmar a la persona que busca ayuda que se ha activado la alarma de pánico. El nodo “Panic Button” se puede utilizar con la pasarela “ESP32RadioShuttleMQTT”, que reenvía los datos a un servidor MQTT
  • Se ha añadido el nuevo ejemplo de solución “ESP32Doorbell”. Este ejemplo soporta un botón de timbre y un relé de apertura de puerta. Pulsando el botón de timbre, los teléfonos conectados a través del FRITZ!Box sonarán a través del protocolo TR-064. Además, el ejemplo envía un mensaje MQTT a la aplicación MQTT Push que le informa de que se ha pulsado el timbre. La puerta se puede abrir a través de la aplicación MQTT Push. Este ejemplo soporta pantallas SSD1306 que muestran los datos de temperatura y el estado de la conexión de red. También soporta nodos LoRa como estaciones de radiotransmisión
  • La función RadioShuttle Idle() ha sido mejorada para permitirle permanecer ocupado durante la transmisión a través de la opción “forceBusyDuringTransmits”. Esto es útil para garantizar que los mensajes se envían antes de apagarse. Esto sólo se aplica al hardware personalizado
  • ESP32: Se ha añdido soporte para el ESP32 para especificar la clavija de wake-up a través de los parámetros deepsleep(). El wake-up predeterminado es el pulsador “User” (clavija SW0)
  • ESP32: Se ha añadido el parámetro deepsleep() para permitir la especificación de la clavija LED para el parpadeo periódico durante el modo “deepleep”
  • ESP32: Corregido el wake-up GPIO en el modo “deepsleep”. En las versiones anteriores, el wake-up GPIO de “deepsleep” no funcionaba de forma fiable. Véase la variable “ESP32WakeupGPIOStatus” en “RTCUtil.cpp” y en el ejemplo “RadioShuttleSimpleNode”
  • El valor por defecto en el archivo “PinMap.h” es ahora la tarjeta LongRa (revisión 7.5). Los usuarios con tarjetas LongRa más antiguas deben adaptar el archivo “PinMap.h” a la revisión de la tarjeta 7.2
  • Se ha añadido el ejemplo “RadioShuttleRadioTest2”. Este ejemplo debería ser más fácil de usar para los nuevos usuarios; todo el código de configuración específico de LoRa se ha movido a “LoRa.cpp”. “RadioShuttleRadioTest2” se puede utilizar como servidor (p. ej. Station Basic) o como nodo (p. ej. Node Offline).
    “RadioShuttleRadioTest2” también recibe mensajes de “RadioShuttleSimpleNode”. El manejador de entrada de mensajes (“TempSensorRecvHandler”) puede copiarse desde “LoRa.cpp” al programa principal “RadioShuttleRadioTest2.ino” para proporcionar su propio manejador de entrada personalizable. La idea detrás de “LoRa.cpp”, “LoRa.h”, “RTCUtil.cpp” y “PinMap.h” es que estos archivos no deberían tocarse para poder utilizar siempre las últimas versiones de estos archivos. Para las versiones más nuevas de RadioShuttle, los proyectos personalizados que utilizan estos archivos deben actualizarse a las últimas versiones de archivos de RadioShuttle “LoRa.cpp”, “LoRa.h”, “RTCUtil.cpp” y “PinMap.h”

Nota:
Los programas existentes deben actualizarse a los últimos archivos “LoRa.cpp”, “LoRa.h”, “PinMap.h” y “RTCUtil.cpp”, de lo contrario no funcionarán.

Versión 3.7 (19 julio 2019)

  • Soporte de reinicio de WatchDog ECO Power
    La nueva función WatchDog reinicia automáticamente el ESP32, si se cuelga el programa ESP32 y ya no llama a la función sleep() regularmente. La función automática WatchDog aumenta considerablemente la disponibilidad.
    En “RTCInit.cpp” WatchDog se activa automáticamente (por defecto 120 segundos) y se puede adaptar a sus necesidades
  • Fijado el bloqueo LongRa D21 en deepsleep()
    Hubo situaciones en las que deepsleep() ocasionalmente bloqueaba y un WatchDog reiniciaba la MCU del D21. Mientras tanto, hemos llegado a la conclusión de que esto tiene que ver con dos errores de hardware de AtmelD21. Las soluciones provisionales están ahora integradas en el software para resolver los problemas
  • Soporte de otras propiedades en “RadioTest.ino”
    Las siguientes propiedades se utilizan ahora automáticamente, si están disponibles: LORA_FREQUENCY, LORA_BANDWIDTH, LORA_SPREADING_FACTOR, LORA_TXPOWER, LORA_FREQUENCY_OFFSET, LORA_APP_PWD

Nota:
Los programas existentes deben actualizarse a los últimos archivos “PinMap.h” y “RTCUtil.cpp”, de lo contrario no funcionarán.

Versión 3.5 (10 mayo 2019)

  • Las horas RTC ECO Power se basan ahora en la hora UTC
  • Compatibilidad con zonas horarias automáticas y tiempo de ahorro de luz
  • Nuevas Propiedades NET_NTP_GMTOFFSET, NET_NTP_DAYLIGHTOFFSET, NET_NTP_SERVER, NET_NTP_SERVER_ALT
  • Soporte de actualización de hora NTP para el ESP32, véase “NTPUpdate.h”, “NTPUpdate.cpp”
  • El DS3231 RTC existente se actualiza a través de NTP
  • Actualización de hora NTP añadida en los ejemplos “ESP32MQTTClient” y “ESP32MQTTAlarmSystem”
  • Actualizado el soporte para pantallas OLED SSD1306 (corrección de errores)
  • Actualizado el controlador del sensor Adafruit_Si7021 para trabajar con los nuevos SDK ESP32
  • RadioShuttle soporta las tarjetas Heltec ESP32 LoRa (se requiere una licencia, 25 €). Esto incluye las versiones Heltec ESP32 LoRa Kit v1, v2 y ESP32 LoRa stick
  • Soporte de RadioShuttle para la tarjeta Turtle (Mbed OS) que estará disponible próximamente
  • Mejoras y correcciones de errores menores

Versión 3.3 (8 de marzo 2019)

  • Corregido problema al enviar mensajes desde el servidor al nodo (potencia de transmisión incorrecta o demasiado baja)
  • Corregido problema con potencia de transmisión reducida (transmisión con 14 dBm, aunque se especificó un valor más bajo)
  • Corregido un error del compilador en el ejemplo “BlinkyEnhanced_C_Plus_Plus”
  • “NVProperty” mejorada (memoria permanente)
  • Añadido nuevo ejemplo “RadioContinuesTX”, que transmite permanentemente una señal de FM para sintonizar antenas

Versión 3.1 (1 de noviembre de 2018)

  • D21 soporte de memoria permanente (propiedades). Al final de la memoria flash D21, 16 kB (cambiable) se reservan para los ajustes. Por lo tanto, el boceto no debe ser mayor de 232 kB; el gestor de arranque de 8 k y la memoria de propiedades de 16 k están ocupados
  • Nuevo Arduino D21 “bossac” USB flash utility, que borra la memoria flash D21 sólo en el área de programa requerida. Los detalles se pueden encontrar en la documentación de la tarjeta LongRa
  • Aplicación de ejemplo “PropertyEditor” mejorada (en “Ejemplos->Arduino-mbed-APIs”)
  • Actualización de todos los ejemplos, los ajustes se cargan automáticamente a través de la función “GetProperties”
  • Las contraseñas AES ahora también funcionan con la configuración de propiedades

Versión 3.0 (1 de octubre de 2018)

  • Añadido soporte para el último SDK de ESP32 Arduino (también funciona con los SDK de ESP32 más antiguos)
  • Añadido nuevo soporte para RTC ds3231 I2C
  • Añadido soporte para el nuevo sensor Si7021 I2C
  • Editor de propiedades mejorado, que ahora permite configurar el tipo de radio, por ejemplo, RS_Node_Offline
  • Nuevo para D21: añadidas propiedades de flash permanentes para la tarjeta LongRa
    • Por defecto, los últimos 16 kB del D21 se utilizan para las propiedades
    • Véase “NVProperty.h” para detalles de “propSizekB”
    • Asegúrese de que “-lock=15” está incluido en el archivo “platforms.txt” (véase Instalación de un Croquis RadioShuttle para LongRa)
    • Los usuarios de la tarjeta LongRa deben añadir una vez el nodo y el código a través de “PropertyEditor” (LORA_DEVICE_ID, LORA_CODE_ID)
  • El nuevo ejemplo simplificado de RadioTest utiliza todos los parámetros a través de las propiedades
    • Asegúrese de que, como mínimo, se han definido las siguientes propiedades:
      • LOA_DEVICE_ID (ya predefinido para las tarjetas ECO Power)
      • LOA_CODE_ID (ya predefinido para las tarjetas ECO Power)
      • LORA_RADIO_TYPE (1 para RS_Node_Offline, 3 para RS_Node_Online, 4 para RS_Station_Basic)
  • Soporte para las nuevas tarjetes LongRa 7.5 (ofrecen más pines libres y una función preconfigurada para la medición de la batería). Active la tarjeta actual D21_LONGRA_REV_750 en el nuevo archivo “PinMap.h”

El uso de la configuración de propiedades para las aplicaciones RadioShuttle aporta grandes beneficios. Las propiedades permiten definir los ajustes por tarjeta una vez y cargar croquis idénticos en todas las tarjetas porque los ajustes personalizados se utilizarán automáticamente desde la memória no volátil. Con esta versión, las propiedades son totalmente compatibles con las tarjetas ESP32 ECO Power y D21 LongRa.

Versión 2.6 (1 de julio de 2018)

  • Versión universal, para las tarjetas ESP32 ECO Power y D21 LongRa
  • Nuevos ejemplos, desde el programa de prueba de temporizador “Blinky” hasta la pasarela RadioShuttle MQTT (actualmente 17 ejemplos)
  • Corrección de errores (se resolvieron problemas reproducibles)
  • La nueva función “InitLoRaChipWithShutdown” desactiva el chip LoRa para permitir el uso de programas en tarjetas LongRa o ECO Power en funcionamiento con ahorro de energía
  • Preparación para la medición de la batería en tarjetas LongRa (una información técnica que describe la modificación de dos resistencias viene por separado)
  • Soporte actualizado de la tarjeta LongRa (versión 7.4)
  • “SendMsg()” ha recibido flags adicionales:
    • “CF_CopyData” copia los datos en el búfer interno de la red en lugar de referenciarlos
    • “CF_FreeData” marca los datos de transmisión que se deben liberar después de la transmisión (mediante C++ “borrar[ ]”)
  • Nota importante: en “InitSerial()”, “intr.read())” debe sustituirse por “! intr.read())” en cada programa existente
  • Soporte de software para eliminar el rebote de los pulsadores. La clase “InterruptIn” puede activarse para la eliminación automática de rebotes mediante “debounce()”. Si no se especifican parámetros, el valor predeterminado es 300 ms
  • Muchas mejoras en los detalles de la compatibilidad con ESP32
  • Corregidos los posibles fallos en la salida de depuración del ESP32 RadioShuttle. No se puede emitir nada en las rutinas de interrupción del ESP32
  • La nueva función “pausa(milis)” activa el modo “lightsleep” del ESP32 y se pone en modo de reposo. No pasa nada durante la pausa, entonces simplemente continúa
  • La clase de temporizador ahora también permite “read_ns()”, para obtener el tiempo transcurrido en nanosegundos

Versión 2.0 (11 de mayo de 2018)

  • ESP32 ECO Power support

Versión 1.8 (24 de enero de 2018)

  • Nuevo reinicio de hardware a través de “WatchDog” si no se llama sleep() o deepsleep() en 30 segundos. Váse InitWatchDog() en el ejemplo RadioTest (archivo: “RTCUtil.cpp”)
  • Nueva función de salida rprintf(), similar a dprintf(), pero sin marca de tiempo en la salida

Versión 1.6 (18 de diciembre de 2017)

  • Introdujo el número de versión simple, 1.6 (1.4, 1.5 era sólo para uso interno)
  • Añadido soporte para preajustar el reloj RTC basado en el tiempo de compilación de Arduino
  • Añadido soporte para ajustar la hora de inicio “dprintf” a la hora RTC
  • Se implementó una solución para que la función de mapa de Arduino no tenga que ser cambiada en las fuentes “WMath.h/WMath.cpp”
  • Documentación mejorada para “InitSerial()”, el parámetro LED puede ser NULL
  • El reloj RTC siempre se ajustará cuando el tiempo de compilación sea menor que el tiempo RTC

Versión 1.3 (14 de noviembre de 2017)

  • Añadido soporte para descargar el controlador SX1276 y el protocolo RadioShuttle
  • Soporte mejorado para la eliminación de rebotes de claves
  • Se ha añadido soporte para forzar “SerialUSB” cuando se pulsa el pulsador “A” en el encendido o en el reinicio
  • Corregidos los problemas del temporizador que provocaban interruptores que no funcionaban y otros problemas de suspensión
  • Corregidas las marcas de tiempo negativas en la impresión “dprintf”
  • Añadidos los nombres apropiados de los pines MCU en “PinMap.h” para la tarjeta LongRa
  • Desactivación de la alimentación de la pantalla por defecto para la tarjeta LongRa
  • Añadido soporte para la tarjeta Adafruit Feather M0 LoRa 868 MHz. Esta tarjeta será apoyada en el futuro. (25 € de licencia por tarjeta)
  • Añadido soporte para usar pines DIO0 para la detección CAD (Channel Activity Detection) lo que significa que sólo se requiere DIO0 para la operación del RadioShuttle LoRa cuando sólo se usa LoRa. Los pines DIO1, DIO2, DIO3, DIO4 no son necesarios en el futuro

Versión 1.2 (28 de septiembre de 2017)

  • RadioTest: Añadido soporte para pulsadores de usuario para despertarse inmediatamente del sueño profundo (“deepsleep”)
  • RadioTest: Añadido fácil cambio para usar RadioShuttle::Node_Offline con sueño profundo (“deepsleep”)
  • Corrgido el cálculo del desplazamiento de frecuencia con números negativos
  • Añadido soporte para ajustar el desplazamiento de frecuencia para permitir que todos los dispositivos coincidan con un reloj TCXO u otro reloj maestro
  • Cambio del tiempo máximo de detección “SerialMonitor” de 3 a 5 segundos (el tiempo de espera de 0 en “InitSerial” significa que el USB está siempre encendido)
  • Nueva inicialización del reloj RTC y visualización de la hora durante el arranque
  • “UpdateRadioProfile” se puede actualizar en cualquier momento, permite cambiar la frecuencia de radio, el factor de dispersión, etc. durante el funcionamiento a través de la nueva función “UpdateRadioProfile”
  • Añadida una función “StrError” que convierte los códigos de error de RadioShuttle en cadenas
  • Añadido informe de errores de texto claro para los ejemplos de RadioTest
  • RadioStatus: la función TXStart callback incluye la potencia de transmisión utilizada en dBm
  • RadioTest: Indicación de la frecuencia y del factor de dispersión en el arranque
  • RadioTest: añadido soporte de rebote para interruptores táctiles
  • Añadida la función “DeInitRadio” para descargar el protocolo RadioShuttle y los controladores y liberar sus recursos de memoria
  • RadioTest: se ha movido el código de inicio del RadioShuttle de la configuración a la función “InitRadio”
  • Añadida la función “UpdateNodeStartup” que permite cambiar de RadioShuttle::Node_Online a RadioShuttle::Node_Offline o inversa. Esto permite ahorrar energía a nodos RadioShuttle::Node_Online

Versión 1.0 Maker Faire Hannover (24 de agosto de 2017)

  • Soporta las tarjetas de Arduino LongRa (Rev. 6.0-7.2)
  • Modo de ahorro de energía (sleep) incluso con USB y “Monitor Serie” activos
  • Modo de ahorro de energía extendido (deepsleep) sin USB, requiere operación como nodo: RadioShuttle::RS_Node_Offline
  • Se incluye una aplicación de sensor de partículas finas. (Nova PM Sensor SDS011)
    Ejemplo: “PMSensorRadioRadioTest” (“Message Ping”) está incluida
  • La aplicación de prueba de RadioShuttle permite el intercambio de mensajes sencillos
    Ejemplo: “RadioTest”

Descargar