Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .github/firmware-drift.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,28 +26,28 @@
"firmware": "br-ext-chip-goke/board/gk7205v200/gk7205v200.generic.config",
"blob": "f97dce84c0f85d1a08a45bb7a173448d4a060e75",
"reconciled": "2026-08-25",
"note": "fpv/lte/venc variant of the generic config; backs 5 gk7205v200/v210 builds"
"note": "wfbng/lte/venc variant of the generic config; backs 5 gk7205v200/v210 builds"
},
{
"builder": "devices/common/br-ext-chip-goke/board/gk7205v200/gk7205v300.generic-fpv.config",
"firmware": "br-ext-chip-goke/board/gk7205v200/gk7205v300.generic.config",
"blob": "1f36f13f42ed1b1616608e330c63719ae00a1e0a",
"reconciled": "2026-08-25",
"note": "fpv/lte/venc variant; backs 3 gk7205v300 builds"
"note": "wfbng/lte/venc variant; backs 3 gk7205v300 builds"
},
{
"builder": "devices/common/br-ext-chip-hisilicon/board/hi3516ev200/hi3516ev200.generic-fpv.config",
"firmware": "br-ext-chip-hisilicon/board/hi3516ev200/hi3516ev200.generic.config",
"blob": "bccb6da3b61ea9ee15a08c676b41b820ddfc96f4",
"reconciled": "2026-08-25",
"note": "fpv/lte variant"
"note": "wfbng/lte variant"
},
{
"builder": "devices/common/br-ext-chip-hisilicon/board/hi3516ev200/hi3516ev300.generic-fpv.config",
"firmware": "br-ext-chip-hisilicon/board/hi3516ev200/hi3516ev300.generic.config",
"blob": "dbf2a1630e2a81f30568a3a798cc777a5b7191f1",
"reconciled": "2026-08-25",
"note": "fpv/lte variant"
"note": "wfbng/lte variant"
},
{
"builder": "devices/gk7102ca_lite_umea-qc01x/br-ext-chip-goke/board/gk710x/gk7102c.generic.config",
Expand Down Expand Up @@ -561,21 +561,21 @@
"note": "shared udhcpc handler"
},
{
"builder": "devices/ssc338q_fpv_openipc-mario-aio/general/package/sigmastar-osdrv-infinity6e/files/script/load_sigmastar",
"builder": "devices/ssc338q_wfbng_openipc-mario-aio/general/package/sigmastar-osdrv-infinity6e/files/script/load_sigmastar",
"firmware": "general/package/sigmastar-osdrv-infinity6e/files/script/load_sigmastar",
"blob": "d56e9aeb776345db4322d2ec378f6b0e701f885e",
"reconciled": "2026-08-25",
"note": "vendor driver loader; firmware#2307 updated its sensor list"
},
{
"builder": "devices/ssc338q_fpv_openipc-thinker-aio/general/package/sigmastar-osdrv-infinity6e/files/script/load_sigmastar",
"builder": "devices/ssc338q_wfbng_openipc-thinker-aio/general/package/sigmastar-osdrv-infinity6e/files/script/load_sigmastar",
"firmware": "general/package/sigmastar-osdrv-infinity6e/files/script/load_sigmastar",
"blob": "d56e9aeb776345db4322d2ec378f6b0e701f885e",
"reconciled": "2026-08-25",
"note": "vendor driver loader; firmware#2307 updated its sensor list"
},
{
"builder": "devices/ssc338q_fpv_openipc-urllc-aio/general/package/sigmastar-osdrv-infinity6e/files/script/load_sigmastar",
"builder": "devices/ssc338q_wfbng_openipc-urllc-aio/general/package/sigmastar-osdrv-infinity6e/files/script/load_sigmastar",
"firmware": "general/package/sigmastar-osdrv-infinity6e/files/script/load_sigmastar",
"blob": "d56e9aeb776345db4322d2ec378f6b0e701f885e",
"reconciled": "2026-08-25",
Expand All @@ -596,7 +596,7 @@
"note": "vendor driver loader; firmware#2307 updated its sensor list"
},
{
"builder": "devices/ssc377qe_fpv_ccdcam-im50q01-tipoman/general/package/linux-patcher/linux-patcher.mk",
"builder": "devices/ssc377qe_wfbng_ccdcam-im50q01-tipoman/general/package/linux-patcher/linux-patcher.mk",
"firmware": "general/package/linux-patcher/linux-patcher.mk",
"blob": "fac2fcbf7b0b24092690892341d3890ea0738cc7",
"reconciled": "2026-08-25",
Expand Down
6 changes: 3 additions & 3 deletions .github/scripts/check-firmware-drift.py
Original file line number Diff line number Diff line change
Expand Up @@ -624,13 +624,13 @@ def want(cond, what):
# Attribution follows builder.sh: a vendor tree reaches its own configs/,
# anything else in the directory reaches every device there.
with tempfile.TemporaryDirectory() as tmp:
for vendor, dev in (("br-ext-chip-goke", "gk_fpv"), ("br-ext-chip-goke", "gk_lte"), ("br-ext-chip-sigmastar", "ssc_fpv")):
for vendor, dev in (("br-ext-chip-goke", "gk_wfbng"), ("br-ext-chip-goke", "gk_lte"), ("br-ext-chip-sigmastar", "ssc_wfbng")):
d = os.path.join(tmp, "devices", "common", vendor, "configs")
os.makedirs(d, exist_ok=True)
open(os.path.join(d, f"{dev}_defconfig"), "w").close()
want(devices_for(tmp, "devices/common/br-ext-chip-goke/board/x.config") == ["gk_fpv", "gk_lte"],
want(devices_for(tmp, "devices/common/br-ext-chip-goke/board/x.config") == ["gk_lte", "gk_wfbng"],
"a vendor-tree file must reach only that vendor's devices")
want(devices_for(tmp, "devices/common/general/overlay/etc/x") == ["gk_fpv", "gk_lte", "ssc_fpv"],
want(devices_for(tmp, "devices/common/general/overlay/etc/x") == ["gk_lte", "gk_wfbng", "ssc_wfbng"],
"a general/ file must reach every device in the directory")

# The shipped config must describe this tree, the same way ci-matrix.py's
Expand Down
10 changes: 5 additions & 5 deletions .github/scripts/ci-matrix.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,11 @@
"hi3518ev200_lite_switcam-hs303", # HiSilicon lite
"hi3516ev300_ultimate_rvi-1ncmw2028", # HiSilicon ultimate
"ssc325_lite_imou-c22cp", # SigmaStar lite, the musleabihf toolchain
"ssc338q_fpv_caddx-fly", # SigmaStar fpv
"ssc338q_wfbng_caddx-fly", # SigmaStar wfbng
"t31_lite_wyze-v3b", # Ingenic, the only mips
"t20_ultimate_azarton-c1", # Ingenic ultimate
"hi3536dv100_fpv", # the only gnueabi toolchain in the tree
"gk7205v200_fpv", # devices/common, and the fpv flavour
"hi3536dv100_wfbng", # the only gnueabi toolchain in the tree
"gk7205v200_wfbng", # devices/common, and the wfbng flavour
"hi3516cv300_mini", # devices/common, mini
"gk7205v200_lte", # devices/common, lte
"gk7205v200_venc", # devices/common, venc
Expand Down Expand Up @@ -400,7 +400,7 @@ def self_test():
(["devices/apfpv/general/overlay/etc/udhcpd.conf"],
apfpv, "same for devices/apfpv"),
# ...but a defconfig inside a shared directory still names one target.
(["devices/common/br-ext-chip-goke/configs/gk7205v200_fpv_defconfig"],
(["devices/common/br-ext-chip-goke/configs/gk7205v200_wfbng_defconfig"],
1, "a defconfig in a shared directory is still one device"),
# A defconfig CI does not build contributes nothing.
(["devices/t31_lite_xiaomi-mjsxj05hl/br-ext-chip-ingenic/configs/"
Expand Down Expand Up @@ -448,7 +448,7 @@ def self_test():
([".github/scripts/check-firmware-drift.py"], 0, "its script"),
([".github/firmware-drift.json"], 0, "and what it reconciles against"),
(["package.sh"], 0, "developer tool, no workflow runs it"),
(["archive/gk7205v200_fpv/202607231714/openipc.tgz"], 0, "build output"),
(["archive/gk7205v200_wfbng/202607231714/openipc.tgz"], 0, "build output"),
# Anchoring: the same names elsewhere are not them.
(["devices/t31_lite_wyze-v3b/README.md"],
1, "markdown inside a device is that device"),
Expand Down
2 changes: 1 addition & 1 deletion .github/scripts/enrich_manifest.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
identifier. Platform key = the full `<soc>_<variant>_<vendor>-<model>`
string. This is the common case (per-device builds).

- **Simple** form (single-underscore matrix entry like `ssc338q_fpv`):
- **Simple** form (single-underscore matrix entry like `ssc338q_wfbng`):
`openipc.<soc>-<flash>-<variant>.tgz` — firmware-style. Platform key
= `<soc>_<variant>`.

Expand Down
8 changes: 4 additions & 4 deletions .github/scripts/test_push_build.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,10 +175,10 @@ def assets(self, *names):
def test_builder_compound_devices_without_reports(self):
plats = push_build.collect_platforms(None, self.assets(
"gk7205v200_lite_hisilicon-ipc-a-nor.tgz",
"ssc338q_fpv_emax-wyvern-link-nand.tgz",
"ssc338q_wfbng_emax-wyvern-link-nand.tgz",
"openipc.t31-nor-lite.tgz"))
self.assertEqual([p["name"] for p in plats], [
"gk7205v200_lite_hisilicon-ipc-a", "ssc338q_fpv_emax-wyvern-link", "t31-lite"])
"gk7205v200_lite_hisilicon-ipc-a", "ssc338q_wfbng_emax-wyvern-link", "t31-lite"])

def test_builder_compound_devices_with_reports(self):
with tempfile.TemporaryDirectory() as t:
Expand All @@ -194,8 +194,8 @@ def test_builder_compound_devices_with_reports(self):
def test_a_report_and_its_tarball_are_one_platform(self):
with tempfile.TemporaryDirectory() as t:
reports = Path(t)
(reports / "sizes.ssc338q_fpv_emax-wyvern-link.json").write_text("{}")
plats = push_build.collect_platforms(reports, self.assets("ssc338q_fpv_emax-wyvern-link-nor.tgz"))
(reports / "sizes.ssc338q_wfbng_emax-wyvern-link.json").write_text("{}")
plats = push_build.collect_platforms(reports, self.assets("ssc338q_wfbng_emax-wyvern-link-nor.tgz"))
self.assertEqual(len(plats), 1)


Expand Down
24 changes: 24 additions & 0 deletions .github/workflows/master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -684,6 +684,30 @@ jobs:
ensure_release latest
gh_retry gh api -X PATCH "repos/${GH_REPO}/git/refs/tags/latest" -f sha="$HEAD_SHA" -F force=true
upload_paced latest "${IMAGES[@]}"

# --- latest: the wfbng images under their fpv names ---
# The variant was fpv until it was renamed wfbng, after the wfb-ng
# it carries. Cameras flashed before then still fetch the old
# names from latest: the generic ones by BUILD_OPTION, and the
# devices by the `upgrade` URL their customizer.sh wrote into the
# bootloader environment, which an upgrade keeps (S30customizer
# runs once). So latest keeps answering both, with no end date: a
# device camera would otherwise lose its updates silently.
ALIASES=()
mkdir -p dist-fpv
for f in "${IMAGES[@]}"; do
b=${f##*/}
case "$b" in
openipc.*-wfbng.tgz) a=${b%-wfbng.tgz}-fpv.tgz ;;
*_wfbng_*) a=${b/_wfbng_/_fpv_} ;;
*) continue ;;
esac
cp -- "$f" "dist-fpv/$a"
ALIASES+=("dist-fpv/$a")
done
if [ "${#ALIASES[@]}" -gt 0 ]; then
Comment thread
openipc-ai marked this conversation as resolved.
upload_paced latest "${ALIASES[@]}"
Comment thread
openipc-ai marked this conversation as resolved.
fi
fi

# openipc.org learns about the build here, once: which device images were
Expand Down
8 changes: 4 additions & 4 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ What `builder.sh <device>` does, in order:

Device directory names encode `<soc>_<flavor>_<vendor>-<model>[-<version>]`:
- **soc** — OpenIPC SoC name: `hi3518ev200`, `ssc337de`, `t31`, `gk7205v200`, …
- **flavor** — firmware track: `lite` (default, the vast majority), `ultimate`, `fpv`,
`rubyfpv`, `apfpv`. Prefer `lite` for new devices unless flash size forces otherwise.
- **flavor** — firmware track: `lite` (default, the vast majority), `ultimate`, `wfbng`
(the wfb-ng air unit; `fpv` until it was renamed to say what it carries), `rubyfpv`, `apfpv`. Prefer `lite` for new devices unless flash size forces otherwise.

The minimal required files for a registered device (per README "Requirements"):
```
Expand All @@ -74,9 +74,9 @@ sensor `.ini`, a patched `load_hisilicon`), or a custom kernel config at
`br-ext-chip-<vendor>/board/<family>/<soc>.generic.config`.

### `devices/common/`
Generic, non-device-specific defconfigs (`*_fpv`, `*_venc`, `*_lte`, `*_mini`) plus their
Generic, non-device-specific defconfigs (`*_wfbng`, `*_venc`, `*_lte`, `*_mini`) plus their
shared kernel configs and exclude lists. These are the matrix entries with a single
underscore (`hi3516ev200_fpv`, `hi3518ev200_mini`). The CI artifact-naming logic keys off
underscore (`hi3516ev200_wfbng`, `hi3518ev200_mini`). The CI artifact-naming logic keys off
this: `COMMON = (underscore count) - 1`; when `COMMON == 1` the firmware's canonically-named
image is uploaded as-is, otherwise the compound `<soc>_<flavor>_<vendor>-<model>` image is
renamed to `<device>-nor.tgz` / `-nand.tgz` to avoid release-asset collisions.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_OPENIPC_SOC_VENDOR="goke"
BR2_OPENIPC_SOC_MODEL="gk7205v200"
BR2_OPENIPC_SOC_FAMILY="gk7205v200"
BR2_OPENIPC_VARIANT="fpv"
BR2_OPENIPC_VARIANT="wfbng"
BR2_OPENIPC_FLASH_SIZE="8"
BR2_OPENIPC_MAJESTIC="fpv"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_OPENIPC_SOC_VENDOR="goke"
BR2_OPENIPC_SOC_MODEL="gk7205v200"
BR2_OPENIPC_SOC_FAMILY="gk7205v200"
BR2_OPENIPC_VARIANT="fpv"
BR2_OPENIPC_VARIANT="wfbng"
BR2_OPENIPC_FLASH_SIZE="8"
BR2_OPENIPC_MAJESTIC="fpv"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_OPENIPC_SOC_VENDOR="goke"
BR2_OPENIPC_SOC_MODEL="gk7205v210"
BR2_OPENIPC_SOC_FAMILY="gk7205v200"
BR2_OPENIPC_VARIANT="fpv"
BR2_OPENIPC_VARIANT="wfbng"
BR2_OPENIPC_FLASH_SIZE="8"
BR2_OPENIPC_MAJESTIC="fpv"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_OPENIPC_SOC_VENDOR="goke"
BR2_OPENIPC_SOC_MODEL="gk7205v300"
BR2_OPENIPC_SOC_FAMILY="gk7205v200"
BR2_OPENIPC_VARIANT="fpv"
BR2_OPENIPC_VARIANT="wfbng"
BR2_OPENIPC_FLASH_SIZE="8"
BR2_OPENIPC_MAJESTIC="fpv"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_OPENIPC_SOC_VENDOR="hisilicon"
BR2_OPENIPC_SOC_MODEL="hi3516ev200"
BR2_OPENIPC_SOC_FAMILY="hi3516ev200"
BR2_OPENIPC_VARIANT="fpv"
BR2_OPENIPC_VARIANT="wfbng"
BR2_OPENIPC_FLASH_SIZE="8"
BR2_OPENIPC_MAJESTIC="fpv"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_OPENIPC_SOC_VENDOR="hisilicon"
BR2_OPENIPC_SOC_MODEL="hi3516ev300"
BR2_OPENIPC_SOC_FAMILY="hi3516ev200"
BR2_OPENIPC_VARIANT="fpv"
BR2_OPENIPC_VARIANT="wfbng"
BR2_OPENIPC_FLASH_SIZE="8"
BR2_OPENIPC_MAJESTIC="fpv"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_OPENIPC_SOC_VENDOR="hisilicon"
BR2_OPENIPC_SOC_MODEL="hi3536dv100"
BR2_OPENIPC_SOC_FAMILY="hi3536dv100"
BR2_OPENIPC_VARIANT="fpv"
BR2_OPENIPC_VARIANT="wfbng"
BR2_OPENIPC_FLASH_SIZE="16"
BR2_OPENIPC_MAJESTIC="fpv"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_OPENIPC_SOC_VENDOR="sigmastar"
BR2_OPENIPC_SOC_MODEL="ssc30kq"
BR2_OPENIPC_SOC_FAMILY="infinity6e"
BR2_OPENIPC_VARIANT="fpv"
BR2_OPENIPC_VARIANT="wfbng"
BR2_OPENIPC_FLASH_SIZE="16"

# Packages
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000
BR2_OPENIPC_SOC_VENDOR="sigmastar"
BR2_OPENIPC_SOC_MODEL="ssc338q"
BR2_OPENIPC_SOC_FAMILY="infinity6e"
BR2_OPENIPC_VARIANT="fpv"
BR2_OPENIPC_VARIANT="wfbng"
BR2_OPENIPC_FLASH_SIZE="16"

# Packages
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_OPENIPC_SOC_VENDOR="sigmastar"
BR2_OPENIPC_SOC_MODEL="ssc378qe"
BR2_OPENIPC_SOC_FAMILY="infinity6c"
BR2_OPENIPC_VARIANT="fpv"
BR2_OPENIPC_VARIANT="wfbng"
BR2_OPENIPC_FLASH_SIZE="16"

# Packages
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_OPENIPC_SOC_VENDOR="sigmastar"
BR2_OPENIPC_SOC_MODEL="ssc338q"
BR2_OPENIPC_SOC_FAMILY="infinity6e"
BR2_OPENIPC_VARIANT="fpv"
BR2_OPENIPC_VARIANT="wfbng"
BR2_OPENIPC_FLASH_SIZE="16"

# Packages
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/sh

# Set custom upgrade url
fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/ssc338q_fpv_caddx-fly-nor.tgz'
fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/ssc338q_wfbng_caddx-fly-nor.tgz'

exit 0
Loading
Loading