Skip to content

Releases

Sonar 0.1.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 11:07
a109b7c

Sonar is a firmware for the Flipper Zero that a blind person can use without sight. It is built on
Momentum, and its screen reader speaks every screen through the device's own speaker, from a
recorded voice on the SD card. Claude wrote almost all of Sonar's code, working under the direction
of Robin Kipp, a blind developer, who tested every change on the device.

This is the release sonar-0.1.0. The README at this release says how to install it, how to use it, how
to go back to other firmware, and what Sonar changes against Momentum:
https://github.com/robin24/flipper-access/blob/sonar-0.1.0/README.md

What is new

The changes in this release are in the changelog, under its version:
https://github.com/robin24/flipper-access/blob/sonar-0.1.0/CHANGELOG.md

The files

For the install:

  • flipper-z-f7-update-sonar-0.1.0.tgz: the firmware's update package.
  • voice-heart-sonar-0.1.0.tar: the voice, heart, made with Kokoro's voice af_heart. Its licence is
    LICENSE.txt inside it.
  • install-sonar-0.1.0.zip: the install script install.py, with flipper_cli.py,
    flipper_storage.py, card_prune.py and the project's licence.
  • release.json: the release's description, which the install script checks the installed
    firmware against.

For checking, crash reports and developers:

  • SHA256SUMS: the SHA-256 checksum of every file here but release.json and SHA256SUMS
    itself. release.json lists the same checksums of the other files.
  • sonar-0.1.0-firmware.elf and sonar-0.1.0-firmware.map: the firmware's symbols, which turn the address
    on a crash popup of this release into a line of code.
  • flipper-z-f7-sdk-sonar-0.1.0.zip: the SDK, for building apps for this firmware.
  • sonar-0.1.0-source.tar.gz: the source of every binary here, as described under The source.

Install

The install needs Python 3.10 or newer on the computer, and the first four files above in one
folder. Download them from a terminal, not with a browser: a browser such as Safari may unpack an
archive by itself after the download, and the install needs each file as it was published. In a
terminal in a new folder, download the four files and SHA256SUMS, one command each:

curl -f -L -O https://github.com/robin24/flipper-access/releases/download/sonar-0.1.0/flipper-z-f7-update-sonar-0.1.0.tgz
curl -f -L -O https://github.com/robin24/flipper-access/releases/download/sonar-0.1.0/voice-heart-sonar-0.1.0.tar
curl -f -L -O https://github.com/robin24/flipper-access/releases/download/sonar-0.1.0/install-sonar-0.1.0.zip
curl -f -L -O https://github.com/robin24/flipper-access/releases/download/sonar-0.1.0/release.json
curl -f -L -O https://github.com/robin24/flipper-access/releases/download/sonar-0.1.0/SHA256SUMS

The -f makes curl stop with an HTTP error when a tag or a file name is wrong, instead of saving
GitHub's Not Found page under the file's name. On Windows, the command is curl.exe where these
commands say curl, since curl in PowerShell is another command. SHA256SUMS holds the
checksums of the update package, the voice and the install zip, among others, and the README's
Install section says how to check them. Then unpack the install zip:

unzip install-sonar-0.1.0.zip

Make a virtual environment there, once:

python3 -m venv .venv

Put pyserial into it:

.venv/bin/pip install pyserial

Plug the Flipper in, unlock it and close qFlipper. Start on the Flipper's home screen, with no
application open: on Sonar, press Back until it says "Home screen"; on other firmware, which says
nothing, press Back a few times. Then run the install:

.venv/bin/python install.py --package flipper-z-f7-update-sonar-0.1.0.tgz --voice voice-heart-sonar-0.1.0.tar --release release.json

It works from the official firmware, from Momentum and from an earlier Sonar. It backs up the
Flipper's internal storage to the card first, and asks whether the voice goes through a card
reader, the default, or over USB. The Flipper says nothing about the install: the script says each
step on the computer, to the end. Over USB the install takes a little over half an hour; through a
card reader it is faster. The README's Install section has the details, Windows included, and its
Going back section the way back.

Known issues

The main ones; the README's Known limits has them all.

  • The Flipper has rebooted a few times while idle, with a "furi_check failed" popup, and the cause
    is unknown. A bug report with the popup's address and the output of sr status helps.
  • During NFC-V emulation the reader is silent, from the first exchange with an NFC reader until
    you leave the emulation with Back.
  • An external CC1101 radio module has not been tried with the reader on.
  • When a menu opens over the file browser's list, the reader reads the menu's words mixed with the
    file names behind it.
  • An app that uses the JavaScript engine's functions, which Sonar leaves out, fails to load with
    the error "Missing Imports". An app built with Sonar's SDK that uses the reader's functions fails
    to load on other firmware.
  • Without the SD card, or without a voice on it, the reader is silent.

Where it comes from

The fork's submodules, nested ones included, each at the commit this release was built from:

  • applications/external at 55a446b1b
  • assets/protobuf at ea4f185f5
  • documentation/doxygen/doxygen-awesome-css at df88fe4fd
  • lib/FreeRTOS-Kernel at def7d2df2
  • lib/FreeRTOS-Kernel/portable/ThirdParty/Community-Supported-Ports at 4273ca321
  • lib/FreeRTOS-Kernel/portable/ThirdParty/Partner-Supported-Ports at 3f9c99a68
  • lib/heatshrink at 7398ccc91
  • lib/libusb_stm32 at 6ca285751
  • lib/mbedtls at 107ea89da
  • lib/mbedtls/framework at 94599c0e3
  • lib/microtar at 1e921369b
  • lib/mlib at 62c8ac3e5
  • lib/nanopb at 6cfe48d6f
  • lib/stm32wb_cmsis at d1b860584
  • lib/stm32wb_copro at 133182d55
  • lib/stm32wb_copro/scripts at 781464e62
  • lib/stm32wb_hal at cfd0dd258
  • lib/uzlib at 6d60d651a

Before it was published, this release's own files, downloaded from this page, were installed on a
Flipper with the install script and checked there.

The source

The firmware is licensed under the GPL-3.0, like Momentum and the official firmware, and so are the
install script and the other tools. The source of every binary in this release is the file
sonar-0.1.0-source.tar.gz among its assets: the fork at d74ea206a with every submodule, nested ones
included, each at the commit listed above, Momentum's apps among them, whose builds the update
package puts on the card. It is offered here, beside the binaries, for as long as they are offered.

The voice pack has its own terms, in its LICENSE.txt: Kokoro's model is under the Apache License
2.0, and what the Sonar project adds to the voice is released under CC0 1.0.

Supporting Sonar

Sonar will always remain free, but donations help to cover its development costs and are greatly
appreciated: you can support it on Robin's Patreon page or on
Robin's Ko-fi page.