GNARLYR.

Inside the ECHO

Meet the hardware.

The ECHO is a small computer with separate parts for music, sound, storage and wireless audio. Start with the everyday specifications, then look closer at the parts doing the work.

The numbers you use day to day.

The full-size ECHO combines internal storage, a microSD slot and two headphone outputs. These are FiiO’s published specifications.

Manufacturer specifications: FiiO ECHO parameters ↗
Screen2.39-inch IPS · 222 × 480 pixels, used as 480 × 222 in landscape
Internal storage4 GB or 8 GB
microSDUp to 256 GB, per FiiO
Battery1100 mAh · FiiO’s stock-firmware rating is up to 14 hours at a quiet listening level (FiiO’s 40 mV test level)
Size and weight85 × 55.5 × 14.3 mm · 85 g
Audio chipsTwo Cirrus Logic CS43198 DACs
Headphone outputs3.5 mm single-ended · 4.4 mm balanced
Output powerAt 32 Ω with USB power and THD+N below 1%: at least 120 mW/channel (3.5 mm), 260 mW/channel (4.4 mm)
Headphone impedance16–150 Ω (3.5 mm) · 16–300 Ω (4.4 mm)
USB and wirelessUSB-C charging/data · SBC Bluetooth transmission

For the formats and controls provided by Gnarlyr, see built-in playback.

Two jobs: run the player, make the sound.

The processor reads music files and runs the menus. A DAC, short for digital-to-analog converter, turns decoded audio samples into the electrical signal used by the headphone output.

Processor platformRockchip RKnano, with two ARM Cortex-M3 cores. The firmware uses one for the player and one for a decoder loaded when needed.
Audio chip ACS43198 · bus address 0x30 (7-bit)
Audio chip BCS43198 · bus address 0x33 (7-bit)
Chip identification · 4 GB unitID 43 19 80 · revision A1 · subrevision 06
Audio transportI2S carries samples to the DACs; DMA moves audio from memory without the main loop copying every sample.
EQCalculated in software on the main processor. The CS43198’s digital filters and gain controls are separate from the software EQ.

The ECHO uses two Cirrus Logic CS43198 DACs, as listed in FiiO’s specifications. Together, they convert digital audio into the signal sent to the headphone outputs.

How the chip identification was read

Read-only registers 0x010000, 0x010001 and 0x010002 supplied the ID. Registers 0x010004 and 0x010005 supplied revision and subrevision. The driver’s wire-format addresses 0x60 and 0x66 correspond to 7-bit addresses 0x30 and 0x33.

A 4 GB ECHO returned 431980 A1.06 from both chips. A1.06 is the hardware revision; the installed Gnarlyr version is shown separately in About.

The screen keeps its own picture.

The display has its own image memory. The processor sends the parts that changed, which helps the interface work within the ECHO’s small memory budget.

  • Display protocol. The driver uses an ST7796S-style command set and 16-bit RGB565 pixel transfers. Its startup sequence matches the stock firmware’s 24 display-initialization commands and their data.
  • Landscape and portrait. Stock’s landscape window has a 49-row offset. Portrait changes the orientation bits and applies that offset to the other axis.
  • Backlight. Brightness is controlled by rapidly switching the backlight on and off: a 25 kHz PWM signal on GPIO2.4.
  • Buttons. Volume, Play, Menu and Back share a sensing line, called a resistor ladder, read by a voltage-measuring input (ADC). Power has its own input. The player recognizes those shared buttons by their different electrical readings.

One cable, two useful modes.

In Storage mode your computer sees the music drives. In DAC mode it sends audio to the player instead. Charging is handled alongside the selected mode.

  • USB controller. A DesignWare USB 2.0 OTG controller. Storage can negotiate high speed and retry at full speed if the first connection does not become usable.
  • Separate drives. Internal storage and an inserted microSD card are separate USB logical drives. The storage session ends after every drive present at connection has been ejected.
  • Audio mode. The firmware’s USB Audio Class 1.0 path offers 16- or 24-bit audio at 44.1 or 48 kHz, with a separately remembered DAC volume.
  • Cable detection. GPIO2.0 controls taking power from USB and GPIO0.14 controls charging. Gnarlyr keeps these power-control signals in sync with the cable state.
  • Bluetooth module. A separate module handles wireless audio. The main processor talks to it over UART1 at 115,200 baud using short commands. FiiO specifies SBC headphone transmission.

How the USB changes affect updates →

Music files and firmware have different homes.

Your music lives in a normal storage volume. Firmware lives in two separate slots on the internal chip. The updater writes and checks the second slot before writing the first. RAM is the working memory used while the player runs.

Internal storageeMMC with two firmware slots, a SAVE area and the user’s FAT32 volume. The microSD card is separate.
Main working RAMCore 0 data window: 0x03004000–0x0304C000.
Decoder RAMCore 1 region: 0x01000000–0x0105FFFF · 384 KiB.
Shared high RAM0x0307A000–0x0309EFFF · 148 KiB, used for overlays and temporary work.
Main code location0x03050000. Extra screens and USB work can load into a bounded module region.
Battery readingADC channel 0 measures the rail powering the player. On battery this reflects the cell; USB power can lift the rail above the cell voltage.

That power-rail behavior is why Gnarlyr distinguishes Charging, Charged and USB power, and avoids displaying a USB-powered millivolt reading as the battery’s actual voltage.

The memory ranges come from the firmware map and stock-code analysis. They describe working regions, not a single advertised RAM-capacity figure.

Explore the hardware in more detail.

FiiO documents the player’s specifications, and Cirrus explains the audio chips. The hardware guides in the Gnarlyr source checkout cover the board’s wiring, memory and controls.

Stay offline. Get a little gnarly.

Made for the music you already love.