diff --git a/astro.config.mjs b/astro.config.mjs index a82c979..3cfb293 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -5,164 +5,127 @@ import tailwind from "@astrojs/tailwind"; // https://astro.build/config export default defineConfig({ - site: "https://docs.openipc.org", + site: process.env.SITE || "https://docs.openipc.org", base: "/", integrations: [ starlight({ title: "Documentation", - customCss: ["./src/tailwind.css"], - social: { - github: "https://github.com/OpenIPC", + defaultLocale: "root", + locales: { + root: { label: "English", lang: "en" }, }, + customCss: ["./src/tailwind.css"], + social: { github: "https://github.com/OpenIPC" }, logo: { light: "./src/assets/logo/OpenIPC__OPENIPC_logo_vertical.svg", dark: "./src/assets/logo/OpenIPC__OPENIPC_logo_vertical_white.svg", }, - editLink: { - baseUrl: "https://github.com/OpenIPC/docs/edit/main/", - }, - components: { - // Relative path to the custom component. - Head: "./src/components/Head.astro", - }, + editLink: { baseUrl: "https://github.com/OpenIPC/docs/edit/main/" }, + components: { Head: "./src/components/Head.astro" }, sidebar: [ - { - label: "Getting Started", - collapsed: true, - items: [ - { - label: "Homepage", - link: "/getting-started/homepage", - }, - { - label: "About the Project", - link: "/getting-started/introduction/", - }, - { - label: "Quick Start", - link: "/getting-started/quick-start/", - badge: { text: "WIP", variant: "caution" }, - }, - { - label: "Roadmap", - link: "/getting-started/roadmap/", - }, - ], - }, - { - label: "Use Cases", - collapsed: true, - items: [ - { - label: "FPV (First Person View)", - collapsed: true, - items: [ - { - label: "Net cards", - collapsed: true, - autogenerate: { - directory: "/use-cases/fpv/net-cards", - }, - }, - { - label: "WFB-NG", - collapsed: true, - autogenerate: { - directory: "/use-cases/fpv/wfb-ng", - }, - }, - { - label: "APFPV", - collapsed: true, - autogenerate: { - directory: "/use-cases/fpv/apfpv", - }, - }, - ], - badge: { text: "WIP", variant: "caution" }, - }, - { - label: "Home Automation", - collapsed: true, - autogenerate: { - directory: "/use-cases/home-automation", - }, - badge: { text: "WIP", variant: "caution" }, - }, - { - label: "Video Surveillance", - collapsed: true, - autogenerate: { - directory: "/use-cases/video-surveillance", - }, - badge: { text: "WIP", variant: "caution" }, - }, - ], - }, - { - label: "Hardware", - collapsed: true, - autogenerate: { - collapsed: true, - directory: "/hardware", - }, - }, - { - label: "Software", - collapsed: true, - autogenerate: { - directory: "/software", - }, - }, - { - label: "Development", - collapsed: true, - items: [ - { - label: "Contribution Guidelines", - link: "/development/contribution-guidelines/", - }, - { - label: "Projects & Applications", - link: "/development/projects-applications/", - badge: { text: "WIP", variant: "caution" }, - }, - { - label: "Webface Guide", - link: "/development/webface-guide/", - badge: { text: "WIP", variant: "caution" }, - }, - ], - }, - { - label: "Resources", - collapsed: true, - items: [ - { - label: "Frequently Asked Questions", - link: "/resources/faq/", - badge: { text: "WIP", variant: "caution" }, - }, - { - label: "Useful Links", - link: "/resources/useful-links/", - badge: { text: "WIP", variant: "caution" }, - }, - ], - }, - { - label: "Reference", - collapsed: true, - autogenerate: { - collapsed: true, - directory: "reference", - }, - }, + { label: "Getting Started", collapsed: true, items: [ + { label: "Homepage", link: "/getting-started/homepage" }, + { label: "About the Project", link: "/getting-started/introduction/" }, + { label: "Quick Start", link: "/getting-started/quick-start/" }, + { label: "Roadmap", link: "/getting-started/roadmap/" }, + ] }, + { label: "Video Surveillance", collapsed: false, items: [ + { label: "Overview", link: "/video-surveillance/" }, + { label: "Quick Start", link: "/video-surveillance/quick-start/" }, + { label: "Streams and Majestic", link: "/video-surveillance/streams-and-majestic/" }, + { label: "NVR Integration", link: "/video-surveillance/nvr-integration/" }, + { label: "Supported SoC", link: "/video-surveillance/soc/" }, + ] }, + { label: "Hardware", collapsed: true, items: [ + { label: "Overview", link: "/hardware/" }, + { label: "SBCs", collapsed: true, autogenerate: { directory: "/hardware/sbcs" } }, + { label: "Air Units", collapsed: true, items: [ + { label: "Runcam", collapsed: true, autogenerate: { directory: "/hardware/air-units/runcam" } }, + { label: "OpenIPC", collapsed: true, autogenerate: { directory: "/hardware/air-units/openipc" } }, + { label: "Others", link: "/hardware/air-units/others/" }, + ] }, + { label: "IP Cameras", collapsed: true, autogenerate: { directory: "/hardware/cameras" } }, + { label: "Wi-Fi Adapters", collapsed: true, autogenerate: { directory: "/hardware/wi-fi-adapters" } }, + ] }, + { label: "Firmware & Recovery", collapsed: true, autogenerate: { directory: "/firmware-recovery" } }, + { label: "Software & Tools", collapsed: true, items: [ + { label: "Overview", link: "/software-tools/" }, + { label: "OpenIPC Builder", link: "/software-tools/openipc-builder/" }, + { label: "Companion", link: "/software-tools/companion/" }, + { label: "OpenIPC Configurator", link: "/software-tools/openipc-configurator/" }, + { label: "FPV Presets", link: "/software-tools/fpv-presets/" }, + { label: "Aviateur", link: "/software-tools/aviateur/" }, + { label: "SBC Ground Stations", link: "/software-tools/sbc-groundstations/" }, + ] }, + { label: "System Components", collapsed: true, items: [ + { label: "MSP OSD", link: "/system-components/msp-osd/" }, + { label: "MAVFWD", link: "/system-components/mavfwd/" }, + { label: "Adaptive Link", link: "/system-components/adaptive-link/" }, + { label: "Joystick", link: "/system-components/joystick/" }, + { label: "OpenIPC Dashboard", link: "/system-components/dashboard/" }, + { label: "PixelPilot RK", link: "/system-components/pixelpilot-rk/" }, + { label: "PixelPilot Android", link: "/system-components/pixelpilot-android/" }, + { label: "Bidirectional Link", link: "/system-components/bidirectional-link/" }, + { label: "Divinus", link: "/system-components/divinus/" }, + { label: "Devourer", link: "/system-components/devourer/" }, + { label: "Majestic", link: "/system-components/majestic/" }, + { label: "Web UI Development", link: "/system-components/web-ui-development/" }, + { label: "Third-Party Components", link: "/system-components/third-party-components/" }, + ] }, + { label: "Use Cases", collapsed: true, items: [ + { label: "FPV over WFB-NG", collapsed: true, autogenerate: { directory: "/use-cases/fpv-over-wfb-ng" } }, + { label: "FPV over Wi-Fi (APFPV)", collapsed: true, autogenerate: { directory: "/use-cases/ap-fpv-over-wi-fi" } }, + { label: "OpenWrt", link: "/use-cases/openwrt/" }, + { label: "YouTube Streaming", link: "/use-cases/youtube-streaming/" }, + ] }, + { label: "Development", collapsed: true, items: [ + { label: "Contribution Guidelines", link: "/development/contribution-guidelines/" }, + { label: "Projects & Applications", link: "/development/projects-applications/" }, + ] }, + { label: "Resources", collapsed: true, items: [ + { label: "Frequently Asked Questions", link: "/resources/faq/" }, + { label: "Useful Links", link: "/resources/useful-links/" }, + ] }, + { label: "Reference", collapsed: true, autogenerate: { directory: "reference" } }, ], }), tailwind({ applyBaseStyles: false }), ], redirects: { - "/": "/getting-started/homepage", - } + "/": "/getting-started/homepage", + "/hardware/hardware-page": "/hardware/", + "/hardware/displays": "/hardware/", + "/software/software-page": "/software-tools/", + "/software/general-uart-flashing-guide": "/firmware-recovery/general-uart-flashing-guide/", + "/software/sysupgrade": "/firmware-recovery/online-sysupgrade/", + "/software/firmware-updates": "/firmware-recovery/firmware-updates/", + "/use-cases/camera-surveillance": "/video-surveillance/", + "/use-cases/video-surveillance/quick-start": "/video-surveillance/quick-start/", + "/use-cases/video-surveillance/soc": "/video-surveillance/soc/", + "/use-cases/fpv/apfpv/apfpv": "/use-cases/ap-fpv-over-wi-fi/", + "/use-cases/fpv/apfpv/APFPV": "/use-cases/ap-fpv-over-wi-fi/", + "/use-cases/fpv/wfb-ng/quick-start": "/use-cases/fpv-over-wfb-ng/quick-start/", + "/use-cases/fpv/wfb-ng/advanced-setup": "/use-cases/fpv-over-wfb-ng/openipc-companion/", + "/use-cases/fpv-over-wfb-ng/advanced-setup": "/use-cases/fpv-over-wfb-ng/openipc-companion/", + "/use-cases/fpv/wfb-ng/groundstation-radxa-zero-3w": "/use-cases/fpv-over-wfb-ng/groundstation-radxa-zero-3w/", + "/use-cases/fpv/wfb-ng/groundstation-ubuntu": "/use-cases/fpv-over-wfb-ng/groundstation-ubuntu/", + "/use-cases/fpv/wfb-ng/install-adaptive-link": "/use-cases/fpv-over-wfb-ng/install-adaptive-link/", + "/hardware/runcam/vtx/installing-alink-runcam": "/use-cases/fpv-over-wfb-ng/install-adaptive-link/", + "/use-cases/fpv/wfb-ng/unbrick-eu-bu": "/use-cases/fpv-over-wfb-ng/eu-bu-40mhz-issue/", + "/use-cases/fpv-over-wfb-ng/unbrick-eu-bu": "/use-cases/fpv-over-wfb-ng/eu-bu-40mhz-issue/", + "/use-cases/fpv/wfb-ng/wfb-ng-calculator": "/use-cases/fpv-over-wfb-ng/wfb-ng-calculator/", + "/development/webface-guide": "/system-components/web-ui-development/", + "/system-components/zoom": "/system-components/third-party-components/", + "/use-cases/fpv/net-cards/rtl8812eu": "/hardware/wi-fi-adapters/bl-m8812eu2-rtl8812eu/", + "/use-cases/fpv/net-cards/rtl8812au": "/hardware/wi-fi-adapters/bl-r8812af1-rtl8812au/", + "/use-cases/fpv/net-cards/rtl8731bu": "/hardware/wi-fi-adapters/bl-m8731bu3-rtl873xbu/", + "/hardware/cameras/hisilicon-gk7025v200-gk7025v300": "/hardware/cameras/hisilicon-gk7205v200-gk7205v300/", + "/hardware/OpenIPC/VRX/openipc-bonnet": "/hardware/sbcs/openipc-bonnet/", + "/hardware/sbcs/sbc-groundstations": "/software-tools/sbc-groundstations/", + "/hardware/OpenIPC/VTX/fpv-mario-aio": "/hardware/air-units/openipc/openipc-mario-aio/", + "/hardware/OpenIPC/VTX/fpv-thinker-aio": "/hardware/air-units/openipc/openipc-thinker-air-unit/", + "/hardware/Runcam/VTX/runcam-wifilink-v1": "/hardware/air-units/runcam/runcam-wifilink1/", + "/hardware/Runcam/VTX/runcam-wifilink-v2": "/hardware/air-units/runcam/runcam-wifilink2/", + }, }); + diff --git a/package.json b/package.json index f8ed6aa..1c645ab 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "build": "astro check && astro build", "preview": "astro preview", "astro": "astro", - "format": "prettier --write ." + "format": "prettier --write .", + "build:draft": "SITE=http://openipc.egorniko.ru astro check && SITE=http://openipc.egorniko.ru astro build" }, "dependencies": { "@astrojs/check": "^0.3.4", diff --git a/public/images/aviateur-ground-station.webp b/public/images/aviateur-ground-station.webp new file mode 100644 index 0000000..c5d81c3 Binary files /dev/null and b/public/images/aviateur-ground-station.webp differ diff --git a/public/images/defib-web-ui.png b/public/images/defib-web-ui.png new file mode 100644 index 0000000..f3cf8f0 Binary files /dev/null and b/public/images/defib-web-ui.png differ diff --git a/public/images/msp-osd-overlay.webp b/public/images/msp-osd-overlay.webp new file mode 100644 index 0000000..924bc71 Binary files /dev/null and b/public/images/msp-osd-overlay.webp differ diff --git a/public/images/nvr-hi3536dv100-board.webp b/public/images/nvr-hi3536dv100-board.webp new file mode 100644 index 0000000..ffdec75 Binary files /dev/null and b/public/images/nvr-hi3536dv100-board.webp differ diff --git a/public/images/openipc-companion-wfb-settings.webp b/public/images/openipc-companion-wfb-settings.webp new file mode 100644 index 0000000..bd7e209 Binary files /dev/null and b/public/images/openipc-companion-wfb-settings.webp differ diff --git a/public/images/openipc-configurator-windows.webp b/public/images/openipc-configurator-windows.webp new file mode 100644 index 0000000..fdbbd41 Binary files /dev/null and b/public/images/openipc-configurator-windows.webp differ diff --git a/public/images/openipc-fpv-presets-companion.webp b/public/images/openipc-fpv-presets-companion.webp new file mode 100644 index 0000000..41a32f1 Binary files /dev/null and b/public/images/openipc-fpv-presets-companion.webp differ diff --git a/public/images/pixelpilot-android-osd.webp b/public/images/pixelpilot-android-osd.webp new file mode 100644 index 0000000..5d68d8d Binary files /dev/null and b/public/images/pixelpilot-android-osd.webp differ diff --git a/public/images/pixelpilot-rk-osd.webp b/public/images/pixelpilot-rk-osd.webp new file mode 100644 index 0000000..9cd818f Binary files /dev/null and b/public/images/pixelpilot-rk-osd.webp differ diff --git a/src/content/config.ts b/src/content/config.ts index a4eec59..f043fb4 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -1,6 +1,7 @@ import { defineCollection } from "astro:content"; -import { docsSchema } from "@astrojs/starlight/schema"; +import { docsSchema, i18nSchema } from "@astrojs/starlight/schema"; export const collections = { docs: defineCollection({ schema: docsSchema() }), + i18n: defineCollection({ type: "data", schema: i18nSchema() }), }; diff --git a/src/content/docs/development/contribution-guidelines.md b/src/content/docs/development/contribution-guidelines.md index a7b24e7..b668bcf 100644 --- a/src/content/docs/development/contribution-guidelines.md +++ b/src/content/docs/development/contribution-guidelines.md @@ -116,7 +116,6 @@ However, for directories that do **not** use `autogenerate`, like `getting-start { label: "Contribution Guidelines", link: "/development/contribution-guidelines/", - badge: { text: "WIP", variant: "caution" }, }, { label: "New Feature Guide", // Your new page diff --git a/src/content/docs/development/projects-applications.mdx b/src/content/docs/development/projects-applications.mdx index a6e53c0..c7ed6ea 100644 --- a/src/content/docs/development/projects-applications.mdx +++ b/src/content/docs/development/projects-applications.mdx @@ -1,7 +1,49 @@ --- -title: "Known OpenIPC applications" -description: "Known OpenIPC applications list" +title: "Projects & Applications" +description: "Main OpenIPC application areas and related documentation paths." --- -import ThemeImage from '/src/components/ThemeImage.astro' -FPV, CCTV, Home Automation. +OpenIPC is a camera firmware platform that supports several application areas. The documentation should treat video surveillance as the primary path and present other areas as practical use cases built on the same firmware, streamer, networking, and hardware foundation. + +## Video Surveillance + +The standard OpenIPC use case is turning supported IP camera hardware into an open network camera. + +Start here: + +- [Video Surveillance](/video-surveillance/) +- [Streams and Majestic](/video-surveillance/streams-and-majestic/) +- [NVR Integration](/video-surveillance/nvr-integration/) +- [Majestic](/system-components/majestic/) + +## FPV + +OpenIPC FPV uses camera firmware, air units, Wi-Fi adapters, ground stations, and telemetry components to build digital video links. + +Main paths: + +- [FPV over WFB-NG](/use-cases/fpv-over-wfb-ng/) +- [FPV over Wi-Fi (APFPV)](/use-cases/ap-fpv-over-wi-fi/) +- [OpenWrt](/use-cases/openwrt/) +- [MAVFWD](/system-components/mavfwd/) +- [MSP OSD](/system-components/msp-osd/) +- [Adaptive Link](/system-components/adaptive-link/) + +## Home Automation and Streaming + +OpenIPC cameras can also be used in broader automation or streaming setups. + +Related pages: + +- [Home Automation Quick Start](/use-cases/home-automation/quick-start/) +- [YouTube Streaming](/use-cases/youtube-streaming/) +- [OpenIPC Dashboard](/system-components/dashboard/) + +## Firmware and Recovery + +All application areas depend on safe firmware installation and recovery procedures. + +- [Firmware & Recovery](/firmware-recovery/) +- [Firmware Updates](/firmware-recovery/firmware-updates/) +- [Sysupgrade](/firmware-recovery/online-sysupgrade/) +- [Web-Based Camera Recovery Tool](/firmware-recovery/defib/) diff --git a/src/content/docs/firmware-recovery/defib.md b/src/content/docs/firmware-recovery/defib.md new file mode 100644 index 0000000..5c85d82 --- /dev/null +++ b/src/content/docs/firmware-recovery/defib.md @@ -0,0 +1,191 @@ +--- +title: "Web-Based Camera Recovery Tool" +description: "Recover bricked IP cameras with the Defib Web UI or CLI over UART, TFTP, and supported boot ROM protocols." +--- + +[Defib](https://github.com/OpenIPC/defib) is a camera recovery tool for bringing bricked IP cameras back to life. It can work with UART serial connections, TFTP, and SoC boot ROM protocols used by HiSilicon, Goke, and related camera platforms. + +Use Defib when a camera no longer boots normally, when you need to load U-Boot through UART, or when you want to automate repeatable recovery and flash operations. + +![Defib Web Recovery Tool](/images/defib-web-ui.png) + +## Web UI + +The fastest way to try Defib is the browser-based recovery tool: + +[Launch Defib Web Recovery Tool](https://openipc.github.io/defib/) + +It runs directly in Chromium-based browsers that support the WebSerial API, such as Chrome, Edge, and Opera. Open the page, select the chip and firmware, connect a USB-to-serial adapter, and start the recovery process. + +:::tip +The Web UI is useful for quick manual recovery because it does not require installing the CLI tool first. +::: + +## CLI Installation + +Install the command-line tool with `uv` or `pipx`: + +```bash +uv tool install defib +# or +pipx install defib +``` + +## Basic Commands + +List supported chips and available serial ports: + +```bash +defib list-chips +defib ports +``` + +Recover a device through UART with a raw serial device path: + +```bash +defib burn -c hi3516ev300 -f u-boot.bin -p /dev/ttyUSB0 +``` + +Use a stable UART alias when your recovery bench has multiple adapters: + +```bash +defib burn -c hi3516ev300 -f u-boot.bin -p /dev/uart-orangepi5plus +``` + +Start the interactive terminal UI: + +```bash +defib tui +``` + +Run network recovery through TFTP: + +```bash +defib network -f firmware.bin --nic eth0 +``` + +For automation, request JSON output: + +```bash +defib burn -c gk7205v200 -f u-boot.bin --output json +``` + +## Full Firmware Install + +Defib can install a complete OpenIPC release in one command: U-Boot, kernel, and root filesystem. + +```bash +defib install -c hi3516ev300 \ + --firmware openipc.hi3516ev300-nor-lite.tgz \ + -p /dev/uart-IVG85HG50PYA-S \ + --power-cycle --nor-size 8 +``` + +The install flow extracts and verifies the firmware archive, downloads or reuses U-Boot, loads U-Boot through the boot ROM protocol, starts a TFTP server, flashes partitions, verifies data, saves the boot environment, and resets the device. + +:::note +The full install mode needs root permissions for TFTP port `69` and network interface configuration. NOR layouts with `--nor-size 8` and `--nor-size 16` are supported. +::: + +## Flash Dump Restore + +Use restore mode when you have a vendor firmware backup or a full flash dump. + +Restore a directory with MTD partition files: + +```bash +defib restore -c hi3516av200 -i /path/to/dump/ \ + -p /dev/uart-hi3516av200 --power-cycle +``` + +Restore a single NOR flash image: + +```bash +defib restore -c hi3516ev300 -i flash_dump.bin \ + -p /dev/ttyUSB0 --flash-type nor --power-cycle +``` + +Restore an `ipctool` backup file: + +```bash +defib restore -c hi3516av200 -i backup.bin \ + --uboot /path/to/u-boot.bin -p /dev/ttyUSB0 --power-cycle +``` + +Defib can auto-detect partition metadata from `ipctool` backup files with embedded YAML headers, so manual `mtdparts` input is usually not needed. + +## Automated Power Cycling + +Defib can power-cycle devices during recovery. This helps catch short boot ROM windows and makes repeated recovery tests less manual. + +The currently documented power backends are: + +- MikroTik RouterOS PoE switches. +- OpenIPC Vectis UART bridge over RFC 2217. + +Example RouterOS setup: + +```bash +export DEFIB_POWER_TYPE=routeros +export DEFIB_POE_HOST=192.168.88.1 +export DEFIB_POE_USER=admin +export DEFIB_POE_PASS= + +defib burn -c hi3516ev300 -p /dev/uart-IVG85HG50PYA-S --power-cycle -b +``` + +Example Vectis setup: + +```bash +export DEFIB_POWER_TYPE=vectis +export DEFIB_VECTIS_HOST=172.17.32.17 +export DEFIB_VECTIS_PORT=35240 + +defib burn -c hi3516cv300 -p rfc2217://172.17.32.17:35240 --power-cycle -b +``` + +:::caution +Run Defib near the UART bridge or recovery host when possible. High latency can make tight boot ROM timing windows harder to catch. +::: + +## Flash Agent + +Defib also includes a bare-metal flash agent for high-speed flash operations. The agent is uploaded through the boot protocol, switches to a faster baud rate, streams data to flash, verifies CRC32, and reboots the device. + +Flash a firmware image through the agent: + +```bash +defib agent flash -c hi3516ev300 -i firmware.bin -p /dev/ttyUSB0 +``` + +Useful agent commands include: + +```bash +defib agent upload -c hi3516ev300 -p /dev/ttyUSB0 +defib agent read -p /dev/ttyUSB0 -o flash_dump.bin +defib agent info -p /dev/ttyUSB0 +defib agent write -p /dev/ttyUSB0 -i flash_dump.bin +defib agent scan -p /dev/ttyUSB0 +``` + +## Testing with QEMU + +Defib can be tested against the `qemu-hisilicon` emulator without physical hardware. + +```bash +qemu-system-arm -M hi3516ev300 -m 64M -nographic \ + -chardev socket,id=ser0,path=/tmp/qemu-hisi.sock,server=on,wait=off \ + -serial chardev:ser0 +``` + +Then recover through the QEMU socket: + +```bash +defib burn -c hi3516ev300 -p socket:///tmp/qemu-hisi.sock +``` + +## Links + +- [Defib repository](https://github.com/OpenIPC/defib) +- [Defib Web Recovery Tool](https://openipc.github.io/defib/) +- [Vectis UART bridge](https://github.com/OpenIPC/vectis) diff --git a/src/content/docs/firmware-recovery/firmware-updates.md b/src/content/docs/firmware-recovery/firmware-updates.md new file mode 100644 index 0000000..172b374 --- /dev/null +++ b/src/content/docs/firmware-recovery/firmware-updates.md @@ -0,0 +1,40 @@ +--- +title: Firmware Updates +description: A guide on how to update your camera. +--- + +Use this page when OpenIPC is already installed and the camera boots normally. +For first-time installation or recovery, follow the guide for your exact device +or SoC instead. + +## Before updating + +- Confirm that the device is running OpenIPC. +- Keep stable power connected during the whole update. +- Note the current firmware target and version. +- Back up any custom configuration that is important for your setup. +- Make sure the camera can reach GitHub if you plan to use the Web UI update + button. + +## Update from the Web UI + +1. Open the camera Web UI in your browser. +2. Sign in if the interface asks for credentials. +3. Open **Settings -> Firmware** or **Firmware -> Update**. +4. Select **Install update from GitHub**. +5. Wait for the update process and automatic reboot to finish. + +The update can take several minutes. Do not power off the camera while firmware +is being written. + +## Firmware Release Sources + +Ready-made OpenIPC firmware images are published in the [OpenIPC firmware latest release](https://github.com/OpenIPC/firmware/releases/tag/latest). Device-specific and customized images for known hardware are published from [OpenIPC Builder latest releases](https://github.com/OpenIPC/builder/releases/tag/latest). Use the image that matches the exact SoC, flash layout, and board profile for your device. + +## After updating + +- Refresh the Web UI and check the reported firmware version. +- Verify video streaming and any required integrations. +- Reapply custom settings only if they were not preserved. +- If the camera does not boot, use the recovery method documented for your + hardware. diff --git a/src/content/docs/software/general-uart-flashing-guide.mdx b/src/content/docs/firmware-recovery/general-uart-flashing-guide.mdx similarity index 100% rename from src/content/docs/software/general-uart-flashing-guide.mdx rename to src/content/docs/firmware-recovery/general-uart-flashing-guide.mdx diff --git a/src/content/docs/firmware-recovery/index.md b/src/content/docs/firmware-recovery/index.md new file mode 100644 index 0000000..7f6535c --- /dev/null +++ b/src/content/docs/firmware-recovery/index.md @@ -0,0 +1,38 @@ +--- +title: Firmware & Recovery +description: Install, update, and recover OpenIPC firmware safely. +--- + +Use this section when you need to install OpenIPC, update an already working camera, or recover a device that no longer boots normally. + +:::caution +Firmware operations can brick a camera if the image, flash layout, power, or bootloader commands are wrong. Keep UART access and a recovery path ready before changing production devices. +::: + +## Choose the Right Path + +- Camera boots normally and already runs OpenIPC: use [Firmware Updates](/firmware-recovery/firmware-updates/) or [Sysupgrade](/firmware-recovery/online-sysupgrade/). +- First-time install through bootloader: use [General UART Flashing Guide](/firmware-recovery/general-uart-flashing-guide/). +- Browser-based or automated recovery: use [Web-Based Camera Recovery Tool](/firmware-recovery/defib/). +- SigmaStar bootloader recovery: use [Unbrick: SigmaStar](/firmware-recovery/unbrick-sigmastar/). +- Ingenic T31 SD-card recovery: use [Unbrick: Ingenic](/firmware-recovery/unbrick-ingenic/). + +## Firmware Sources + +Use firmware images from: + +- [OpenIPC firmware latest release](https://github.com/OpenIPC/firmware/releases/tag/latest) +- [OpenIPC Builder latest release](https://github.com/OpenIPC/builder/releases/tag/latest) + +Match the firmware to the exact SoC, flash type, flash size, and board profile. + +## Recovery Checklist + +Before writing flash: + +- identify the SoC and flash layout; +- save any existing dump if possible; +- prepare UART and TFTP tools; +- verify `serverip`, `ipaddr`, and image filenames; +- use stable power; +- run bootloader commands line by line. diff --git a/src/content/docs/software/sysupgrade.mdx b/src/content/docs/firmware-recovery/online-sysupgrade.mdx similarity index 100% rename from src/content/docs/software/sysupgrade.mdx rename to src/content/docs/firmware-recovery/online-sysupgrade.mdx diff --git a/src/content/docs/firmware-recovery/unbrick-ingenic.md b/src/content/docs/firmware-recovery/unbrick-ingenic.md new file mode 100644 index 0000000..7bf675f --- /dev/null +++ b/src/content/docs/firmware-recovery/unbrick-ingenic.md @@ -0,0 +1,74 @@ +--- +title: "Unbrick: Ingenic" +description: Recover Ingenic T31 devices by booting U-Boot from an SD card. +--- + +Use this page for Ingenic T31 devices where the bootloader in flash is broken and the board can boot from SD card. + +:::caution +Some Ingenic devices power the SD card slot through a GPIO. On those boards, SD-card recovery may require hardware changes or a working bootloader/Linux environment to enable SD power. +::: + +## Boot Behavior + +The OpenIPC wiki notes that if T31 fails to boot U-Boot from flash, it can try to boot from SD card. This makes SD-card recovery possible when the flash bootloader is broken. + +The U-Boot image must be built for SD-card boot. Do not use a normal flash-boot U-Boot file for this procedure. + +## Build U-Boot for SD Boot + +Example setup from the wiki: + +```bash +mkdir /opt/openipc +cd /opt/openipc +git clone https://github.com/Dafang-Hacks/mips-gcc472-glibc216-64bit.git +git clone https://github.com/OpenIPC/u-boot-ingenic.git +export PATH="$PATH:/opt/openipc/mips-gcc472-glibc216-64bit/bin" +cd u-boot-ingenic +make distclean +``` + +Choose the final build command for the exact T31 variant: + +| SoC | Command | +| --- | --- | +| T31N | `make isvp_t31_msc0` | +| T31L | `make isvp_t31_msc0_lite` | +| T31X | `make isvp_t31_msc0_ddr128M` | +| T31A | `make isvp_t31a_msc0_ddr128M` | + +The expected output file is: + +```text +u-boot-with-spl.bin +``` + +## Write U-Boot to SD Card + +Identify the SD card device carefully: + +```bash +fdisk -l +``` + +Then write U-Boot at the documented offset. Replace `/dev/sdb` with the actual SD card device: + +```bash +dd if=./u-boot-with-spl.bin of=/dev/sdb bs=512 seek=34 +``` + +:::danger +Double-check the `/dev` device. Writing to the wrong disk can destroy data on the host machine. +::: + +## Boot from SD Card + +If the flash bootloader is broken or empty, the SoC may boot from SD automatically. If a valid flash bootloader is still present, extra hardware steps may be needed to prevent booting from flash. + +After booting the SD-card U-Boot, continue with the normal install or recovery procedure for the camera. + +## Sources + +- [OpenIPC wiki: Unbrick Ingenic T31 with SD Card](https://github.com/OpenIPC/wiki/blob/master/en/ingenic-t31-unbrick-with-sd-card.md) +- [OpenIPC u-boot-ingenic](https://github.com/OpenIPC/u-boot-ingenic) diff --git a/src/content/docs/firmware-recovery/unbrick-sigmastar.md b/src/content/docs/firmware-recovery/unbrick-sigmastar.md new file mode 100644 index 0000000..d1cb735 --- /dev/null +++ b/src/content/docs/firmware-recovery/unbrick-sigmastar.md @@ -0,0 +1,75 @@ +--- +title: "Unbrick: SigmaStar" +description: Recover SigmaStar devices by restoring U-Boot with snander-mstar. +--- + +Use this page when a SigmaStar-based device has a damaged bootloader or cannot boot far enough for normal UART/TFTP recovery. + +The OpenIPC wiki documents recovery with a CH341A-style adapter, SigmaStar UART/I2C wiring, and `snander-mstar`. + +:::danger +This is a low-level recovery procedure. Wrong wiring, wrong flash target, or unstable power can damage the device or erase useful data. +::: + +## Required Tools + +- CH341A-style adapter or compatible programmer. +- Access to the SigmaStar UART/I2C pads. +- `snander-mstar` from [openipc/snander-mstar releases](https://github.com/openipc/snander-mstar/releases). +- Matching U-Boot file from [OpenIPC firmware latest release](https://github.com/OpenIPC/firmware/releases/tag/latest). + +## Wiring Reference + +The wiki describes this mapping: + +```text +GND -> GND +TX -> SDA I2C +RX -> SCL I2C +``` + +The exact pads depend on the board. Confirm the board pinout before powering the device. + +## Check Flash Detection + +Power the device while connected to the programmer, then check detection: + +```bash +snander -i -q +``` + +If the flash is not detected, power-cycle the device and recheck wiring. + +## Erase the Boot Partition + +The wiki example erases the first `0x200000` bytes: + +```bash +snander -l 0x200000 -e +``` + +## Write U-Boot + +Place the matching U-Boot file in the same folder as `snander`, then write it. Example for SSC338Q NAND: + +```bash +snander -w u-boot-ssc338q-nand.bin +``` + +After restoring the bootloader, continue with the normal UART/TFTP install flow for the exact SoC and flash layout. + +## Notes + +Known SigmaStar I2C device addresses from the wiki: + +```text +0x49 -> MStar ISP +0x59 -> MStar Debug +``` + +After restoring or installing U-Boot, bootloader access is expected on the engineering/debug UART port, often `ttyS0`. + +## Sources + +- [OpenIPC wiki: SigmaStar unbrick](https://github.com/OpenIPC/wiki/blob/master/en/sigmastar-unbrick.md) +- [snander-mstar releases](https://github.com/openipc/snander-mstar/releases) diff --git a/src/content/docs/getting-started/homepage.mdx b/src/content/docs/getting-started/homepage.mdx index e5c3de6..a53b9e5 100644 --- a/src/content/docs/getting-started/homepage.mdx +++ b/src/content/docs/getting-started/homepage.mdx @@ -1,31 +1,35 @@ --- title: Welcome to OpenIPC Documentation -description: Start your journey with OpenIPC for advanced camera firmware solutions. +description: Start with OpenIPC as IP camera firmware for video surveillance, then explore additional use cases. --- - + + ![image](/images/OpenIPC_TREE.jpg) import { Card, CardGrid } from "@astrojs/starlight/components"; -## Next Steps in Your OpenIPC Adventure +## Start Here - - - Check [the Hardware section](/hardware/hardware-page/). for compatible - devices and setup instructions. + + + OpenIPC's primary path is turning supported hardware into a stable IP + surveillance camera. Start with the + [Video Surveillance overview](/video-surveillance/) and quick start. - - Navigate to [the Software section](/software/software-page/). for - software settings and customizations. + + Confirm your camera SoC and flash layout in the hardware section + and the official supported hardware list + before installing firmware. - - Connect with other users in the OpenIPC community for support and - collaboration. + + FPV, OpenWrt, home automation, and streaming are practical applications + built on top of the base camera platform. Explore them after the camera + works as a regular IP camera. - Find out how you can contribute to the project in [the OpenIPC Contribution - Guide](/development/contribution-guidelines/). + Improve pages, correct outdated instructions, or add tested device notes + through the [Contribution Guide](/development/contribution-guidelines/). diff --git a/src/content/docs/getting-started/introduction.md b/src/content/docs/getting-started/introduction.md index 84c814f..9ff3f28 100644 --- a/src/content/docs/getting-started/introduction.md +++ b/src/content/docs/getting-started/introduction.md @@ -1,18 +1,35 @@ --- title: About the Project -description: Discover the essence of OpenIPC and its impactful presence in the world of open-source camera firmware. +description: What OpenIPC is, where it fits, and how to continue through the documentation. --- -## OpenIPC: Empowering Camera Innovation +## What is OpenIPC? -OpenIPC stands as a pioneering force in the realm of open-source projects, specifically revolutionizing IP camera firmware. Initiated to break free from the limitations of proprietary firmware, OpenIPC symbolizes empowerment, innovation, and versatility. This project caters to a myriad of applications, from enhancing home security systems to enriching FPV (First Person View) experiences, and advancing IoT (Internet of Things) integrations. +OpenIPC is an open source firmware project for supported IP camera hardware. It +replaces vendor firmware with a Buildroot-based Linux system and related camera +software so users can inspect, adapt, and maintain their devices when the +hardware is supported. -The essence of OpenIPC lies in its community-driven approach. By leveraging the collective wisdom and contributions of its user base, OpenIPC continuously evolves, integrating new features, enhancing security, and ensuring user-friendliness. This collaboration leads to a firmware that not only meets the diverse needs of its users but also stays ahead in technological advancements. +OpenIPC is used in several areas: -## Explore More About OpenIPC: +- IP camera and video surveillance deployments. +- FPV video links and ground-station projects. +- Home automation and camera-based experiments. +- Development and testing on supported camera SoCs. -- **Getting Started**: Embark on your OpenIPC journey and understand the basics of installation and configuration in our comprehensive [Getting Started Guide](/getting-started/quick-start/). -- **Diverse Use Cases**: Discover the versatility of OpenIPC across different scenarios in our detailed Use Cases section, which includes specialized guides for [FPV setups](/use-cases/fpv/quick-start), [home automation](/use-cases/home-automation/quick-start) configurations, and [video surveillance](/use-cases/video-surveillance/quick-start) applications. -- **Hardware Compatibility**: Learn about the supported devices and how to maximize their potential with OpenIPC in the [Hardware Compatibility](/hardware/supported-devices/) guide. +Because camera hardware varies widely, OpenIPC documentation is organized around +hardware targets and practical use cases. Always match a guide to your exact SoC, +flash layout, and recovery method before installing firmware. -Join the OpenIPC movement and be part of a community that's reshaping the world of camera technology. With OpenIPC, the possibilities are endless, and the future is open. +## Continue reading + +- [Quick Start](/getting-started/quick-start/) - first checks before installing + or updating a device. +- [Hardware](/hardware/) - board and device-specific notes. +- [Software](/software-tools/) - firmware updates, UART flashing, Web UI, + and sysupgrade notes. +- [FPV](/use-cases/fpv-over-wfb-ng/quick-start/) - WFB-NG and related FPV setup paths. +- [Home Automation](/use-cases/home-automation/quick-start/) - integration-focused + starting point. +- [Video Surveillance](/use-cases/video-surveillance/quick-start/) - general IP + camera deployment notes. diff --git a/src/content/docs/getting-started/quick-start.md b/src/content/docs/getting-started/quick-start.md index cf80d44..c84a0ad 100644 --- a/src/content/docs/getting-started/quick-start.md +++ b/src/content/docs/getting-started/quick-start.md @@ -3,4 +3,48 @@ title: Quick Start description: The fastest path to get started with OpenIPC --- -Want to try out OpenIPC? Check the [recommended hardware list](https://openipc.org/supported-hardware/featured) for your SoC to generate an example installation guide or take a look at the **Use Cases** section for more information depending on your use case. +OpenIPC replaces vendor firmware on supported IP camera hardware. Before you +flash anything, identify the exact camera board, SoC, flash type, and recovery +options. Installing an image for the wrong target can leave the device unable to +boot. + +## 1. Identify your hardware + +- Open the device page, label, or board silkscreen and record the camera model. +- Identify the SoC family and flash type when possible. +- Check the official [supported hardware list](https://openipc.org/supported-hardware/featured). +- If the device is not listed, search the OpenIPC Wiki and community channels + before trying a similar image. + +## 2. Choose the right path + +- Use [Software](/software-tools/) for firmware update and flashing + notes. +- Use [FPV](/use-cases/fpv-over-wfb-ng/quick-start/) if you are building a digital + video link. +- Use [Video Surveillance](/use-cases/video-surveillance/quick-start/) for + general IP camera deployments. +- Use [Home Automation](/use-cases/home-automation/quick-start/) if the camera + will be integrated with a home automation system. + +## 3. Prepare a recovery plan + +Before flashing, make sure you have a way back: + +- Save the current firmware or partitions if your guide requires it. +- Keep UART access available for troubleshooting. +- Prepare a TFTP server when the selected guide uses network recovery. +- Do not interrupt power while flashing or upgrading. + +## 4. Install and verify + +Follow the guide for your exact board or SoC. After the first boot, verify basic +access before changing advanced settings: + +- The device receives an IP address or responds on its documented default IP. +- SSH or the Web UI is reachable. +- Video streaming works with the configured streamer. +- The firmware version and target match the image you installed. + +If a step does not match your hardware, stop and ask in the OpenIPC community +with the device model, SoC, board photos, boot log, and the guide you followed. diff --git a/src/content/docs/hardware/Runcam/VTX/installing-alink-runcam.mdx b/src/content/docs/hardware/Runcam/VTX/installing-alink-runcam.mdx deleted file mode 100644 index e71e5ea..0000000 --- a/src/content/docs/hardware/Runcam/VTX/installing-alink-runcam.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: "How to install bidirectional adaptive link on Runcam VTX" -description: "Here is how to install alink on your Runcam VTX" ---- -import ThemeImage from '/src/components/ThemeImage.astro' - -:::caution Adaptive link is an experimental feature that requires heavy testing by the user themselves. ::: - - -**What is adaptive link (alink)?** - -A wireless link can handle higher data-rates over short distances with strong signal than long distances and weak signal conditions. -By default OpenIPC WFB-ng will be set to 4Mbps. The user is able to select what ever bitrate they wish. But not all bitrates are suitable -for every signal strength as range increases or drones go behind objects that block signal. - -Without getting into too much detail this means we can run high bitrates with good signal strength and low bitrates with low signal strength -instead of having to just choose one bitrate and stick to it. - -Detailed and technical information can be found here: https://github.com/OpenIPC/adaptive-link - -**How to install alink on Runcam WifiLink VTX** - -1. First update your VTX to the latest firmware. The factory firmware as of writing this guide in April 2025 does not come preinstalled with alink. - -2. You will then need to download the app WinSCP from the internet. - -3. Make sure file protocol is set to SCP, plug in your VTX to the LAN port on your computer and enter the IP address to connect. By default this is 192.168.1.10 - - ![runcamalink1](/images/runcamalink1.jpg) - -4. In the pop-up dialog box enter the username "root" and the password "12345". - -![runcamalink2](/images/runcamalink2.jpg) - -5. Navigate to the etc folder in the vtx. - -![runcamalink3](/images/runcamalink3.jpg) - -6. In the etc folder open alink.conf. - -7. Here you can change your OSD settings for alink (this will display information at the top for testing purposes such as signal strength, bitrate, VTX temp and CPU load). You can also change the text size. - -![runcamalink5](/images/runcamalink5.jpg) - - -An example of each OSD level is below. All occupy the top left corner of the screen: -Level 0: No alink OSD - -Level 1: -![alinkex1](/images/alink-osd-level-1.png) - -Level 2: -![alinkex2](/images/alink-osd-level-2.png) - -Level 3: -![alinkex3](/images/alink-osd-level-3.png) - -Level 4: -![alinkex4](/images/alink-osd-level-4.png) - -Level 5: -![alinkex5](/images/alink-osd-level-5.png) - -8. Next you need to go into txprofiles.conf here is where you will enter the tx profile you actually want to use. What settings will be set based on signal strength. - -![runcamalink6](/images/runcamalink6.jpg) - -9. This part will require testing on the part of the user who wishes to use alink. Right now as of April 2025 there are no "perfect" settings for the Runcam WifiLink. A good start is Greg's alink profiles here: https://github.com/OpenIPC/adaptive-link/tree/main/txprofiles - -10. Open up rc.local and paste alink_drone & before exit 0. - -![runcamalink7](/images/runcamalink7.jpg) - -alink is now ready to go. - diff --git a/src/content/docs/hardware/OpenIPC/VTX/fpv-mario-aio.md b/src/content/docs/hardware/air-units/openipc/openipc-mario-aio.md similarity index 100% rename from src/content/docs/hardware/OpenIPC/VTX/fpv-mario-aio.md rename to src/content/docs/hardware/air-units/openipc/openipc-mario-aio.md diff --git a/src/content/docs/hardware/OpenIPC/VTX/fpv-thinker-aio.md b/src/content/docs/hardware/air-units/openipc/openipc-thinker-air-unit.md similarity index 97% rename from src/content/docs/hardware/OpenIPC/VTX/fpv-thinker-aio.md rename to src/content/docs/hardware/air-units/openipc/openipc-thinker-air-unit.md index 8f7960d..3808dc6 100644 --- a/src/content/docs/hardware/OpenIPC/VTX/fpv-thinker-aio.md +++ b/src/content/docs/hardware/air-units/openipc/openipc-thinker-air-unit.md @@ -176,7 +176,7 @@ There are several ways to update the firmware on your Thinker Air Unit, but the The latest standard firmware can be downloaded [here](https://github.com/OpenIPC/builder/releases/download/latest/ssc338q_fpv_openipc-thinker-aio-nor.tgz). This version (`ssc338q_fpv_openipc-thinker-aio-nor`) includes drivers for **RTL8812AU** and **RTL873xBU** WiFi modules. -If you're using an [**RTL8812EU**](/use-cases/fpv/net-cards/rtl8812eu) module, use [this alternate firmware](https://github.com/OpenIPC/builder/releases/download/latest/ssc338q_fpv_openipc-urllc-aio-nor.tgz) (`ssc338q_fpv_openipc-urllc-aio-nor`). +If you're using an [**RTL8812EU**](/hardware/wi-fi-adapters/bl-m8812eu2-rtl8812eu) module, use [this alternate firmware](https://github.com/OpenIPC/builder/releases/download/latest/ssc338q_fpv_openipc-urllc-aio-nor.tgz) (`ssc338q_fpv_openipc-urllc-aio-nor`). #### Advanced Configuration diff --git a/src/content/docs/hardware/air-units/others.md b/src/content/docs/hardware/air-units/others.md new file mode 100644 index 0000000..b4d85c8 --- /dev/null +++ b/src/content/docs/hardware/air-units/others.md @@ -0,0 +1,26 @@ +--- +title: Other Air Units +description: Index for air units that do not yet have dedicated tested OpenIPC pages. +--- + +Use this page as a holding index for air units that are not yet documented as dedicated hardware pages. + +Add a dedicated page only when there is a tested source for the device: repository README, release notes, confirmed firmware image, board photos, pinout, or a validated community guide. + +## Before Adding a Device + +Confirm: + +- SoC and sensor; +- Wi-Fi chipset; +- flash type and size; +- UART or recovery access; +- matching OpenIPC firmware image; +- known limitations such as 20 MHz or 40 MHz WFB-NG support. + +## Related Pages + +- [OpenIPC Air Units](/hardware/air-units/openipc/openipc-mario-aio/) +- [Runcam WiFiLink 1](/hardware/air-units/runcam/runcam-wifilink1/) +- [Runcam WiFiLink 2](/hardware/air-units/runcam/runcam-wifilink2/) +- [FPV over WFB-NG Hardware Selection](/use-cases/fpv-over-wfb-ng/hardware-selection/) diff --git a/src/content/docs/hardware/Runcam/VTX/runcam-wifilink-v1.mdx b/src/content/docs/hardware/air-units/runcam/runcam-wifilink1.mdx similarity index 97% rename from src/content/docs/hardware/Runcam/VTX/runcam-wifilink-v1.mdx rename to src/content/docs/hardware/air-units/runcam/runcam-wifilink1.mdx index ac5df77..3f578ec 100644 --- a/src/content/docs/hardware/Runcam/VTX/runcam-wifilink-v1.mdx +++ b/src/content/docs/hardware/air-units/runcam/runcam-wifilink1.mdx @@ -18,7 +18,7 @@ import ThemeImage from '/src/components/ThemeImage.astro' |Weight | 30g | |Antennas | IPEX connector | |PA | 29dBm (800 mW) | -|WiFi chip | [BL-M8812EU2](/use-cases/fpv/net-cards/rtl8812eu) (5MHz, 10MHz, 20MHz) | +|WiFi chip | [BL-M8812EU2](/hardware/wi-fi-adapters/bl-m8812eu2-rtl8812eu) (5MHz, 10MHz, 20MHz) | |UARTs | 1 | |SOC | SigmaStar SSC338Q | | Firmware | ssc338q_fpv_openipc_urllc_aio_nor.tgz | diff --git a/src/content/docs/hardware/Runcam/VTX/runcam-wifilink-v2.mdx b/src/content/docs/hardware/air-units/runcam/runcam-wifilink2.mdx similarity index 97% rename from src/content/docs/hardware/Runcam/VTX/runcam-wifilink-v2.mdx rename to src/content/docs/hardware/air-units/runcam/runcam-wifilink2.mdx index 6bcf535..995460f 100644 --- a/src/content/docs/hardware/Runcam/VTX/runcam-wifilink-v2.mdx +++ b/src/content/docs/hardware/air-units/runcam/runcam-wifilink2.mdx @@ -18,7 +18,7 @@ import ThemeImage from '/src/components/ThemeImage.astro' |Weight | 30g(with fan) / 25g (without fan) | |Antennas | IPEX connector | |PA | 28dBm(FCC), 20dBm(CE) / 630mW(FCC), 100mW(CE) | -|WiFi chip | [Runcam custom RTL8812EU](/use-cases/fpv/net-cards/rtl8812eu) (5MHz, 10MHz, 20MHz) | +|WiFi chip | [Runcam custom RTL8812EU](/hardware/wi-fi-adapters/bl-m8812eu2-rtl8812eu) (5MHz, 10MHz, 20MHz) | |UARTs | 1 | |SOC | SigmaStar SSC338Q | | Firmware | ssc338q_fpv_openipc_urllc_aio_nor.tgz | diff --git a/src/content/docs/hardware/cameras/hisilicon-gk7205v200-gk7205v300.md b/src/content/docs/hardware/cameras/hisilicon-gk7205v200-gk7205v300.md new file mode 100644 index 0000000..ee84e06 --- /dev/null +++ b/src/content/docs/hardware/cameras/hisilicon-gk7205v200-gk7205v300.md @@ -0,0 +1,37 @@ +--- +title: HiSilicon GK7205v200 / GK7205v300 +description: Camera target notes for GK7205v200 and GK7205v300 OpenIPC devices. +--- + +GK7205v200 and GK7205v300 are Goke/HiSilicon-family camera SoCs listed in the OpenIPC supported SoC documentation. Use this page as the camera-family entry point until more board-specific pages are added. + +:::note +SoC support does not guarantee that every sensor, board layout, or flash layout is supported. Confirm the exact device before flashing. +::: + +## Sensor Notes + +The [Supported SoC](/video-surveillance/soc/) page lists sensor drivers associated with GK7205 variants. Examples include sensors such as IMX307, IMX327, IMX335, OS05A, OV2718, SC223x, SC2335, SC3235, SC3335, SC4236, and SC500AI depending on the specific SDK target. + +Board vendors can relabel sensors or use different wiring, so treat the SoC/sensor list as a starting point rather than a complete compatibility promise. + +## Firmware and Recovery + +Before flashing: + +- identify flash type and size; +- save the original firmware if possible; +- prepare UART and TFTP access; +- use firmware generated for the exact SoC and flash layout. + +Related recovery pages: + +- [Firmware & Recovery](/firmware-recovery/) +- [General UART Flashing Guide](/firmware-recovery/general-uart-flashing-guide/) +- [Web-Based Camera Recovery Tool](/firmware-recovery/defib/) + +## Related Pages + +- [Video Surveillance](/video-surveillance/) +- [Streams and Majestic](/video-surveillance/streams-and-majestic/) +- [Majestic](/system-components/majestic/) diff --git a/src/content/docs/hardware/cameras/index.md b/src/content/docs/hardware/cameras/index.md new file mode 100644 index 0000000..ff2d8b1 --- /dev/null +++ b/src/content/docs/hardware/cameras/index.md @@ -0,0 +1,9 @@ +--- +title: IP Cameras +description: Documentation section for IP cameras and compatible camera hardware. +--- + +This section collects pages about IP cameras and camera platforms supported by OpenIPC. + +- [HiSilicon GK7205v200 / GK7205v300](/hardware/cameras/hisilicon-gk7205v200-gk7205v300/) +- [SigmaStar SSC338Q / SSC30K](/hardware/cameras/sigmastar-ssc338q-ssc30k/) diff --git a/src/content/docs/hardware/cameras/sigmastar-ssc338q-ssc30k.md b/src/content/docs/hardware/cameras/sigmastar-ssc338q-ssc30k.md new file mode 100644 index 0000000..2be58b3 --- /dev/null +++ b/src/content/docs/hardware/cameras/sigmastar-ssc338q-ssc30k.md @@ -0,0 +1,14 @@ +--- +title: SigmaStar SSC338Q / SSC30K +description: Index for SigmaStar camera and air unit documentation. +--- + +Existing pages in this repository mention SigmaStar SSC338Q and SSC30K in FPV air unit and SoC context. + +- [Runcam WiFiLink1](/hardware/air-units/runcam/runcam-wifilink1/) +- [Runcam WiFiLink2](/hardware/air-units/runcam/runcam-wifilink2/) +- [OpenIPC Thinker Air Unit](/hardware/air-units/openipc/openipc-thinker-air-unit/) +- [Supported SoC](/use-cases/video-surveillance/soc/) + +Add tested camera-specific notes here when available. + diff --git a/src/content/docs/hardware/hardware-page.mdx b/src/content/docs/hardware/hardware-page.mdx deleted file mode 100644 index bf0bf07..0000000 --- a/src/content/docs/hardware/hardware-page.mdx +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: "Hardware section" -description: "Software section starter page" ---- -import ThemeImage from '/src/components/ThemeImage.astro' - -In this section you can find documentation about hardware side of OpenIPC. diff --git a/src/content/docs/hardware/index.mdx b/src/content/docs/hardware/index.mdx new file mode 100644 index 0000000..d3d019f --- /dev/null +++ b/src/content/docs/hardware/index.mdx @@ -0,0 +1,33 @@ +--- +title: Hardware +description: Hardware reference for OpenIPC cameras, air units, ground stations, and Wi-Fi adapters. +--- + +import ThemeImage from '/src/components/ThemeImage.astro' + +Use this section to identify hardware before choosing firmware, recovery steps, or a practical use case. + +OpenIPC hardware pages should answer four questions: + +1. What is this device, board, SoC, sensor, or adapter? +2. Which OpenIPC use cases does it belong to? +3. Which firmware image, driver, or ground-station image should be used? +4. What limitations or recovery notes are known from tested sources? + +:::caution +Do not flash firmware based only on a similar product name or enclosure. Confirm SoC, flash type, flash size, board profile, and sensor before writing firmware. +::: + +## Main Areas + +- [IP Cameras](/hardware/cameras/) for camera SoC and sensor families. +- [Air Units](/hardware/air-units/openipc/openipc-mario-aio/) for OpenIPC FPV transmitters and related hardware. +- [SBCs](/hardware/sbcs/radxa-zero-3w-3e/) for ground stations and NVR-like boards. +- [Wi-Fi Adapters](/hardware/wi-fi-adapters/bl-m8812eu2-rtl8812eu/) for WFB-NG and APFPV radio hardware. + +## Related Workflows + +- [Video Surveillance](/video-surveillance/) for standard IP camera operation. +- [Firmware & Recovery](/firmware-recovery/) for flashing, update, and unbrick procedures. +- [FPV over WFB-NG](/use-cases/fpv-over-wfb-ng/) for digital FPV broadcast links. +- [FPV over Wi-Fi (APFPV)](/use-cases/ap-fpv-over-wi-fi/) for access-point style FPV links. diff --git a/src/content/docs/hardware/sbcs/nvr-hi3536dv100.md b/src/content/docs/hardware/sbcs/nvr-hi3536dv100.md new file mode 100644 index 0000000..c6cfdd4 --- /dev/null +++ b/src/content/docs/hardware/sbcs/nvr-hi3536dv100.md @@ -0,0 +1,38 @@ +--- +title: NVR Hi3536DV100 +description: How to upgrade a Hi3536DV100 NVR board to OpenIPC FPV firmware for ground station use. +sidebar: + order: 10 +--- + +This page describes how to upgrade a Hi3536DV100 NVR board from the original firmware to OpenIPC FPV firmware and use it as an FPV ground station. + +![Hi3536DV100 NVR board prepared for OpenIPC FPV ground station use](/images/nvr-hi3536dv100-board.webp) + +## Upgrade to OpenIPC FPV Firmware + +- Install [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) and a [TFTP](https://pjo2.github.io/tftpd64/) server. +- Download the latest [OpenIPC FPV image for Hi3536DV100](https://openipc.org/cameras/vendors/hisilicon/socs/hi3536dv100/download_full_image?flash_size=16&flash_type=nor&fw_release=fpv). +- Upload this image to your TFTP server. +- Turn off the NVR board. +- Connect a USB UART adapter to the NVR board UART and select the correct COM port on your PC. +- Power on the board and press `Ctrl+C` quickly to stop in U-Boot. +- Execute the following commands one line at a time. + +```sh +# Set the NVR board IP address and the TFTP server IP address. +setenv ipaddr 192.168.1.10; setenv serverip 192.168.1.254 +mw.b 0x82000000 0xff 0x1000000 +tftp 0x82000000 openipc-hi3536dv100-fpv-16mb.bin +sf probe 0; sf lock 0; sf erase 0x0 0x1000000; sf write 0x82000000 0x0 0x1000000 +reset +``` + +## Result + +![](/images/fpv-nvr-hi3536dv100-openipc-ready.webp) + +## Buy a Device + +- [AliExpress listing 1](https://www.aliexpress.com/item/1005004023376532.html) +- [AliExpress listing 2](https://www.aliexpress.com/item/1005002358182146.html) diff --git a/src/content/docs/hardware/OpenIPC/VRX/openipc-bonnet.mdx b/src/content/docs/hardware/sbcs/openipc-bonnet.mdx similarity index 95% rename from src/content/docs/hardware/OpenIPC/VRX/openipc-bonnet.mdx rename to src/content/docs/hardware/sbcs/openipc-bonnet.mdx index c65de26..51a661d 100644 --- a/src/content/docs/hardware/OpenIPC/VRX/openipc-bonnet.mdx +++ b/src/content/docs/hardware/sbcs/openipc-bonnet.mdx @@ -7,6 +7,8 @@ tags: - ground-station - expansion - openipc +sidebar: + order: 20 --- import ThemeImage from '/src/components/ThemeImage.astro' @@ -74,6 +76,10 @@ Pair the FPV goggles such as Meta quest 3 to create a lightweight, wearable FPV --- +## Firmware Images + +Use the [latest OpenIPC SBC Ground Station release page](https://github.com/OpenIPC/sbc-groundstations/releases/tag/latest) as the entry point. For current Buildroot images, follow the Buildroot Edition link to the `buildroot-snapshot` release and use the `openipc_bonnet_*` files. + ## Getting Started 1. **Attach Antennas** diff --git a/src/content/docs/hardware/sbcs/orange-pi.md b/src/content/docs/hardware/sbcs/orange-pi.md new file mode 100644 index 0000000..b4e01b0 --- /dev/null +++ b/src/content/docs/hardware/sbcs/orange-pi.md @@ -0,0 +1,30 @@ +--- +title: Orange Pi +description: Orange Pi SBC notes for OpenIPC ground-station images. +sidebar: + order: 30 +--- + +Use this page as the Orange Pi entry point for OpenIPC SBC ground-station builds. + +## Firmware Images + +Use the [latest OpenIPC SBC Ground Station release page](https://github.com/OpenIPC/sbc-groundstations/releases/tag/latest) as the entry point. For Orange Pi 3B, Orange Pi 5, and Orange Pi 5 Plus images, follow the Orange Pi release linked there. + +The Orange Pi release has provided image names such as: + +- `OrangePi3b_openIPC.img.xz` +- `OrangePi5_OpenIPC.img.xz` +- `OrangePi5plus_OpenIPC.img.xz` + +Check the release page before flashing because filenames, supported boards, and image tracks can change. + +## Use Cases + +Orange Pi boards are relevant to ground-station and video receiver work, especially where Rockchip acceleration or a larger SBC is preferred over a small receiver board. + +Related pages: + +- [OpenIPC SBC Ground Stations](/software-tools/sbc-groundstations/) +- [PixelPilot RK](/system-components/pixelpilot-rk/) +- [FPV over WFB-NG](/use-cases/fpv-over-wfb-ng/) diff --git a/src/content/docs/hardware/sbcs/others.md b/src/content/docs/hardware/sbcs/others.md new file mode 100644 index 0000000..e2ae714 --- /dev/null +++ b/src/content/docs/hardware/sbcs/others.md @@ -0,0 +1,32 @@ +--- +title: Other SBCs +description: Index for SBCs that do not yet have dedicated OpenIPC pages. +sidebar: + order: 999 +--- + +Use this page for SBCs that are not yet documented individually. + +Add a dedicated SBC page only after there is a tested image, release note, README, or validated setup guide. Keep board-specific claims tied to sources. + +## Before Adding an SBC + +Document: + +- board model and SoC; +- supported image or build target; +- storage requirements; +- display and USB behavior; +- Wi-Fi adapter compatibility; +- known limitations; +- related use case. + +## Firmware Images + +Check the [latest OpenIPC SBC Ground Station release page](https://github.com/OpenIPC/sbc-groundstations/releases/tag/latest) before adding new SBC notes. It links to current and legacy image tracks for supported ground-station hardware. + +## Related Pages + +- [Radxa Zero 3W/3E](/hardware/sbcs/radxa-zero-3w-3e/) +- [Orange Pi](/hardware/sbcs/orange-pi/) +- [OpenIPC SBC Ground Stations](/software-tools/sbc-groundstations/) diff --git a/src/content/docs/hardware/sbcs/radxa-zero-3w-3e.md b/src/content/docs/hardware/sbcs/radxa-zero-3w-3e.md new file mode 100644 index 0000000..f55044b --- /dev/null +++ b/src/content/docs/hardware/sbcs/radxa-zero-3w-3e.md @@ -0,0 +1,83 @@ +--- +title: Radxa Zero 3W/3E +description: Hardware notes, firmware images, and related resources for Radxa Zero 3W/3E in OpenIPC ground-station builds. +sidebar: + order: 40 +--- + +Radxa Zero 3W and Radxa Zero 3E are compact SBCs commonly used as OpenIPC FPV ground-station hardware. Use this page for board-level notes, image choices, enclosure links, and related hardware resources. + +For the practical WFB-NG setup flow, see [Ground Station on Radxa Zero 3W](/use-cases/fpv-over-wfb-ng/groundstation-radxa-zero-3w/). + +## Recommended Use + +Radxa Zero 3W/3E works well for a dedicated OpenIPC receiver when you want: + +- HDMI output for goggles or a monitor; +- USB Wi-Fi adapters for WFB-NG reception; +- DVR and media-server features on the ground station; +- a small board that can be mounted in a custom enclosure. + +Use at least 2 GB RAM, with 4 GB preferred. Use at least 8 GB eMMC or SD storage, with 16 GB preferred for DVR and easier updates. + +## Firmware Image Options + +Use the [latest OpenIPC SBC Ground Station release page](https://github.com/OpenIPC/sbc-groundstations/releases/tag/latest) as the main entry point for Radxa Zero 3 firmware. For current Buildroot images, follow the Buildroot Edition link to the `buildroot-snapshot` release and use the `radxa_zero3_*` files. + +Older Stock Edition images are still linked from the same release page for existing installations, including `zero3w-v1.9.9`, `zero3w-v2.0.0-beta2`, and `zero3w-apfpv-v0.0.1`. + +Related image projects: + +- [OpenIPC SBC groundstations](https://github.com/OpenIPC/sbc-groundstations) is the current unified Buildroot-based OpenIPC ground-station image builder. +- [JohnDGodwin/zero3w-gs](https://github.com/JohnDGodwin/zero3w-gs) provides overlay files and an installation script for RadxaOS SDK based ground-station images. +- [zhouruixi/SBC-GS](https://github.com/zhouruixi/SBC-GS) is an alternative Radxa Zero 3 ground-station project with its own configuration layout and release images. + +## Ground-Station Capabilities + +Radxa-based OpenIPC ground-station images can provide: + +- WFB-NG receiver services; +- PixelPilot, FPVue, or GStreamer video paths depending on the image; +- DVR storage and media access; +- Wi-Fi adapter hot-plug handling; +- WFB key storage and configuration partitions; +- button and keyboard controls; +- LED status, fan control, USB gadget, Wi-Fi, Ethernet, and USB tethering features depending on the image. + +Exact features depend on the image branch and release. Check the release notes before flashing. + +## Enclosures + +Community enclosure models: + +- [OpenIPC VRX Enclosure](https://www.printables.com/model/1051224-openipc-vrx-enclosure) +- [OpenIPC Radxa GS Case](https://www.printables.com/model/967795-openipc-radxa-gs-case) +- [Another OpenIPC Radxa GS Case](https://www.printables.com/model/979788-another-openipc-radxa-gs-case) +- [OpenIPC GS Case V1](https://www.printables.com/model/1034290-openipc-gs-case-v1) +- [A Case for the OpenIPC GS](https://www.printables.com/model/988543-a-case-for-the-openipc-gs) +- [Radxa Zero 3W GS Box](https://www.printables.com/model/822826-radxa03w-gs_box) +- [OpenIPC Radxa Zero 3W HDMI Ground Station](https://www.printables.com/model/1020246-openipc-radxa-zero-3w-hdmi-ground-station) +- [Radxa Zero 3W Case for OpenIPC](https://www.printables.com/model/1054879-radxa-zero-3w-case-for-openipc) +- [OpenIPC VRX Case on Thingiverse](https://www.thingiverse.com/thing:6680584) +- [OpenIPC Radxa Zero 3W HDZero Rail Mount](https://www.printables.com/model/811132-openipc-radxa-zero-3w-hdzero-goggle-case-rail-moun/files) +- [iSpy Another OpenIPC VRX](https://www.printables.com/model/1196394-ispy-another-openipc-sbc-vrx-case) +- [The Crown](https://www.printables.com/model/1233920-the-crown-radxa-sbc-openipc-ground-station-3x-eu2) +- [Radxa Zero 3W OpenIPC](https://www.printables.com/model/1086989-radxa-zero-3w-openipc) +- [OpenIPC GS Radxa zero VRX Case](https://www.printables.com/model/1109931-openipc-gs-radxa-zero-vrx-case) +- [OpenIPC Radxa Zero 3W VRX case](https://www.printables.com/model/1238633-openipc-radxa-zero-3w-vrx-case-3x-eu-rx-cards-w-hd) +- [OpenIPC Ruby_FPV GS Radxa zerro 3w based](https://www.printables.com/model/1238753-openipc-ruby_fpv-gs-radxa-zerro-3w-based) +- [ORV2](https://github.com/PaddyP90/ORV2) + +## Where to Buy + +- [Radxa Zero 3W](https://radxa.com/products/zeros/zero3w/#buy) +- [AliExpress](https://www.aliexpress.us/item/3256807428419499.html) + +## Related Pages + +- [WFB-NG Ground Station on Radxa Zero 3W](/use-cases/fpv-over-wfb-ng/groundstation-radxa-zero-3w/) +- [OpenIPC SBC Ground Stations](/software-tools/sbc-groundstations/) +- [PixelPilot RK](/system-components/pixelpilot-rk/) +- [Adaptive Link](/system-components/adaptive-link/) +- [Radxa Getting Started](https://wiki.radxa.com/Zero/getting_started) +- [RubyFPV Hardware](https://rubyfpv.com/hardware.php) diff --git a/src/content/docs/hardware/sbcs/runcam.md b/src/content/docs/hardware/sbcs/runcam.md new file mode 100644 index 0000000..881daff --- /dev/null +++ b/src/content/docs/hardware/sbcs/runcam.md @@ -0,0 +1,19 @@ +--- +title: Runcam SBCs +description: Runcam ground-station image notes for OpenIPC SBC builds. +sidebar: + order: 50 +--- + +Use this page for Runcam receiver or ground-station board notes that do not fit the air-unit pages. + +## Firmware Images + +Use the [latest OpenIPC SBC Ground Station release page](https://github.com/OpenIPC/sbc-groundstations/releases/tag/latest) as the entry point. For current Buildroot images, follow the Buildroot Edition link to the `buildroot-snapshot` release and use the `runcam_wifilink_*` files when they match the device. + +## Related Pages + +- [Runcam WiFiLink 1](/hardware/air-units/runcam/runcam-wifilink1/) +- [Runcam WiFiLink 2](/hardware/air-units/runcam/runcam-wifilink2/) +- [FPV over WFB-NG](/use-cases/fpv-over-wfb-ng/) +- [OpenIPC SBC Ground Stations](/software-tools/sbc-groundstations/) diff --git a/src/content/docs/use-cases/fpv/net-cards/rtl8731bu.mdx b/src/content/docs/hardware/wi-fi-adapters/bl-m8731bu3-rtl873xbu.mdx similarity index 100% rename from src/content/docs/use-cases/fpv/net-cards/rtl8731bu.mdx rename to src/content/docs/hardware/wi-fi-adapters/bl-m8731bu3-rtl873xbu.mdx diff --git a/src/content/docs/use-cases/fpv/net-cards/rtl8812eu.mdx b/src/content/docs/hardware/wi-fi-adapters/bl-m8812eu2-rtl8812eu.mdx similarity index 100% rename from src/content/docs/use-cases/fpv/net-cards/rtl8812eu.mdx rename to src/content/docs/hardware/wi-fi-adapters/bl-m8812eu2-rtl8812eu.mdx diff --git a/src/content/docs/use-cases/fpv/net-cards/rtl8812au.mdx b/src/content/docs/hardware/wi-fi-adapters/bl-r8812af1-rtl8812au.mdx similarity index 100% rename from src/content/docs/use-cases/fpv/net-cards/rtl8812au.mdx rename to src/content/docs/hardware/wi-fi-adapters/bl-r8812af1-rtl8812au.mdx diff --git a/src/content/docs/hardware/wi-fi-adapters/openipc.md b/src/content/docs/hardware/wi-fi-adapters/openipc.md new file mode 100644 index 0000000..0c02566 --- /dev/null +++ b/src/content/docs/hardware/wi-fi-adapters/openipc.md @@ -0,0 +1,23 @@ +--- +title: OpenIPC Wi-Fi Adapters +description: Index for OpenIPC-related Wi-Fi adapter documentation. +--- + +Use this page as an index for OpenIPC-related Wi-Fi adapters. Detailed chipset notes are maintained on the adapter-specific pages. + +## Adapter Families + +- [RTL8812EU / BL-M8812EU2](/hardware/wi-fi-adapters/bl-m8812eu2-rtl8812eu/) +- [RTL8812AU / BL-R8812AF1](/hardware/wi-fi-adapters/bl-r8812af1-rtl8812au/) +- [RTL873xBU / BL-M8731BU3](/hardware/wi-fi-adapters/bl-m8731bu3-rtl873xbu/) +- [Runcam custom RTL8812EU](/hardware/wi-fi-adapters/runcam-custom-rtl8812eu/) + +## Choose by Use Case + +- For WFB-NG, start with [Hardware Selection](/use-cases/fpv-over-wfb-ng/hardware-selection/). +- For APFPV, start with [FPV over Wi-Fi (APFPV)](/use-cases/ap-fpv-over-wi-fi/). +- For OpenWrt receiver builds, start with [OpenWrt](/use-cases/openwrt/). + +:::caution +Do not assume that all adapters with the same chipset support the same channel width, power behavior, cooling, or driver path. Check the exact adapter page and tested setup. +::: diff --git a/src/content/docs/hardware/wi-fi-adapters/runcam-custom-rtl8812eu.md b/src/content/docs/hardware/wi-fi-adapters/runcam-custom-rtl8812eu.md new file mode 100644 index 0000000..8f39e1b --- /dev/null +++ b/src/content/docs/hardware/wi-fi-adapters/runcam-custom-rtl8812eu.md @@ -0,0 +1,12 @@ +--- +title: Runcam Custom RTL8812EU +description: Runcam custom RTL8812EU adapter index. +--- + +The Runcam WiFiLink2 page identifies its Wi-Fi chip as a Runcam custom RTL8812EU module. + +- [Runcam WiFiLink2](/hardware/air-units/runcam/runcam-wifilink2/) +- [BL-M8812EU2 RTL8812EU](/hardware/wi-fi-adapters/bl-m8812eu2-rtl8812eu/) + +Add separate tested adapter notes here when available. + diff --git a/src/content/docs/index.mdx b/src/content/docs/index.mdx index bf4d60b..75d94e4 100644 --- a/src/content/docs/index.mdx +++ b/src/content/docs/index.mdx @@ -1,9 +1,9 @@ --- title: Welcome to OpenIPC Documentation -description: Start your journey with OpenIPC for advanced camera firmware solutions. +description: Start your journey with OpenIPC firmware, supported hardware, and common installation paths. template: splash hero: - tagline: Dive into the world of OpenIPC and unlock your camera's full potential! + tagline: Open source firmware documentation for IP cameras, FPV video links, and camera-based projects. image: file: ../../assets/logo/OpenIPC__OPENIPC_logo_vertical_white.svg actions: @@ -12,30 +12,33 @@ hero: icon: right-arrow variant: primary - text: Explore Use Cases - link: /use-cases/fpv/quick-start/ + link: /use-cases/fpv-over-wfb-ng/quick-start/ icon: right-arrow variant: secondary --- import { Card, CardGrid } from "@astrojs/starlight/components"; -## Next Steps in Your OpenIPC Adventure +## Start Here - - Check [the Hardware section](/hardware/supported-devices/). for compatible - devices and setup instructions. + + Start with the hardware section and the official + supported hardware list. + A matching SoC and flash layout are required before installing firmware. - - Navigate to [the Software section](/software/software-overview/). for - software settings and customizations. + + Read the [Quick Start](/getting-started/quick-start/) and choose the guide + that matches your use case: regular camera firmware, FPV, home automation, + or video surveillance. - Connect with other users in the OpenIPC community for support and - collaboration. + Use the official OpenIPC website and Telegram links when you need help. + Include your device model, SoC, boot log, and the exact step where you are + blocked. - Find out how you can contribute to the project in [the OpenIPC Contribution - Guide](/development/contribution-guidelines/). + Improve pages, correct outdated instructions, or add tested device notes + through the [Contribution Guide](/development/contribution-guidelines/). diff --git a/src/content/docs/reference/example.md b/src/content/docs/reference/example.md index 897521c..50b19c0 100644 --- a/src/content/docs/reference/example.md +++ b/src/content/docs/reference/example.md @@ -1,7 +1,25 @@ --- -title: Example Reference -description: A reference page in my new Starlight docs site. +title: Project Resources +description: Reference links for OpenIPC firmware, documentation, and community resources. --- -- https://openipc.org -- [OpenIPC](https://openipc.org) +## Official links + +- [OpenIPC website](https://openipc.org/) +- [Supported hardware](https://openipc.org/supported-hardware/featured) +- [OpenIPC firmware on GitHub](https://github.com/OpenIPC/firmware) +- [OpenIPC Wiki](https://github.com/OpenIPC/wiki) +- [OpenIPC GitHub organization](https://github.com/OpenIPC) + +## Firmware components + +- [Buildroot](https://buildroot.org/) +- [Majestic streamer](https://github.com/OpenIPC/majestic) +- [Mini streamer](https://github.com/OpenIPC/mini) +- [Venc streamer](https://github.com/OpenIPC/venc) + +## Community and support + +Use the community links published on the +[OpenIPC website](https://openipc.org/) when asking for support. Include device +model, SoC, firmware target, boot log, and the exact command or page that failed. diff --git a/src/content/docs/resources/faq.md b/src/content/docs/resources/faq.md index 3839068..e507d01 100644 --- a/src/content/docs/resources/faq.md +++ b/src/content/docs/resources/faq.md @@ -51,7 +51,7 @@ Links to these channels are available on the [OpenIPC website](https://openipc.o OpenIPC FPV refers to using OpenIPC firmware and hardware for First Person View (FPV) applications—primarily in drones. It involves developing dedicated hardware and software for FPV use. ### What are the goals of OpenIPC FPV? -The goal is to provide a flexible, open system for FPV that allows users to experiment and innovate using inexpensive, widely available components. There is also an aspiration for OpenIPC to become the defacto FPV standard. +The goal is to provide a flexible, open system for FPV that allows users to experiment and innovate using inexpensive, widely available components. There is also an aspiration for OpenIPC to become the de facto FPV standard. ### Which firmware can I use for FPV? Current firmware options include: @@ -65,7 +65,7 @@ OpenIPC supports multiple solutions tailored for FPV. Latency is generally around 80–100 ms at 60fps. For lower latency, it is recommended to use 120fps encoding/decoding with a 120Hz monitor. Official latency figures are not stated due to measurement variability. ### Is there a WebUI for OpenIPC FPV firmware? -PLACE HOLDER +OpenIPC devices can expose a Web UI depending on the installed image and streamer. Use the Web UI for routine configuration when it is available, but keep SSH and UART recovery options ready for installation, troubleshooting, or failed upgrades. ### How can I get help with setting up OpenIPC FPV? You can ask for help in the OpenIPC FPV users Telegram group. It is also recommended to review the existing documentation first, as many common questions have already been discussed. @@ -79,7 +79,7 @@ MSP OSD (On‑Screen Display) is a feature that overlays flight controller infor WFB‑NG is the next generation of a long‑range packet radio link that uses raw WiFi. It is a key component of OpenIPC FPV, and setup is managed via commands like `wfb_cli gs`. ### What is Ruby FPV? -Ruby FPV is another digital FPV system compatible with OpenIPC cameras. More detailed resources are available on [RubyFPV website] (https://rubyfpv.com/). +Ruby FPV is another digital FPV system compatible with OpenIPC cameras. More detailed resources are available on [RubyFPV website](https://rubyfpv.com/). ## Documentation Related Questions diff --git a/src/content/docs/resources/useful-links.md b/src/content/docs/resources/useful-links.md index af57b09..666809d 100644 --- a/src/content/docs/resources/useful-links.md +++ b/src/content/docs/resources/useful-links.md @@ -1,4 +1,38 @@ --- -title: Example Guide -description: A guide in my new Starlight docs site. +title: Useful Links +description: Official OpenIPC resources and related project links. --- + +Use official project resources first when checking compatibility, downloading +firmware, or asking for help. + +## OpenIPC resources + +- [OpenIPC website](https://openipc.org/) - project overview, supported + hardware, tools, and community links. +- [OpenIPC firmware repository](https://github.com/OpenIPC/firmware) - Buildroot + based firmware source code and release information. +- [OpenIPC Wiki](https://github.com/OpenIPC/wiki) - current wiki content and + historical guides. Some pages can be older than the docs site, so check dates + and compare with current firmware behavior. +- [OpenIPC organization on GitHub](https://github.com/OpenIPC) - related + repositories such as web interfaces, streamers, and FPV tooling. + +## Documentation and contribution + +- [Contribution Guidelines](/development/contribution-guidelines/) - how to + improve these docs. +- [Quick Start](/getting-started/quick-start/) - first checks before installing + firmware. +- [Firmware Updates](/firmware-recovery/firmware-updates/) - update flow after OpenIPC is + already installed. + +## Related projects mentioned in OpenIPC docs + +- [Buildroot](https://buildroot.org/) - build system used by OpenIPC firmware. +- [WFB-NG](https://github.com/svpcom/wfb-ng) - raw WiFi broadcast link commonly + used in FPV setups. +- [Devourer](https://github.com/OpenIPC/devourer) - userspace Realtek + 802.11ac Wi-Fi driver used by OpenIPC for long-range digital video links. +- [Ruby FPV](https://rubyfpv.com/) - digital FPV ecosystem that can be used with + OpenIPC camera firmware. diff --git a/src/content/docs/software-tools/aviateur.md b/src/content/docs/software-tools/aviateur.md new file mode 100644 index 0000000..d99465e --- /dev/null +++ b/src/content/docs/software-tools/aviateur.md @@ -0,0 +1,25 @@ +--- +title: Aviateur +description: Cross-platform OpenIPC FPV ground station application for desktop systems. +--- + +Aviateur is a desktop OpenIPC FPV ground station application for Linux, Windows, and macOS. It is based on the earlier [fpv4win](https://github.com/OpenIPC/fpv4win) work and is intended to let a PC or laptop receive and display an OpenIPC FPV feed. + +![Aviateur OpenIPC FPV ground station interface](/images/aviateur-ground-station.webp) + +## Current Limits + +The Aviateur README documents several important limits: Windows builds do not support Adaptive Link, only RTL8812AU Wi-Fi adapters are listed as supported, and MAVLink support is not available in Aviateur. + +## Platform Notes + +On Windows, the repository instructs users to install a libusb driver for the Wi-Fi adapter with Zadig before running Aviateur. On Linux, access to the adapter may require a udev rule or root privileges. On macOS, the README currently describes building from source and launching the app from a terminal so environment variables are available. + +## Build Dependencies + +The source build uses CMake and submodules. Documented dependencies include libusb, FFmpeg, libsodium, OpenCV, Vulkan-related packages, and libpcap, with platform-specific setup instructions in the repository. + +## Sources + +- [Aviateur repository](https://github.com/OpenIPC/aviateur) +- [fpv4win repository](https://github.com/OpenIPC/fpv4win) diff --git a/src/content/docs/software-tools/companion.md b/src/content/docs/software-tools/companion.md new file mode 100644 index 0000000..41a70d8 --- /dev/null +++ b/src/content/docs/software-tools/companion.md @@ -0,0 +1,25 @@ +--- +title: Companion +description: Official multi-platform configuration tool for OpenIPC cameras. +--- + +OpenIPC Companion is the official multi-platform configuration application for OpenIPC cameras. It is built with Avalonia UI and is intended to manage camera settings, telemetry, presets, and firmware updates from a desktop application. + +![OpenIPC Companion WFB settings screen](/images/openipc-companion-wfb-settings.webp) + +## Capabilities + +The Companion repository documents support for camera settings such as resolution, frame rate, and exposure; real-time telemetry such as temperature, voltage, and signal strength; setup wizards for device and network configuration; and YAML-based configuration editing. + +Desktop development builds can be run from the repository with .NET tooling. The repository also notes platform targets for Windows, macOS, Linux, Android, and iOS, while mobile builds are still described as in progress. NVR setup is not covered by Companion yet; the repository points users to OpenIPC Configurator for NVR support. + +## Related Pages + +- [FPV over WFB-NG quick start](/use-cases/fpv-over-wfb-ng/quick-start/) +- [FPV Presets](/software-tools/fpv-presets/) +- [OpenIPC Configurator](/software-tools/openipc-configurator/) + +## Sources + +- [OpenIPC Companion repository](https://github.com/OpenIPC/companion) +- [Companion presets documentation](https://github.com/OpenIPC/companion/blob/master/docs/presets.md) diff --git a/src/content/docs/software-tools/fpv-presets.md b/src/content/docs/software-tools/fpv-presets.md new file mode 100644 index 0000000..b69cc08 --- /dev/null +++ b/src/content/docs/software-tools/fpv-presets.md @@ -0,0 +1,25 @@ +--- +title: FPV Presets +description: Repository format and usage notes for OpenIPC FPV configuration presets. +--- + +OpenIPC FPV Presets is a repository of preconfigured settings for OpenIPC FPV camera systems. The presets are intended for use from OpenIPC configuration tools and cover scenarios such as racing, freestyle, cinematic, indoor, and long-range setups. + +![OpenIPC Companion presets screen](/images/openipc-fpv-presets-companion.webp) + +The repository warns that many presets may be outdated and should be used carefully. Treat a preset as a starting point that still needs testing on the exact camera, Wi-Fi adapter, firmware, and RF environment you fly with. + +## Repository Format + +The repository uses an auto-generated `PRESET_INDEX.yaml` so configuration tools can discover available presets. Individual presets live under `presets/` and usually include a `preset-config.yaml` file plus any extra files that need to be copied to the target device. + +A preset definition can include metadata such as name, author, description, category, status, and tags. It can also describe changes to files such as `majestic.yaml` or `wfb.yaml`, and list additional files such as `vtxmenu.ini`. + +## Contribution Notes + +The repository provides a helper script for creating a preset skeleton and asks contributors to test presets with the configurator before sending a pull request. The generated index should not be edited manually in the official repository workflow. + +## Sources + +- [OpenIPC FPV Presets repository](https://github.com/OpenIPC/fpv-presets) +- [OpenIPC Configurator](/software-tools/openipc-configurator/) diff --git a/src/content/docs/software/software-page.mdx b/src/content/docs/software-tools/index.mdx similarity index 100% rename from src/content/docs/software/software-page.mdx rename to src/content/docs/software-tools/index.mdx diff --git a/src/content/docs/software-tools/openipc-builder.md b/src/content/docs/software-tools/openipc-builder.md new file mode 100644 index 0000000..70bf4b9 --- /dev/null +++ b/src/content/docs/software-tools/openipc-builder.md @@ -0,0 +1,26 @@ +--- +title: OpenIPC Builder +description: Firmware build scripts and custom image storage for known OpenIPC devices. +--- + +OpenIPC Builder is the project used for device-specific OpenIPC firmware builds. The repository describes it as an experimental Buildroot-based system for known devices and lists profiles for IP cameras and FPV air units, including OpenIPC AIO Mario, Thinker, UltraSight, OpenIPC URLLC, RunCam WiFiLink, and Emax Wyvern Link. + +Use Builder when a supported device needs a customized image, device-specific GPIO or Wi-Fi setup, or firmware repacking with built-in network credentials. General firmware sources still live in the main [OpenIPC firmware repository](https://github.com/OpenIPC/firmware); Builder keeps per-device build profiles, customizer scripts, and release artifacts for known hardware. + +## What It Provides + +- Device profile handling through Builder's tweaker/customizer scripts. +- A release area for customized firmware images for known devices. +- QR-code based Wi-Fi provisioning support for devices where the feature fits in flash. +- Helper scripts such as `builder.sh` for preparing and using the build environment. +- A `repack.sh` workflow for embedding SSID and password values into an existing firmware image. + +## FPV Relevance + +For OpenIPC FPV, Builder is relevant when you need a firmware image for a known air unit rather than a generic firmware artifact. The Builder README lists several FPV devices as known profiles, including OpenIPC AIO Mario, Thinker, UltraSight, OpenIPC URLLC, RunCam WiFiLink, and Emax Wyvern Link. + +## Sources + +- [OpenIPC Builder repository](https://github.com/OpenIPC/builder) +- [OpenIPC firmware repository](https://github.com/OpenIPC/firmware) +- [OpenIPC Builder latest releases](https://github.com/OpenIPC/builder/releases/tag/latest) diff --git a/src/content/docs/software-tools/openipc-configurator.md b/src/content/docs/software-tools/openipc-configurator.md new file mode 100644 index 0000000..590682d --- /dev/null +++ b/src/content/docs/software-tools/openipc-configurator.md @@ -0,0 +1,23 @@ +--- +title: OpenIPC Configurator +description: Configuration utility for OpenIPC FPV, URLLC, camera, NVR, and Radxa devices. +--- + +OpenIPC Configurator is a setup utility for OpenIPC FPV and URLLC devices. The repository describes workflows for connecting to a camera, NVR, or Radxa Zero 3W, downloading current settings, editing them, saving the result, and rebooting the target device. + +## Application Options + +The original Windows workflow relies on PuTTY and `Configurator.exe`. The same repository now also ships a cross-platform .NET command-line interface and an Avalonia-based GUI for Linux, Windows, and macOS. + +The cross-platform GUI mirrors the tabbed configuration workflow and covers device management, basic settings, video settings, Wi-Fi settings, connection status, progress feedback, and remembering recently used device IP addresses. + +![OpenIPC Configurator running on Windows](/images/openipc-configurator-windows.webp) + +## CLI Scope + +The CLI can download and upload configuration, choose device profiles such as `openipc`, `nvr`, or `radxa`, and work with YAML-based wireless configuration. The repository also documents maintenance commands for key material, UART, MSP extras, service restarts, firmware offline upgrade, recording, audio, MAVLink, video tuning, Radxa reset, camera factory reset, PixelPilot installation, and Adaptive Link deployment. + +## Sources + +- [OpenIPC Configurator repository](https://github.com/OpenIPC/configurator) +- [Configurator manual setup notes](https://github.com/OpenIPC/configurator/blob/master/README-manual.md) diff --git a/src/content/docs/software-tools/sbc-groundstations.md b/src/content/docs/software-tools/sbc-groundstations.md new file mode 100644 index 0000000..7fab0bc --- /dev/null +++ b/src/content/docs/software-tools/sbc-groundstations.md @@ -0,0 +1,61 @@ +--- +title: OpenIPC SBC Ground Stations +description: Buildroot-based image builder and firmware releases for OpenIPC FPV SBC ground stations. +--- + +OpenIPC SBC Ground Stations is the unified image builder for OpenIPC FPV receiver devices based on single-board computers. The upstream repository describes it as a Buildroot 2 based image builder for supported ground-station hardware. + +The project is software tooling rather than a single hardware board: it builds images, boot scripts, bootloader files, root filesystems, and update packages for several receiver platforms. + +## Supported Hardware + +The upstream README lists support for: + +- RunCam Wifilink. +- Emax Wyvern-Link. +- Radxa Zero 3 when used with one of the supported receiver options. +- OpenIPC Bonnet. + +The `latest` release page also links to older or separate image tracks for Radxa Zero 3, Radxa Rock 2F, and Orange Pi 3B/5/5 Plus. + +## Editions and Releases + +The [latest release page](https://github.com/OpenIPC/sbc-groundstations/releases/tag/latest) is an index for available SBC Ground Station editions. It currently marks the Buildroot Edition as the community-recommended default for most users. + +- [Buildroot snapshot](https://github.com/OpenIPC/sbc-groundstations/releases/tag/buildroot-snapshot) provides current Buildroot images and update packages for platforms such as `radxa_zero3`, `openipc_bonnet`, `runcam_wifilink`, and `emax_wyvern-link`. +- Stock Edition releases remain available for existing Radxa Zero 3 users, including [v1.9.9](https://github.com/OpenIPC/sbc-groundstations/releases/tag/zero3w-v1.9.9), [2.0.0 beta 2](https://github.com/OpenIPC/sbc-groundstations/releases/tag/zero3w-v2.0.0-beta2), and [APFPV v0.0.1](https://github.com/OpenIPC/sbc-groundstations/releases/tag/zero3w-apfpv-v0.0.1). +- Separate release pages are listed for [Orange Pi](https://github.com/OpenIPC/sbc-groundstations/releases/tag/Orange-Pi-Latest) and [Radxa Rock 2F](https://github.com/OpenIPC/sbc-groundstations/releases/tag/rock2f-v0.0.1). + +## Flashing and Updates + +For eMMC devices, the project documents an SD-card assisted flashing method. Copy `_sdcard.img` and `_boot.scr` from the same release to a FAT32 card, rename the boot script to `boot.scr`, and boot the device from that card. U-Boot writes the image to eMMC and then reboots into the flashed system. + +Boards without eMMC can use a normal SD-card image flashed with a tool such as balenaEtcher. + +Advanced methods include `dd` from a booted system, bootloader-only flashing, and maskrom flashing with RKDevTool or `rkdeveloptool`. + +Once flashed, Buildroot images can be updated by copying the matching `.tar.gz` package to a FAT SD card, the DVR partition, or eMMC storage and rebooting. The README also documents `sysupgrade -u -r`, local `build.sh ssh-flash`, and local `build.sh flash` workflows. + +## Runtime Features + +The README documents factory reset through the right button during boot or the `firstboot` command. + +It also describes gadget mode, triggered with the left button during boot. Through the OTG port, gadget mode exposes DVR access, serial access, and a network interface at `192.168.5.1`. + +## Custom Builds + +Custom builds require a Linux or WSL2 environment with Buildroot dependencies installed: + +```sh +git clone https://github.com/OpenIPC/sbc-groundstations.git +cd sbc-groundstations +./build.sh +``` + +Use the upstream Buildroot documentation when customizing images or adding packages. + +## Sources + +- [OpenIPC SBC Ground Stations repository](https://github.com/OpenIPC/sbc-groundstations) +- [Latest SBC Ground Station releases](https://github.com/OpenIPC/sbc-groundstations/releases/tag/latest) +- [Buildroot snapshot release](https://github.com/OpenIPC/sbc-groundstations/releases/tag/buildroot-snapshot) diff --git a/src/content/docs/software/firmware-updates.md b/src/content/docs/software/firmware-updates.md deleted file mode 100644 index 0948d68..0000000 --- a/src/content/docs/software/firmware-updates.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Firmware Updates -description: A guide on how to update your camera. ---- -Updating your camera to the latest firmware is easy! - -- Go to your camera's IP address and sign in to your camera, If prompted. -- Go to Settings → Firmware OR Firmware → Update -- Click 'Install update from GitHub' -> [!NOTE] -> Updating can take up to 5 minutes, So dont be too worried if it takes a while to update. -- Wait for 'Uncondional reboot' -And just like that, Your camera has been updated! diff --git a/src/content/docs/software/web-ui.md b/src/content/docs/software/web-ui.md deleted file mode 100644 index 6b6adf0..0000000 --- a/src/content/docs/software/web-ui.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: WebUI -description: A guide on using the Web UI to change settings on your camera ---- diff --git a/src/content/docs/system-components/adaptive-link.md b/src/content/docs/system-components/adaptive-link.md new file mode 100644 index 0000000..4e02e16 --- /dev/null +++ b/src/content/docs/system-components/adaptive-link.md @@ -0,0 +1,29 @@ +--- +title: Adaptive Link +description: Link profile selector for OpenIPC FPV video bitrate and Wi-Fi rate adaptation. +--- + +Adaptive Link adjusts OpenIPC FPV video and wireless link settings according to link quality. The repository describes a ground-station process that monitors RSSI and SNR, computes link quality scores, sends those scores to the air unit, and lets the air-unit process choose an appropriate transmit profile. + +## How It Works + +The ground station side, `alink_gs`, watches receive statistics and normalizes RSSI/SNR into scores. The camera side, `alink_drone`, receives those scores and selects a profile from `/etc/txprofiles.conf` when its timing and hysteresis rules allow a change. + +Profiles can include Wi-Fi guard interval, MCS, FEC values, video bitrate, GOP, transmit power, ROI QP settings, channel bandwidth, and QP delta. The repository warns that transmit power values must be chosen carefully for the actual hardware. + +## Configuration Files + +The upstream README identifies these main configuration files: + +- `/config/alink_gs.conf` on the ground station for score ranges and weighting. +- `/etc/alink.conf` on the camera for fallback behavior, timing, hysteresis, and command templates. +- `/etc/txprofiles.conf` on the camera for the link and video profiles selected by score. + +## Installation Notes + +Recent SigmaStar OpenIPC FPV firmware is described as including Adaptive Link, though it may not be enabled by default. The upstream README also documents manual drone and Radxa ground station installation commands. Recent Radxa ground station images may already include it, depending on the image used. + +## Sources + +- [Adaptive Link repository](https://github.com/OpenIPC/adaptive-link) +- [Radxa Zero 3 W/E](/hardware/sbcs/radxa-zero-3w-3e/) diff --git a/src/content/docs/system-components/bidirectional-link.md b/src/content/docs/system-components/bidirectional-link.md new file mode 100644 index 0000000..aaaf548 --- /dev/null +++ b/src/content/docs/system-components/bidirectional-link.md @@ -0,0 +1,18 @@ +--- +title: Bidirectional Link +description: Index page for bidirectional OpenIPC FPV link documentation. +--- + +Bidirectional link documentation covers setups where the air unit and ground station exchange more than a one-way video stream. In OpenIPC FPV this can include WFB-NG tunnel traffic, telemetry forwarding, and link feedback used by Adaptive Link. + +## Related Components + +- [Adaptive Link](/system-components/adaptive-link/) - selects video and Wi-Fi profiles from ground-station link quality feedback. +- [MAVFWD](/system-components/mavfwd/) - forwards MAVLink telemetry between serial and UDP endpoints. +- [MSP OSD](/system-components/msp-osd/) - can forward MSP data and render OSD either on the air side or ground side. + +## Sources + +- [Adaptive Link repository](https://github.com/OpenIPC/adaptive-link) +- [MAVFWD repository](https://github.com/OpenIPC/mavfwd) +- [MSP OSD repository](https://github.com/OpenIPC/msposd) diff --git a/src/content/docs/system-components/dashboard.md b/src/content/docs/system-components/dashboard.md new file mode 100644 index 0000000..e0f8a63 --- /dev/null +++ b/src/content/docs/system-components/dashboard.md @@ -0,0 +1,76 @@ +--- +title: OpenIPC Dashboard +description: Desktop VMS and analytics client for OpenIPC and ONVIF cameras. +--- + +[OpenIPC Dashboard](https://github.com/OpenIPC/dashboard) is a desktop VMS and analytics client for OpenIPC and ONVIF cameras. It is built with C++17, Qt 6, QML, GStreamer, and ONNX Runtime. + +The project focuses on resilient RTSP playback, secure credential handling, transactional local state storage, and observable camera operations. + +## Main features + +- Low-latency RTSP streaming with Zero, Balanced, and Smooth buffering modes. +- Hardware-accelerated video decoding with support for DXVA, D3D11, CUDA, and Intel QuickSync. +- RTSP transport control over TCP, UDP, or HTTP. +- Stream recovery with frame watchdogs, bounded reconnects, authentication-failure handling, and HD-to-SD fallback. +- Coordinated manual and event recording with MP4 finalization and buffered evidence fallback. +- Secure credential storage through the operating-system credential manager. +- Versioned SQLite state with migration from legacy `state.json`. +- Verified AI model downloads with SHA-256 and size checks. +- OpenIPC / Majestic control center for runtime configuration, live ISP controls, metrics, reloads, backups, snapshots, and day/night hardware control. +- Multi-layer camera discovery through OpenIPC mDNS, ONVIF WS-Discovery, Majestic and legacy WebUI fingerprints, RTSP/HTTP subnet probing, and Dahua SDK results. +- Video mirroring for HUD or teleprompter use cases. + +## OpenIPC and Majestic control + +Dashboard can open an **OpenIPC / Majestic** control center for OpenIPC cameras. It reads both `/api/v1/config.json` and the camera-specific `/api/v1/config.schema.json`, so the available settings follow the installed Majestic build. + +Configuration writes are explicit: Dashboard prepares a minimal nested patch, shows a redacted diff, and only then posts the update to `/api/v1/config`. Older cameras without a schema can still be inspected, but schema-safe writes are not offered. + +## Camera discovery + +Camera discovery combines multiple signals instead of relying on a single protocol. It can use OpenIPC mDNS markers, ONVIF WS-Discovery, Majestic and legacy WebUI fingerprints, bounded RTSP/HTTP subnet probing, and Dahua SDK results. Normal mode scans the local `/24`; deep mode can cover up to `/20`. + +## Build requirements + +Development prerequisites from the upstream repository: + +- MSVC Visual Studio 2019+ or MinGW. +- CMake 3.16 or newer. +- Qt 6.4+ with Quick, Network, Multimedia, SQL, and Test modules. +- GStreamer 1.x development and runtime packages. + +Command-line build example: + +```bash +mkdir build +cd build +cmake .. -DCMAKE_PREFIX_PATH="C:/Qt/6.x.x/msvc2019_64" +cmake --build . +``` + +## System requirements + +Minimum: + +- Windows 10 64-bit. +- Intel Core i3 6th Gen, AMD Ryzen 3, or equivalent. +- 4 GB RAM. +- DirectX 11 capable GPU. +- 100 Mbps Ethernet or 5 GHz Wi-Fi. + +Recommended: + +- Windows 10/11 64-bit. +- Intel Core i5, AMD Ryzen 5, or better. +- 8 GB RAM or more. +- Dedicated NVIDIA GPU with CUDA or Intel GPU with QuickSync for multi-stream hardware decoding. +- Gigabit Ethernet for multiple high-bitrate streams. + +## Source + +- [OpenIPC Dashboard repository](https://github.com/OpenIPC/dashboard) +- [Architecture notes](https://github.com/OpenIPC/dashboard/blob/master/docs/ARCHITECTURE.md) +- [Security notes](https://github.com/OpenIPC/dashboard/blob/master/docs/SECURITY.md) +- [Majestic integration](https://github.com/OpenIPC/dashboard/blob/master/docs/MAJESTIC.md) +- [Camera discovery](https://github.com/OpenIPC/dashboard/blob/master/docs/DISCOVERY.md) diff --git a/src/content/docs/system-components/devourer.md b/src/content/docs/system-components/devourer.md new file mode 100644 index 0000000..654742f --- /dev/null +++ b/src/content/docs/system-components/devourer.md @@ -0,0 +1,48 @@ +--- +title: Devourer +description: Userspace Realtek 802.11ac Wi-Fi driver for OpenIPC FPV and long-range digital video links. +--- + +Devourer is a userspace Wi-Fi driver for Realtek 802.11ac USB adapters. In OpenIPC FPV setups it is used for long-range digital video links where the software needs direct control over raw Wi-Fi frames. + +The driver works through `libusb`, so supported adapters can be used without an out-of-tree kernel module or a DKMS driver tied to a specific kernel version. + +## Role in OpenIPC + +Devourer provides monitor-mode receive and packet injection through a library API. Applications can control frame parameters such as rate, bandwidth, guard interval, coding, STBC, TX power, and channel. + +Because it runs in userspace, the same codebase can target Linux, macOS, Windows, and Android/Termux. This makes it useful for ground stations, experiments, and cross-platform tooling where vendor kernel drivers are difficult to maintain or not available. + +## FPV Capabilities + +Devourer is designed for radio-link experiments that need low-level control: + +- Per-packet radiotap control for injected frames. +- Fast channel retuning for frequency hopping. +- 5 MHz and 10 MHz narrowband operation on supported Realtek generations. +- Hardware timestamp access for multi-radio timing work. +- Link-health and radio diagnostics such as signal telemetry and spectrum-related measurements. + +These features make Devourer relevant to adaptive FPV video links, raw Wi-Fi broadcast experiments, and OpenIPC ground-station development. + +## Supported Hardware + +The upstream README lists multiple Realtek 802.11ac chip families, including RTL8812AU, RTL8814AU, RTL8822BU, RTL8811CU/RTL8821CU, RTL8812CU/RTL8822CU, RTL8812EU/RTL8822EU, and related variants. Several supported generations can operate in 5 MHz and 10 MHz channel modes. + +Check the upstream hardware table before buying adapters or planning a build, because benchmark status and feature support vary by chipset and by the specific USB adapter design. + +## Quick Start Notes + +Devourer builds with CMake, a C++20 compiler, and `libusb-1.0`. The repository includes demo binaries such as: + +- `rxdemo` for monitor-mode receive and per-frame signal telemetry. +- `txdemo` for packet injection and runtime radio configuration. +- `streamtx` and `duplex` for packet-link experiments. +- `txpower`, `sense`, and other examples for radio-control and sensing workflows. + +Most demo configuration is exposed through environment variables, and the repository documents the full catalogue in `src/DeviceConfig.h`. + +## Sources + +- [Devourer repository](https://github.com/OpenIPC/devourer) +- [OpenIPC website](https://openipc.org/) diff --git a/src/content/docs/system-components/divinus.md b/src/content/docs/system-components/divinus.md new file mode 100644 index 0000000..f0c858d --- /dev/null +++ b/src/content/docs/system-components/divinus.md @@ -0,0 +1,18 @@ +--- +title: Divinus +description: Open-source multi-platform streamer for OpenIPC camera systems. +--- + +Divinus is an open-source, multi-platform streamer from OpenIPC. It is positioned as an alternative to closed streamer components and is designed around a portable hardware abstraction layer for supported SoC families. + +## Design Notes + +The Divinus README describes a simple, portable structure with HAL implementations for chip series. It uses runtime dynamic linking so the executable can stay compact and can run in constrained environments, including temporary filesystems on read-only systems. + +## Features Listed Upstream + +The upstream hardware table tracks feature support per SoC family for audio stream, JPEG snapshot, fMP4 stream, RTSP stream, and on-screen display. The support matrix includes several SoC families with complete or in-progress status, so verify the current repository table before planning a deployment for a specific chip. + +## Sources + +- [Divinus repository](https://github.com/OpenIPC/divinus) diff --git a/src/content/docs/system-components/joystick.md b/src/content/docs/system-components/joystick.md new file mode 100644 index 0000000..91ccf7b --- /dev/null +++ b/src/content/docs/system-components/joystick.md @@ -0,0 +1,94 @@ +--- +title: Joystick +description: Use a USB joystick or RC transmitter as a MAVLink RC channel source for OpenIPC FPV ground stations. +--- + +OpenIPC includes an experimental `rcjoystick` utility for using a USB joystick or an RC transmitter in USB joystick mode as an RC input source. + +The tool reads Linux joystick events and sends MAVLink 2 [`RC_CHANNELS_OVERRIDE`](https://mavlink.io/en/messages/common.html#RC_CHANNELS_OVERRIDE) packets to the telemetry endpoint, commonly `127.0.0.1:14650` on the recorder. This allows more direct channel forwarding than some ground station joystick integrations, including support for up to 18 MAVLink RC channels. + +:::note +The original setup notes are maintained in the OpenIPC sandbox repository: [rcjoystick.md](https://github.com/OpenIPC/sandbox-fpv/blob/master/rcjoystick.md). +::: + +## When to use it + +Use `rcjoystick` when you want the ground station or recorder to forward joystick axes and buttons directly to the flight controller through MAVLink instead of relying on Mission Planner or QGroundControl joystick handling. + +Typical use cases: + +- USB RC transmitter connected to an OpenIPC ground station. +- USB joystick connected to a recorder with Linux joystick support. +- Forwarding RC channels to `telemetry_tx` or another MAVLink endpoint such as `mavlink-routerd`. +- Injecting a basic RSSI-like value into a selected RC channel. + +## Command-line options + +The utility exposes its options through `rcjoystick -h`: + +```text +Usage: + [-v] verbose; + [-d device] default /dev/input/js0; + [-a addr] ip address send to, default 127.0.0.1; + [-p port] udp port send to, default 14650; + [-t time] update RC_CHANNEL_OVERRIDE time in ms, default 50; + [-x axes_count] 2..9 axes, default 5, other channels mapping to js buttons from button 0; + [-r rssi_channel] store rx packets per second value to this channel, default 0 (disabled); + [-i interface] wlan interface for rx packets statistics, default wlan0; +``` + +## Setup summary + +The recorder needs a kernel and root filesystem with USB HID joystick support. On newer builds the `hid-generic` module is loaded automatically. + +A typical setup flow is: + +1. Copy the `rcjoystick` binary to `/usr/bin` on the recorder. +2. Make it executable: + + ```bash + chmod +x /usr/bin/rcjoystick + ``` + +3. Reboot the recorder. +4. Connect the RC transmitter or joystick over USB. +5. Test in verbose mode: + + ```bash + rcjoystick -v + ``` + +If everything is working, joystick axis and switch changes should appear in the console output. In QGroundControl, check **Analyze Tools → MAVLink Inspector → RC_CHANNELS_RAW** to confirm that RC channel values are changing. + +For persistent startup, create an init service and make sure it starts after `wifibroadcast`. + +## RSSI channel injection + +`rcjoystick` can also write received packet statistics into a selected RC channel. This can be used as a simple RSSI-like indicator. + +Example: + +```bash +rcjoystick -r 16 -i wlan0 +``` + +If the WFB interface is not `wlan0`, replace it with the correct interface name. + +On the flight controller side, configure RSSI from RC channel 16, adjusting the high value to match your normal packet rate: + +```text +RSSI_TYPE 2 +RSSI_CHANNEL 16 +RSSI_CHAN_LOW 0 +RSSI_CHAN_HIGH 800 +``` + +## Known limitation + +The upstream note mentions short freezes when both sticks are moved aggressively in all directions. The issue appears to be related to missing events from the joystick driver. The workaround described there is to use an SBUS-to-USB HID joystick bridge based on Arduino Pro Micro. + +## Source + +- [OpenIPC sandbox-fpv: rcjoystick.md](https://github.com/OpenIPC/sandbox-fpv/blob/master/rcjoystick.md) +- [MAVLink RC_CHANNELS_OVERRIDE](https://mavlink.io/en/messages/common.html#RC_CHANNELS_OVERRIDE) diff --git a/src/content/docs/system-components/majestic.md b/src/content/docs/system-components/majestic.md new file mode 100644 index 0000000..633fad4 --- /dev/null +++ b/src/content/docs/system-components/majestic.md @@ -0,0 +1,136 @@ +--- +title: Majestic +description: OpenIPC camera streamer for video surveillance, RTSP, snapshots, motion detection, and recording. +--- + +Majestic is the main OpenIPC camera streaming service. It is the core component behind the standard video surveillance workflow: live video, RTSP, snapshots, image settings, audio, OSD, night mode, motion detection, recording, and outgoing streams. + +## Where It Fits + +Use Majestic when you need to: + +- expose an OpenIPC camera as an IP camera; +- provide RTSP streams to an NVR or VMS; +- adjust codec, frame rate, bitrate, and image parameters; +- enable snapshots, audio, OSD, or motion detection; +- troubleshoot stream crashes or camera watchdog resets. + +## Configuration + +The main configuration file is: + +```text +/etc/majestic.yaml +``` + +A full example may be available as: + +```text +/etc/majestic.full +``` + +Common sections include: + +- `system`: web ports, log level, buffer, plugins; +- `isp`: sensor and image pipeline options; +- `image`: mirror, flip, rotation, contrast, saturation, luminance; +- `video0` and `video1`: stream enablement, codec, size, FPS, bitrate; +- `jpeg`: snapshot settings; +- `rtsp`: RTSP enablement and port; +- `audio`: microphone and speaker options; +- `nightMode`: IR cut, light, and day/night behavior; +- `motionDetect`: motion detection and debug settings; +- `records`: local recording settings; +- `outgoing`: forwarding to external endpoints. + +## Reloading Settings + +For many platforms, Majestic can reload configuration with HUP: + +```bash +killall -HUP majestic +``` + +For debugging, run Majestic in the foreground: + +```bash +killall majestic; sleep 3; majestic +``` + +## CLI Changes + +The OpenIPC wiki documents the `cli` helper for changing config values: + +```bash +cli -s .video0.codec h264 +cli -s .video0.fps 10 +killall -HUP majestic +``` + +## Users + +The wiki documents two user levels: + +- `root`: main system user for SSH and Web UI access; +- `viewer`: limited user for RTSP access without SSH or Web UI login. + +Example viewer user creation: + +```bash +adduser viewer -s /bin/false -D -H +echo viewer:123456 | chpasswd +``` + +Change example passwords before using this on a real camera. + +## Endpoints + +Majestic exposes camera resources such as video, snapshots, metrics, and control endpoints. The OpenIPC wiki links to the endpoint list at: + +```text +https://openipc.org/majestic-endpoints +``` + +Example image endpoint: + +```text +/image.jpg?width=640&height=360&qfactor=73&color2gray=1 +``` + +## Motion Detection + +Motion detection can call: + +```text +/usr/sbin/motion.sh [count] +``` + +Enable and debug from CLI: + +```bash +cli -s .motionDetect.enabled true +cli -s .motionDetect.debug true +killall majestic; sleep 3; majestic +``` + +## Troubleshooting + +If the camera reboots because Majestic crashes and watchdog resets the system, capture logs from another machine: + +```bash +ssh root@192.168.1.10 "killall majestic; sleep 2; majestic" > majestic-$(date +"%F").log +``` + +Replace `192.168.1.10` with the camera IP. + +## Related Pages + +- [Video Surveillance](/video-surveillance/) +- [Streams and Majestic](/video-surveillance/streams-and-majestic/) +- [NVR Integration](/video-surveillance/nvr-integration/) + +## Sources + +- [OpenIPC wiki: Majestic Streamer](https://github.com/OpenIPC/wiki/blob/master/en/majestic-streamer.md) +- [OpenIPC wiki: Majestic example config](https://github.com/OpenIPC/wiki/blob/master/en/majestic-config.md) +- [OpenIPC wiki: Troubleshooting Majestic](https://github.com/OpenIPC/wiki/blob/master/en/trouble-majestic.md) diff --git a/src/content/docs/system-components/mavfwd.md b/src/content/docs/system-components/mavfwd.md new file mode 100644 index 0000000..4be5858 --- /dev/null +++ b/src/content/docs/system-components/mavfwd.md @@ -0,0 +1,20 @@ +--- +title: MAVFWD +description: Lightweight MAVLink serial-to-UDP forwarder for OpenIPC FPV telemetry. +--- + +MAVFWD is a small C utility for forwarding MAVLink telemetry between a serial port and UDP endpoints. The repository describes it as a way to carry one-way or bidirectional telemetry between an aircraft and a ground station through WFB-NG devices. + +## Role in OpenIPC FPV + +MAVFWD is included in OpenIPC FPV firmware as a lighter alternative to `mavlink-routerd` and is usually used on the air side, where the camera is connected to a flight controller UART. + +It can parse MAVLink with the official MAVLink library, forward telemetry between a local serial master and remote UDP ports, aggregate packets into frames, inject supported SoC temperature into telemetry, and report WFB transmit drops as MAVLink messages when `wfb_tx` logging is available. + +## RC Channel Hooks + +MAVFWD can monitor MAVLink `RC_CHANNELS` data and call a `channels.sh` script when a configured channel changes. The script receives the channel number and value, allowing a setup to bind transmitter switches to camera-side actions such as changing encoder options, restarting Wi-Fi, or changing link parameters. + +## Sources + +- [MAVFWD repository](https://github.com/OpenIPC/mavfwd) diff --git a/src/content/docs/system-components/msp-osd.md b/src/content/docs/system-components/msp-osd.md new file mode 100644 index 0000000..6f0c337 --- /dev/null +++ b/src/content/docs/system-components/msp-osd.md @@ -0,0 +1,29 @@ +--- +title: MSP OSD +description: MSP DisplayPort OSD renderer and telemetry helper for OpenIPC FPV. +--- + +MSP OSD is the OpenIPC implementation of MSP DisplayPort OSD for Betaflight, INAV, and ArduPilot. It receives MSP data from a flight controller and can render OSD elements over the OpenIPC video stream. + +![MSP OSD overlay on an FPV video feed](/images/msp-osd-overlay.webp) + +## Main Functions + +MSP OSD can read MSP from a serial port, draw the OSD over video, limit display refresh rate, draw an artificial horizon indicator, forward aggregated MSP messages over UDP, watch WFB logs for link errors, and read SoC temperature for on-screen diagnostics. + +It can also monitor RC channel values and run a `channels.sh` script when configured channels change. That makes it possible to trigger camera-side actions from the radio transmitter, such as changing encoder settings or switching modes, if the script is implemented for the aircraft. + +## VTX Menu and Recording Support + +The project includes a VTX menu system configured by `vtxmenu.ini`, with pages, options, and commands represented in an INI file. It also documents a safeboot stick command that can restore known-good configuration files and reboot. + +MSP OSD can record DisplayPort messages to sidecar OSD files for later overlay and can create SRT files for extra messages. The repository notes that this mode expects recordings in a flat directory layout. + +## Installation Notes + +The release area provides prebuilt binaries for several targets, including SigmaStar, Goke, HiSilicon, and x86. Font files need to match the flight-controller firmware and video resolution; newer builds can auto-select among INAV, Betaflight, and ArduPilot font sets when the files are present. + +## Sources + +- [MSP OSD repository](https://github.com/OpenIPC/msposd) +- [MSP OSD releases](https://github.com/OpenIPC/msposd/releases) diff --git a/src/content/docs/system-components/pixelpilot-android.md b/src/content/docs/system-components/pixelpilot-android.md new file mode 100644 index 0000000..89cd546 --- /dev/null +++ b/src/content/docs/system-components/pixelpilot-android.md @@ -0,0 +1,25 @@ +--- +title: PixelPilot Android +description: Android OpenIPC FPV receiver for WFB-NG H.264/H.265 video feeds. +--- + +PixelPilot for Android packages the components needed to receive and decode an H.264/H.265 video feed broadcast by WFB-NG. The app is intended for Android devices connected to supported USB Wi-Fi adapters. + +![PixelPilot Android video and OSD interface](/images/pixelpilot-android-osd.webp) + +## Components and Compatibility + +The repository credits FPVue Android, the `devourer` userspace RTL8812AU driver, LiveVideo10ms, and WFB-NG as major building blocks. It supports `arm64-v8a` and `armeabi-v7a` Android devices, and the README lists Meta Quest 2 and Meta Quest 3 in non-VR mode among compatible device classes. + +The default WFB-NG ground-station key is embedded in the app, but the settings menu can select a different key from the phone. Supported RTL8812AU adapter USB IDs are maintained in the app's USB device filter. + +## Features and Limits + +The repository documents DVR saving to Android internal Movies storage and an audio playback feature for Opus streams from Majestic, with matching camera-side audio settings. It also includes an Auto-FEC reference for adjusting redundancy from the app. + +The README warns that performance depends heavily on Android device processing power and lists audio stream support under known issues, so test the exact device and firmware combination before relying on it for field use. + +## Sources + +- [PixelPilot Android repository](https://github.com/OpenIPC/PixelPilot) +- [PixelPilot Android releases](https://github.com/OpenIPC/PixelPilot/releases) diff --git a/src/content/docs/system-components/pixelpilot-rk.md b/src/content/docs/system-components/pixelpilot-rk.md new file mode 100644 index 0000000..45bad82 --- /dev/null +++ b/src/content/docs/system-components/pixelpilot-rk.md @@ -0,0 +1,34 @@ +--- +title: PixelPilot RK +description: Rockchip-based OpenIPC FPV video decoder and ground station display application. +--- + +PixelPilot RK is a WFB-NG video decoder for Rockchip-based ground stations. It receives RTP video, decodes it through the Rockchip MPP stack, and displays the feed with an on-screen display for link and decoder information. + +![PixelPilot RK on-screen display and link statistics](/images/pixelpilot-rk-osd.webp) + +## Hardware and Base Project + +The repository says PixelPilot RK is based on Gee He's FPVue RK project. Upstream documentation lists RK3566, such as Radxa Zero 3W, and RK3588s, such as Orange Pi 5, as tested platforms. + +## Features + +PixelPilot RK documents these capabilities: + +- GStreamer-based ingest with Rockchip MPP decoding. +- OSD with bandwidth, decode latency, frame rate, and WFB-NG link statistics. +- GPU color correction through EGL/GLES2. +- DVR re-encoding with the OSD blended into the recording. +- Frame pacing for re-encoding. +- Upside-down display support through DRM image flip. +- GSMenu for live ground-station control of air-unit and link settings. + +## Installation and Configuration + +The project can be installed from Debian packages for Bullseye and Bookworm or built from source on a Rockchip Linux system. Documented configuration files include `/etc/pixelpilot/pixelpilot.yaml`, `/etc/pixelpilot/osd_config.json`, and `/etc/default/pixelpilot`. + +## Sources + +- [PixelPilot RK repository](https://github.com/OpenIPC/PixelPilot_rk) +- [FPVue RK repository](https://github.com/gehee/FPVue_rk) +- [Rockchip MPP library](https://github.com/rockchip-linux/mpp) diff --git a/src/content/docs/system-components/third-party-components.md b/src/content/docs/system-components/third-party-components.md new file mode 100644 index 0000000..611d990 --- /dev/null +++ b/src/content/docs/system-components/third-party-components.md @@ -0,0 +1,18 @@ +--- +title: Third-Party Components +description: Unofficial third-party projects and components related to the OpenIPC ecosystem. +--- + +This page lists community and third-party projects that can be useful with OpenIPC-based systems, but are not official OpenIPC components unless the upstream project states otherwise. Check each repository for current hardware support, build requirements, license, and maintenance status before using it in a production or field setup. + +## AMLDigitalFPV + +[AMLDigitalFPV](https://github.com/imagemlt/AMLDigitalFPV) is an unofficial Amlogic-based ground FPV receiver for the OpenIPC ecosystem. It targets inexpensive consumer Amlogic boxes such as S905L3A and S905X2 devices and uses their hardware decoding capabilities for ground-station video reception. + +The project uses GStreamer with `libamcodec` for video and can optionally receive Opus audio over RTP into PulseAudio. Its README describes CMake and legacy Makefile builds, a systemd service unit, runtime options for video size, frame rate, codec, decoder mode, recording path, and UDP commands for recording and audio control. + +Use the upstream repository as the source of truth for supported devices and current build instructions. + +### Sources + +- [AMLDigitalFPV repository](https://github.com/imagemlt/AMLDigitalFPV) diff --git a/src/content/docs/development/webface-guide.md b/src/content/docs/system-components/web-ui-development.md similarity index 100% rename from src/content/docs/development/webface-guide.md rename to src/content/docs/system-components/web-ui-development.md diff --git a/src/content/docs/use-cases/ap-fpv-over-wi-fi/apalink.md b/src/content/docs/use-cases/ap-fpv-over-wi-fi/apalink.md new file mode 100644 index 0000000..a50c329 --- /dev/null +++ b/src/content/docs/use-cases/ap-fpv-over-wi-fi/apalink.md @@ -0,0 +1,70 @@ +--- +title: APALink +sidebar: + order: 7 +description: Use APALink to keep an AP FPV video link alive with bitrate fallback. +--- + +APALink is an external C utility designed to keep an AP FPV video link usable under changing RF conditions. It can switch to a lower bitrate when signal strength becomes weak. + +## What it does + +APALink monitors the link and applies fallback logic. For example, it can reduce video bitrate to `2 Mbps` when the signal drops below a configured threshold. + +## Installation summary + +1. Open the APALink source repository: [CaraSandbox](https://github.com/carabidulebabat/CaraSandbox). +2. Follow the README in that repository. +3. Copy the `ap_alink` binary to `/usr/bin`. +4. Copy `ap_alink.conf` to `/etc/`. +5. Optionally copy `vtxmenu.ini` to `/etc/` to enable an AP FPV menu. + +Make the binary executable: + +```bash +chmod +x /usr/bin/ap_alink +``` + +## Configuration + +Edit `/etc/ap_alink.conf`: + +```text +bitrate_max=22 +bitrate_min=2 +dbm_threshold=-47 +``` + +Settings: + +- `bitrate_max`: bitrate used under good signal conditions. +- `bitrate_min`: fallback bitrate used under weak signal conditions. +- `dbm_threshold`: signal threshold where fallback starts. + +A lower threshold keeps higher image quality for longer, but may increase lag or freezes under weak signal. A higher threshold triggers fallback sooner, usually reducing lag at the cost of image quality. + +## Example settings + +BL-M8812EU2: + +```text +bitrate_max=12 +bitrate_min=2 +dbm_threshold=-52 +``` + +BL-R8812AF1: + +```text +bitrate_max=10 +bitrate_min=2 +dbm_threshold=-48 +``` + +## VTX menu + +With `vtxmenu.ini`, AP FPV settings can be exposed through an MSP-style menu. Typical items include: + +- TX power: min/max presets such as `1500` or `2000`. +- Channel: available 5 GHz Wi-Fi channels. +- Auto power: enable or disable automatic TX power behavior. diff --git a/src/content/docs/use-cases/ap-fpv-over-wi-fi/faq.md b/src/content/docs/use-cases/ap-fpv-over-wi-fi/faq.md new file mode 100644 index 0000000..60132c0 --- /dev/null +++ b/src/content/docs/use-cases/ap-fpv-over-wi-fi/faq.md @@ -0,0 +1,34 @@ +--- +title: FAQ +sidebar: + order: 9 +description: Common AP FPV over Wi-Fi questions. +--- + +## What does AP FPV mean? + +AP FPV means Access Point FPV. The VTX creates a regular Wi-Fi access point, and the viewer connects directly to it to receive live video. + +## What is the video delay? + +Expect about 40-70 ms. The exact delay depends on distance, interference, receiver performance, video settings, and decoding path. + +## Can I use professional Wi-Fi equipment? + +Yes. Outdoor Wi-Fi gear, directional antennas, and better receivers can improve range and stability. Always test the actual setup before relying on it. + +## Is AP FPV a replacement for WFB-NG? + +No. AP FPV is simpler and works with ordinary Wi-Fi clients, but it does not provide WFB-NG style link aggregation or the same behavior under weak signal conditions. + +## Can I use a phone as the receiver? + +Yes. Connect the phone to the VTX Wi-Fi network and use PixelPilot on Android, or open the Web UI if browser playback is suitable for your setup. + +## Can I change the default SSID and password? + +Yes. Use `fw_setenv wlanssid` and `fw_setenv wlanpass`, then reboot. See [Network Configuration](/use-cases/ap-fpv-over-wi-fi/network-configuration/). + +## What hardware is supported? + +The VTX must be supported by OpenIPC and have a compatible Wi-Fi adapter. Common Wi-Fi chips include RTL8812AU, RTL8812EU, and RTL8733BU. Use firmware that matches the exact SoC and flash layout. diff --git a/src/content/docs/use-cases/ap-fpv-over-wi-fi/ground-stations.md b/src/content/docs/use-cases/ap-fpv-over-wi-fi/ground-stations.md new file mode 100644 index 0000000..3299531 --- /dev/null +++ b/src/content/docs/use-cases/ap-fpv-over-wi-fi/ground-stations.md @@ -0,0 +1,72 @@ +--- +title: Ground Stations +sidebar: + order: 6 +description: Use phones, computers, outdoor Wi-Fi equipment, or multi-adapter ground stations with AP FPV. +--- + +AP FPV can be received by ordinary Wi-Fi devices. Better Wi-Fi adapters, antennas, and outdoor equipment can improve range and stability. + +## Supported receiver types + +- Android phone or tablet with PixelPilot. +- Laptop or desktop computer with Wi-Fi. +- Professional outdoor Wi-Fi equipment from vendors such as TP-Link or Ubiquiti. +- Ground stations with one or more external Wi-Fi adapters. +- Any device that can receive RTP/UDP video. + +## Expected range + +Range depends on hardware, antennas, interference, and line of sight. + +Typical examples: + +- Basic smartphone: about 50-200 m. +- Good Wi-Fi adapter: about 200-500 m. +- Professional outdoor Wi-Fi equipment: 1 km or more in favorable conditions. + +These are not guarantees. Always test in the actual environment. + +## Multiple Wi-Fi adapters on a ground station + +Some ground stations, such as Runcam RX based builds or custom SBC receivers, can use more than one external Wi-Fi adapter. The source article suggests scanning external `wlan`/`wlx` interfaces, creating NetworkManager connections for each adapter, and assigning route metrics so the system can prefer the better route. + +Example first-boot logic: + +```bash +SSID="OpenIPC" +PASSWORD="12345678" +EXCLUDE_IFACE="wlan0" + +WIFI_IFACES=$(ip -o link show | awk -F': ' '{print $2}' | grep -E '^wlan|^wlx' | grep -v "^$EXCLUDE_IFACE$") + +INDEX=1 +for IFACE in $WIFI_IFACES; do + CONN_NAME="wifi$INDEX" + nmcli connection delete "$CONN_NAME" 2>/dev/null || true + nmcli device wifi rescan ifname "$IFACE" + sleep 2 + nmcli connection add type wifi ifname "$IFACE" con-name "$CONN_NAME" ssid "$SSID" \ + wifi-sec.key-mgmt wpa-psk wifi-sec.psk "$PASSWORD" \ + ipv4.method auto connection.autoconnect yes + + if [ "$CONN_NAME" = "wifi1" ]; then + nmcli connection modify "$CONN_NAME" ipv4.route-metric 100 + elif [ "$CONN_NAME" = "wifi2" ]; then + nmcli connection modify "$CONN_NAME" ipv4.route-metric 200 + fi + + nmcli connection up "$CONN_NAME" + INDEX=$((INDEX + 1)) +done +``` + +If the onboard `wlan0` should not be used, disconnect it in the stream startup script: + +```bash +nmcli device disconnect wlan0 +``` + +:::note +This approach is a practical ground-station customization, not a substitute for WFB-NG link aggregation. +::: diff --git a/src/content/docs/use-cases/ap-fpv-over-wi-fi/index.md b/src/content/docs/use-cases/ap-fpv-over-wi-fi/index.md new file mode 100644 index 0000000..cb153bb --- /dev/null +++ b/src/content/docs/use-cases/ap-fpv-over-wi-fi/index.md @@ -0,0 +1,40 @@ +--- +title: AP FPV over Wi-Fi +sidebar: + order: 1 +description: Simple FPV video over a regular Wi-Fi access point link. +--- + +AP FPV, or Access Point FPV, is a simple way to send live video from an OpenIPC video transmitter to a phone, tablet, computer, or ground station over regular Wi-Fi. + +The VTX creates its own Wi-Fi access point. The viewing device connects to that network and receives the live stream directly. This makes AP FPV easier to try than systems that require a dedicated WFB-NG ground station, but it also has more limited link behavior. + +:::danger +AP FPV is alpha software. Link loss or interference can cause loss of video or control awareness. Test on the ground first, keep visual line of sight, and use it at your own risk. +::: + +## Best for + +- Learning FPV basics. +- Ground vehicles, boats, and slow-moving platforms. +- Basic planes or quads where racing-grade latency is not required. +- Experiments with phones, tablets, laptops, outdoor Wi-Fi gear, or custom ground stations. + +## Limitations + +- Typical video delay is about 40-70 ms, depending on hardware and RF conditions. +- Performance varies with distance, interference, antenna placement, and receiver quality. +- One Wi-Fi device is normally used as the receiver. +- AP FPV does not provide WFB-NG style link aggregation. +- It is not recommended for racing, fast aerobatics, or untested long-range flights. + +## Section map + +- [Quick Start](/use-cases/ap-fpv-over-wi-fi/quick-start/) +- [Installation](/use-cases/ap-fpv-over-wi-fi/installation/) +- [Viewing Video](/use-cases/ap-fpv-over-wi-fi/viewing-video/) +- [Network Configuration](/use-cases/ap-fpv-over-wi-fi/network-configuration/) +- [Ground Stations](/use-cases/ap-fpv-over-wi-fi/ground-stations/) +- [APALink](/use-cases/ap-fpv-over-wi-fi/apalink/) +- [Troubleshooting](/use-cases/ap-fpv-over-wi-fi/troubleshooting/) +- [FAQ](/use-cases/ap-fpv-over-wi-fi/faq/) diff --git a/src/content/docs/use-cases/ap-fpv-over-wi-fi/installation.md b/src/content/docs/use-cases/ap-fpv-over-wi-fi/installation.md new file mode 100644 index 0000000..3369f5b --- /dev/null +++ b/src/content/docs/use-cases/ap-fpv-over-wi-fi/installation.md @@ -0,0 +1,89 @@ +--- +title: Installation +sidebar: + order: 3 +description: Install AP FPV firmware with online sysupgrade or an offline manual upgrade. +--- + +There are two common ways to install AP FPV firmware: online `sysupgrade` from the VTX, or manual upgrade after copying firmware files to `/tmp`. + +## Online installation + +Use this method when the VTX can reach the internet. + +1. Connect the VTX to your network using Ethernet, USB networking, or another supported path. +2. SSH into the VTX. +3. Run the matching `sysupgrade` command. + +Example for SSC338Q NOR: + +```bash +sysupgrade -k -r -n --url=https://github.com/OpenIPC/builder/releases/download/latest/openipc.ssc338q-nor-apfpv.tgz +``` + +The command downloads the archive, flashes the firmware, and reboots the VTX. + +:::caution +Use only firmware that matches your SoC and flash layout. The SSC338Q NOR example is not universal. +::: + +## SSH access + +Windows: + +1. Install [PuTTY](https://www.putty.org/). +2. Enter the VTX IP address. +3. Use port `22` and connection type `SSH`. +4. Log in as `root`. + +macOS or Linux: + +```bash +ssh root@ +``` + +Default credentials on fresh OpenIPC installations are commonly: + +```text +User: root +Password: 12345 +``` + +Find the VTX IP in your router device list, with a network scanner, or from the serial console. + +## Offline installation + +Use this method when the VTX has no internet access. + +1. Download the matching firmware archive on your computer. +2. Extract it. +3. Copy the kernel and root filesystem files to `/tmp` on the VTX. +4. Run `sysupgrade` with local paths. + +Example files for SSC338Q: + +```text +uImage.ssc338q +rootfs.squashfs.ssc338q +``` + +Copy with SCP: + +```bash +scp uImage.ssc338q root@:/tmp/ +scp rootfs.squashfs.ssc338q root@:/tmp/ +``` + +Then run: + +```bash +sysupgrade -z -n --kernel=/tmp/uImage.ssc338q --rootfs=/tmp/rootfs.squashfs.ssc338q +``` + +The VTX reboots when the upgrade finishes. + +## Firmware sources + +- [OpenIPC Builder latest releases](https://github.com/OpenIPC/builder/releases/tag/latest) +- [Latest SSC338Q NOR AP FPV image](https://github.com/OpenIPC/builder/releases/download/latest/openipc.ssc338q-nor-apfpv.tgz) +- [OpenIPC Builder](/software-tools/openipc-builder/) diff --git a/src/content/docs/use-cases/ap-fpv-over-wi-fi/network-configuration.md b/src/content/docs/use-cases/ap-fpv-over-wi-fi/network-configuration.md new file mode 100644 index 0000000..087d26f --- /dev/null +++ b/src/content/docs/use-cases/ap-fpv-over-wi-fi/network-configuration.md @@ -0,0 +1,52 @@ +--- +title: Network Configuration +sidebar: + order: 5 +description: Change AP FPV SSID, password, Wi-Fi frequency, and transmit power. +--- + +AP FPV stores Wi-Fi settings in the boot environment. Change them over UART or SSH, then reboot the VTX. + +## Change SSID and password + +```bash +fw_setenv wlanssid VTX +fw_setenv wlanpass openipcfpv +``` + +Replace `VTX` with the desired network name and `openipcfpv` with the desired password. + +## Change Wi-Fi frequency + +```bash +fw_setenv wlanfreq 5700 +``` + +Set a valid 2.4 GHz or 5 GHz frequency supported by the Wi-Fi adapter and local regulations. + +## Change transmit power + +```bash +fw_setenv wlanpwr 2000 +``` + +:::caution +Be careful with transmit power. Excessive values can overheat or damage hardware, violate local regulations, or reduce link quality. +::: + +## Apply changes + +Reboot after changing environment variables: + +```bash +reboot +``` + +## Mental model + +Think of AP FPV like this: + +- VTX: Wi-Fi access point and video source, usually `192.168.0.1`. +- Ground station: receiver device, often `192.168.0.10`. +- Video stream: RTP/UDP data from VTX to receiver. +- Web UI: camera control page at `http://192.168.0.1`. diff --git a/src/content/docs/use-cases/ap-fpv-over-wi-fi/quick-start.md b/src/content/docs/use-cases/ap-fpv-over-wi-fi/quick-start.md new file mode 100644 index 0000000..b02b043 --- /dev/null +++ b/src/content/docs/use-cases/ap-fpv-over-wi-fi/quick-start.md @@ -0,0 +1,78 @@ +--- +title: Quick Start +sidebar: + order: 2 +description: Install AP FPV firmware, connect to the VTX access point, and view the live video stream. +--- + +This guide gets a supported OpenIPC VTX running AP FPV with the default Wi-Fi network and video stream. + +:::danger +AP FPV is alpha software. Test the full link on the ground before using it on a moving vehicle or aircraft. +::: + +## Requirements + +VTX side: + +- OpenIPC-compatible camera or video transmitter board. +- Supported Wi-Fi adapter or module, commonly RTL8812AU, RTL8812EU, or RTL8733BU. +- Firmware image that matches the exact SoC and flash layout. + +Viewer or ground station side: + +- Android device with PixelPilot, or +- computer with Wi-Fi and a web browser, or +- any device that can receive an RTP/UDP video stream on port `5600`. + +## Install AP FPV firmware + +If the VTX has internet access, install the SSC338Q NOR AP FPV image with: + +```bash +sysupgrade -k -r -n --url=https://github.com/OpenIPC/builder/releases/download/latest/openipc.ssc338q-nor-apfpv.tgz +``` + +:::caution +The example image is for SSC338Q NOR targets. Do not install it on a different SoC or flash layout. For other hardware, use [OpenIPC Builder](/software-tools/openipc-builder/) or a matching release image. +::: + +After the upgrade completes, the VTX reboots automatically. Disconnect Ethernet if the Wi-Fi AP stream does not start as expected. + +For offline installation, see [Installation](/use-cases/ap-fpv-over-wi-fi/installation/). + +## Connect to the VTX + +After reboot, connect your phone, computer, or ground station to the VTX Wi-Fi network: + +```text +SSID: OpenIPC +Password: 12345678 +VTX IP: 192.168.0.1 +Expected viewer IP: 192.168.0.10 +Network: 192.168.0.0/24 +``` + +## View video + +Android: + +- Open PixelPilot. +- The stream should appear automatically when connected to the AP FPV network. + +Browser: + +- Open `http://192.168.0.1`. +- Use the OpenIPC Web UI to view or adjust the stream. + +Linux/GStreamer: + +```bash +gst-launch-1.0 udpsrc port=5600 ! application/x-rtp ! rtph265depay ! avdec_h265 ! fpsdisplaysink sync=false +``` + +## Next steps + +- Change SSID, password, channel, or transmit power in [Network Configuration](/use-cases/ap-fpv-over-wi-fi/network-configuration/). +- Use multiple receiver Wi-Fi adapters with [Ground Stations](/use-cases/ap-fpv-over-wi-fi/ground-stations/). +- Add adaptive bitrate fallback with [APALink](/use-cases/ap-fpv-over-wi-fi/apalink/). diff --git a/src/content/docs/use-cases/ap-fpv-over-wi-fi/troubleshooting.md b/src/content/docs/use-cases/ap-fpv-over-wi-fi/troubleshooting.md new file mode 100644 index 0000000..30d1d89 --- /dev/null +++ b/src/content/docs/use-cases/ap-fpv-over-wi-fi/troubleshooting.md @@ -0,0 +1,51 @@ +--- +title: Troubleshooting +sidebar: + order: 8 +description: Diagnose AP FPV Wi-Fi, video, Web UI, and performance issues. +--- + +Use these checks when AP FPV does not connect or the video link is unstable. + +## The OpenIPC Wi-Fi network is not visible + +1. Make sure the VTX is powered. +2. Wait 1-2 minutes after boot. +3. Confirm AP FPV firmware was installed successfully. +4. Restart the VTX. +5. Move closer to the VTX. +6. Check UART logs if the AP still does not appear. + +## Connected but no video + +1. Confirm the receiver is connected to the correct Wi-Fi network. +2. Open `http://192.168.0.1` and check whether the Web UI loads. +3. Try PixelPilot on Android. +4. Confirm the receiver can receive UDP/RTP on port `5600`. +5. Check that Ethernet or another interface is not changing the expected route. + +## Poor video quality + +1. Move closer to the VTX. +2. Improve line of sight. +3. Reduce nearby Wi-Fi interference. +4. Try another 5 GHz channel. +5. Use better antennas or a better Wi-Fi adapter. +6. Adjust video settings in the Web UI. + +## Web UI does not load + +1. Confirm the receiver is on the AP FPV Wi-Fi network. +2. Open `http://192.168.0.1`. +3. Try another browser. +4. Clear browser cache and cookies. +5. Restart both the receiver and the VTX. + +## Performance tips + +- Prefer 5 GHz Wi-Fi when possible. +- Keep line of sight between VTX and receiver. +- Use a mix of directional and omnidirectional antennas where appropriate. +- Test the link on the ground before flying. +- Account for 40-70 ms of video delay. +- Stay inside the range you have already tested. diff --git a/src/content/docs/use-cases/ap-fpv-over-wi-fi/viewing-video.md b/src/content/docs/use-cases/ap-fpv-over-wi-fi/viewing-video.md new file mode 100644 index 0000000..5df57e2 --- /dev/null +++ b/src/content/docs/use-cases/ap-fpv-over-wi-fi/viewing-video.md @@ -0,0 +1,44 @@ +--- +title: Viewing Video +sidebar: + order: 4 +description: Receive AP FPV video on Android, desktop browsers, Linux, or other RTP-capable devices. +--- + +After AP FPV firmware boots, the VTX creates a Wi-Fi access point and sends video to the receiver network. + +Default network details: + +```text +SSID: OpenIPC +Password: 12345678 +VTX IP: 192.168.0.1 +Video target: 192.168.0.10 +RTP/UDP port: 5600 +``` + +## Android + +Use PixelPilot when possible. Connect Android to the `OpenIPC` Wi-Fi network, then open PixelPilot. The stream should appear automatically. + +## Browser + +Connect to the AP FPV network and open: + +```text +http://192.168.0.1 +``` + +The OpenIPC Web UI can show live video and expose camera controls. + +## Linux with GStreamer + +Use this pipeline for H.265 RTP on UDP port `5600`: + +```bash +gst-launch-1.0 udpsrc port=5600 ! application/x-rtp ! rtph265depay ! avdec_h265 ! fpsdisplaysink sync=false +``` + +## Other receivers + +Any software or hardware that can receive RTP video over UDP can be used. For custom ground stations, make sure the receiver has the expected IP address or routing for the AP FPV stream. diff --git a/src/content/docs/use-cases/fpv-over-wfb-ng/air-unit-setup.md b/src/content/docs/use-cases/fpv-over-wfb-ng/air-unit-setup.md new file mode 100644 index 0000000..5e8d5d9 --- /dev/null +++ b/src/content/docs/use-cases/fpv-over-wfb-ng/air-unit-setup.md @@ -0,0 +1,44 @@ +--- +title: Air Unit Setup +sidebar: + order: 4 +description: Connect, update, and prepare an OpenIPC FPV air unit for WFB-NG. +--- + +With current plug-and-play OpenIPC FPV builds, air-unit setup is mostly firmware update, safe bench setup, and final configuration through OpenIPC Companion or the VTX menu. + +:::caution +Always attach antennas before powering Wi-Fi modules. Use external airflow when running air units on the bench. +::: + +## Connect to the flight controller + +Most OpenIPC air units sold for FPV use an HD-style connector. Connect the air unit to the flight controller in the same way as other digital FPV systems, following the air unit hardware page and pinout. + +## Connect to a computer + +1. Connect Ethernet or the USB debug port to the air unit. +2. Connect the other end to the computer. +3. Power the air unit from battery or USB debug port, depending on the hardware. +4. Configure the computer Ethernet interface as described in [OpenIPC Companion](/use-cases/fpv-over-wfb-ng/openipc-companion/). +5. Connect with OpenIPC Companion. + +Default connection details are commonly: + +| IP | Password | +| --- | --- | +| `192.168.1.10` | `12345` | + +## Firmware update + +Use the firmware tab in OpenIPC Companion. Select the firmware that matches the exact air unit hardware and update the device. + +After the update, most air-unit configuration can be done through VTX menu or Companion presets. + +## Power settings + +Default power is usually pit mode or low power, such as 25 mW. Increase power only after the system is tested and cooled properly. + +:::caution +Set RF power according to local regulations. Higher power can overheat adapters, draw more current, and make bench testing unsafe without airflow. +::: diff --git a/src/content/docs/use-cases/fpv/wfb-ng/unbrick-eu-bu.mdx b/src/content/docs/use-cases/fpv-over-wfb-ng/eu-bu-40mhz-issue.mdx similarity index 68% rename from src/content/docs/use-cases/fpv/wfb-ng/unbrick-eu-bu.mdx rename to src/content/docs/use-cases/fpv-over-wfb-ng/eu-bu-40mhz-issue.mdx index 5c38ada..79adce4 100644 --- a/src/content/docs/use-cases/fpv/wfb-ng/unbrick-eu-bu.mdx +++ b/src/content/docs/use-cases/fpv-over-wfb-ng/eu-bu-40mhz-issue.mdx @@ -1,6 +1,8 @@ --- -title: "How to fix glitch on EU and BU-based VTXes" -description: "'How fix glitch on BU and EU-based VTX' article for OpenIPC wiki" +title: "EU/BU 40 MHz Issue" +description: "Recover EU and BU-based VTXes after enabling unsupported 40 MHz mode." +sidebar: + order: 11 --- ## What happened? **All** EU-based net cards can not transmit at 40MHz, **some** BU-based net cards can not transmit at 40MHz. When you forcibly enable 40MHz mode on those net cards - your RX can not receive signal. Please check the information about your network card in the "Net cards" section, the specifications list all supported modes. @@ -11,8 +13,8 @@ description: "'How fix glitch on BU and EU-based VTX' article for OpenIPC wiki" ## How to fix 40MHz glitch. - Connect your VTX to your PC using Ethernet(or debug port) to PC. - - Configure your Ethernet connection(read [Advanced setup guide](/use-cases/fpv/advanced-setup/)). - - Update firmware on your VTX using OpenIPC configurator(read [Advanced setup guide](/use-cases/fpv/advanced-setup/)). + - Configure your Ethernet connection(read [OpenIPC Companion](/use-cases/fpv-over-wfb-ng/openipc-companion/)). + - Update firmware on your VTX using OpenIPC Companion(read [OpenIPC Companion](/use-cases/fpv-over-wfb-ng/openipc-companion/)). :::caution Do not interfere during update process!! Do not unplug battery! Do not unplug Ethernet cable! Do not turn off your PC! diff --git a/src/content/docs/use-cases/fpv-over-wfb-ng/faq.md b/src/content/docs/use-cases/fpv-over-wfb-ng/faq.md new file mode 100644 index 0000000..79bc0fc --- /dev/null +++ b/src/content/docs/use-cases/fpv-over-wfb-ng/faq.md @@ -0,0 +1,37 @@ +--- +title: FAQ +sidebar: + order: 99 +description: Common FPV over WFB-NG questions and links to the detailed guides. +--- + +## Where should I start? + +Start with [Quick Start](/use-cases/fpv-over-wfb-ng/quick-start/). It covers the main hardware choices, air unit setup, ground-station options, and first flight path. + +## Which Wi-Fi adapters should I use? + +Use tested adapters from the hardware documentation. Untested adapters can cause breakups, unstable links, or unsupported channel-width modes. + +## Is WFB-NG the same as AP FPV? + +No. WFB-NG uses a Wi-Fi broadcast style link for FPV. [AP FPV over Wi-Fi](/use-cases/ap-fpv-over-wi-fi/) uses a regular access point style connection and is simpler, but has different link behavior and limitations. + +## Where are advanced settings documented? + +Use [OpenIPC Companion](/use-cases/fpv-over-wfb-ng/openipc-companion/) for OpenIPC Companion, Ethernet setup, firmware updates, presets, and VTX configuration. + +## How do I build a ground station? + +Use one of the ground-station guides: + +- [Ground Station on Radxa Zero 3W](/use-cases/fpv-over-wfb-ng/groundstation-radxa-zero-3w/) +- [Ground Station on Ubuntu 22.04](/use-cases/fpv-over-wfb-ng/groundstation-ubuntu/) + +## How do I improve link behavior? + +Start with stable hardware and conservative WFB-NG settings. Then read [Installing Adaptive Link](/use-cases/fpv-over-wfb-ng/install-adaptive-link/) for automatic link-profile selection based on RSSI/SNR. + +## My EU/BU-based VTX glitches in 40 MHz mode. What should I read? + +Read [EU/BU 40 MHz Issue](/use-cases/fpv-over-wfb-ng/eu-bu-40mhz-issue/). Some EU-based cards cannot transmit in 40 MHz mode, and some BU-based cards have the same limitation. diff --git a/src/content/docs/use-cases/fpv-over-wfb-ng/groundstation-radxa-zero-3w.md b/src/content/docs/use-cases/fpv-over-wfb-ng/groundstation-radxa-zero-3w.md new file mode 100644 index 0000000..09d5617 --- /dev/null +++ b/src/content/docs/use-cases/fpv-over-wfb-ng/groundstation-radxa-zero-3w.md @@ -0,0 +1,137 @@ +--- +title: Ground Station on Radxa Zero 3W +description: Configure Radxa Zero 3W as an OpenIPC WFB-NG ground station. +version: 1.9.9 +sidebar: + order: 6 +--- + +Use this page when you are already using Radxa Zero 3W as the receiver for an OpenIPC WFB-NG FPV setup. Board notes, image projects, enclosure models, and purchase links live on the [Radxa Zero 3W/3E hardware page](/hardware/sbcs/radxa-zero-3w-3e/). + +## What You Need + +- Radxa Zero 3W or compatible Radxa Zero 3 board. +- Good quality SD card, 16 GB or larger, or eMMC setup. +- Supported USB Wi-Fi adapter for WFB-NG. +- HDMI display, goggles, or another supported video output path. +- Optional keyboard for local setup. +- Optional [OpenIPC Companion](/use-cases/fpv-over-wfb-ng/openipc-companion/) on a computer. + +Download the current image from the [OpenIPC SBC Ground Station releases](https://github.com/OpenIPC/sbc-groundstations/releases/latest). Use the hardware page if you need background on Buildroot, Stock Edition, or alternative image projects. + +## Flash the Image + +### SD Card + +1. Download the Radxa Zero 3 ground-station image. +2. Extract the `.img.xz` file with 7-Zip or another archive tool. +3. Flash the `.img` file to the SD card with balenaEtcher, Rufus, or a similar tool. +4. Reinsert the card after flashing. The config partition should mount on your computer. + +### eMMC + +Some older 1.9.9 images include an eMMC flasher flow: + +1. Flash the `radxa_1-9-9_emmc-flasher` image to an SD card. +2. Boot the board from this SD card. +3. Press the `MHZ_TOGGLE` GPIO button on physical pin 38 once to begin flashing eMMC. +4. Wait several minutes and do not remove power during flashing. + +Check the release notes for the image you use, because the exact eMMC procedure can change between image generations. + +## Configure Before First Boot + +After flashing, open the config partition on your computer and review the files in `/config/scripts`. + +Common first settings: + +- screen mode, for example `1920x1080@60`, `1920x1080@120`, `1280x720@60`, or `1280x720@120`; +- DVR frame rate in the recording FPS file; +- OSD mode, especially when using ground-side MSP OSD rendering; +- WFB-NG channel and bandwidth defaults if your image exposes them in config files. + +Use the highest stable display mode supported by your screen or goggles. The display mode does not have to match the camera mode exactly. + +## First Boot + +1. Connect the display. +2. Connect the supported Wi-Fi adapter. +3. Insert the SD card or boot from eMMC. +4. Power the Radxa board. +5. Wait for the OpenIPC ground-station service to start. + +If the service does not start, boot without Wi-Fi adapters and log in locally for troubleshooting. + +Default local credentials on older images: + +```text +username: radxa +password: radxa +``` + +Change the password after first login. + +## AP Mode and Web UI + +On supported images, long-press the 40 MHz toggle button on GPIO 38 to start AP mode. The board creates a Wi-Fi network: + +```text +SSID: RadxaGroundstation +Password: radxaopenipc +``` + +Connect to it and open one of these addresses: + +```text +http://radxa-zero3.local:5000 +http://192.168.4.1:5000 +``` + +Use the Web UI to access DVR files and change ground-station or camera settings. + +## Buttons and GPIO + +Common button assignments: + +- physical pins 16 and 18: increase or decrease VRX channel; +- physical pin 38: toggle 20 MHz and 40 MHz bandwidth; +- physical pin 32: start or stop DVR recording. + +:::caution +Use 40 MHz only with hardware that supports it. Some adapters cannot transmit or receive correctly in 40 MHz mode. See [EU/BU 40 MHz Issue](/use-cases/fpv-over-wfb-ng/eu-bu-40mhz-issue/). +::: + +## DVR and Media Access + +DVR location depends on the image and storage layout. Common paths include `/media`, `/home/radxa/Videos`, or a mounted SD card path. + +Some images expose recordings through a media server. After connecting the ground station to your home network, open: + +```text +http://GROUND_STATION_IP:8080 +``` + +Replace `GROUND_STATION_IP` with the address shown by `nmcli`, your router, or the image Web UI. + +## Network Access + +To connect the board to your home network, either: + +- run `nmtui` and activate a detected Wi-Fi network; or +- edit `/config/config.txt` and add the Wi-Fi connection line supported by your image. + +If your FPV link uses 5.8 GHz, prefer a 2.4 GHz home network for management Wi-Fi to reduce interference. + +## Optional Notes + +- USB power can be converted to host mode on supported images through `rsetup` overlays. This can help when using two Wi-Fi adapters without a hub. +- Powering through GPIO is possible, but use a stable 5 V supply with enough current. +- Overclocking may improve high-bitrate performance, but test thermals before flying. +- Adaptive Link only works when the camera side is configured for bidirectional link. See [Installing Adaptive Link](/use-cases/fpv-over-wfb-ng/install-adaptive-link/). + +## Next Steps + +- [Hardware Selection](/use-cases/fpv-over-wfb-ng/hardware-selection/) +- [Link Tuning](/use-cases/fpv-over-wfb-ng/link-tuning/) +- [WFB-NG Bitrate Calculator](/use-cases/fpv-over-wfb-ng/wfb-ng-calculator/) +- [Radxa Zero 3W/3E Hardware](/hardware/sbcs/radxa-zero-3w-3e/) diff --git a/src/content/docs/use-cases/fpv/wfb-ng/groundstation-ubuntu.md b/src/content/docs/use-cases/fpv-over-wfb-ng/groundstation-ubuntu.md similarity index 99% rename from src/content/docs/use-cases/fpv/wfb-ng/groundstation-ubuntu.md rename to src/content/docs/use-cases/fpv-over-wfb-ng/groundstation-ubuntu.md index 83a96d6..da4e6b3 100644 --- a/src/content/docs/use-cases/fpv/wfb-ng/groundstation-ubuntu.md +++ b/src/content/docs/use-cases/fpv-over-wfb-ng/groundstation-ubuntu.md @@ -1,6 +1,8 @@ --- title: GroundStation on Ubuntu 22.04 description: A guide for setting up a WFB-NG based groundstation on Ubuntu 22.04 +sidebar: + order: 7 --- Video version: - [OpenIPC - Prepare GroundStation: Ubuntu + QGroundControl](https://www.youtube.com/watch?v=JMtRAsOm0Dc) diff --git a/src/content/docs/use-cases/fpv-over-wfb-ng/hardware-selection.md b/src/content/docs/use-cases/fpv-over-wfb-ng/hardware-selection.md new file mode 100644 index 0000000..e478082 --- /dev/null +++ b/src/content/docs/use-cases/fpv-over-wfb-ng/hardware-selection.md @@ -0,0 +1,44 @@ +--- +title: Hardware Selection +sidebar: + order: 2 +description: Choose tested air units, Wi-Fi adapters, and ground-station hardware for WFB-NG. +--- + +Good WFB-NG performance starts with hardware selection. Use tested hardware first; untested Wi-Fi adapters and unsupported channel-width modes are the most common source of unstable links. + +## Ground station choices + +There are two common receiver paths: + +- **SBC ground station**: a dedicated receiver based on an SBC such as Radxa Zero 3W/3E. This path supports more hardware options and is better for purpose-built goggles or HDMI displays. +- **PixelPilot**: an Android-based receiver path. It is usually easier to start with, but the supported Wi-Fi adapter and Android device combinations are narrower. + +SBC ground stations can use RTL8812EU and RTL8812AU adapters. PixelPilot commonly uses RTL8812AU adapters and Snapdragon-based Android devices, including tested Meta Quest setups. + +## Air unit choices + +An air unit, or VTX, is the OpenIPC camera-side device that sends video to the ground station. It usually combines: + +- image sensor; +- SoC; +- Wi-Fi transmitter. + +Common sensor choices are IMX335 and IMX415. IMX335 generally offers stronger image quality and high-frame-rate modes such as 1080p120. IMX415 is also used, but typical high-performance modes are more limited. + +Common SoC choices include SSC338Q and SSC30KQ. SSC338Q has more headroom and is usually the more future-proof choice for firmware updates and higher-performance modes. + +## Wi-Fi adapters and channel width + +RTL8812EU and RTL8812AU are common transmitter families. They are similar in many practical setups, but channel-width support matters. + +:::caution +RTL8812EU does not support 40 MHz injection mode. Do not enable 40 MHz mode on EU-based cards. See [EU/BU 40 MHz Issue](/use-cases/fpv-over-wfb-ng/eu-bu-40mhz-issue/). +::: + +## Related hardware pages + +- [Radxa Zero 3W/3E](/hardware/sbcs/radxa-zero-3w-3e/) +- [Wi-Fi Adapters](/hardware/wi-fi-adapters/openipc/) +- [Air Units](/hardware/air-units/others/) +- [Ground Station on Radxa Zero 3W](/use-cases/fpv-over-wfb-ng/groundstation-radxa-zero-3w/) diff --git a/src/content/docs/use-cases/fpv-over-wfb-ng/index.md b/src/content/docs/use-cases/fpv-over-wfb-ng/index.md new file mode 100644 index 0000000..74722d8 --- /dev/null +++ b/src/content/docs/use-cases/fpv-over-wfb-ng/index.md @@ -0,0 +1,29 @@ +--- +title: FPV over WFB-NG +sidebar: + order: 1 +description: Digital FPV video using OpenIPC firmware and the WFB-NG Wi-Fi broadcast link. +--- + +FPV over WFB-NG is the OpenIPC path for digital first-person-view video links that use raw Wi-Fi broadcast rather than a regular access point connection. + +Use this section when you are building a digital FPV system with an OpenIPC air unit, a compatible Wi-Fi adapter, and a ground station such as PixelPilot, Radxa Zero 3W, Ubuntu, or another WFB-NG receiver. + +:::caution +WFB-NG setups depend heavily on tested Wi-Fi adapters, antennas, channel width, firmware, and ground-station configuration. Start from known-good hardware before changing advanced link settings. +::: + +## Section map + +- [Quick Start](/use-cases/fpv-over-wfb-ng/quick-start/) +- [Hardware Selection](/use-cases/fpv-over-wfb-ng/hardware-selection/) +- [Air Unit Setup](/use-cases/fpv-over-wfb-ng/air-unit-setup/) +- [Ground Station on Radxa Zero 3W](/use-cases/fpv-over-wfb-ng/groundstation-radxa-zero-3w/) +- [Ground Station on Ubuntu 22.04](/use-cases/fpv-over-wfb-ng/groundstation-ubuntu/) +- [OpenIPC Companion](/use-cases/fpv-over-wfb-ng/openipc-companion/) +- [Link Tuning](/use-cases/fpv-over-wfb-ng/link-tuning/) +- [Installing Adaptive Link](/use-cases/fpv-over-wfb-ng/install-adaptive-link/) +- [WFB-NG Bitrate Calculator](/use-cases/fpv-over-wfb-ng/wfb-ng-calculator/) +- [EU/BU 40 MHz Issue](/use-cases/fpv-over-wfb-ng/eu-bu-40mhz-issue/) +- [Troubleshooting](/use-cases/fpv-over-wfb-ng/troubleshooting/) +- [FAQ](/use-cases/fpv-over-wfb-ng/faq/) diff --git a/src/content/docs/use-cases/fpv/wfb-ng/install-adaptive-link.mdx b/src/content/docs/use-cases/fpv-over-wfb-ng/install-adaptive-link.mdx similarity index 97% rename from src/content/docs/use-cases/fpv/wfb-ng/install-adaptive-link.mdx rename to src/content/docs/use-cases/fpv-over-wfb-ng/install-adaptive-link.mdx index d264339..def1fce 100644 --- a/src/content/docs/use-cases/fpv/wfb-ng/install-adaptive-link.mdx +++ b/src/content/docs/use-cases/fpv-over-wfb-ng/install-adaptive-link.mdx @@ -1,6 +1,8 @@ --- title: "Installing Adaptive Link" description: "Install and configure Adaptive-Link for OpenIPC to optimize your wireless connection" +sidebar: + order: 9 --- ## How Adaptive-Link Works @@ -77,10 +79,6 @@ sudo ./alink_install.sh gs install - `/home/radxa/alink_gs.conf`, or - `/etc/alink_gs.conf` -:::tip -**Alternative installation method using SCP to install Adaptive Link - [here](/hardware/runcam/vtx/installing-alink-runcam/)** -::: - ## Configuration Files ### Profile Configuration: `/etc/txprofiles.conf` diff --git a/src/content/docs/use-cases/fpv-over-wfb-ng/link-tuning.md b/src/content/docs/use-cases/fpv-over-wfb-ng/link-tuning.md new file mode 100644 index 0000000..fc27062 --- /dev/null +++ b/src/content/docs/use-cases/fpv-over-wfb-ng/link-tuning.md @@ -0,0 +1,36 @@ +--- +title: Link Tuning +sidebar: + order: 8 +description: Tune WFB-NG bitrate, channel width, presets, and Adaptive Link behavior. +--- + +Tune the link only after the basic WFB-NG setup works reliably. Changing MCS, FEC, channel width, bitrate, or power on unstable hardware makes troubleshooting much harder. + +## Start from presets + +Use OpenIPC Companion presets first. They provide known combinations for WFB-NG and camera settings and are safer than editing every field manually. + +## Fixed profile tuning + +A typical conservative baseline is: + +- bitrate: 4 Mbps; +- channel width: 20 MHz; +- MCS: 1; +- FEC: 8/12; +- guard interval: long. + +This is not the highest quality profile, but it is a reasonable baseline for testing. + +## Adaptive Link + +[Adaptive Link](/use-cases/fpv-over-wfb-ng/install-adaptive-link/) can switch profiles automatically based on RSSI and SNR. Use it when you already understand the base link behavior and want automatic fallback between quality and range profiles. + +## Bitrate calculator + +Use the [WFB-NG Bitrate Calculator](/use-cases/fpv-over-wfb-ng/wfb-ng-calculator/) to estimate combinations of bitrate, channel width, FEC, and MCS before applying settings to hardware. + +## 40 MHz warning + +Do not enable 40 MHz mode on adapters that do not support it. EU-based adapters cannot transmit in 40 MHz mode, and some BU-based adapters have the same limitation. See [EU/BU 40 MHz Issue](/use-cases/fpv-over-wfb-ng/eu-bu-40mhz-issue/). diff --git a/src/content/docs/use-cases/fpv/wfb-ng/advanced-setup.mdx b/src/content/docs/use-cases/fpv-over-wfb-ng/openipc-companion.mdx similarity index 87% rename from src/content/docs/use-cases/fpv/wfb-ng/advanced-setup.mdx rename to src/content/docs/use-cases/fpv-over-wfb-ng/openipc-companion.mdx index 75009f6..0dc7cd5 100644 --- a/src/content/docs/use-cases/fpv/wfb-ng/advanced-setup.mdx +++ b/src/content/docs/use-cases/fpv-over-wfb-ng/openipc-companion.mdx @@ -1,9 +1,11 @@ --- -title: "Advanced setup guide" -description: "Advanced setup guide WIP" +title: "OpenIPC Companion" +description: "Connect to an OpenIPC FPV air unit, configure Ethernet, and use OpenIPC Companion safely." +sidebar: + order: 5 --- -## General info -This article will guide you through the process of advanced VTX setup such as upgrading, connecting to a computer, changing settings, etc. This article will guide you through the process of advanced VTX setup such as upgrading, connecting to a computer, changing settings, etc. If you want to quickly jump to a specific instruction, use the menu on the right side of the screen +## Overview +Use OpenIPC Companion when you need to connect an FPV air unit to a computer, update firmware, change WFB-NG settings, apply presets, or inspect camera and telemetry settings. ## What you need * A PC(Windows, Linux, macOS). diff --git a/src/content/docs/use-cases/fpv-over-wfb-ng/quick-start.md b/src/content/docs/use-cases/fpv-over-wfb-ng/quick-start.md new file mode 100644 index 0000000..51d9393 --- /dev/null +++ b/src/content/docs/use-cases/fpv-over-wfb-ng/quick-start.md @@ -0,0 +1,60 @@ +--- +title: Quick Start +sidebar: + order: 3 +description: A short path for bringing up an OpenIPC FPV system over WFB-NG. +--- + +Use this page as the happy path. Follow the detailed pages when you need to choose hardware, update firmware, tune the link, or build a specific ground station. + +:::caution +Use tested Wi-Fi adapters and conservative presets first. Untested adapters or unsupported channel-width modes can cause breakups and unpredictable link behavior. +::: + +## 1. Choose tested hardware + +Start with [Hardware Selection](/use-cases/fpv-over-wfb-ng/hardware-selection/). Pick: + +- an OpenIPC-compatible air unit; +- a tested Wi-Fi adapter; +- a ground-station path: PixelPilot, Radxa Zero 3W/3E, Ubuntu, or another supported receiver. + +## 2. Prepare the air unit + +Follow [Air Unit Setup](/use-cases/fpv-over-wfb-ng/air-unit-setup/): + +1. Connect the air unit to the flight controller. +2. Attach antennas before powering the Wi-Fi modules. +3. Connect the air unit to a computer over Ethernet or USB debug port. +4. Update firmware with [OpenIPC Companion](/use-cases/fpv-over-wfb-ng/openipc-companion/). +5. Use presets before changing low-level WFB-NG settings manually. + +## 3. Prepare the ground station + +Choose one path: + +- [Ground Station on Radxa Zero 3W](/use-cases/fpv-over-wfb-ng/groundstation-radxa-zero-3w/) +- [Ground Station on Ubuntu 22.04](/use-cases/fpv-over-wfb-ng/groundstation-ubuntu/) +- PixelPilot on Android with a supported Wi-Fi adapter. + +For Radxa hardware background and image options, see [Radxa Zero 3W/3E](/hardware/sbcs/radxa-zero-3w-3e/). + +## 4. Verify the link before flying + +Before the first flight: + +1. Test at short range on the ground. +2. Confirm video is stable. +3. Confirm OSD and telemetry if used. +4. Check adapter temperature and power stability. +5. Stay on conservative bitrate and channel-width settings. + +## 5. Tune after the basic setup works + +After the link is stable, use: + +- [Link Tuning](/use-cases/fpv-over-wfb-ng/link-tuning/) +- [Installing Adaptive Link](/use-cases/fpv-over-wfb-ng/install-adaptive-link/) +- [WFB-NG Bitrate Calculator](/use-cases/fpv-over-wfb-ng/wfb-ng-calculator/) + +If something breaks, start with [Troubleshooting](/use-cases/fpv-over-wfb-ng/troubleshooting/). diff --git a/src/content/docs/use-cases/fpv-over-wfb-ng/troubleshooting.md b/src/content/docs/use-cases/fpv-over-wfb-ng/troubleshooting.md new file mode 100644 index 0000000..7d88b53 --- /dev/null +++ b/src/content/docs/use-cases/fpv-over-wfb-ng/troubleshooting.md @@ -0,0 +1,37 @@ +--- +title: Troubleshooting +sidebar: + order: 12 +description: Diagnose common WFB-NG setup, Wi-Fi adapter, and video-link issues. +--- + +Most WFB-NG problems come from hardware mismatch, unsupported Wi-Fi modes, incorrect firmware, unstable power, or overly aggressive link settings. + +## No or poor video + +1. Return to a conservative preset. +2. Confirm the air unit firmware matches the hardware. +3. Check that antennas are connected and undamaged. +4. Test at short range with clear line of sight. +5. Try another channel away from crowded Wi-Fi networks. +6. Confirm the ground station sees the expected Wi-Fi adapter. + +## Frequent breakups + +- Use tested Wi-Fi adapters. +- Avoid 40 MHz mode on unsupported adapters. +- Lower bitrate and MCS. +- Improve cooling and power delivery. +- Test with another OTG adapter if using Android/PixelPilot. + +## Firmware update problems + +Use [OpenIPC Companion](/use-cases/fpv-over-wfb-ng/openipc-companion/) to connect over Ethernet or USB debug port. Do not unplug power or Ethernet during firmware update, and wait a few seconds after the update reports completion. + +## EU/BU 40 MHz issue + +If an EU-based or some BU-based VTX stops working after enabling 40 MHz, read [EU/BU 40 MHz Issue](/use-cases/fpv-over-wfb-ng/eu-bu-40mhz-issue/). + +## First flights + +Do not push range or fly in a crowded RF environment on the first flights. Test the link on the ground, verify video stability, and stay inside the range you have already validated. diff --git a/src/content/docs/use-cases/fpv/wfb-ng/wfb-ng-calculator.mdx b/src/content/docs/use-cases/fpv-over-wfb-ng/wfb-ng-calculator.mdx similarity index 90% rename from src/content/docs/use-cases/fpv/wfb-ng/wfb-ng-calculator.mdx rename to src/content/docs/use-cases/fpv-over-wfb-ng/wfb-ng-calculator.mdx index ca2ec0a..33fb113 100644 --- a/src/content/docs/use-cases/fpv/wfb-ng/wfb-ng-calculator.mdx +++ b/src/content/docs/use-cases/fpv-over-wfb-ng/wfb-ng-calculator.mdx @@ -1,6 +1,8 @@ --- title: "WFB-NG Bitrate calculator" description: "Easy to use WFB-NG Bitrate calculator" +sidebar: + order: 10 --- import BitrateCalculator from '/src/components/wfb-calculator.astro'; diff --git a/src/content/docs/use-cases/fpv/apfpv/APFPV.md b/src/content/docs/use-cases/fpv/apfpv/APFPV.md deleted file mode 100644 index d60e8c0..0000000 --- a/src/content/docs/use-cases/fpv/apfpv/APFPV.md +++ /dev/null @@ -1,457 +0,0 @@ ---- -title: "APFPV Firmware - Beginner's Guide" -description: "Simple WiFi-based FPV video transmission for beginners. Easy setup, no complex configuration required." ---- - -:::danger -**APFPV is ALPHA software.** You may lose control of your RC vehicle due to link loss or interference. Use at your own risk. We are not responsible for any damage or loss. -::: - - -APFPV stands for "Access Point FPV" - it's a simple way to get video from your VTX to your phone, tablet, or computer using regular WiFi. Think of it like your VTX creating its own WiFi hotspot that you connect to for live video. - -## What is APFPV? - -The APFPV firmware from the OpenIPC team creates direct WiFi communication between your VTX's video transmitter (VTX) and your ground station. Instead of complex solutions, your VTX simply acts like a WiFi router that you connect to directly. - -This isn't meant to be revolutionary technology - it's designed to be **simple and accessible**, especially for people who find other FPV systems too complicated to set up. - -## Why APFPV? - -- No setup or configuration hassle -- Works with any WiFi-enabled device -- Browser-based interface (no apps required) -- Use your phone, tablet, laptop—anything - -**Best For:** -- Learning FPV -- Ground vehicles, boats, or slow flying -- Basic planes/quads (no racing) -- Experimenting with ground stations - -**Limitations:** -- 35–70ms delay (not for racing or fast aerobatics) -- Performance varies with distance and interference -- Only one WiFi device as a receiver is possible -- No signal aggregation - -## What You'll Need - -### For Your (VTX): -- OpenIPC-compatible camera/board -- WiFi chip (RTL8812AU, RTL8812EU or RTL8733BU) - -### For Viewing (Ground Station): -- **Android**: PixelPilot app (recommended) -- **Computer**: Any computer with WiFi and a web browser -- **Professional**: Outdoor WiFi equipment (TP-Link, Ubiquiti, etc.) -- **Any device**: That can receive RTP video streams - -## Step-by-Step Setup - -### Step 1: Installing APFPV Firmware - -There are two ways to install APFPV firmware on your VTX. The internet method is much easier if your VTX can connect to WiFi. - -## Method 1: Easy Internet Installation (Recommended) - -### Step 1: Connect Your VTX to Internet - -**Physical connection:** -1. Connect your VTX to your computer using a Ethernet cable, USB adapter or UART adapter -2. Power on your VTX -3. Wait for it to fully boot up (about 1-2 minutes) - -**Connect to your WiFi router:** -1. Your VTX needs to connect to your home WiFi to download the firmware -2. Use SSH to connect to your VTX (see "How to SSH" below) -3. Configure your VTX to connect to your home WiFi network - -### Step 2: How to SSH Into Your VTX - -**What is SSH?** SSH is a way to type commands directly into your VTX from your computer. - -**On Windows:** -1. Download and install [PuTTY](https://www.putty.org/) (free SSH program) -2. Open PuTTY -3. In "Host Name" field, enter your VTX's IP address -4. Port: 22 -5. Connection type: SSH -6. Click "Open" -7. Login with your VTX's username (root) and password (12345) - -**On Mac/Linux:** -1. Open Terminal -2. Type: `ssh root@[VTX-ip-address]` -3. Press Enter -4. Enter password when prompted - -**Finding your VTX's IP address:** -- Check your router's admin page for connected devices -- Or use network scanning apps on your phone -- Common default: 192.168.1.24 or 192.168.0.24 - -### Step 3: Install Firmware with One Command - -Once you're connected via SSH and your VTX has internet access: - -1. Copy and paste this exact command: -```bash -sysupgrade -k -r -n --url=https://github.com/OpenIPC/builder/releases/download/latest/openipc.ssc338q-nor-apfpv.tgz -``` - -2. Press Enter - -3. Wait for the download and installation (5-10 minutes) - -4. Your VTX will automatically reboot when finished - -**That's it!** Your VTX now has APFPV firmware installed. Make sure you unplug the ethernet cable after you finish for the stream to work properly. - ---- - -## Method 2: Manual Installation (No Internet Required) - -Use this method if your VTX cannot connect to internet or you prefer manual installation. - -### Step 1: Download Firmware Files - -1. On your computer, go to: https://github.com/OpenIPC/builder/releases/download/latest/openipc.ssc338q-nor-apfpv.tgz -2. Download the file -3. Extract/unzip it - you'll get two files: - - `uImage.ssc338q` - - `rootfs.squashfs.ssc338q` - -### Step 2: Copy Files to VTX - -**Using WinSCP (Windows):** -1. Download and install WinSCP -2. Open WinSCP -3. Protocol: SCP -4. Host name: Your VTX's IP address -5. Username and password: Your VTX's login credentials -6. Click "Login" -7. Navigate to `/tmp` folder on VTX side -8. Copy both firmware files to `/tmp` - -**Using SCP command (Mac/Linux):** -```bash -scp uImage.ssc338q root@[VTX-ip]:/tmp/ -scp rootfs.squashfs.ssc338q root@[VTX-ip]:/tmp/ -``` - -### Step 3: Install Firmware - -1. SSH into your VTX (see "How to SSH" above) -2. Type this command: -```bash -sysupgrade -z -n --kernel=/tmp/uImage.ssc338q --rootfs=/tmp/rootfs.squashfs.ssc338q -``` -3. Press Enter -4. Wait for installation to complete (5-10 minutes) -5. VTX will reboot automatically - ---- - -### Step 4: Connect to Your VTX - -After your VTX reboots: - -1. On your phone/computer, look for WiFi networks -2. Connect to: **"OpenIPC"** -3. Password: **"12345678"** -4. Your device will automatically get an IP address (192.168.0.X) - -**Network details:** -- Your VTX's IP: `192.168.0.1` -- Video stream goes to: `192.168.0.10` -- Network range: `192.168.0.0/24` - -### Step 5: View Live Video - -**On Android (Easiest):** -- Download and open PixelPilot app -- Video should appear automatically - -**On Any Computer:** -- Open web browser -- Go to: `http://192.168.0.1` -- You'll see the VTX's beautiful WebUI with live video - -**On Linux:** -Use GStreamer command: -```bash -gst-launch-1.0 udpsrc port=5600 ! application/x-rtp ! rtph265depay ! avdec_h265 ! fpsdisplaysink sync=false -``` - -**Any Other Device:** -Use any program that can receive RTP streams over UDP on port 5600. - -## Customizing Your WiFi Network - -**Change your WiFi name and password:** - -Connect to your VTX via UART or SSH and run: -```bash -fw_setenv wlanssid VTX -fw_setenv wlanpass openipcfpv -``` -Replace "VTX" with your preferred network name and "openipcfpv" with your chosen password. - -**Change your WiFi Band and Frequency:** - -Connect to your VTX via UART or SSH and run: -```bash -fw_setenv wlanfreq 5700 -``` -Set the frequency you need in the 2.4GHz or 5GHz range - -**Change your WiFi Transmitter Power:** - -Connect to your VTX via UART or SSH and run: -```bash -fw_setenv wlanpwr 2000 -``` -Be careful and cautious with power changes, it may damage your device. - -Reboot your VTX for changes to take effect. - - -## Understanding the Setup - -Think of your setup like this: -- **Your VTX** = WiFi router (192.168.0.1) -- **Your ground station** = Connected device (192.168.0.10) -- **Video stream** = Data flowing from VTX to your device -- **Web interface** = Control panel at http://192.168.0.1 - -## Supported Hardware - -**WiFi Chips (VTX side):** -- RTL8812AU (high-power dual-band) -- RTL8812EU (high-power dual-band) -- RTL8733BU (compact USB adapter) - -**Ground Station (your side):** -- Any smartphone or tablet -- Any computer with WiFi -- Professional outdoor WiFi equipment -- FPV goggles with WiFi capability -- Literally any WiFi-enabled device! - -## Common Questions - -### "What's the video delay?" -Expect 40-70ms delay. This varies based on: -- Distance between VTX and ground station -- WiFi interference in the area -- Processing power of your ground station device -- Video quality settings - -### "Can I use professional WiFi equipment?" -Yes! This is a major advantage of APFPV. You can use: -- TP-Link outdoor access points -- Ubiquiti wireless equipment -- Any commercial WiFi gear with good antennas -- This gives you much better range than typical FPV systems - -### "What's the range?" -Range depends entirely on your equipment: -- Basic smartphone: 50-200 meters -- Good WiFi adapter: 200-500 meters -- Professional outdoor equipment: 1+ kilometers - -## Troubleshooting - -### Can't See "OpenIPC" WiFi Network -1. Make sure VTX is powered and firmware installed correctly -2. Wait 1-2 minutes after VTX boots up -3. Try restarting the VTX -4. Move closer to the VTX - -### Connected but No Video -1. Open web browser and go to `http://192.168.0.1` -2. Check if you can see the web interface -3. Try the PixelPilot app if on Android -4. Verify you're connected to the right network - -### Poor Video Quality -1. Move closer to reduce distance -2. Check for WiFi interference from other devices -3. Try different location away from other WiFi networks -4. Adjust video quality in the web interface - -### Web Interface Won't Load -1. Confirm you're connected to VTX's WiFi -2. Try `http://192.168.0.1` in different browsers -3. Clear browser cache and cookies -4. Restart both devices - -## Tips for Better Performance - -### Optimizing Your Setup -- Use 5GHz WiFi when possible (less crowded than 2.4GHz) -- Keep line of sight between VTX and ground station -- Use devices with good WiFi antennas. Use mix of directional and omnidirectional antennas. -- Test everything on the ground before flying - -## Safety and Best Practices - -**Before Flying:** -- Test complete system on the ground -- Verify video quality and delay -- Check WiFi range in your flying area -- Have backup visual observer - -**While Flying:** -- Maintain visual line of sight -- Account for 40-70ms video delay -- Monitor WiFi signal strength -- Stay within tested range limits - - -## What Makes APFPV Special - -Unlike complex mesh networking systems (WFB-NG, RubyFPV), APFPV: -- Requires no special ground station hardware -- Works with consumer WiFi equipment -- Has simple point-to-point connection -- Offers maximum compatibility with existing devices -- Provides easy web-based configuration - -APFPV bridges the gap between complex FPV systems and simple solutions, making FPV accessible to everyone while supporting professional equipment for advanced users. -## APFPV with Runcam-RX or other GS that have many net cards - - 1. Download the latest APFPV radxa image [here](https://github.com/OpenIPC/sbc-groundstations/) and click on APFPV v0.0.1 link - 2. Flash SD card using balena etcher or other similar software - 3. Once finished you just need to modify stream.sh and firstboot.sh - -In /script/firstboot.sh copy this block of code that will shearch external wifi card at the beginning of the file it should replace the ```wlan0``` connection script. - -```bash -#!/bin/bash - -SSID="OpenIPC" -PASSWORD="12345678" -EXCLUDE_IFACE="wlan0" - -echo "[*] scan wifi card" - -# list every wifi interface wlx or wlan expect wlan0 -WIFI_IFACES=$(ip -o link show | awk -F': ' '{print $2}' | grep -E '^wlan|^wlx' | grep -v "^$EXCLUDE_IFACE$") - -INDEX=1 - -for IFACE in $WIFI_IFACES; do - CONN_NAME="wifi$INDEX" - - echo "" - echo "=== wifi card detected : $IFACE → $CONN_NAME ===" - - # delete old connection - if nmcli connection show "$CONN_NAME" &>/dev/null; then - nmcli connection delete "$CONN_NAME" - fi - - # scan avaible wifi network - nmcli device wifi rescan ifname "$IFACE" - sleep 2 - - # connect to APFPV network - echo "[*] create $CONN_NAME..." - nmcli connection add type wifi ifname "$IFACE" con-name "$CONN_NAME" ssid "$SSID" \ - wifi-sec.key-mgmt wpa-psk wifi-sec.psk "$PASSWORD" \ - ipv4.method auto connection.autoconnect yes - - # enable ip route - if [[ "$CONN_NAME" == "wifi1" ]]; then - - nmcli connection modify "$CONN_NAME" ipv4.route-metric 100 - elif [[ "$CONN_NAME" == "wifi2" ]]; then - - nmcli connection modify "$CONN_NAME" ipv4.route-metric 200 - fi - - # enable connection - nmcli connection up "$CONN_NAME" - - INDEX=$((INDEX + 1)) -done - -echo "" -echo "[✓] evrything done, end of script" -``` - 4. In stream.sh disable ```wlan0``` using nmcli by pasting this line: - -```bash -nmcli device disconnect wlan0 -``` - -Thats all, now put the SD card in your vrx and turn it ON, you will get 2 wifi interfaces connected to APFPV credentials, and with ip route it will pick the best wifi card every time, the range should increase significantly. - -## Using APALink - -APALINK is a C program designed to keep your video link alive. It uses fallback logic to switch to a lower bitrate (e.g., 2 Mbps) when the signal is weak. - -### Installation - -To install it is easy as: - -1. Go to https://github.com/carabidulebabat/CaraSandbox -2. Follow the steps in the README.md. - -3. Copy the ap_alink binary to /usr/bin: - -'''bash -chmod 777 +x /usr/bin -''' - -4. Copy the ap_alink.conf file to the /etc/ folder. - -5. (Optional) Copy vtxmenu.ini to /etc/ as well to enable the APFPV menu. - -6. Go fly! - -### Settings - -You can edit the ap_alink.conf file: - -'''bash -bitrate_max=22 ## its the bitrate when good signal -bitrate_min=2 ## its the fallback bitrate -dbm_threshold=-47 ## this value is the threshold of when fallback mode needs to kick in. WARNING: set this value as your Wi-Fi RF sensitivity -''' - -- A lower threshold = better image quality for longer, but video may lag or freeze under weak signal. -- A higher threshold = fallback triggers faster, possibly reducing lag but also image quality. - -### Recommended Settings - -BL-M8812EU2: -'''bash -bitrate_max=12 -bitrate_min=2 -dbm_threshold=-52 -''' - -BL-R8812AF1: -'''bash -bitrate_max=10 -bitrate_min=2 -dbm_threshold=-48 -''' - -### VTXMENU - -Navigate to the MSP menu just like in HDZero or WFB-NG. - -Inside the "BASIC SETTING" submenu, you have: - -- Tx Power: 1500 or 2000 (representing MIN/MAX power). 25mw or 100mw. -- Channel: Every 5GHz Wi-Fi channel is listed. -- AutoPower 0 or 1 enable set tx power auto of iw - -That’s All - -Straightforward, easy to understand — just plug and fly without overthinking. - diff --git a/src/content/docs/use-cases/fpv/wfb-ng/-quick-start.md b/src/content/docs/use-cases/fpv/wfb-ng/-quick-start.md deleted file mode 100644 index 35b026b..0000000 --- a/src/content/docs/use-cases/fpv/wfb-ng/-quick-start.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: A Step-by-Step Installation Guide -description: A guide designed to provide a detailed walkthrough for setting up an FPV (First Person View)using OpenIPC ---- - -This guide is designed to provide a detailed walkthrough for setting up an FPV (First Person View) system using OpenIPC. It is structured into several key steps. - -:::caution -While following these steps please use only tested hardware(mainly net cards). Only on tested net cards you will get good performance, on untested net cards you will get constant breakups or another unpredictable glitches. Basically all tested net cards are listed in Net cards section, if you can't find your net card there - you will probably have poor link performance. -::: -## Key Steps Overview - -1. **Choosing hardware** -2. **Air Unit setup** -3. **Ground Station setup** -4. **Flight!** - -## Choosing hardware - -### Step 1: Ground Station choice: SBC GS vs PixelPilot - -#### Step 1.1: Basic understanding -SBC GS and PixelPilot is software/hardware combo that can be used as video receiver for OpenIPC FPV system. SBC GS is built using SBC(single board computer) as hardware and software that is maintained by OpenIPC FPV dev team, it has cutting edge features because of ease of development while being harder to setup and use. PixelPilot(PP later) on other hand is software package that uses Android device as it's hardware part, in most cases it has less features but it is a lot easier in setup and use. - - -#### Step 1.2: Hardware choice - -- SBC GS can use RTL8812EU and RTL8812AU and Radxa zero 3w/3e. -- PP can use only RTL8812AU and Snapdragon based Android devices(Meta Quest too). - -#### Step 1.3: Performance - -Performance vise PP will outperform SBC GS in computing power and latency in most cases, radio-stack performance depends on chosen Net cards and antennas. SBC GS has advantage in Net cards choice factor, it has BL-M8812EU2 support which is considered superior for GS use. - -#### Step 1.4: Buying Ground Station - -- Premade SBC GSes are sold, examples are RunCam WiFiLink-RX and Emax Wyvern Link OpenIPC Goggle VRX, which are considered good and proven by OpenIPC FPV devs. For SBC GS you need a good analog goggles with low latency HDMI input. -- For PP Ground Station you need Android device which is based on Snapdragon SoC and at least 1 AU based Net card. Meta Quest VR HMDs series is tested and proven to work with PP effortlessly, to install PP on Quest series you need to use SideQuest. - -#### Step 1.5: Cost comparison - -- For SBC GS you need a good analog goggles, recommended goggles are: **HDZero BoxPro(299 USD), HDZero Goggle(649 USD), Skyzone SKY04O(), Skyzone SKY04O pro(), Skyzone SKY04X PRO() and SBC GS itself which is priced about 90-100USD. But it is cheaper approach if you already have good analog goggles. -- For PP you need a Snapdragon based Android device and at least 1 AU based net card. Some air units are sold with bundled AU based net card specifically for that, notably - WiFiLink G set. For better experience you can use VR case for your phone or Meta Quest. - - -### Step 2: Choosing air unit - -#### Step 2.1: Basic understanding -Air unit(can be called VTX) is video transmitting device that runs OpenIPC firmware and sends video to ground station wirelessly. Air unit has 3 main components: sensor, SoC, transmitter. - -#### Step 2.2: Hardware choice -- Sensor: 2 main sensor models are IMX335 and IMX415. IMX335 has superior image quality and more performant modes(up to 1080p@120FPS) while IMX415 has worse image quality in general and best mode is 1080p@90FPS(720p@120FPS is supported). -- SoC: 2 main SoCs are SSC338Q and SSC30KQ. SSC30KQ is cut down version of SSC338Q(1 vs 2 cores). With SSC338Q you can get future-proof air unit with enough performance for basically any new firmware updates. -- Transmitter: There is 2 main transmitter types RTL8812EU and RTL8812AU. They are basically same in terms of performance. Most sold air units are RTL8812EU based. -:::caution -RTL8812EU does not support 40MHz injections, so it does not support WFB-NG 40MHz mode -::: - -## Air Unit setup - -### Step 0: Basic understanding -With PnP introduction air unit setup is just updating it's firmware to latest version. -:::caution -Ensure proper soldering and connections for stable operation. Always attach antennas to the WiFi modules before powering them on. Run air units with external fan on bench -::: - -### Step 1: Connection to FC -OpenIPC air units that are available on market are using HD plug connector, so connection to FC is performed in exactly the same way as other digital FPV systems. - -### Step 2: Companion installation and Ethernet configuration - -#### Step 2.1: Companion installation. -To install Companion you need to download the latest version of it first from [here](https://github.com/OpenIPC/companion/releases) and follow installation instructions listed there. - -#### Step 2.2: Ethernet configuration. - -##### Step 2.2.windows -- Connect your air unit to your PC`s Ethernet port with the Ethernet cable(or USB debug port). -- Open up a windows file browser, scroll down on the left bar and left click on Network, select properties. -- Select change adapter settings -- Double click on Internet Protocol Version 4 -- Enter numbers exactly as seen on image below. - ![image](/images/configuration-windows.png) -- Done - -##### Step 2.2.macos -- Connect your air unit to your PC`s Ethernet port with the Ethernet cable(or USB debug port). -- Open Settings. -- Continue as in the screenshots below. - ![image](/images/configuration-macos-1.png) - ![image](/images/configuration-macos-2.png) -- Done - -### Step 3: Firmware update. -#### Step 3.1: Connecting air unit to a computer -* Connect Ethernet cable to your air unit. ![image]/images/ethernet-cable.png) -* Connect another end of Ethernet cable(or USB debug port) to your PC. -* Power on your air unit using battery or USB debug port. -* Connect to air unit using OpenIPC Companion with this credentials. - -| IP | Password | -|:------:|:---------:| -|192.168.1.10 | 12345 | - -#### Step 3.2: Firmware update - -After successful connection go to firmware tab and select firmware mentioned in hardware article for your air unit, then press "Update" button. ![image](/images/openipc-companion-firmware-submenu.png) - -:::tip -After firmware update all air unit's configuration can be made using VTXMENU, VTXMENU operates exactly as HDZero menu -::: - -### Step 4: Power settings -Power level as standard is set to 0(pit mode or 25mW). You can change it in VTXMENU in basic settings section. To set higher power output - just choose higher number then choose save, please reboot after that. -:::caution -Set power level accordingly to laws in your country, stock 25mW is legal in majority of countries. -::: - -## Ground Station setup -If you are using SBC GS follow steps that have .SBC ending, for PixelPilot .PP - -### Step 1.SBC -For that you need a SD card that is 8 or more GB in size. - -#### Step 1.1.SBC: Firmware update -Please go to [SBC GS](https://github.com/OpenIPC/sbc-groundstations) and download Radxa zero 3W/E 2.0.0 beta 2 stock image that is maintained by @JohnDGodwin. Extract downloaded .xz file and flash contents to SD card using balenaEtcher or another similar program of your choice. -:::caution -Runcam WiFiLink-RX has modified bootloader, so it won't boot from SD card, please use [this](/hardware/runcam/vrx/recoverbadflash/) article to flash latest firmware. -::: - -#### Step 1.2.SBC: Basic setup -After flashing SD card replug it to PC and open new directory called config, open file ```setup.txt``` with text editor and perform this: -- Set your desired screen resolution and refresh rate in the screen-mode file. Format is WxH@fps -- Common values would be 1920x1080@60, 1920x1080@120, 1280x720@60, 1280x720@120. This does not need to match your camera settings, you want to set it to either the highest framerate or highest resolution the screen is capable of. -- For smooth DVR playback, set the rec_fps to the fps at which your camera is shooting. e.g. 60, 90, 120 -- Set your GPIO layout. Accepted values are Ruby, Bonnet, Runcam, and Custom. - -### Step 1.PP -All you need is Snapdragon based Android device and at least one RTL8812AU based net card. - -#### Step 1.1.PP: Install and fly -To download PixelPilot you need to go to [this](https://github.com/OpenIPC/PixelPilot/releases) link and download the latest version of it. Then install it on your device as standard application(for Meta Quest you need to use [SideQuest](https://sidequestvr.com/) for that). After installation run it and give access to VPN, then connect net card and you are done. -:::tip -You can set higher txpower in Adaptive link settings in PP. It can greatly increase you link performance, but with higher txpower - net card will produce more heat and some Android devices can't output enough power through USB port on higher txpower values. So be sure that you can cool your net card at higher txpower settings. -::: - -## Flight! -Do not push this system too far on first few flights, you need to be used to digital FPV system if you are coming from analog system. Your link performance can be bad in city areas because of a lot of WiFi access points, If you have bad performance - consider switching to different channel. If issues persist - change OTG adapter if you are using Android GS. diff --git a/src/content/docs/use-cases/fpv/wfb-ng/groundstation-nvr.md b/src/content/docs/use-cases/fpv/wfb-ng/groundstation-nvr.md deleted file mode 100644 index 95f6c67..0000000 --- a/src/content/docs/use-cases/fpv/wfb-ng/groundstation-nvr.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: GroundStation on NVR -description: How to make an NVR Board work with OpenIPC ---- - -## Upgrade from original HI3536DV100 NVR board firmware to OpenIPC FPV firmware - -- Install [PUTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) and [TFTP](https://pjo2.github.io/tftpd64/) server -- Download actual [image](https://openipc.org/cameras/vendors/hisilicon/socs/hi3536dv100/download_full_image?flash_size=16&flash_type=nor&fw_release=fpv) for NVR from OpenIPC site -- Upload this image to your TFTP server -- Turn off NVR power, connect USB adapter to your NVR UART, specify which COM port on your PC -- Go to U-Boot with quick press Ctrl+C at power on -- Execute a set of commands each line separately - -``` -## Сhanging the ip address of the NVR board and the ip address of your TFTP server -setenv ipaddr 192.168.1.10; setenv serverip 192.168.1.254 -mw.b 0x82000000 0xff 0x1000000 -tftp 0x82000000 openipc-hi3536dv100-fpv-16mb.bin -sf probe 0; sf lock 0; -sf erase 0x0 0x1000000; sf write 0x82000000 0x0 0x1000000 -reset -``` - -## The result - -![](/images/fpv-nvr-hi3536dv100-openipc-ready.webp) - -## Buy a device - -- [https://www.aliexpress.com/item/1005004023376532.html](https://www.aliexpress.com/item/1005004023376532.html) -- [https://www.aliexpress.com/item/1005002358182146.html](https://www.aliexpress.com/item/1005002358182146.html) diff --git a/src/content/docs/use-cases/fpv/wfb-ng/groundstation-radxa-zero-3w.md b/src/content/docs/use-cases/fpv/wfb-ng/groundstation-radxa-zero-3w.md deleted file mode 100644 index 72bb0eb..0000000 --- a/src/content/docs/use-cases/fpv/wfb-ng/groundstation-radxa-zero-3w.md +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: GroundStation on Radxa ZERO 3W -description: How to make a Radxa ZERO 3W work with OpenIPC -version: 1.9.9 ---- - -### Radxa OpenIPC Ground Station -[Radxa 101](https://wiki.radxa.com/Zero/getting_started) - -## Enclosure Models - -1. [OpenIPC VRX Enclosure](https://www.printables.com/model/1051224-openipc-vrx-enclosure) -2. [OpenIPC Radxa GS Case](https://www.printables.com/model/967795-openipc-radxa-gs-case) -3. [Another OpenIPC Radxa GS Case](https://www.printables.com/model/979788-another-openipc-radxa-gs-case) -4. [OpenIPC GS Case V1](https://www.printables.com/model/1034290-openipc-gs-case-v1) -5. [A Case for the OpenIPC GS](https://www.printables.com/model/988543-a-case-for-the-openipc-gs) -6. [Radxa Zero 3W GS Box](https://www.printables.com/model/822826-radxa03w-gs_box) -7. [OpenIPC Radxa Zero 3W HDMI Ground Station](https://www.printables.com/model/1020246-openipc-radxa-zero-3w-hdmi-ground-station) -8. [Radxa Zero 3W Case for OpenIPC](https://www.printables.com/model/1054879-radxa-zero-3w-case-for-openipc) -9. [OpenIPC VRX Case on Thingiverse](https://www.thingiverse.com/thing:6680584) -10. [OpenIPC Radxa Zero 3W HDZero Rail Mount](https://www.printables.com/model/811132-openipc-radxa-zero-3w-hdzero-goggle-case-rail-moun/files) -11. [iSpy Another OpenIPC VRX](https://www.printables.com/model/1196394-ispy-another-openipc-sbc-vrx-case) -12. [The Crown](https://www.printables.com/model/1233920-the-crown-radxa-sbc-openipc-ground-station-3x-eu2) -13. [Radxa Zero 3W OpenIPC](https://www.printables.com/model/1086989-radxa-zero-3w-openipc) -14. [OpenIPC GS Radxa zero VRX Case](https://www.printables.com/model/1109931-openipc-gs-radxa-zero-vrx-case) -15. [OpenIPC Radxa Zero 3W VRX case](https://www.printables.com/model/1238633-openipc-radxa-zero-3w-vrx-case-3x-eu-rx-cards-w-hd) -16. [OpenIPC Ruby_FPV GS Radxa zerro 3w based](https://www.printables.com/model/1238753-openipc-ruby_fpv-gs-radxa-zerro-3w-based) -17. [ORV2](https://github.com/PaddyP90/ORV2) - -## Prerequisites - -- Download lastest [image](https://github.com/OpenIPC/sbc-groundstations/releases/latest) -- Install [PUTTY](https://www.putty.org/) -- Optionally Install an OpenIPC Configurator - - [Multi-Platform OpenIPC Configurator](https://github.com/OpenIPC/openipc-configurator) - - [Windows OpenIPC Configurator](https://github.com/OpenIPC/configurator/releases/) - -## STEP 1: Flashing - -### SD Card - (Note please use a Good quality Class 10 SD card Capacity more than 16 GB ) -* See [getting started](https://wiki.radxa.com/Zero/getting_started) -* Extract the radxa_x.x.x_.img.xz using [7Zip](https://www.7-zip.org/) to get radxa_x.x.x_.img . -* Use tools like [balenaEtcher](https://etcher.balena.io/) or [rufus](https://rufus.ie/en/) to flash it to your SD card . -* After flashing unplug and plug you SD card you will see 2 partition . -* Config Partition (which will have all the configuration files inside) -* (IMG 2.0.0) A normal FAT32 partition (which will have all the DVR recordings for easy extraction ) - - - Radxa provided [tools](https://dl.radxa.com/tools/) - -### EMMC -* 1.9.9 image is now able to flash the image to your onboard emmc. - - Flash the radxa_1-9-9_emmc-flasher image to an sd card and boot, - - Then press the MHZ_TOGGLE gpio button (pin 38) once to begin flashing the image to your onboard emmc. - - Be patient, the total procedure should take around 3-5 minutes. - -## STEP 2: Setup - -- Connect a screen and wireless adapter(s) to radxa. - -### SD Card -* Edit the settings files like a usb drive: - - Plug in your sd card to your computer and a directory called /config should mount. - - Inside, navigate to the scripts folder. - - - Set your desired screen resolution and refresh rate in the screen-mode file. - - Format is WxH@fps -- Common values would be 1920x1080@60, 1920x1080@120. 1280x720@60, 1280x720@120. (You can do higher camera framerate than goggles are set to.) - - You want to set it to either the highest framerate or highest resolution the screen is capable of. - - - For smoother DVR playback, set the dvr-fps inside the rec-fps file to the fps at which your camera is shooting. e.g. 60, 90, 120 - - - If you are using ground-based msposd, set your osd file to ground now. - -### EMMC/SD Card -* AP Mode - - Default screen-mode is 1920x1080@60. Granted a compadible screen is connected (& wifi adapters)... The openIPC service will start - - Long-press the 40MHz_Toggle button, gpio_38, and the onboard wi-fi will enter AP mode and broadcast a wireless network called 'RadxaGroundstation' with password 'radxaopenipc'. - - Connect to this network and navigate in a browser to 'radxa-zero3.local' or '192.168.4.1:5000' to enter the webUI where you can access DVR files, change groundstation settings, and change camera settings. - - Change the screen-mode, OSD, & rec-fps settings accordingly. - -* Keyboard Setup - - Without wifi adapters connected (Or if connected screen is not 1080@60fps compadible...) the openIPC service will not start - - Connect a keyboard to the device. - - Follow the details in the 'Optionals' tab below regarding logging in & setting up a home network to allow for remote connection. - - While keyboard is connected to device, you can navigate to /config/scripts/ and edits the files accordingly. (Or do so from SSH.) - -* EMMC DVR Recordings - - DVR is saved to /media on the emmc. - - If you want to have onboard emmc and have videos saved to an empty sd card, mount the sd card to /media in fstab. - - [See more](https://github.com/OpenIPC/sbc-groundstations/wiki/How-to-save-DVR-files-to-the-SD-card-slot-(for-emmc-only)) - -## Step 3: Boot the system. - -If all your settings are correct and you have a wireless card attached to the usb for wfb-ng, then the openipc.service will begin. - -Note AP mode may not work the very first time you boot the system. Give the system a reboot and things will work. - -DVR is saved to the media folder in your root directory. DVR can be accessed either at /media or via the AP mode webUI. - -This image has support for groundstation-side rendering of MSPOSD over the wfb-ng tunnel. To enable this functionality, go into /config/scripts/osd and change from air to ground. You must enable the MSPOSD forwarding (or GROUND osd) on the camera for this to work. - -Adjust your channel as needed. - -(FYI the 40mhz radxa tunnel will connect to 20mhz camera streams.) - -## GPIO Buttons -- Connect a button or switch to 3.3v and physical pins 16/18 to increase/decrease your vrx channel respectively. -- Connect a button or switch to physical pin 38 and 3.3v to toggle your vrx bandwidth between 20MHz and 40Mhz. -- Connect a button or switch to join 3.3v and pin 32 to start/stop recordings. -![402592117-6b524a5a-37d8-4bc0-8bdd-e3b15b33ddf5](https://github.com/user-attachments/assets/83bf17f5-7504-411e-9544-41adf2a300bb) - -To record DVR, push the button once. The stream will start and DVR will begin recording. When finished, push the button once to stop the recording and save the file. - -DVR is saved to the Videos folder in your home directory. DVR can be accessed either at /home/radxa/Videos or via a media server. Connect your groundstation to your home network and it can be accessed via a web browser at x.x.x.x:8080 -- replace x.x.x.x with your groundstation's local ip address. - -Connect Led long lead to +5v, Led short lead via a 1k resistor to GPIOAO_2. - -```bash -sudo gpioset gpiochip4 11=0 # turn LED on -sudo gpioset gpiochip4 11=1 # turn LED off (actually it is very # simply lit because i guess logic level 0 is not 0 volts) -``` - -Circuit wiring: +5v —> +Led- —-> 1k resistor —> pin 28 on Radxa z3w - -
- -A note about the DVR recording in this image. To ease the strain on the processor, we record to to a ts file rather than mp4 or mkv. As a result, there is no "smear" effect recorded, the uncaptured frames are simply dropped. You may notice jumps in your recording where there was no frame information. - -## Optionals - -Note: openipc.service fails without wifi adapters, unplug your adapters to be able to login to radxa: -- Username: radxa -- Password: radxa - -SSH into camera: -Use the onboard wi-fi to connect to your home network: (note - if you are running your fpv system on the 5.8ghz channels, it would be ideal to connect the onboard wifi to a 2.4ghz network to avoid any possible interference.) -- Method 1: Enter nmtui, go down to Activate a connection and activate one of the detected wifi networks. -- Method 2: Edit the config.txt file in /config to contain connect_wi-fi YOUR_WIFI_SSID YOUR_WIFI_PASSWORD -To check your connection after, run nmcli and your wlan0 connection should be green. Make a note of your ip address. We will need this to ssh into the system later. - -Changing password to radxa (for security): -Once logged into the radxa type 'passwd' to change password for the user. - -Powering radxa from GPIO Pins: -Wire any ground pin & pin 2/4 with 5v from at least a 1a power source. - -Using power USB as host port (allows 2 wifi adapters without usb hub): -Type in terminal restup and navigate to overlays. From there manage the overlays, and find the 'OTG to Host' port setting. Enable it and reboot radxa. - -It is possible to overclock your radxa for higher bitrate performance. - -## About Adaptive Link - -This service will only trigger when enables on the camera for bidirectional link. - -## Result - -drawing - -## Where to buy - -- [Radxa Zero 3W](https://radxa.com/products/zeros/zero3w/#buy) -- [AliExpress](https://www.aliexpress.us/item/3256807428419499.html) - -## RubyFPV -see [RubyFPV Hardware](https://rubyfpv.com/hardware.php) diff --git a/src/content/docs/use-cases/home-automation/-quick-start.md b/src/content/docs/use-cases/home-automation/quick-start.md similarity index 100% rename from src/content/docs/use-cases/home-automation/-quick-start.md rename to src/content/docs/use-cases/home-automation/quick-start.md diff --git a/src/content/docs/use-cases/openwrt.md b/src/content/docs/use-cases/openwrt.md new file mode 100644 index 0000000..1bce191 --- /dev/null +++ b/src/content/docs/use-cases/openwrt.md @@ -0,0 +1,114 @@ +--- +title: OpenWrt +description: Use an OpenWrt router as a WFB-NG ground station for OpenIPC FPV. +--- + +OpenIPC provides an OpenWrt package set for running [WFB-NG](https://github.com/svpcom/wfb-ng) on router hardware. This allows an OpenWrt router to work as a lightweight WFB-NG ground station for OpenIPC FPV systems. + +The project lives at [OpenIPC/wfb-ng-openwrt](https://github.com/OpenIPC/wfb-ng-openwrt). + +:::caution +The OpenWrt WFB-NG package is not fully tested yet. Use it carefully and validate the link on the bench before flight. +::: + +## When to Use It + +Use the OpenWrt path when you want the receiver to be a router instead of a phone, SBC, or laptop. A router can be mounted higher or farther away from the pilot, for example on a roof or mast, and connected back to the viewing device over Ethernet, Wi-Fi, RNDIS, or another network path. + +A dual-band OpenWrt router with USB is recommended. See the project's [tested devices](https://github.com/OpenIPC/wfb-ng-openwrt/wiki/0.-Tested-devices) page before choosing hardware. + +## Package Options + +The OpenWrt package exposes several build options: + +- `wfb-rx`: installs the `wfb_rx` binary. +- `wfb-tx`: installs the `wfb_tx` binary. +- `wfb-keygen`: installs the `wfb_keygen` binary. +- `wfb-key`: installs the default key used by OpenIPC and Android FPVue, linked to `/etc/gs.key`. +- `wfb-gs`: installs the OpenWrt WFB ground-station scripts and configuration. + +The `wfb-gs` option is the practical ground-station package. It sets the wireless adapter to monitor mode, receives data from the wireless interface, and forwards the stream to the device that decodes and displays video. + +## Features + +The package is designed to be compatible with OpenIPC FPV and supports: + +- using the router's integrated wireless card instead of an external USB Wi-Fi adapter; +- 2.4 GHz and 5 GHz bands on dual-band routers; +- forwarding video and MAVLink over Ethernet, Wi-Fi, RNDIS, or other network paths; +- unicast mode with automatic destination switching between an Android phone over USB tethering and a PC on Ethernet or Wi-Fi; +- multicast mode for sending to Android over RNDIS and an SBC over Ethernet at the same time. + +:::note +QGroundControl on Windows may not support multicast in the same way as other clients. Test the exact receiver application before relying on multicast. +::: + +## Basic Configuration + +OpenWrt settings are managed through UCI. After changing settings, commit the changes and reload the configuration. + +### Set Channel + +```bash +uci set wfb-gs.config.channel='36' +uci commit +reload_config +``` + +### Set Unicast Destination + +This example sends the stream to `192.168.1.100` in unicast mode: + +```bash +uci set wfb-gs.config.ip_pc='192.168.1.100' +uci set wfb-gs.config.mode='unicast' +uci commit +reload_config +``` + +### Edit the Config File + +You can also edit the config file directly: + +```text +/etc/config/wfb-gs +``` + +After saving the file, run: + +```bash +reload_config +``` + +## Defaults + +Default values from the package documentation: + +| Setting | Default | +| --- | --- | +| Router IP | `192.168.1.1` | +| Config file | `/etc/config/wfb-gs` | +| Stream destination IP | `192.168.1.2` | +| Channel | `161` | +| Bandwidth | `20MHz` | + +## Hardware Notes + +A dual-band router with a supported wireless chipset is preferred. The integrated Wi-Fi card can be used for WFB-NG reception, which keeps the setup compact and avoids an external USB Wi-Fi adapter in some builds. + +If you need a more traditional receiver setup, compare this path with: + +- [FPV over WFB-NG](/use-cases/fpv-over-wfb-ng/) +- [Ground Station on Radxa Zero 3W](/use-cases/fpv-over-wfb-ng/groundstation-radxa-zero-3w/) +- [FPV over Wi-Fi (APFPV)](/use-cases/ap-fpv-over-wi-fi/) + +## Planned Work + +The upstream project lists these future ideas: + +- use multiple routers to receive; +- receive from 2.4 GHz and 5 GHz bands simultaneously. + +## Source + +- [OpenIPC/wfb-ng-openwrt](https://github.com/OpenIPC/wfb-ng-openwrt) diff --git a/src/content/docs/use-cases/video-surveillance/-quick-start.md b/src/content/docs/use-cases/video-surveillance/-quick-start.md deleted file mode 100644 index 3ac316f..0000000 --- a/src/content/docs/use-cases/video-surveillance/-quick-start.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Quick Start -description: A guide on how to turn your camera into an IP surveillance camera. ---- -This guide will help you get started on turning your camera into an IP Security Camera! - -## Key Steps Overview - -1. **Flashing your camera with OpenIPC** -2. **Setting up your camera for the first time** -3. **Setting up Majestic** -4. **Additional Resources** - -> **Note:** You might need to solder to flash your camera, This might not be easy for the average Joe. - -## Hardware Requirements - -- **Camera**: A camera with a supported SoC - -- **FTDI Adapter**: Essential for the flashing process. - ![FTDI Adapter](/images/sbs-ftdi.jpg) - - - [FTDI Adapter Purchase Link](https://www.ebay.co.uk/itm/203581591537?hash=item2f66688ff1) - -- **Additional Supplies**: Wires and a soldering iron. - -> **Note:** This is all the basic requirements needed for a basic IP Security Camera. - -### Step 1: Flashing your camera with OpenIPC - -#### Step 1.1: Flashing the Camera - -- **Connection Points**: Identify the UART connection points on the camera board. - ![Camera Pinout](/images/sbs-Camera-Pinout.jpg) -- **Using FTDI Adapter**: Connect the camera to the FTDI adapter for console access. -- **Flashing Process**: Use console commands to flash the OpenIPC firmware onto the camera. -> **Note:** If you get garbled output or no output, Try flipping RX and TX. - -#### Step 1.2: Setting up Serial Terminal Emulation - -- **MacOS Instructions**: Utilize built-in commands to establish a connection. -- **Windows Instructions**: Install and use [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) for serial terminal emulation. - -#### Step 1.3: Setting up a TFTP Server - -- **MacOS**: Activate the built-in TFTP server. -- **Windows**: Install a TFTP server application, such as SolarWinds. - -#### Step 1.4: Getting the Correct Firmware Image - -- Download the appropriate OpenIPC firmware for your camera's SoC. - - [Firmware Download Page](https://openipc.org/supported-hardware/featured) - -#### Step 1.5: Opening a Console and Flashing the Camera - -- Boot the camera while connected to the serial console and flash the firmware. -- While plugging in the camera, You may have to hold Enter to enter the bootloader. -- Follow the provided commands from the firmware download page. - -### Step 2: Setting up your camera for the first time - -- If you have trouble getting in, Use 'root' for the username and '12345' for the password. -- You will be asked to set the password and be given the option to put the web interface into dark mode. -- Make sure to use a secure password! - -### Step 3: Setting up Majestic - -- Due to major changes to the web interface at this time, This information is not available at the moment. - -### Step 4: Additional Resources - -- GPIO Pinout: https://github.com/OpenIPC/wiki/blob/master/en/gpio-settings.md diff --git a/src/content/docs/use-cases/youtube-streaming.md b/src/content/docs/use-cases/youtube-streaming.md new file mode 100644 index 0000000..e6b1a44 --- /dev/null +++ b/src/content/docs/use-cases/youtube-streaming.md @@ -0,0 +1,122 @@ +--- +title: YouTube Streaming +description: Configure YouTube Live for OpenIPC camera streaming with HLS and H.265. +--- + +This guide describes the YouTube-side setup for streaming an OpenIPC camera to YouTube Live with HLS ingestion. It is useful for long-running camera streams where temporary network drops should not permanently stop the event. + +## Requirements + +Before starting: + +- enable live streaming on the YouTube account; +- use the YouTube account connected to the target channel; +- be ready to authorize requests with Google OAuth 2.0; +- use the YouTube Data API sample tool at [YouTube Live API code samples](https://developers.google.com/youtube/v3/live/code_samples). + +:::note +If YouTube live streaming is not enabled for the account, API calls can fail even when the request body is correct. +::: + +## HLS and H.265 + +Use YouTube HLS ingestion for this setup. YouTube's reference documentation is [Delivering Content via HLS](https://developers.google.com/youtube/v3/live/guides/hls-ingestion). + +The important stream settings are: + +```json +"cdn": { + "ingestionType": "hls", + "frameRate": "variable", + "resolution": "variable" +} +``` + +`variable` frame rate and resolution are useful for camera streams where the exact video mode may change or where the stream is not a fixed 1080p/60fps broadcast. + +## Create a Live Stream + +1. Open [YouTube Live API code samples](https://developers.google.com/youtube/v3/live/code_samples). +2. Select `liveStreams` as the resource. +3. Select `insert` as the method. +4. Open the `insert` use case in the table. +5. In the request body, set the `cdn` object to HLS with variable frame rate and resolution: + +```json +"cdn": { + "ingestionType": "hls", + "frameRate": "variable", + "resolution": "variable" +} +``` + +6. In the credentials section: + - select `Google OAuth 2.0`; + - select the `https://www.googleapis.com/auth/youtube` scope; + - deselect `API Key`. +7. Press `Execute` and authorize the request with the YouTube-connected account. +8. Confirm that the response status is `200`. +9. Save the stream `id` from the response. You will need it when binding the broadcast. + +## Create a Broadcast + +1. Open [YouTube Live API code samples](https://developers.google.com/youtube/v3/live/code_samples). +2. Select `liveBroadcasts` as the resource. +3. Select `insert` as the method. +4. Open the `insert` use case. +5. Fill the broadcast snippet: + +```json +"snippet": { + "title": "My Hometown Camera", + "scheduledStartTime": "2026-12-31T00:00:00.000Z", + "scheduledEndTime": "2027-01-01T00:00:00.000Z" +} +``` + +Use a start time in the future. The scheduled end time must be after the scheduled start time. + +6. In the credentials section: + - select `Google OAuth 2.0`; + - select the `https://www.googleapis.com/auth/youtube` scope; + - deselect `API Key`. +7. Press `Execute` and authorize the request. +8. Confirm that the response status is `200`. +9. Save the broadcast `id` from the response. + +## Bind the Broadcast to the Stream + +1. Open [YouTube Live API code samples](https://developers.google.com/youtube/v3/live/code_samples). +2. Select `liveBroadcasts` as the resource. +3. Select `bind` as the method. +4. Open the `Bind a broadcast to a stream` use case. +5. Set: + - `id` to the broadcast ID from the previous step; + - `streamId` to the live stream ID from the stream creation step. +6. Use Google OAuth 2.0 with the `https://www.googleapis.com/auth/youtube` scope and no API key. +7. Press `Execute` and confirm a `200` response. + +## Go Live + +Open [YouTube Studio](https://studio.youtube.com/), click `Create`, then `Go live`. + +After the YouTube side is prepared, configure the camera or streaming host to send video to the HLS ingestion endpoint returned by YouTube. + +## Troubleshooting + +### The API Call Fails + +Check that live streaming is enabled for the YouTube account and that the request uses OAuth 2.0 with the YouTube scope. An API key alone is not enough for creating and binding streams. + +### The Broadcast Stops After a Disconnect + +Use a scheduled broadcast with a start date far in the future. This reduces the chance that a temporary camera disconnect ends the event permanently. + +### Wrong Stream Parameters + +Use HLS ingestion with `variable` frame rate and `variable` resolution unless you are sure the camera always sends one fixed mode. + +## Source + +- [OpenIPC wiki: youtube-streaming.md](https://github.com/OpenIPC/wiki/blob/master/en/youtube-streaming.md) +- [YouTube HLS ingestion guide](https://developers.google.com/youtube/v3/live/guides/hls-ingestion) diff --git a/src/content/docs/video-surveillance/index.md b/src/content/docs/video-surveillance/index.md new file mode 100644 index 0000000..4fda099 --- /dev/null +++ b/src/content/docs/video-surveillance/index.md @@ -0,0 +1,33 @@ +--- +title: Video Surveillance +description: The primary OpenIPC path for building and operating IP surveillance cameras. +--- + +OpenIPC is first of all firmware for IP cameras and video surveillance. Start here when your goal is to turn a supported camera into a regular network camera for RTSP, ONVIF-style workflows, NVR integration, recording, or Majestic-based operation. + +Other sections such as FPV, OpenWrt, home automation, and streaming are practical applications built on top of the same camera platform. They are useful, but they do not replace the standard video surveillance path. + +## Recommended Path + +1. Check that the camera SoC, sensor, flash type, and board layout are supported. +2. Install OpenIPC firmware using the matching recovery or flashing guide. +3. Complete first boot, set a strong password, and verify network access. +4. Configure Majestic, RTSP streams, snapshots, audio, OSD, and recording as needed. +5. Connect the camera to an NVR or monitoring system. +6. Keep recovery materials ready before changing firmware on production cameras. + +## Core Pages + +- [Quick Start](/video-surveillance/quick-start/) +- [Streams and Majestic](/video-surveillance/streams-and-majestic/) +- [NVR Integration](/video-surveillance/nvr-integration/) +- [Supported SoC](/video-surveillance/soc/) + +## Related Documentation + +- [Firmware Updates](/firmware-recovery/firmware-updates/) +- [Sysupgrade](/firmware-recovery/online-sysupgrade/) +- [General UART Flashing Guide](/firmware-recovery/general-uart-flashing-guide/) +- [Web-Based Camera Recovery Tool](/firmware-recovery/defib/) +- [Majestic](/system-components/majestic/) +- [OpenIPC Dashboard](/system-components/dashboard/) diff --git a/src/content/docs/video-surveillance/nvr-integration.md b/src/content/docs/video-surveillance/nvr-integration.md new file mode 100644 index 0000000..15a7d71 --- /dev/null +++ b/src/content/docs/video-surveillance/nvr-integration.md @@ -0,0 +1,54 @@ +--- +title: NVR Integration +description: Connect OpenIPC cameras to NVR and monitoring systems. +--- + +After an OpenIPC camera is booting reliably and Majestic is producing video, the next step is to connect it to an NVR, VMS, or monitoring system. + +## Typical Integration Path + +1. Give the camera a stable IP address or DHCP reservation. +2. Verify the Web UI and SSH access. +3. Verify the RTSP stream from another machine. +4. Add the camera to the NVR using the camera IP, stream path, credentials, and RTSP port. +5. Confirm recording, playback, and reconnect behavior. + +## What to Verify First + +Before adding the camera to an NVR, verify locally: + +- video starts after reboot; +- the camera keeps the same network address; +- the stream uses a codec supported by the NVR; +- bitrate and frame rate are stable enough for the network and recorder; +- time and timezone are correct if recordings depend on timestamps. + +## Stream Settings + +Use [Streams and Majestic](/video-surveillance/streams-and-majestic/) to configure RTSP, codec, bitrate, frame rate, snapshots, audio, and motion detection. + +For conservative compatibility, start with H.264 and moderate bitrate. Increase quality only after the NVR records and reconnects correctly. + +## NVR Hardware + +OpenIPC also documents NVR-like hardware in the hardware section, including [NVR HI3536DV100](/hardware/sbcs/nvr-hi3536dv100/). That page is hardware-specific; this page is about connecting regular OpenIPC cameras to recording systems. + +## Troubleshooting + +### NVR Does Not Connect + +Check camera IP, credentials, RTSP port, firewall rules, and whether the stream works from a player on the same network. + +### Stream Connects but Drops + +Lower bitrate and frame rate, test H.264 first, and check whether the network or NVR CPU is overloaded. + +### Recording Time Is Wrong + +Check camera time, timezone, NTP, and the recorder's time settings. + +## Related Pages + +- [Streams and Majestic](/video-surveillance/streams-and-majestic/) +- [Majestic](/system-components/majestic/) +- [NVR HI3536DV100](/hardware/sbcs/nvr-hi3536dv100/) diff --git a/src/content/docs/video-surveillance/quick-start.md b/src/content/docs/video-surveillance/quick-start.md new file mode 100644 index 0000000..0202e23 --- /dev/null +++ b/src/content/docs/video-surveillance/quick-start.md @@ -0,0 +1,98 @@ +--- +title: Quick Start +description: Bring up an OpenIPC camera as a standard IP surveillance camera. +--- + +Use this guide as the shortest path from a supported camera board to a working OpenIPC surveillance camera. + +:::caution +First-time installation may require UART access, soldering, a TFTP server, or direct flash recovery. Check the exact board and SoC before writing firmware. +::: + +## 1. Identify the Hardware + +Before flashing, identify: + +- SoC vendor and model; +- image sensor model; +- flash type and flash size; +- UART pads and bootloader access method; +- existing firmware backup options. + +Start with [OpenIPC supported hardware](https://openipc.org/supported-hardware/featured) and the relevant hardware page. If the exact board is unknown, do not assume that a similar-looking camera uses the same flash layout. + +## 2. Prepare Recovery Tools + +Keep recovery tools ready before changing firmware: + +- USB-UART adapter; +- serial terminal such as PuTTY, `screen`, or `minicom`; +- TFTP server when the install flow needs one; +- matching firmware image from OpenIPC releases or Builder; +- stable power supply. + +For a generic UART workflow, use [General UART Flashing Guide](/firmware-recovery/general-uart-flashing-guide/). For broken bootloaders, see [Defib](/firmware-recovery/defib/), [Unbrick: SigmaStar](/firmware-recovery/unbrick-sigmastar/), or [Unbrick: Ingenic](/firmware-recovery/unbrick-ingenic/). + +## 3. Install OpenIPC + +Use the installation commands generated for the exact device or SoC. Run bootloader commands line by line and keep power stable while flash is being written. + +After flashing, let the camera boot fully before disconnecting power. + +## 4. Find the Camera IP + +After the first boot, connect the camera to the same network as your computer and find the address assigned to it. + +Recommended ways: + +- try the commonly used OpenIPC camera address first: `http://192.168.1.10/`; +- check the DHCP leases or client list on your router; +- look for a new device named `openipc` or similar in the router UI; +- scan the local subnet from your computer, for example with `nmap` if it is available: + +```bash +nmap -sn 192.168.1.0/24 +``` + +If you installed through UART, watch the serial boot log. OpenIPC usually prints network initialization and the assigned address during boot. + +When you find the address, open the Web UI in a browser: + +```text +http://CAMERA_IP/ +``` + +For SSH access, use: + +```bash +ssh root@CAMERA_IP +``` + +Replace `CAMERA_IP` with the actual address from your router, scan result, or UART log. + +:::note +`192.168.1.10` is a common OpenIPC camera address, but do not assume it is universal. The actual address depends on the image, network configuration, and whether DHCP is available. +::: + +## 5. First Login + +Default credentials on many OpenIPC builds are: + +```text +username: root +password: 12345 +``` + +Change the password during first setup. Verify that SSH and the Web UI work before changing stream settings. + +## 6. Verify Video + +Open the Web UI and confirm that the camera produces a live image. Then verify RTSP or snapshot access with [Streams and Majestic](/video-surveillance/streams-and-majestic/). + +## 7. Connect to an NVR + +After the camera is stable, add it to your recorder or monitoring system. See [NVR Integration](/video-surveillance/nvr-integration/). + +## 8. Update Safely + +When OpenIPC is already installed and booting normally, use [Firmware Updates](/firmware-recovery/firmware-updates/) or [Sysupgrade](/firmware-recovery/online-sysupgrade/). Do not update production cameras without a recovery path. diff --git a/src/content/docs/use-cases/video-surveillance/soc.md b/src/content/docs/video-surveillance/soc.md similarity index 100% rename from src/content/docs/use-cases/video-surveillance/soc.md rename to src/content/docs/video-surveillance/soc.md diff --git a/src/content/docs/video-surveillance/streams-and-majestic.md b/src/content/docs/video-surveillance/streams-and-majestic.md new file mode 100644 index 0000000..07d8214 --- /dev/null +++ b/src/content/docs/video-surveillance/streams-and-majestic.md @@ -0,0 +1,113 @@ +--- +title: Streams and Majestic +description: Configure and verify video streaming with Majestic on OpenIPC cameras. +--- + +Majestic is the main OpenIPC video streaming service for camera and surveillance use. It controls video streams, snapshots, RTSP, audio, OSD, night mode, motion detection, recording, and outgoing stream settings through `/etc/majestic.yaml`. + +## Configuration File + +The main configuration file is: + +```text +/etc/majestic.yaml +``` + +A fuller reference configuration can be available on the device as: + +```text +/etc/majestic.full +``` + +Use the Web UI for regular changes when possible. Use the file and CLI only when you need options that are not exposed in the interface. + +## RTSP + +RTSP is the standard path for NVR and surveillance integrations. In `majestic.yaml`, RTSP is controlled by the `rtsp` section: + +```yaml +rtsp: + enabled: true + port: 554 +``` + +After changing settings, restart or signal Majestic. On many OpenIPC builds, a HUP signal reloads the configuration: + +```bash +killall -HUP majestic +``` + +## Video Parameters + +Common primary stream settings live under `video0`: + +```yaml +video0: + enabled: true + codec: h264 + fps: 20 + bitrate: 4096 + rcMode: vbr +``` + +Change one thing at a time and verify the stream before increasing bitrate, frame rate, or resolution. + +## Snapshots and JPEG + +Majestic can provide JPEG snapshots. The OpenIPC wiki documents image endpoint options such as: + +```text +/image.jpg?width=640&height=360&qfactor=73&color2gray=1 +``` + +Use snapshots for monitoring dashboards, thumbnails, and basic health checks. + +## CLI Changes + +The OpenIPC wiki shows the `cli` helper for changing settings from the shell: + +```bash +cli -s .video0.codec h264 +cli -s .video0.fps 10 +killall -HUP majestic +``` + +Use CLI changes carefully on production cameras and keep a copy of the working configuration. + +## Motion Detection + +Majestic can call a script when motion is detected. The wiki documents this script path: + +```text +/usr/sbin/motion.sh [count] +``` + +Example debug flow: + +```bash +cli -s .motionDetect.enabled true +cli -s .motionDetect.debug true +killall majestic; sleep 3; majestic +``` + +## Troubleshooting + +If Majestic crashes and the watchdog reboots the camera, collect logs from another machine before they are lost: + +```bash +ssh root@192.168.1.10 "killall majestic; sleep 2; majestic" > majestic-$(date +"%F").log +``` + +Replace `192.168.1.10` with the actual camera address. + +## Related Pages + +- [Majestic](/system-components/majestic/) +- [NVR Integration](/video-surveillance/nvr-integration/) +- [Firmware Updates](/firmware-recovery/firmware-updates/) + +## Sources + +- [OpenIPC wiki: Majestic Streamer](https://github.com/OpenIPC/wiki/blob/master/en/majestic-streamer.md) +- [OpenIPC wiki: Majestic example config](https://github.com/OpenIPC/wiki/blob/master/en/majestic-config.md) +- [OpenIPC wiki: Troubleshooting Majestic](https://github.com/OpenIPC/wiki/blob/master/en/trouble-majestic.md)