AviFi

Downloads
Channel
Stable
Boards
Orange Pi One · Orange Pi Zero 3 · NodeMCU
Firmware
0.3.0

01 Current images

Orange Pi OneH3 · sunxi · armhf

1.1.7
avifi-orangepi-one-1.1.7.img.xz 351 MiB · 368,015,528 bytes · flash to an SD card
sha256 · image
3560b7fc83ac78a98893f193777564d22cff0e8d8735cd54939aea9eedc78e95

Orange Pi Zero 3H618 · sunxi64 · aarch64

1.1.7
avifi-orangepi-zero3-1.1.7.img.xz 351 MiB · 368,446,728 bytes · flash to an SD card
sha256 · image
8e722ed67834c4d8ddf7ca5e98daaa79ab9ed516641f5b41afeb8a0dc131ab15

02 Writing the card

  1. Flash the .img.xz exactly as downloaded. Every imager below reads it compressed — do not extract it first. Extracting gives you a 2 GB .img whose checksum is not the one on this page.

    Windows

    Rufus, or balenaEtcher. Rufus writes a disk image in DD Image mode; take that when it asks.

    macOS · Linux

    balenaEtcher, or Raspberry Pi Imager — despite the name it writes any image to any card, under Choose OS → Use custom.

  2. Verify the download before writing. A truncated file and a good one are indistinguishable to the imager, and only tell you apart when the board refuses to boot. Check it against the sha256 · image on the card you downloaded from — the two boards' images are different files with different checksums, and neither one verifies the other.

    macOS · Linux

    shasum -a 256 -c SHA256SUMS

    Windows

    certutil -hashfile avifi-<board>-<version>.img.xz SHA256
  3. The filesystem is shrunk to fit the download and grows to fill the card on first boot. Expect one early reboot while it resizes.

03 Sub vendo firmware

Sub vendoNodeMCU 1.0 · ESP-12E · nodemcuv2

0.3.0

Two downloads, and they now have separate version numbers. The firmware is no longer built into the flasher: the same .exe writes whatever signed firmware you put beside it, so a new image is a file to copy rather than a program to reinstall.

sub-vendo-firmware-0.3.0.vendofw 294 KiB · 300,633 bytes · signed ESP8266 image
sha256 · firmware
c25b77266bd3a4d5915686c1f6579cdf29e47b6b77d010b241c9a46de8b9f017
sub-vendo-flasher-0.2.0.zip 19273 KiB · 19,735,816 bytes · Windows flasher 0.2.0 · the exe and WCH's CH340 driver. The firmware is the download above, and goes in this folder beside the exe
sha256 · Windows flasher
2b0141cf9ad23a5e27ef6724046c15554445c7a8da2e8badc440ce671bc4c28c

04 Flashing a unit

Detach the load first

Unplug the coin acceptor and the relay before the module goes into USB. With the 12 V load attached the CH340 never enumerates and the board looks plainly dead — that has cost a debugging trip once already.

Windows will warn

The exe is unsigned, and a tool that bundles a serial driver and writes to hardware is a well-known false positive. More info → Run anyway. That is the missing signature, not a broken download.

  1. Unzip the flasher, and put the .vendofw in the same folder as SubVendoFlasher.exe. The driver and esptool are inside the exe; the firmware is the separate download, and the flasher writes the one signed file it finds beside it. It resolves no hostname and needs no account — it works in a shop with no signal. Pick the port and flash. Nothing is held down.

    It refuses anything the update key did not sign, so a stray .bin cannot be written by mistake. Two .vendofw files in the folder is also a refusal — leave one, so “which image did you flash?” has an answer.

  2. Write the station MAC it shows on the enclosure. That is the address the operator console enrols, and it is not always the one printed on the module.

  3. The unit then comes up as an open access point, avifi-setup- plus the last three octets of that MAC. Every unit derives its own, so look for the prefix rather than a particular name.

Flashing from macOS or Linux

The flasher is Windows only. Elsewhere, take the image out of the signed file and write it with esptool — a .vendofw is a gzip tar, so tar opens it with nothing installed. The board is a WCH CH340 (0x1A86:0x7523), not a CP2102 — macOS enumerates it unaided, Windows needs CH341SER.EXE from WCH or there is no port at all.

Note what you give up doing this: the signature is what proves the image was released, and esptool does not check it. Verify the download against SHA256SUMS first, and prefer the flasher where you have Windows.

shasum -a 256 -c SHA256SUMS
tar -xzOf sub-vendo-firmware-0.3.0.vendofw firmware.bin > firmware.bin
python3 -m pip install esptool==4.8.1
python3 -m esptool --chip esp8266 --port /dev/cu.usbserial-XXX --baud 115200 \
  write_flash --flash_mode dio --flash_size 4MB --flash_freq 40m 0x0 firmware.bin

Writing at 0x0 leaves LittleFS alone, so a unit keeps the pairing already on it. Add --erase-all to move one to a different main vendo.