Flipper Zero - September progress



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



In This Release: System API, Developer Kit, Improvements in Mechanics and Electronics, Updates in GPIO, New Feature in NFC, Remote Test Bench ...



In September, we wrote almost nothing about the project, and now it's time to explain why. We have suspended all marketing activities to focus on development and other tasks: supply and production contracts, legal issues, hiring and much more. All this took so much effort that we didn't even have time to publish the update. Now we are ready to share the news with you.





System API







During this month we have developed firmware architecture and system APIs, abstractions for interacting with hardware, thread control and multitasking. This is work under the hood that we are not showing, but it is an important part of development.



Our main goal in firmware development is to make it as user-friendly and understandable as possible for developers so that they can easily write their programs for Flipper Zero. So after the campaign ended, we threw away all the dirty code and started developing the architecture from scratch.







During this time, we have been actively working on the internals: writing a bootloader, refactoring the operating system code, writing peripheral drivers, designing APIs for custom applications. The refactoring also affected the build system and dependencies, the user interface code was redesigned. The most important changes took place in our development stack: we updated the used CMSIS RTOS to the second version and brought our code to use a single API. The new Custom Application API has taken a big step towards beta and we hope to open it publicly in the near future.



Improvements to mechanics and electronics





New components and case design



The case has changed a lot from the first prototype. We've completely redesigned the layout of the buttons and components inside so that the Flipper doesn't fall apart, is durable and can withstand heavy use.



We have moved the RFID and NFC modules to a separate board under the battery. It is connected to the motherboard with FPC cables.



New push-button mechanism





New spring-loaded buttons



Added springs to the joystick for better tactile response.





How button mechanics tests are done



Replaceable battery







Non-removable batteries are the scourge of modern devices. We decided not to use a sealed battery and went with a three-pin connector so that users can replace it themselves. For greater maintainability, we plan to sell individual Flipper components, including the battery, directly on the site.



InfraRed moved to a corner







After some tests, we found that the previous placement of the infrared port was not very convenient: it was blocked by the index finger and the external module. In the end, it was decided to move it to a corner.



More GPIO





Redesigned the GPIO pinout. Added two more GND contacts - there are never many of them.



New Feature: USB NFC Reader







Resource intensive tasks like cryptographic attacks cannot be performed directly on Flipper. For some, even a Raspberry Pi is not enough - you need a full-fledged powerful desktop processor. For instance:



  • Attacks on Mifare classic: mfoc (nested), mfcuk (Dark Side)
  • Attack on Mifare Plus: Hard Nested




We decided to add the ability to use Flipper as a regular USB NFC adapter along with the LibNFC library. As a result, all existing programs working through LibNFC will work out of the box without any modifications. In this mode, all commands from the PC will be proxied directly to the ST25R3916 NFC chip via the USB interface.



The main problem with this task is that the LibNFC library is rigidly nailed to the NXP PN5xx chips, and the new driver will essentially have to emulate the behavior of the PN53xxx chip, but this is not so scary.



Flipper Zero Devkit







For developers who are working on firmware and hardware, we have made a special devkit. In fact, this is an ordinary Flipper with unrolled boards in plastic fittings, so that all components are easily accessible from below and from above, and you can easily crawl with probes to each element.



Flipper Lab





Behind the Scenes of Flipper Lab



While the code is being written, it needs to be constantly tested. The task is complicated by the fact that tests must be performed on real hardware and interact with the real world. For this, a remote test bench was made, which integrates with CI scripts through the GitHub Workflow. With each commit to the firmware, it is automatically collected and poured into the device, after which tests are performed, the results of which are spat out into the UART: this way you can understand which tests were completed successfully. So far it works crookedly, but in the future, this is how we will check all the functions: receive / send radio, read / write NFC cards, transmit / receive IR signal, etc.



This is the same dev kit for developers. The physical buttons are connected via relays, allowing them to be controlled remotely. The screen image is captured by a camera and broadcast on the website in real time. Through the web face, you can manually upload the firmware and poke buttons, even if the developer does not have a device at hand.





The Flipper Zero



Flipper Lab remote test bench interface mockup is currently in alpha development, but we will open it publicly later so that any developer can:



  • Upload your own firmware or plug-in to a live Flipper Zero sample
  • View logs in real time and even send UART messages to Flipper
  • Push all buttons remotely
  • Test peripherals with, for example, physical RFID cards and iButton tags




Live updates on Discord







On our Discord server, we have added a live feed of updates within the project. You can see how the developers are doing in real time with the new #updates channel, where you can see the commits going into the repository.



There are over 6 thousand participants on the server now!



Join our Discord server to:



  • Communicate with our engineers and backers
  • Follow development progress in real time with #updates channel
  • Discuss use cases for Flipper Zero
  • Meet thousands of geeks
  • Access a secret channel for backers only (contact @Backers Bot in private messages to get the role)




- Hello, we are looking for talents!









We previously launched the Flipper Developer Program and received over a thousand responses. We invited several developers to a semi-closed repository with firmware.



Unfortunately, we realized that the horizontal management model was not suitable for us, because most non-full-time developers devote time to a project only when they have inspiration and desire. Such a process is difficult to manage and predict the result over time. Therefore, now we only hire full-time developers. Perhaps when the bulk of the low-level code is ready and we open the repository, it will be easier to accept community input.



We publish all open vacancies here: flipperdevices.com/jobs




All Articles