The UltraBip is one of the market leading Hike&Fly (no display) varios with voice announcements, solar chaging and sensor fusion ('instant vario'). The audio files show some upcoming wind detection features as well. 

Speech and vario tones are splitted to speaker and piezo for energy reasons, resulting in the well known "dying duck beeps". Some say this could be fixed with a decent speaker.

Teardown

Taking this thing appart reveals a microSD card, STM32WB55 MCU with Bluetooth, ICM-42605 IMU, DPS310 barometer and GOTOP GT-1110-SN GPS with ceramic antenna.

The battery charge controller is a HP4555, for USB/Solar power switching a MAX40203 is used.

The main PCB says "BlueBip", at the time I bought this, the BlueBip wasn't out. Now I know: an UltraBip is just a BlueBip with the GPS + Speaker extention board. Firmware is identical. So feel free to source some components and make the expansion yourself (difference in price is 100€).
- Connector should be DF40HC(3.5)-30DS-0.4V(51)
- Audio amp: Need to check the signals first.
- Speaker something like "2209" on Alibaba
- GPS antenna: Cirocomm 16x6x4mm (PA166AA0000)
- GPS: GT-1110, the Sony (SN) version is rare, the MediaTek MTK is more common. Probaply check if it is just NMEA, so any GPS would be ok.

Pinout:

1: TP12 + P1 AMP
2: connected to 4
3: NC
4: connected to 2
5: NC
6: TP7
7: NC
8: TP8 + P4 AMP (RC network)
9: TP9 + P3 AMP (RC network)
10: NC
11: TP10 + P7 AMP
12: NC
13: TP6
14: NC
15: TP11 + P2 AMP
16: 3,3V GPS (1,8R and load switch)
17: GPS VCC switch + TP16
18: NC
19: NC
20: NC
21: NC
22: TP19
23: GND
24: GPS RX/TX 220R
25: NC
26: GPS RX/TX 220R
27: TP20
28: NC
29: 10k to GPS GND
30: TP24

AMP pinout:
1:
2: P6
3:
4:
5: Speaker +
6: P2
7:
8: Speaker -


The speaker amp must be something lika a TPA2005D1 (didnt find the exact part "ZB3"), USB audio seems to be handled by a FSA221 switch using D+/D- lines as headphone R/L on the C-type socket if triggered. 

As the W55 don't have a DAC, the audio generation needs to be done by an external DAC. The SMD markings of the remaining pasts don't help here, but pin-count wise (6) it is I2C (or a special mono I2S PCM chip driven by the ST SerialAudioInterface, but I don't know any of them)

The case propably uses the same mold as the previous varios. Some parts of the plastic need to be removed manually? to fit the GPS antenna, speaker and USB C socket.

Audio Output

The device features audio output over USB. But not the smartphone like with external DAC, you need a special adapter. There is a IC (FSA221) for switching the USB data lines to audio lines when CC1/CC2 are pulled to ground by the male USB plug. When USB audio is connected, the internal buzzer and speaker are muted.

Audio waveform
DAC sampling at ~90kHz. So propably high speed I2C one

2.2 kHz waveform
Buzzer beeping (high volume mode)

Making Custom Voice Pack


2023-05 Update:

The new firmware uses a "new efficient smaller and compressed format" aka lossy QOA (Quite OK Audio Format), so the wav files need to be converted after generation.
Witin the voicepack they finally seperated time and duration.
The code for voice generation below is updated, and I added the whole jupyter notebook plus readymade voicepacks in this project. One is filtered (higher volume, see code below), the other one is unedited from google tts (less volume, less distorsion)

____________________

As I don't like the voice and some wordings of the german audio files e.g. "Schwerwert für Sinkton", I decided to build my own voice package using Googles Wavenet TTS. The .ubpack file is ?FAT12 RAW file system blob? which can be mounted on linux and extract its contents easily.

For compatibility the .WAV nees to be the same format (16-bit, 22.05 kHz, mono) as the original files, which is the default output of google tts anyway. For better acustics I applied a bandpass/highpass for filtering out ervthing below 400 Hz. This may also save...

Read more »