InfiniTime 1.0, un firmware para relojes inteligentes PineTime
La comunidad de código abierto PINE64 dio a conocer hace ya varios dias el lanzamiento de InfiniTime 1.0, el cual es el firmware oficial del reloj inteligente PineTime en el cual se afirma que al equiparlo con la nueva versión de firmware convierte al reloj PineTime en un producto listo para los usuarios finales.
La lista de cambios señala un rediseño significativo de la interfaz, así como una mejora en el administrador de notificaciones y una solución para el controlador TWI, que anteriormente causaba bloqueos en los juegos.
El reloj PineTime se presentó en octubre de 2019 y ha evolucionado como un dispositivo compatible con PinePhone. En septiembre de 2020, se eligió el firmware gratuito InfiniTime, cuyo código se distribuye bajo la licencia GPLv3, como firmware predeterminado para PineTime.
El dispositivo está basado en el microcontrolador MCU NRF52832 (64 MHz) y está equipado con memoria Flash de sistema de 512KB, Flash de 4 MB para datos de usuario, RAM de 64KB, pantalla LCD de 1.3 pulgadas con una resolución de 240×240 píxeles, acelerómetro (usado como podómetro), sensor de frecuencia cardíaca y motor de vibración. La carga de la batería (180 mAh) es suficiente para 3-5 días de duración de la batería.
Como cualquier verdadero proyecto de código abierto, PineTime no se basa únicamente en una comunidad o un solo firmware. Hay muchos otros proyectos disponibles que se encuentran actualmente en desarrollo y todos merecen la atención de la base de usuarios. El firmware más avanzado entre los de la lista es probablemente Wasp-OS , el firmware Micropython. Proporciona muchas funcionalidades y es realmente fácil de usar y programar gracias al lenguaje Python.
También me gustaría destacar Pinetime-Lite, una bifurcación de InfiniTime de Joaquimorg. Joaquim agregó muchas características y mejoras agradables, y ya ha contribuido mucho de su trabajo a InfiniTime.
El firmware InfiniTime utiliza el sistema operativo en tiempo real FreeRTOS 10, la biblioteca de gráficos LittleVGL 7 y la pila Bluetooth NimBLE 1.3.0, mientras que el cargador de firmware se basa en MCUBoot.
El código de la interfaz de usuario está escrito en C++ e incluye funciones como un reloj (digital, analógico), un rastreador de actividad (monitor de frecuencia cardíaca y podómetro), que muestra notificaciones sobre eventos en un teléfono inteligente, una linterna, control de reproducción de música en un smartphone, mostrando instrucciones de un navegador, un cronómetro y dos juegos sencillos (Paddle y 2048).
A través de la configuración, se puede determinar la hora en que se apaga la pantalla, el formato de la hora, las condiciones de activación, cambiar el brillo de la pantalla, evaluar la carga de la batería y la versión del firmware.
Entre sus principales características destacan:
- 2 esferas de reloj: digital y analógica
- Varias aplicaciones (cronómetro, control de música, navegación, frecuencia cardíaca) y juegos (Paddle y 2048)
- Configuración de usuario (tiempo de espera de visualización, formato de hora, condiciones de activación)
- Actualizaciones de OTA con la ayuda de un gestor de arranque FOSS basado en MCUBoot
- Monitoreo de frecuencia cardíaca y conteo de pasos.
- 3-5 días de duración de la batería
En cuanto a la actualización del firmware se menciona que este se puede actualizar a través de actualizaciones OTA transmitidas desde el teléfono inteligente a través de Bluetooth LE.
Por otra parte, en cuanto a la relación de la vinculación y control del reloj inteligente en dispositivos que no son de Pine, se menciona que en teléfonos inteligentes y computadoras se puede hacer uso de las aplicaciones Gadgetbridge para Android, Amazfish (para Sailfish y Linux) y Siglo (para Linux) para controlar el reloj.
Además también se menciona que existe el soporte experimental para WebBLEWatch, una aplicación web para sincronizar relojes de navegadores que admiten la API Web Bluetooth.
El autor del firmware recuerda que además de InfiniTime hay una serie de alternativas, por ejemplo, hay opciones de firmware basadas en Zephyr, Mynewt OS, MbedOS, TinyGo, WaspOS (basado en Micropython) y PinetimeLite (modificación extendida del firmware InfiniTime).
Finalmente para quienes estén interesados en poder conocer más al respecto sobre este nuevo firmware o dispositivo, pueden consultar los detalles en el siguiente enlace.