Flipper Zero - let's cut together. We invite developers





Flipper Zero is a tamagotchi form factor pocket multitool project for hackers that I am developing with friends. Previous Posts [ 1 ], [ 2 ], [ 3 ], [ 4 ]



During the first 24 hours of the Kickstarter campaign, we raised $ 1 million. Frankly, none of the team even came close to expecting such popularity. In the early days, my phone was torn from notifications, calls were made from Forbes magazine to Channel One. I still haven't completely recovered from the shock and have not fully answered all the letters. I have never experienced anything like this in my life.



Many thanks to everyone who supported us, followed the project and took part. It was on Habré that I published the first post with Flipper's concepts, received the first feedback, criticism and praise. We added some functions to Flipper after the feedback on Habré. We will try not to crap with production and meet expectations.



Now I am fully convinced that maximum openness and honesty is the best strategy. Our entire team believes in open source, and we believe that enthusiasts can create cool projects without attracting investors and corporate oversight. Therefore, I invite everyone who is interested in the project to take part in the development.



Under the cut is a description of the program for developers of firmware, hardware, desktop programs and hardware modules.



Who is working on the project?



The project consists of several large-scale parts, each of which has its own team. Sometimes teams have to coordinate their work, for example when mechanics and hardware workers are trying to agree on how to move a component on the board so that it does not interfere with the button's movement. Here are the basic commands:



  • Firmware - all software development of firmware, including software modules for each component: radio, RFID, Bluetooth, infrared, U2F, USB stack, etc.
  • Electronics Engineering (EE) is a team that develops hardware, that is, the entire electronic part: boards, antennas, power.
  • Mechanical Engineering (ME) — , . , , : , , , , ..
  • Manufacturing — , , ME Hardware . , , . SMT-, , -, , . , .


At the moment we have a ~ 80% complete device in terms of iron and mechanics. But the biggest part of Flipper's development is the firmware. We now have a working prototype, 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 readability of the code and a single understandable style, so that it would be easy for developers around the world to develop for our platform. We believe that this challenge will be of interest to the community and invite you to contribute to the process of creating Flipper, just as it was in the early stages.



How to participate in the development of the firmware?





All Flipper Zero firmware will be fully open source and published on Github. For now, we decided not to open our code repositories in order to slightly postpone the moment of the appearance of fakes on Aliexpress. At the same time, we are well aware that after such a success on kickstarter, fakes will certainly appear, and in general we are not particularly worried about this. Let's just postpone this moment in time a little, maybe this will push the Chinese to write some new code instead of immediately using ours. So now all development is done in a closed repository, where we add people after they fill out the form and sign the Developer Agreement (CLA). In the agreement, we ask you not to distribute the code without our explicit consent, and also say that we will be able to dispose of your code, but be sure to keep your authorship.



, . , .


Currently used HAL / LL from STM and FreeRTOS. Most of the work with peripherals was generated by CubeMX, but in some hardcore places I had to throw out the standard functions and work with registers directly.



Now we are at the stage where it is easy to change the technology stack, our chief programmer has been thinking for a week whether or not to switch to RIOT OS, ChibiOS, NuttX and Zephyr to speed up and simplify development. We are also considering rewriting everything in Rust and using embedded-hal and Tock OS. In general, now we are ready for serious changes for the sake of a brighter future.



The assembly of the code takes place through make and gcc, but very soon we will need to add the ability to collect our code in the Arduino IDE and PlatformIO.



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 for development. It will also be great if you have worked with microcontrollers and know how to debug electronics, but we try to separate the hardware from the code with a layer of abstraction, so that many components, such as the graphical interface or dolphin behavior, do not require working with hardware. 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 up stands for remote debugging and testing).



Most importantly, you must be willing to contribute to the development. To participate in the project, fill out the form... Treat filling out the form very carefully, this is the only convenient way for us to understand your professionalism: write about your development experience, indicate only those Flipper components that you are really interested in developing. It will be great if you already have ideas that you can implement - be sure to write about them in the form.





We will carefully review all applications and contact those with relevant experience. Then we will tell you how we can work on the project together, add you to Github, give you instructions, give all the necessary documentation and introduce you to the project. At the same time, the conditions of cooperation can be very different: from full-time work within our team to volunteering as a hobby.



Dev Kit for iron workers



For those developers who dare to take part in the iron development, that is, test the physical part of the radio module, debug NFC / RFID, develop antennas, etc. we have provided a special dev kit. It will be a version of Flipper without a housing in a special rig for easy connection to debugging tools.





Such a set will be difficult to use for anything other than development on the table, and it will probably contain bugs. Therefore, you do not need to flatter yourself and think that in this way you can get your Flipper before the rest.



Module developers



According to our idea, Flipper's functions can be extended using hardware modules. Now we do not have the resources to develop modules, so we are ready to fully delegate 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 possible options for which there is only enough imagination.







If you are a large commercial company or a humble DIY enthusiast, and you have an idea for an iron module for Flipper, we are ready to give you all the necessary 3D models and documentation for the development of modules and actively help from our side. We will support the



first 10 ready-made modules with our media resourceon our websites and in all Flipper's promotional materials. Therefore, everyone who knows about Flipper will also know about your modules. To take part in the development of modules, fill out this form.








Most of our team speaks Russian, so it will be easier for us to work with Russian-speaking people. However, all issues, comments, documentation will need to be kept in English , since the project is international.



I promise that I will describe in detail all stages of further development here. Hopefully, I will be able to get to China and broadcast live from the factory, show how Flipper will be produced from the inside. Separately, we are preparing training materials for learning digital protocols, the basics of electronics and programming, so that beginners can use Flipper as a learning platform.



Follow the project on social networks
, , Telegram- @zhovner_hub .



@zhovner.



@pzhovner.



fb.com/zhovner.



All Articles