Tiresome certification, opening sources, and new cool stuff

Tiresome certification, opening sources, and new cool stuff

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.

Harmonics in 315 MHz range

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.

Multiple segments antenna design option

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.

The adhesive foam removes vibrations
The old Sub-1 GHz antenna could break off in vibrations and crashes. In new design, there are 2 fixing points‌‌

Unique Name

This is what a new dolphin’s passport looks like

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.

Weird names generated by a neural network trained on Pokémon names

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:

  1. 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.
  2. The approved interface is broken down into specific screens and rendered as 128x64 BMP images in Photoshop.
  3. 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.
RFID application structure in Miro

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.

Example of display-to-notification logic

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.
Lockscreen and new main screen windows demo

qFlipper Desktop App

qFlipper is an application for updating firmware, radio stack, loader and Flipper screen sharing to computer

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.

Through qFlipper you can broadcast Flipper’s screen in real time to your computer

Web Firmware Updater

You can flash your Flipper Zero through a web-browser without any additional software. Supported browsers: Chrome, Opera, Microsoft Edge‌‌

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:

  1. A developer forks the Flipper Zero firmware repository, which already includes required WebUSB files and config
  2. Developer adds the changes to the fork and publishes the binaries on GitHub Pages in a click
  3. 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.

Testing packaging samples. Final image might be different

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.

Packaging design sources for those who wants to contribute

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

As of today, 92% backers filled the pledge manager survey. About 3 thousand backers have not yet completed the survey. If you still haven't filled your survey, please do so. It is important for us to accurately calculate the number of black and white cases for production, as well as the shipping regions.

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.

8% of backers haven’t completed the pledge manager survey

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.

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.