At the very beginning of the project, we have chosen the tactics of maximum openness and transparency. We believe in open-source, the power of the community, and that enthusiasts can create cool projects without the involvement of large corporations. Therefore, we invite everyone interested in the project to take part in the development!
Below is a description for those who want to join the development and make the hardware modules.
Who is working on the project?
The project consists of several large-scale parts, and each part has its dedicated team:
- Firmware — all software development of firmware, including software modules for each Flipper’s component: radio, RFID, Bluetooth, infrared, U2F, USB stack, etc.
- Electronics Engineering (EE) — a team engaged in hardware development, which consists of schematics, PCB design, antennas, etc.
- Mechanical Engineering (ME) — mechanical design team, responsible for the layout of the mechanical parts: case, buttons, holes, connector locations, ease of assembly, etc.
- Manufacturing — the team responsible for ensuring that the result of ME and Hardware team’s work can and will be transferred to mass production.
At the moment we have a ~80% complete device in terms of hardware and mechanics. But the biggest part of Flipper's development is the firmware. We now have a working prototype, firmware architecture, and basic firmware components to grow the meat on.
At this stage, it is very important to correctly approach the unification of all components in order to maintain the readability of the code and a uniform understandable style, so that developers around the world can easily develop for our platform. We believe that this task will be of interest to the community and invite you to contribute to the process of creating Flipper, just as it was in the very first stages of the project.
How to join the firmware development?
All Flipper Zero firmware will be fully open-sourced and published on Github once the first devices get shipped to the backers. For now, we’ve decided not to open our code repositories to postpone the appearance of fakes on Aliexpress and similar platforms, which will definitely happen after such a success here on Kickstarter. And in general, we are not particularly worried about this.
So for now, all development is done in a closed repository where we add people after they take a survey and sign the Developer Agreement (CLA). In the agreement, we ask you not to distribute the code without our explicit consent and agree on your code usage in Flipper, but be sure that your authorship will be saved.
At the moment we are using HAL / LL from STM and FreeRTOS. Most of the work with peripherals was generated by CubeMX, but in some hardcore places, we had to throw out the standard functions and work with registers directly.
The code compilation takes place through Make and GCC, but very soon we will need to add the ability to compile our code in the Arduino IDE and PlatformIO.
Here is the current Firmware architecture:
Who are we looking for?
Flipper's main components are written in C, C ++, and Rust, so knowledge of these languages will be useful. It will also be great if you have worked with microcontrollers and know how to debug electronics, but we mainly try to separate the hardware part from the code with a layer of abstractions, so that many components, such as the graphical interface or dolphin behavior, do not require working with hardware directly. We also need interface designers (placing an informative UI on a 128×64 screen is not an easy task), DevOps, and testers (if you are ready to test electronics and deal with setting testing stands up for remote debugging and testing).
Most importantly, you must be willing to contribute to development. To participate in the project, please fill this form out. Please try to fill it very carefully, as this is the only convenient way for us to understand your professionalism: write about your development experience and indicate only those Flipper components that you are really interested in developing. Will be great if you already have ideas that you want to implement as a developer, be sure to write them down if you do.
We will carefully review all applications and contact those who have the relevant experience. Then we will tell you how we can work together and introduce you to the project — add you to Github, give you instructions, and all the necessary documentation. At the same time, the terms of cooperation can be very different: from full-time work within our team to contributing as a hobby.
Dev Kit for hardware developers
For those developers who dare to take part in the hardware development, that is, test the physical part of the radio module, debug NFC / RFID, develop antennas, etc. we’ve designed a special dev kit. It will be a version of Flipper in a special casing for easy connection to debugging tools.
For module developers
Thanks to GPIO pins, Flipper's functions can be extended using hardware modules. Right now we are extremely focused on Flipper’s design and manufacturing, so we are ready to completely outsource this task to the community. It can be absolutely any module, for example: CAN Bus, Hall sensor, logic analyzer, environmental sensors, noise sensor, modem, LoraWAN, IMU, FM transmitter, and a whole bunch of other possible options, as far as your imagination goes.
If you are a business or a modest DIY enthusiast, and you have an idea for a hardware module for Flipper, we are ready to provide you with all the necessary 3D models and documentation, as well as actively provide technical support.
Furthermore, we will provide media support for the first 10 production-ready modules, list them on our websites, and in all Flipper's promotional materials. Therefore, everyone who knows about Flipper will also know about your modules. To participate in the development of modules, please fill out this form.
We promise to cover all the further development and manufacturing stages and keep you posted on all the updates. Separately, we want Flipper to be a learning platform for beginners and we are preparing the materials for learning digital protocols, the basics of electronics, and coding. Stay tuned.