Flipper Zero es un proyecto multiherramienta de bolsillo con factor de forma tamagotchi para hackers que estoy desarrollando con amigos. Publicaciones anteriores [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ]
En esta versión: API del sistema, kit de desarrollador, mejoras mecánicas y electrónicas, actualizaciones de GPIO, nueva función en NFC, banco de pruebas remoto ...
En septiembre no escribimos casi nada sobre el proyecto y ahora es el momento de explicar por qué. Hemos suspendido todas las actividades de marketing para centrarnos en el desarrollo y otras tareas: contratos de suministro y producción, cuestiones legales, contratación y mucho más. Todo esto requirió tanto esfuerzo que ni siquiera tuvimos tiempo de publicar la actualización. Ahora estamos listos para compartir la noticia contigo.
API del sistema
Durante este mes, hemos desarrollado la arquitectura del firmware y las API del sistema, abstracciones para interactuar con hardware, gestión de subprocesos y multitarea. Este es un trabajo bajo el capó que no estamos mostrando, pero es una parte importante del desarrollo.
Nuestro principal objetivo en el desarrollo de firmware es hacerlo lo más fácil de usar y comprensible posible para los desarrolladores para que puedan escribir fácilmente sus programas para Flipper Zero. Entonces, después de que terminó la campaña, tiramos todo el código sucio y comenzamos a desarrollar la arquitectura desde cero.

Durante este tiempo, hemos estado trabajando activamente en lo interno: escribir un cargador de arranque, refactorizar el código del sistema operativo, escribir controladores periféricos, diseñar API para aplicaciones personalizadas. La refactorización también afectó el sistema de compilación y las dependencias, se rediseñó el código de la interfaz de usuario. Los cambios más importantes tuvieron lugar en nuestra pila de desarrollo: actualizamos el CMSIS RTOS usado a la segunda versión y trajimos nuestro código para usar una única API. La nueva API de aplicación personalizada ha dado un gran paso hacia la versión beta y esperamos abrirla públicamente en un futuro próximo.
Mejoras en mecánica y electrónica.
Nuevos componentes y diseño de carcasa
La carcasa ha cambiado mucho desde el primer prototipo. Hemos rediseñado por completo el diseño de los botones y componentes internos para que el Flipper no se deshaga, sea duradero y pueda soportar un uso intensivo.
Hemos movido los módulos RFID y NFC a una placa separada debajo de la batería. Está conectado a la placa base con cables FPC.
Nuevo mecanismo de pulsador
Nuevos botones con resorte Se
agregaron resortes al joystick para una mejor respuesta táctil.
Cómo se realizan las pruebas de mecánica de botones
Batería reemplazable
Las baterías no extraíbles son el flagelo de los dispositivos modernos. Decidimos no usar una batería sellada y optamos por un conector de tres clavijas para que los usuarios puedan reemplazarla ellos mismos. Para una mayor facilidad de mantenimiento, planeamos vender componentes individuales de Flipper, incluida la batería, directamente en el sitio.
InfraRed movido a una esquina
Después de algunas pruebas, encontramos que la colocación anterior del puerto de infrarrojos no era muy conveniente: estaba bloqueado por el dedo índice y el módulo externo. Al final, se decidió trasladarlo a una esquina.
Más GPIO
Rediseñado el pinout GPIO. Se han agregado dos contactos GND más, nunca hay muchos de ellos.
Nueva función: lector USB NFC
Las tareas que requieren muchos recursos, como los ataques criptográficos, no se pueden realizar directamente en Flipper. Para algunos, incluso una Raspberry Pi no es suficiente: necesita un procesador de escritorio potente y completo. Por ejemplo:
- Ataques al clásico de Mifare: mfoc (anidado), mfcuk (lado oscuro)
- Ataque a Mifare Plus: Hard Nested
Decidimos agregar la capacidad de usar Flipper como un adaptador USB NFC normal junto con la biblioteca LibNFC. Como resultado, todos los programas existentes que funcionan a través de LibNFC funcionarán de inmediato sin modificaciones. En este modo, todos los comandos de la PC se enviarán directamente al chip NFC ST25R3916 a través de la interfaz USB.
El principal problema con esta tarea es que la biblioteca LibNFC está rígidamente clavada en los chips NXP PN5xx, y el nuevo controlador esencialmente tendrá que emular el comportamiento del chip PN53xxx, pero esto no da tanto miedo.
Kit de desarrollo Flipper Zero
Para los desarrolladores que están trabajando en firmware y hardware, hemos creado un devkit especial. De hecho, este es un Flipper ordinario con tableros desenrollados en accesorios de plástico, de modo que todos los componentes son fácilmente accesibles desde abajo y desde arriba, y usted puede arrastrarse fácilmente con sondas a cada elemento.
Laboratorio de flipper
Detrás de escena de Flipper Lab
Mientras se escribe el código, es necesario probarlo constantemente. La tarea se complica por el hecho de que las pruebas deben realizarse en hardware real e interactuar con el mundo real. Para ello, se realizó un banco de pruebas remoto, que se integra con scripts de CI a través del flujo de trabajo de GitHub. Con cada compromiso con el firmware, se recopila automáticamente y se vierte en el dispositivo, después de lo cual se realizan las pruebas, cuyos resultados se escuchan en la UART: de esta manera puede comprender qué pruebas se completaron con éxito. Hasta ahora funciona mal, pero en el futuro así es como comprobaremos todas las funciones: recibir / enviar radio, leer / escribir tarjetas NFC, transmitir / recibir señal IR, etc.
Este es el mismo kit de desarrollo para desarrolladores. Los botones físicos están conectados a través de relés, lo que permite controlarlos de forma remota. La imagen de la pantalla es capturada por una cámara y transmitida en el sitio web en tiempo real. A través de la cara web, puede cargar manualmente el firmware y presionar los botones, incluso si el desarrollador no tiene un dispositivo a mano.
La maqueta de la interfaz del banco de pruebas remoto de Flipper Zero
Flipper Lab se encuentra actualmente en desarrollo alfa, pero la abriremos públicamente más adelante para que cualquier desarrollador pueda:
- Cargue su propio firmware o complemento a una muestra de Flipper Zero en vivo
- Ver registros en tiempo real e incluso enviar mensajes UART a Flipper
- Presione todos los botones de forma remota
- Pruebe los periféricos con, por ejemplo, tarjetas RFID físicas y etiquetas iButton
Actualizaciones en vivo en Discord
En nuestro servidor de Discord, hemos agregado una transmisión en vivo de actualizaciones dentro del proyecto. Puede ver cómo lo están haciendo los desarrolladores en tiempo real con el nuevo canal #updates, donde puede ver las confirmaciones que ingresan al repositorio.
¡Ahora hay más de 6 mil participantes en el servidor!
Únase a nuestro servidor de Discord para:
- Comunicarse con nuestros ingenieros y patrocinadores
- Siga el progreso del desarrollo en tiempo real con el canal #updates
- Discutir casos de uso de Flipper Zero
- Conoce a miles de geeks
- Obtenga acceso a un canal secreto solo para patrocinadores (comuníquese con @Backers Bot en mensajes privados para obtener el rol)
- ¡Hola, buscamos talentos!
Anteriormente, lanzamos el programa Flipper Developer y recibimos más de mil respuestas. Invitamos a varios desarrolladores a un repositorio semicerrado con firmware.
Desafortunadamente, nos dimos cuenta de que el modelo de gestión horizontal no era adecuado para nosotros, porque la mayoría de los desarrolladores que no trabajan a tiempo completo, dedican tiempo al proyecto solo cuando tienen inspiración y ganas. Este proceso es difícil de gestionar y predecir el resultado a lo largo del tiempo. Por lo tanto, ahora solo contratamos desarrolladores a tiempo completo. Quizás cuando la mayor parte del código de bajo nivel esté listo y abramos el repositorio, será más fácil aceptar la entrada de la comunidad.