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 ]
Durante las primeras 24 horas de la campaña de Kickstarter, recaudamos $ 1 millón. Francamente, ninguno de los miembros del equipo se acercó a esperar tanta popularidad. En los primeros días, mi teléfono fue arrancado de las notificaciones, se hicieron llamadas desde la revista Forbes al Canal Uno. Todavía no me he recuperado por completo de la conmoción y no he respondido completamente todas las cartas. Nunca había experimentado algo así en mi vida.
Muchas gracias a todos los que nos apoyaron, siguieron el proyecto y participaron. Fue en Habré donde publiqué el primer post con los conceptos de Flipper, recibí los primeros comentarios, críticas y elogios. Agregamos algunas funciones a Flipper después de los comentarios sobre Habré. Intentaremos no hacer mierda con la producción y cumplir con las expectativas.
Ahora estoy plenamente convencido de que la máxima franqueza y honestidad es la mejor estrategia. Todo nuestro equipo cree en el código abierto y creemos que los entusiastas pueden crear proyectos interesantes sin atraer inversores ni supervisión corporativa. Por lo tanto, invito a todos los interesados en el proyecto a participar en el desarrollo.
Debajo del corte hay una descripción del programa para desarrolladores de firmware, hardware, programas de escritorio y módulos de hardware.
¿Quién está trabajando en el proyecto?
El proyecto consta de varias partes a gran escala, cada una de las cuales tiene su propio equipo. A veces, los equipos tienen que coordinar su trabajo, por ejemplo, cuando los mecánicos y los trabajadores de hardware están tratando de ponerse de acuerdo sobre cómo mover un componente en el tablero para que no interfiera con el movimiento del botón. Estos son los comandos básicos:
- Firmware : todo el desarrollo de software del firmware, incluidos los módulos de software para cada componente: radio, RFID, Bluetooth, infrarrojos, U2F, pila USB, etc.
- Electronics Engineering (EE) es un equipo que desarrolla hardware, es decir, toda la parte electrónica: placas, antenas, potencia.
- Mechanical Engineering (ME) — , . , , : , , , , ..
- Manufacturing — , , ME Hardware . , , . SMT-, , -, , . , .
Por el momento tenemos un dispositivo completo ~ 80% en términos de hierro y mecánica. Pero la mayor parte del desarrollo de Flipper es el firmware. Ahora tenemos un prototipo funcional, una arquitectura y componentes básicos de firmware para cultivar la carne.
En esta etapa, es muy importante abordar correctamente la unificación de todos los componentes para mantener la legibilidad del código y un estilo único comprensible, de modo que sea fácil para los desarrolladores de todo el mundo desarrollar para nuestra plataforma. Creemos que esta tarea será de interés para la comunidad y te invitamos a contribuir al proceso de creación de Flipper, tal y como lo fue en las primeras etapas.
¿Cómo participar en el desarrollo del firmware?

Todo el firmware de Flipper Zero será completamente de código abierto y se publicará en Github. Por ahora, decidimos no abrir nuestros repositorios de código para posponer un poco el momento de la aparición de falsificaciones en Aliexpress. Al mismo tiempo, somos muy conscientes de que después de tal éxito en kickstarter, seguramente aparecerán falsificaciones y, en general, esto no nos preocupa especialmente. Pospongamos un poco este momento en el tiempo, tal vez esto empuje a los chinos a escribir un código nuevo en lugar de usar el nuestro inmediatamente. Entonces, ahora todo el desarrollo se realiza en un repositorio cerrado donde agregamos personas después de que completan el formulario y firman el Acuerdo de desarrollador (CLA). En el acuerdo, le pedimos que no distribuya el código sin nuestro consentimiento explícito, y también decimos que podremos deshacernos de su código, pero asegúrese de conservar su autoría.
, . , .
Actualmente se utiliza HAL / LL de STM y FreeRTOS. La mayor parte del trabajo con periféricos fue generado por CubeMX, pero en algunos lugares difíciles tuve que descartar las funciones estándar y trabajar con registros directamente.
Ahora estamos en una etapa en la que es fácil cambiar la pila de tecnología, nuestro programador jefe ha estado pensando durante una semana si cambiar o no a RIOT OS, ChibiOS, NuttX y Zephyr para acelerar y simplificar el desarrollo. Y también estamos considerando una opción para reescribir todo en Rust y usar el sistema operativo embedded-hal y Tock. En general, ahora estamos preparados para cambios importantes en aras de un futuro mejor.
El ensamblaje del código se realiza a través de make y gcc, pero muy pronto necesitaremos agregar la capacidad de recopilar nuestro código en Arduino IDE y PlatformIO.
Arquitectura de firmware:

¿A quien estamos buscando?
Los componentes principales de Flipper están escritos en C, C ++ y Rust, por lo que el conocimiento de estos lenguajes será útil para el desarrollo. También será genial si has trabajado con microcontroladores y sabes cómo depurar electrónica, pero intentamos separar el hardware del código con una capa de abstracciones, para que muchos componentes, como la interfaz gráfica o el comportamiento de los delfines, no requieran trabajar con hardware. También necesitamos diseñadores de interfaz (colocar una interfaz de usuario informativa en una pantalla de 128 × 64 no es una tarea fácil), devops y probadores (si está listo para probar la electrónica y lidiar con la configuración de soportes para la depuración y prueba remotas).
Más importante aún, debe estar dispuesto a contribuir al desarrollo. Para participar en el proyecto, complete el formulario... Trate de completar el formulario con mucho cuidado, esta es la única forma conveniente para que comprendamos su profesionalismo: escriba sobre su experiencia de desarrollo, indique solo aquellos componentes de Flipper que realmente le interese desarrollar. Será genial si ya tiene ideas que puede implementar; asegúrese de escribir sobre ellas en el formulario.

Revisaremos cuidadosamente todas las solicitudes y nos comunicaremos con aquellos con experiencia relevante. Luego te contaremos cómo podemos trabajar juntos en el proyecto, te agregaremos a Github, te daremos instrucciones, te daremos toda la documentación necesaria y te presentaremos el proyecto. Al mismo tiempo, las condiciones para la cooperación pueden ser muy diferentes: desde el trabajo a tiempo completo dentro de nuestro equipo hasta el voluntariado como hobby.
Dev Kit para trabajadores del hierro
Para aquellos desarrolladores que se atrevan a participar en el desarrollo del hierro, es decir, probar la parte física del módulo de radio, depurar NFC / RFID, desarrollar antenas, etc. hemos proporcionado un kit de desarrollo especial. Será una versión de Flipper sin carcasa en una plataforma especial para una fácil conexión a las herramientas de depuración.

Este conjunto será difícil de usar para cualquier otra cosa que no sea el desarrollo sobre la mesa y probablemente contendrá errores. Por tanto, no hace falta que se halague y piense que de esta forma podrá conseguir su Flipper antes que el resto.
Desarrolladores de módulos
Según nuestra idea, las funciones de Flipper se pueden ampliar utilizando módulos de hardware. Ahora no tenemos los recursos para desarrollar módulos, por lo que estamos listos para entregar completamente esta tarea a la comunidad. Puede ser absolutamente cualquier módulo, por ejemplo, CAN Bus, sensor Hall, analizador lógico, sensores ambientales, sensor de ruido, módem, LoraWAN, IMU, transmisor FM y un montón de opciones posibles para las que solo hay suficiente imaginación.
Si usted es una gran empresa comercial o un modesto entusiasta del bricolaje, y tiene una idea para un módulo de hierro para Flipper, estamos listos para brindarle todos los modelos 3D y la documentación necesarios para el desarrollo de módulos y ayudar activamente por nuestra parte. Apoyaremos los
primeros 10 módulos listos para usar con nuestro recurso de mediosen nuestros sitios web y en todos los materiales promocionales de Flipper. Por lo tanto, todos los que conocen Flipper también conocerán sus módulos. Para participar en el desarrollo de módulos, complete este formulario.

La mayor parte de nuestro equipo habla ruso, por lo que nos resultará más fácil trabajar con personas de habla rusa. Sin embargo, todos los problemas, comentarios y documentación deberán mantenerse en inglés , ya que el proyecto es internacional.
Prometo que describiré en detalle todas las etapas del desarrollo posterior aquí. Con suerte, podré llegar a China y transmitir en vivo desde la fábrica, mostrar cómo se producirá Flipper desde adentro. Por separado, estamos preparando materiales de capacitación para aprender los protocolos digitales, los conceptos básicos de la electrónica y la programación, para que los principiantes puedan usar Flipper como plataforma de aprendizaje.
Sigue el proyecto en las redes sociales