WiPhone firmware 0.8.26 (application image)
===========================================

WHAT THIS IS
------------
WiPhone firmware 0.8.26. Changelog: code-formatter configuration,
production-build cleanup, Matrix and Pacman apps renamed, licence added, MP3
support and the MP3 player app removed (PCM ringtone instead), RTP packet code
replaced. The 0.8.27 changelog records that 0.8.26 "was released onto
production by accident". No 0.8.25 image was found on the server.

Licence: WiPhone Public License v1.0 (HackEDA, Inc.). Section 1.0 grants a
world-wide, royalty-free, non-exclusive licence to use, reproduce, make
available, modify and distribute the Covered Software, which it defines as
"any and all software, firmware and data released" under the licence;
section 3.0.2 requires that recipients be given a copy of the licence. The
full text is the file WiPhone_Public_License_v1.0.txt inside the firmware
source archives in this store (wiphone-firmware-source-0-8-27 and
wiphone-firmware-source-0-8-30); the licence URL cited in the source headers,
https://wiphone.io/WiPhone_Public_License_v1.0.txt, returned 404 on
2026-09-18. The changelog records that the licence was added in 0.8.26.

APPLIES TO
----------
The WiPhone open-hardware ESP32 SIP/VoIP phone from HackEDA, Inc. (WiPhone.io,
Hong Kong; the source licence names MZJ Technology / HackEDA). The WiPhone
Arduino core defines two boards, "WiPhone N0C311" and "WiPhone Pro N0C311P";
the vendor's update server offers a single image, and whether any build is
specific to one board could not be confirmed. Not for any other ESP32 device.

BEFORE STARTING
---------------
- A computer with a micro-USB data cable. The vendor's programming
  instructions (v0.4rc1 documentation, 2021) specify a microUSB cable.
- The Silicon Labs CP210x USB-to-UART driver, which the vendor's downloads
  page links
  (https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers),
  so the phone appears as a serial port.
- A flashing tool: Espressif's Flash Download Tool
  (https://www.espressif.com/en/support/download/other-tools), which the
  vendor documents, or esptool.py (shipped inside the WiPhone Arduino core,
  entry wiphone-arduino-core-0-1-2).
- A charged battery.
- A record of the SIP accounts, phonebook and Wi-Fi settings. They live in the
  SPIFFS partition; writing only the application image leaves SPIFFS alone,
  but the vendor warns that loading a SPIFFS image or changing the partition
  scheme overwrites them.

CONTENTS OF THIS ZIP
--------------------
The zip published on fubsypoly.com wraps the vendor file(s)
byte-for-byte, unmodified.

WiPhone.ino-0.8.26.bin
    1,672,320 bytes
    SHA-256 dad22855053abdffffeb6ffe55490264dc055848a7b6595e031dfc4c0411dc16
    ESP32 application image (starts with the 0xE9 ESP image magic), exactly as
    served by the vendor's update server. It is the WiPhone.ino.bin of the
    vendor's five-file set and is written at 0x10000.
README.txt
    This file.
SHA256SUMS
    SHA-256 checksums of the files above.

INSTALLATION
------------
Over USB (works from any firmware version):
 1. Connect the WiPhone to the computer with the micro-USB cable and note the
    serial (COM) port it is given.
 2. Start the Espressif Flash Download Tool and choose the ESP32 download
    tool. The vendor's settings are: SPI mode DIO, SPI speed 40 MHz, flash
    size 128Mbit, the phone's COM port, and a baud rate (the vendor suggests
    1152000 to speed the transfer). The vendor page also lists "CrystalFrq:
    80MHz".
 3. Tick one row: this .bin file at address 0x10000 (the vendor's address for
    WiPhone.ino.bin, the application image). The other four files of the
    vendor's five-file set (bootloader at 0x1000, partition table at 0x8000,
    boot_app0.bin at 0xe000, SPIFFS image at 0xc90000) are already on a
    working phone and are not part of this entry.
 4. Recommended but not stated by the vendor for an application-only write:
    also tick boot_app0.bin at 0xe000 (it is in wiphone-firmware-0-8-9a-beta
    and in the Arduino core at tools/partitions/boot_app0.bin; both copies
    have SHA-256 f94c5d78...a17f0). A phone that has taken an over-the-air
    update may be booting from the second application slot (app1 at 0x650000);
    boot_app0.bin resets the OTA selector so the bootloader starts the image
    just written to app0.
 5. Press START. The tool shows FINISH when the write completes.
 6. Unplug the phone, hold the power button for 10 seconds to force a
    shutdown, then press it again to boot the new firmware (vendor procedure).

Equivalent esptool.py command (standard esptool syntax; the vendor documents
only the Flash Download Tool, so this form is not from WiPhone documentation):
    esptool.py --chip esp32 --port <PORT> --baud 921600 write_flash \
        0xe000 boot_app0.bin 0x10000 <this file>.bin

- Over the air (phones already running 0.8.24 or later; the changelog records
  that OTA support was added in 0.8.24): the phone reads an INI file of the
  form "version=<x.y.z>" / "url=<https URL of the .bin>" (vendor example,
  Custom Firmware Server page). To install this archived image, host the .bin
  and such an INI file on an HTTPS server, add the server's certificate chain
  to the phone's SPIFFS as user.pem (vendor requirement), enter the INI URL in
  Menu > Settings > Firmware settings > URL, press Save, then Check, then
  Install. The phone reboots and installs the image.
- The phone installs a server image only when its version is newer than the
  installed one: the vendor's Custom Firmware Server page says so for
  automatic updates, and in the 0.8.30 source the Install button is offered
  only when ota.cpp's version comparison finds the server version newer. This
  path therefore cannot move a phone to an older version. Reset in the same
  screen restores the default URL
  (https://wiphone.io/static/releases/firmware/WiPhone-phone.ini).

VERIFYING
---------
Open Menu > Settings > Firmware settings. "Device version" is the installed
firmware version (vendor user manual, Firmware Updates page). The image itself
carries the string "Ver. 0.8.26".

IF SOMETHING GOES WRONG
-----------------------
- Serial flashing is done by the ESP32's ROM bootloader, which cannot be
  overwritten by a bad application image, so a failed or interrupted write is
  recovered by writing the image again.
- If the phone will not switch off, hold the power button for 10 seconds
  (vendor procedure).
- Failed over-the-air updates: "the phone will not automatically try to update
  again until the firmware version available on the server is incremented";
  the Status field shows the error, and the Reset button in Firmware settings
  clears the failed-version flag (vendor user manual and Custom Firmware
  Server page).
- If the phone boots the old version after a serial write, the OTA selector is
  pointing at app1: write boot_app0.bin at 0xe000 as described above.
- No port appears: install the CP210x driver and use a data (not charge-only)
  cable.

DOWNGRADING
-----------
Over-the-air: no, the phone only installs a newer server version. Serial
flashing: any image in this archive can be written at 0x10000; the vendor
documents no downgrade lock, but it also does not document whether older
builds read settings written by newer ones. Record the SIP accounts and
phonebook first. Images before 0.8.24 contain no OTA code, so a phone taken
back to them can only be updated again over USB.

PROVENANCE
----------
- File: WiPhone.ino-0.8.26.bin
- Retrieved from:
  https://wiphone.io/static/releases/firmware/WiPhone.ino-0.8.26.bin
- Wayback copy: none found (the file was never captured)
- Date retrieved: 2026-09-18
- Official page: https://wiphone.io/docs/WiPhone/latest/user_manual/OTA.html
- Status: verified (downloaded from the vendor's own firmware server, the location its phones update from)

Found on the vendor's firmware server by requesting the file names of the two
naming patterns the vendor itself used (WiPhone.ino-<v>.bin in its Custom
Firmware Server example, WiPhone-phone-<v>.ino.bin in its WiPhone-phone.ini).
The directory is not listable (HTTP 403) and no page links these files.

MORE INFORMATION
----------------
- https://radios.fubsypoly.com/wiphone/
- https://radios.fubsypoly.com/wiphone/vol-3/ (Configuration & Firmware)
- Firmware Updates (OTA): https://wiphone.io/docs/WiPhone/latest/user_manual/OTA.html
- Firmware Download Tool Instructions: https://wiphone.io/docs/WiPhone/latest/technical_manual/software/download_tool_instructions.html
- Programming Instructions (Arduino): https://wiphone.io/docs/WiPhone/latest/technical_manual/software/programming_manual.html
- Custom Firmware Server example: https://wiphone.io/docs/Examples/latest/FirmwareServer.html
