Tiresome certification, opening sources, and new cool stuff
We're working tirelessly in preparation to start mass production, but there are some challenges. We are fortunate to have our production going at one of the biggest crises in the electronic components market in the last couple of decades. You can see this, for example, in the situation with video cards. Basically, all the semiconductors vendors are experiencing huge delays.
We also had to redesign the Sub-1 GHz path to meet the regulator’s requirements and fix the mechanical issues occurred during the reliability test. In this article, we will tell what we do now, how the development is going, what the shipping preparation looks like, and show a couple of new cool features.
Difficulties with Sub-1 GHz Certification
As we wrote earlier, in order to officially import devices into the European Union, the United States, Japan and Australia, we need to obtain a certificate of compliance with radio frequency regulations in those regions. Our first Sub-1 GHz design was not certified due to parasitic harmonics exceeding acceptable levels. Eventually, we had to redesign the entire antenna path. This took a long time as it was necessary to achieve equally good transmission quality on all 3 supported bands: 315, 433, 868 MHz.
There were even some very exotic options: to divide the antenna into several segments and connect different parts with GPIO switches. Fortunately, this complexity was not required and new design meets all the formal requirements.
In the mean time we’ve been doing reliability tests. The device has been dropped, shaken, and attempted to break in other typical use cases. As a result, we've found that the vibration disrupts the antenna’s soldering point, and over time, with active shaking and falling, the antenna can fall off. The antenna's mounting had to be modified: now it's fixed at two points and additionally reinforced with a damping material, which also helps to eliminate unpleasant sounds of metal vibration.
Unique Name
Each STM32WB55 microcontroller inside Flipper Zero has a unique serial number in hexadecimal format. But it’s boring, so we've decided to give each and every Flipper a unique, human-readable name. To do that, we took a neural network, trained it on Pokémon names, and as a result we generated a dictionary of over 1 million names. For even more uniqueness, the names are diluted with 1337-speak.
Sometimes the neural net generated very provocative names. It took a long time to configure the filters to remove the swearing-like names. However, it’s impossible to go through all the million names, so there’s some risk that you'll get a Flipper named P00per.
Unique Port Path in macOS
This name is passed in the USB descriptor as a serial number in flip_NAME format. In macOS, this serial number is written to the name of a serial port, so for Flipper named Oleg you'll get this: /dev/tty.usbmodemflip_Oleg
Interface Development
Firmware is the largest part of Flipper’s project. Several teams work on it: developers, UI/UX-designers, and graphic designers. The interface design is complicated by the fact that Flipper has a very small screen (128 x 64px) and only five functional buttons, excluding the Back button. This creates an unusual process of designing interfaces. We have worked out this order:
- Initially the interface is designed as a mind map in Miro. This is where all the discussions, elaboration of different concepts and debates take place.
- The approved interface is broken down into specific screens and rendered as 128x64 BMP images in Photoshop.
- Further, the assets (graphics sets) are converted from BMP to XBM and transmitted to developers along with instructions on how to implement interactive elements such as virtual keyboards and dialogue boxes. During the implementation of the interface there are often situations when the existing programming graphics library doesn't allow to implement something, so we have to decide whether to rework the interface, or refine the graphics library.
In addition to the graphic interface design, it's necessary to think of a logic of movement between different states, timeouts, indications (vibration, speaker, status LED), dolphin character reactions, and dolphin level points. This logic is also reflected in the application map.
Screen Lock and New Main Screen UI
The main screen and quick access to the main functions have been completely redesigned.
- ↑ Up — lockscreen menu.
- → Right — dolphin features.
You can check his profile, play games or give little dude some snacks. - ↓ Down — fast access to inventory.
It's a special archive that you can quickly navigate to access instantly all the keys from different applications: iButton, RFID/NFC, Infrared, etc.
qFlipper Desktop App
We are developing our Flipper Firmware Utility on Qt and C++. It will work natively on all the desktop platforms. This tool can also capture Flipper’s screen frame and broadcast it on a computer screen. This makes possible to make a high-quality screencasts instead of filming Flipper with a camera. This is convenient for recording instructions and teaching materials.
Web Firmware Updater
There is an API called WebUSB which allows a web-developer to communicate with a USB-devices directly through a browser. Using it, we’ve succeeded updating Flipper Zero firmware using the Web DFU-Util. For now it's supported in Chrome, Opera and Microsoft Edge.
It’s really cool, because you can flash your Flipper without any additional software! It makes firmware forking workflow to look like that:
- A developer forks the Flipper Zero firmware repository, which already includes required WebUSB files and config
- Developer adds the changes to the fork and publishes the binaries on GitHub Pages in a click
- Any user can visit the page and flash their Flipper with the forked firmware easily
Opening the Sources
We’re gradually opening the project sources. All Flipper Zero circuit diagrams are already published. Please check them out and report if you see any mistakes in the comments section.
We’ve also published 2D drawings and 3D models of the Flipper casing, along with example Flipper module.
They’re available in docs and separate repository.
We will continue to open source the project, and by the time of the first major shipping wave, we will publish all the remaining parts.
Packaging and Shipping
We’ve also worked on Flipper Zero packaging. We’ve chosen the simplest and most eco-friendly cardboard and monochrome printing. The main task of packaging is to be as compact as possible and to protect the device from physical damage.
Inside the box there is a lodgment made of soft foam, where Flipper fits. A Type-C cable is placed underneath.
It's important that the device inside is fixed immovably, otherwise there may be scratches from shaking. To verify this, the device undergoes a series of transport safety tests, including a vibration bench.
If you have any ideas or suggestions for packaging design, please use this template to edit the box and post the result in the comments section.
We’re sending the device with a battery connected, so we have to obtain all the needed certificates and transport safety test reports (UN38.3).
Flipper Zero will be shipped in a special transportation mode, in which only RTC is powered, allowing it to keep the clock going. To power the device on, you’ll need to hold the Back button.
Complete your Order
BackerKit works the same way as Kickstarter: you fill in the bank card details now, but we charge you later. You can also add more Flippers, silicone case and some accessories to your order in pledge manager. Even if you already filled out the survey, you can change any info until we lock the orders up, about which we’ll notify you in advance.
Read more about the pledge manager survey in our previous update.
We’ll start charging your cards for shipping, taxes and add-ons in mid-April. You can change anything in your survey until that moment, including shipping address, selected colors, and add-ons. You can even change the destination country. We’ll send a reminder before locking the orders and charging the cards.
Developer Board with ST-Link V3
For everyone who wants to develop modules for Flipper Zero, we have published the sources of the reference module (the ST-Link V3 devboard). Full Altium project sources, our components library and mechanical drawings are available here.
Our electronics engineer, Sakhaaya, has recorded a tutorial on PCB development in Altium.