Bluetooth Mesh es un estándar de red de malla de computadoras basado en Bluetooth Low Energy que permite la comunicación de muchos a muchos a través de la radio Bluetooth. Las especificaciones de la malla de Bluetooth fueron definidas en las especificaciones del Perfil de malla [1] y del Modelo de malla [2] por el Grupo de Interés Especial de Bluetooth (Bluetooth SIG). Bluetooth Mesh fue concebido en 2014 [3] y adoptado el 13 de julio de 2017 . [4]
Desarrollado por | Bluetooth SIG |
---|---|
Introducido | 13 de julio de 2017 |
Industria | Iluminación , IoT |
Alcance físico | 100-1000 metros (dependiendo de la configuración de retransmisión de malla) |
Descripción general
Bluetooth Mesh es un estándar de red en malla que opera según un principio de red de inundación . Se basa en los nodos que transmiten los mensajes: cada nodo de retransmisión que recibe un paquete de red que se autentica con una clave de red conocida que no está en la caché de mensajes, que tiene un TTL ≥ 2 puede retransmitirse con TTL = TTL - 1. El almacenamiento en caché de mensajes es utilizado para evitar la retransmisión de mensajes vistos recientemente.
La comunicación se lleva a cabo en los mensajes que pueden tener hasta 384 bytes de longitud, cuando se usa el mecanismo de segmentación y reensamblado (SAR), pero la mayoría de los mensajes caben en un segmento, es decir, 11 bytes. Cada mensaje comienza con un código de operación, que puede ser de un solo byte (para mensajes especiales), 2 bytes (para mensajes estándar) o 3 bytes (para mensajes específicos del proveedor).
Cada mensaje tiene una dirección de origen y de destino, lo que determina qué dispositivos procesan los mensajes. Los dispositivos publican mensajes en destinos que pueden ser cosas individuales / grupos de cosas / todo.
Cada mensaje tiene un número de secuencia que protege la red contra ataques de repetición.
Cada mensaje está encriptado y autenticado. Se utilizan dos claves para proteger los mensajes: (1) claves de red: asignadas a una red de malla única, (2) claves de aplicación: específicas para una funcionalidad de aplicación determinada, por ejemplo, encender la luz frente a reconfigurar la luz.
Los mensajes tienen un tiempo de vida (TTL). Cada vez que se recibe y retransmite un mensaje, el TTL se reduce, lo que limita el número de "saltos", eliminando los bucles sin fin.
Arquitectura
Bluetooth Mesh tiene una arquitectura en capas, con múltiples capas como se muestra a continuación.
Capa | Funcionalidad |
---|---|
Capa de modelo | Define una forma estándar de intercambiar mensajes específicos de la aplicación. Por ejemplo, un modelo de luminosidad de luz define una forma interoperable de controlar la luminosidad. Existen modelos obligatorios, llamados Modelos de base, que definen los estados y mensajes necesarios para administrar una red en malla. |
Capa de acceso | Define un mecanismo para garantizar que los datos se transmitan y reciban en el contexto correcto de un modelo y sus claves de aplicación asociadas. |
Capa de transporte superior | Define el cifrado autenticado de los paquetes de la capa de acceso mediante una aplicación (o una clave específica del dispositivo). También define algunos mensajes de control para administrar Friendship o para notificar el comportamiento del nodo mediante mensajes Heartbeat. |
Capa de transporte inferior | Esta capa define una transmisión segmentada confiable (a través de un reconocimiento de bloque) de paquetes de capa superior de transmisión, cuando un paquete de capa superior completo no se puede transportar en un solo paquete de capa de red. También define un mecanismo para reensamblar segmentos en el receptor. |
Capa de red | Esta capa define cómo los paquetes de transporte se dirigen a través de la red a uno o más nodos. Define la funcionalidad de retransmisión para reenviar mensajes por un nodo de retransmisión para ampliar el rango. Maneja el cifrado autenticado de la capa de red mediante la clave de red. |
Capa portadora | Define cómo se intercambian los paquetes de red entre nodos. La Especificación de perfil de malla define el portador de anuncios BLE y el portador BLE GATT. El perfil de malla define el protocolo proxy, a través del cual los paquetes de malla se pueden intercambiar a través de otros portadores como TCP / IP. |
Topología
Los nodos que admiten las diversas funciones se pueden formar en una red de malla.
Característica | Funcionalidad |
---|---|
Relé | recibir y retransmitir mensajes de malla sobre el portador de publicidad para habilitar redes más grandes. |
Apoderado | recibir y retransmitir mensajes en malla entre el GATT y portadores de publicidad. |
Baja potencia | operar dentro de una red de malla con un receptor significativamente reducido ciclos de trabajo solo en conjunto con un nodo que admita la función Friend. |
Amigo | ayudar a que un nodo que admita la función de bajo consumo funcione almacenando mensajes destinados a esos nodos. |
Límites teóricos
Se desconocen los límites prácticos de la tecnología Bluetooth Mesh. Algunos límites que están integrados en la especificación incluyen:
Límite para una red | Valor | Observaciones |
---|---|---|
Número máximo de nodos | 32 767 | El límite es 32768 direcciones y aunque un nodo puede ocupar más de una dirección, el límite práctico es probablemente menor. |
Número máximo de grupos | 16 384 El número de grupos virtuales es 2 128 . | |
Número máximo de escenas | 65 535 | |
Número máximo de subredes | 4 096 | |
TTL máximo | 127 |
Modelos de malla
A partir de la versión 1.0 de la especificación Bluetooth Mesh, [2] se han definido los siguientes modelos estándar y grupos de modelos:
Modelos de cimentación
Los modelos de cimentación se han definido en la especificación básica. Dos de ellos son obligatorios para todos los nodos de malla.
- Servidor de configuración (obligatorio)
- Cliente de configuración
- Health Server (obligatorio)
- Cliente de salud
Modelos genéricos
- Servidor OnOff genérico, utilizado para representar dispositivos que no se ajustan a ninguna de las descripciones de modelo definidas pero que admiten las propiedades genéricas de On / Off
- Servidor de nivel genérico, que mantiene el estado de un elemento en un entero de 16 bits con signo
- Servidor de tiempo de transición predeterminado genérico, utilizado para representar un tiempo de transición predeterminado para una variedad de dispositivos
- Servidor de encendido y apagado genérico y servidor de configuración de encendido y apagado genérico, utilizado para representar dispositivos que no se ajustan a ninguna de las descripciones del modelo pero que admiten las propiedades genéricas de encendido / apagado
- Servidor de nivel de potencia genérico y servidor de configuración de nivel de potencia genérico, incluido un estado de potencia genérica real, un estado de última potencia genérica, un estado predeterminado de potencia genérica y un estado de rango de potencia genérico
- Servidor de batería genérico, que representa un conjunto de cuatro valores que representan el estado de una batería
- Servidor de ubicación genérico y servidor de configuración de ubicación genérica, que representan la información de ubicación de un elemento, ya sea global (Lat / Lon) o local
- Servidor de propiedad de usuario / administrador / fabricante / cliente genérico, que representa cualquier valor que deba almacenar un elemento
- Cliente genérico OnOff y cliente de nivel genérico
- Cliente de tiempo de transición predeterminado genérico
- Cliente de encendido y apagado genérico y cliente de nivel de potencia genérico
- Cliente de batería genérico
- Cliente de ubicación genérica
- Cliente de propiedad genérica
Sensores
- Sensor Server y Sensor Setup Server, que representa un dispositivo sensor . El dispositivo sensor puede configurarse para devolver un valor medido periódicamente o bajo pedido; El período de medición (cadencia) se puede configurar para que sea fijo o para cambiar, de modo que el rango de valores más importante se informe más rápido.
- Cliente Sensor
Tiempo y escenas
- Servidor de tiempo y servidor de configuración de tiempo, que permite la sincronización de tiempo en una red de malla
- Servidor de escena y servidor de configuración de escena, que permite configurar y recuperar hasta 65535 escenas cuando sea necesario.
- Servidor del programador y servidor de configuración del programador
- Cliente de tiempo, cliente de escena y cliente de programador
Encendiendo
- Light Lightness Server y Light Lightness Setup Server, que representan una fuente de luz regulable
- Light CTL Server, Light CTL Temperature Server y Light CTL Setup Server, que representan una fuente de luz CCT o "blanca sintonizable"
- Light HSL Server, Light HSL Hue Server, Light HSL Saturation Server y Light HSL Setup Server, que representan una fuente de luz basada en la representación del color de tono, saturación y luminosidad
- Light xyL Server y Light xyL Setup Server, que representan una fuente de luz basada en el espacio de color CIE xyY modificado .
- Light LC (Lightness Control) Server y Light LC Setup Server, que representa un dispositivo de control de luz, capaz de controlar el modelo Light Lightness utilizando un sensor de presencia y un sensor de luz ambiental . Puede usarse para escenarios de control de luz como encendido automático, apagado automático y / o aprovechamiento de la luz del día .
- Cliente Light Lightness, Cliente Light CTL, Cliente Light HSL, Cliente Light xyL y Cliente Light LC
Aprovisionamiento
El aprovisionamiento es un proceso de instalación del dispositivo en una red. Es un paso obligatorio para construir una red de malla Bluetooth.
En el proceso de aprovisionamiento, un aprovisionador distribuye de forma segura una clave de red y un espacio de direcciones único para un dispositivo. El protocolo de aprovisionamiento utiliza el intercambio de claves Diffie-Hellman de curva elíptica P256 para crear una clave temporal para cifrar la clave de red y otra información. Esto proporciona seguridad frente a un intruso pasivo. También proporciona varios mecanismos de autenticación para proteger la información de la red, de un intruso activo que usa un ataque de intermediario , durante el proceso de aprovisionamiento.
Una clave única para un dispositivo conocida como "Clave de dispositivo" se deriva del secreto compartido de la curva elíptica en el aprovisionador y el dispositivo durante el proceso de aprovisionamiento. El aprovisionador utiliza esta clave de dispositivo para cifrar mensajes para ese dispositivo específico.
La seguridad del proceso de aprovisionamiento se ha analizado en un documento presentado durante la conferencia IEEE CNS 2018. [5]
El aprovisionamiento se puede realizar utilizando una conexión Bluetooth GATT o publicidad utilizando el portador específico. [1]
Terminología utilizada en las especificaciones del modelo de malla de Bluetooth y del perfil de malla
- Destino: la dirección a la que se envía un mensaje.
- Elemento: una entidad direccionable dentro de un dispositivo.
- Modelo: operación estandarizada de escenarios de usuario típicos.
- Nodo: un dispositivo aprovisionado.
- Proveedor: un nodo que puede agregar un dispositivo a una red de malla.
- Retransmisión: un nodo capaz de retransmitir mensajes.
- Fuente: la dirección desde la que se envía un mensaje.
Implementaciones
Aprobado ("calificado") por Bluetooth SIG
Nombre | Remitente | Fecha de calificación | QDID | Tipo |
---|---|---|---|---|
Pila de Bluetooth para sistemas integrados: perfil MESH [6] | Silvair, Inc. | 18 de julio de 2017 | 98880 | Subsistema de perfil |
Malla Bluetooth Qualcomm [7] | Qualcomm Technologies International, Ltd. | 18 de julio de 2017 | 98856 | Subsistema de perfil |
Modelos de malla Silvair [8] | Silvair, Inc. | 26 de julio de 2017 | 99282 | Subsistema de perfil |
Perfil de malla inalámbrica Gecko [9] | Laboratorios de silicio | 21 de septiembre de 2017 | 101318 | Subsistema de perfil |
CYW-MESH 1.0 [10] | Cypress Semiconductor Corporation | 3 de octubre de 2017 | 101726 | Componente (probado) |
Modelo de malla Bluetooth de Qualcomm [11] | Qualcomm Technologies International, Ltd. | 20 de octubre de 2017 | 102243 | Subsistema de perfil |
Pila de protocolo EtherMind Bluetooth, 5.0 (modo único) + malla [12] | Mindtree Limited | 24 de enero de 2018 | 106544 | Componente (probado) |
SDK de Telink SIG Mesh [13] | Semiconductor Telink | 1 de febrero de 2018 | 106546 | Subsistema de perfil |
TOSHIBA Bluetooth_stack_mesh-1 [14] | Toshiba Corporation | 13 de febrero de 2018 | 104143 | Componente (probado) |
Perfil de malla AMICCOM [15] | AMICCOM Electronics Corporation | 14 de marzo de 2018 | 109370 | Subsistema de perfil |
Modelo de malla Bluetooth de Amiccom [16] | AMICCOM Electronics Corporation | 30 de marzo de 2018 | 110168 | Subsistema de perfil |
Malla Airoha SIG [17] | Airoha Technology Corp. | 2 de abril de 2018 | 110202 | Subsistema de perfil |
Pila de malla Marvell v1.0 [18] | Grupo de tecnología Marvell | 27 de abril de 2018 | 110569 | Componente (probado) |
nRF5 SDK para Mesh [19] | Semiconductor nórdico | 2 de mayo de 2018 | 111537 | Subsistema de perfil |
Solución de malla Realtek Bluetooth 5 [20] | Realsil Microelectronics Inc | 27 de julio de 2018 | 115668 | Subsistema de perfil |
STSW-BNRG-Malla [21] | STMicroelectronics | 2 de agosto de 2018 | 116029 | Subsistema de perfil |
Host 5.0 de RDA BT [22] | RDA Microelectronics, Inc. | 13 de septiembre de 2018 | 115860 | Subsistema de perfil |
JYMC-MESH-1 [23] | Shanghai Frequen Microelectronics Co., Ltd. | 10 de octubre de 2018 | 119229 | Producto final |
RW-BLE-MESH [24] | CEVA, Inc. | 31 de octubre de 2018 | 119268 | Componente (probado) |
ARM Ltd Cordio Mesh [25] | ARM Ltd | 11 de diciembre de 2018 | 116593 | Subsistema de perfil |
Malla Bluetooth Samsung SLSI [26] | Samsung Electronics Co., Ltd. | 21 de diciembre de 2018 | 122442 | Subsistema de perfil |
Pila de host Bluelet V12 [27] | Barrot Technology Limited | 25 de diciembre de 2018 | 123056 | Componente (probado) |
ESP BLE Mesh v0.6 [28] | Espressif Systems (Shanghai) Pte. Limitado. | 14 de enero de 2019 | 124137 | Subsistema de perfil |
BK3435 BLE Core Spec 5.0 con MESH [29] | Beken Corp | 12 de marzo de 2019 | 127926 | Producto final |
Subsistema de perfiles de malla de acciones [30] | Acciones (Zhuhai) Technology Co., Limited | 21 de marzo de 2019 | 127646 | Subsistema de perfil |
Perfil de malla y host BLE de AliOS Things v2.1.0 [31] | Alibaba (China) Co., Ltd. | 19 de abril de 2019 | 129750 | Subsistema de host |
Pila de malla Tonly SIG [32] | Shenzhen Tonli Science and Technology Development Co., Ltd | 5 de mayo de 2019 | 130160 | Subsistema de perfil |
Perfil de malla Sino Wealth IBLE SIG [33] | Sino Wealth Electronic Ltd. | 18 de junio de 2019 | 133403 | Subsistema de perfil |
Modelo de malla y malla de Qualcomm Bluetooth v4.0 [34] | Qualcomm Technologies International, Ltd. | 19 de junio de 2019 | 128410 | Subsistema de perfil |
Subsistema de perfil de malla PAN1020 [35] | Shanghai Panchip Microelectronics Co., Ltd | 1 de julio de 2019 | 129291 | Subsistema de perfil |
Apache NimBLE BLE Host que incluye BLE Mesh [36] | JUUL Labs, Inc. | 15 de julio de 2019 | 131934 | Componente (probado) |
Pila de malla pequeña [37] | Alibaba (China) Co., Ltd. | 20 de julio de 2019 | 128246 | Subsistema de perfil |
ClarinoxBlue [38] | Clarinox Technologies Pty Ltd | 2 de agosto de 2019 | 134454 | Subsistema de host |
Malla BlueX [39] | BlueX Microelectronics Corp Ltd. | 20 de agosto de 2019 | 137436 | Subsistema de perfil |
Zephyr OS Mesh [40] | La Fundación Linux | 20 de septiembre de 2019 | 139259 | Subsistema de perfil |
WCH Bluetooth Mesh [41] | Nanjing Qinheng Microelectronics Co., Ltd. | 1 de junio de 2020 | 144808 | Subsistema de perfil |
Implementaciones de software gratuitas y de código abierto
Las implementaciones de software libre y de código abierto incluyen lo siguiente:
- La pila oficial de protocolos Linux Bluetooth (incluida en el kernel de Linux por Linus Torvalds en 2001 [42] ) BlueZ , doble licencia libre bajo la GPL [43] y la LGPL , [44] soporta Mesh Profile, desde la versión 5.47, [45 ] proporcionando la herramienta meshctl para configurar dispositivos de malla. BlueZ fue aprobado como paquete de software "calificado" por Bluetooth SIG en 2005. [46] BlueZ no se considera una pila Bluetooth Mesh calificada ya que Bluetooth Mesh no figura en el registro de calificación antes mencionado como un perfil admitido.
- Apache Mynewt NimBLE , con licencia gratuita bajo Apache License 2.0 , [47] es compatible con Bluetooth Mesh desde la versión 1.2.0. [48] Fue calificado el 15 de julio de 2019. con QDID 131934. [36]
- Zephyr OS Mesh , con licencia gratuita bajo Apache License 2.0 , [49] es compatible con Bluetooth Mesh desde la versión 1.9.0. [50] Zephyr OS Mesh 1.14.x fue calificado el 20 de septiembre de 2019 con QDID 139259. [36]
Referencias
- ^ a b "Especificación de Bluetooth® de perfil de malla" (descarga en PDF) . Sitio web de tecnología Bluetooth . 2017-07-13 . Consultado el 18 de julio de 2017 .
- ^ a b "Especificación de Bluetooth® del modelo de malla" (descarga en PDF) . Sitio web de tecnología Bluetooth . 2017-07-13 . Consultado el 18 de julio de 2017 .
- ^ "¿Limitación de rango? ¿Qué limitación de rango? Presentación de redes de malla | Sitio web de tecnología Bluetooth" . blog.bluetooth.com . Archivado desde el original el 9 de abril de 2016 . Consultado el 6 de julio de 2017 .
- ^ "Low Energy: Mesh | Sitio web de tecnología Bluetooth" . www.bluetooth.com . Archivado desde el original el 1 de septiembre de 2017 . Consultado el 18 de julio de 2017 .
- ^ Adomnicai, A .; Fournier, JJA; Masson, L. (30 de mayo de 2018). "Amenazas de seguridad de hardware contra redes de malla Bluetooth" . Conferencia IEEE de 2018 sobre comunicaciones y seguridad de redes (CNS) : 1–9. doi : 10.1109 / CNS.2018.8433184 . ISBN 978-1-5386-4586-4.
- ^ "QD ID 98880 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 15 de noviembre de 2017 .
- ^ "QD ID 98856 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 15 de noviembre de 2017 .
- ^ "QD ID 99282 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 15 de noviembre de 2017 .
- ^ "QD ID 101318 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 15 de noviembre de 2017 .
- ^ "QD ID 101726 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 15 de noviembre de 2017 .
- ^ "QD ID 102243 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 15 de noviembre de 2017 .
- ^ "QD ID 106544 | Estudio de lanzamiento - Detalles de listado" . launchstudio.bluetooth.com . Consultado el 5 de marzo de 2018 .
- ^ "QD ID 106546 | Estudio de lanzamiento - Detalles de listado" . launchstudio.bluetooth.com . Consultado el 5 de marzo de 2018 .
- ^ "QD ID 104143 | Estudio de lanzamiento - Detalles del listado" . launchstudio.bluetooth.com . Consultado el 5 de marzo de 2018 .
- ^ "QD ID 109370 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 5 de abril de 2018 .
- ^ "QD ID 110168 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 5 de abril de 2018 .
- ^ "QD ID 110202 | Estudio de lanzamiento - Detalles de listado" . launchstudio.bluetooth.com . Consultado el 5 de abril de 2018 .
- ^ "QD ID 110569 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 3 de mayo de 2018 .
- ^ Systems, eZ. "nRF5 SDK para Mesh / Bluetooth Low Energy / Productos / Hogar - Soluciones inalámbricas de ultra bajo consumo de NORDIC SEMICONDUCTOR" . www.nordicsemi.com . Consultado el 3 de mayo de 2018 .
- ^ "QD ID 115668 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 15 de septiembre de 2018 .
- ^ "QD ID 116029 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 15 de septiembre de 2018 .
- ^ "QD ID 115860 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 15 de septiembre de 2018 .
- ^ "QD ID 119229 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 7 de noviembre de 2018 .
- ^ "QD ID 119268 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 7 de noviembre de 2018 .
- ^ "QD ID 116593 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 21 de diciembre de 2018 .
- ^ "QD ID 122442 | Estudio de lanzamiento - Detalles de listado" . launchstudio.bluetooth.com . Consultado el 21 de diciembre de 2018 .
- ^ "QD ID 123056 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 21 de diciembre de 2018 .
- ^ "QD ID 124137 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 24 de enero de 2019 .
- ^ "QD ID 127926 | Estudio de lanzamiento - Detalles de listado" . launchstudio.bluetooth.com . Consultado el 14 de abril de 2019 .
- ^ "QD ID 127646 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 14 de abril de 2019 .
- ^ "QD ID 129750 | Estudio de lanzamiento - Detalles de listado" . launchstudio.bluetooth.com . Consultado el 6 de mayo de 2019 .
- ^ "QD ID 130160 | Estudio de lanzamiento - Detalles de listado" . launchstudio.bluetooth.com . Consultado el 6 de mayo de 2019 .
- ^ "QD ID 133403 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 19 de junio de 2019 .
- ^ "QD ID 128410 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 19 de junio de 2019 .
- ^ "QD ID 129291 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 27 de agosto de 2019 .
- ^ a b c "QD ID 131934 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 27 de agosto de 2019 .
- ^ "QD ID 128246 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 27 de agosto de 2019 .
- ^ "QD ID 134454 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 27 de agosto de 2019 .
- ^ "QD ID 137436 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 27 de agosto de 2019 .
- ^ "QD ID 139259 | Launch Studio - Detalles de la lista" . launchstudio.bluetooth.com . Consultado el 12 de marzo de 2020 .
- ^ "QD ID 144808 | Estudio de lanzamiento - Detalles de listado" . launchstudio.bluetooth.com . Consultado el 1 de junio de 2020 .
- ^ "Historia de BlueZ" . BlueZ . 2019-09-07.
- ^ "índice: bluez.git - Pila de protocolos Bluetooth para Linux - Marcel Holtmann" . kernel.org . 1991. Archivado desde el original el 5 de septiembre de 2019 . Consultado el 5 de septiembre de 2019 .
- ^ "índice: bluez.git - Pila de protocolos Bluetooth para Linux - Marcel Holtmann" . kernel.org . 1999. Archivado desde el original el 5 de septiembre de 2019 . Consultado el 5 de septiembre de 2019 .
- ^ "BlueZ» Archivo del blog »Lanzamiento de BlueZ 5.47" . www.bluez.org . Consultado el 27 de octubre de 2017 .
- ^ "Detalle de producto calificado" . Bluetooth SIG . Archivado desde el original el 5 de septiembre de 2019 . Consultado el 5 de septiembre de 2019 .
- ^ "apache / mynewt-core / LICENCIA" . GitHub . 2018-06-04. Archivado desde el original el 5 de septiembre de 2019 . Consultado el 5 de septiembre de 2019 .
- ^ "RN-1.2.0 - Apache Mynewt - Apache Software Foundation" . cwiki.apache.org . Consultado el 2 de julio de 2018 .
- ^ "zephyrproject-rtos / zephyr / blob / master / LICENSE" . GitHub . 2020-03-21. Archivado desde el original el 21 de marzo de 2020 . Consultado el 21 de marzo de 2020 .
- ^ "Notas de la versión Zephyr Kernel 1.9.0" . docs.zephyrproject.org . Consultado el 21 de marzo de 2020 .