geodb on the STM32F769I-DISCO
=============================

40,928 cities in the chip's flash, queried in place, on a globe on the 4" LCD; touch to turn and zoom.
Built from geodb-rs e2bf8fb + uncommitted changes in firmware/ or geodb-fw-core on 2026-10-03 (manifest.json has the details).

Flash a board (macOS or Linux, with probe-rs: https://probe.rs/docs/getting-started/installation/):

    ./flash.sh

It checks the files (SHA256SUMS), erases the internal flash and writes:

    0x08000000  bootloader.bin      1,920 bytes  the A/B bootloader (sector 0)
    0x08040000  app-a.bin         236,976 bytes  the program, slot A (sector 5): the board starts this
    0x080C0000  geodb.fw        1,297,076 bytes  the city image (sectors 7-11)

A backup of the factory demo first, if you want it back later (needs stlink: brew install stlink):

    st-flash --connect-under-reset read factory-flash-2MB.bin 0x08000000 0x200000
    st-flash --connect-under-reset write factory-flash-2MB.bin 0x08000000   # to restore

Afterwards, with the board on Ethernet (DHCP), updates go over the network with geodb-board
(https://github.com/holg/geodb-rs, crates/geodb-board):

    geodb-board ota app-b.bin --host IP     # the program for the slot that is not running

Without probe-rs, any tool that writes a raw binary at an address works (STM32CubeProgrammer,
st-flash write FILE ADDRESS): the addresses are above. Cities: countries-states-cities-database
(dr5hn, CC-BY-4.0).
