¿Existen problemas conocidos de Bluetooth LE que usen OSX 10.12.5 que resulten en datos de paquetes faltantes?

1

PROBLEMA:

Cuando dos IMU envían datos al mismo tiempo y se reciben en mi script de depuración, solo una secuencia de datos de un sensor de IMU aparece en el registro. El mismo script muestra los resultados esperados cuando se ejecuta en otros sistemas.

VERSIONES:

Versiones relacionadas de hardware / firmware / software de mi computadora portátil

  • OSX 10.12.5
  • Versión de software Bluetooth de Apple: 5.0.4f18
  • Fabricante: Broadcom
  • Transporte: USB
  • Chipset: 20702B0
  • Versión de firmware: v137 c9260
  • Versión HCI: 4.0 (0x6)
  • Revisión de HCI: 0x242C
  • Versión LMP: 4.0 (0x6)
  • Subversión LMP: 0x4189

Versiones de software relacionadas con el script de prueba

  • Xcode 8.3
  • nodo v6.11.0
  • noble 1.8.1

DETALLES:

Lo anterior se relaciona con un script de prueba que estoy usando para depurar un problema BLE. El script actúa como un dispositivo central que se conecta a los sensores periféricos BLE (IMU) que emiten datos desde un chip bluetooth nórdico.

El hardware no parece ser el problema. Puedo ejecutar el script de prueba con los resultados esperados en varios sistemas diferentes, así que parece ser algo relacionado con las versiones de hardware / firmware / software de bluetooth en mi computadora portátil pero no puedo encontrar ninguna información relacionada.

  • Ejecuté pruebas que demuestran el resultado esperado en otros entornos que usan el mismo nodo y las versiones lib.
  • Probado con la misma versión de OSX y también con diferentes versiones de OSX con los resultados esperados.
  • Probado en Android con una aplicación de observación de paquetes diferente con resultados esperados.
  • Las 2 IMU se han probado de forma independiente y se confirmó que funcionan.
  • Cuando observo una sola IMU (no el par simultáneo) puedo observar los datos correctamente.
  • Intenté reiniciar mi máquina sin ningún efecto.
  • He restablecido el módulo bluetooth y también reinicié mi máquina.
  • He observado que los paquetes BLE utilizan xcode packet sniffer y los paquetes esperados tampoco aparecen allí (es decir, observados de forma independiente por lo que no parece ser un problema de nodo / noble).
  • También he intentado usar implementaciones de diferentes idiomas para conectarme a la capa de bluetooth de OSX en mi mac, pero realmente no hay ninguna biblioteca en funcionamiento que pueda encontrar.
  • No he experimentado ningún otro problema regular de bluetooth o BLE al usar la misma máquina.

Básicamente estoy desesperado y no sé qué más intentar o cómo solucionar este problema.

Estoy buscando ideas que identifiquen el problema o ideas que me ayuden a solucionar el problema. Si alguien tiene alguna idea, por favor hágamelo saber. ¡Muchas gracias!

    
pregunta brando 14.06.2017 - 10:53

1 respuesta

0

El problema de la pérdida de paquetes se debió a los diferentes intervalos mínimos de conexión permitidos en los diferentes sistemas operativos y la cantidad de datos que mi periférico estaba intentando generar. Debido a los requisitos del proyecto, necesitamos un rendimiento bastante alto. Mi evaluación original de obtener resultados positivos y negativos del mismo sistema operativo fue incorrecta debido a algunas variables de confusión. La misma pérdida de paquetes estaba ocurriendo en todas las máquinas Mac que probé. Se estaba produciendo una mayor pérdida de paquetes usando os x vs usando ubuntu porque existe un límite teórico en el intervalo mínimo de conexión de 20 ms para todos los programas de Apple que interactúan con corebluetooth. No estoy seguro de si ubuntu impone un límite similar pero definitivamente observé menos pérdida de paquetes usando ubuntu. Mi corazonada es que no hay un límite artificial y que el intervalo de conexión podría haber estado en el mínimo de 7.5 ms, pero tendré que investigar un poco más para averiguar cuál es el número en realidad.

    
respondido por el brando 20.06.2017 - 07:05

Lea otras preguntas en las etiquetas