Skip to content

t31: add XVI ISI-2010C device profile - #166

Merged
openipc-ai merged 1 commit into
OpenIPC:masterfrom
ArthurKoba:device/xvi-isi-2010c
Sep 21, 2026
Merged

openipc-ai merged 1 commit into
OpenIPC:masterfrom
ArthurKoba:device/xvi-isi-2010c

Conversation

@ArthurKoba

Copy link
Copy Markdown
Contributor

Adds a device profile for the XVI ISI-2010C — Ingenic T31N, GalaxyCore GC2053, 64 MiB RAM, 8 MiB SPI NOR and wired Ethernet.

Board-specific configuration:

  • GC2053 sensor selection.
  • H.264 as the default codec for compatibility; H.265 was also tested successfully.
  • PA16 / GPIO16 as the daylight sensor input.
  • PB26 / GPIO58 and PB25 / GPIO57 for the bistable IR-cut filter.
  • No SD/MMC, Wi-Fi or usable USB host path on the tested board.
  • Unused motor/PWM modules are excluded.
  • T31 audio support is retained.

The PCB includes the audio connector and supporting circuitry. The tested unit has no microphone or speaker fitted from the factory, but both audio capture and playback were verified by connecting external audio hardware to the existing interface.

Tested on a physical XVI ISI-2010C: firmware builds, flashes and boots successfully; Ethernet, GC2053 video, H.264/H.265 streaming, automatic day/night switching, IR-cut control, audio capture/playback and operation after reboot are working.

Add the T31N/GC2053 profile with the board's daylight-sensor and
bistable IR-cut GPIOs. Use H.264 by default while retaining the normal
T31 encoder support, including hardware-tested H.265.

Disable hardware absent from this board, remove unused motor/PWM
modules, and keep the working T31 audio path.
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Add XVI ISI-2010C T31N device profile

✨ Enhancement ⚙️ Configuration changes 📝 Documentation 🕐 10-20 Minutes

Grey Divider

AI Description

• Adds a buildable OpenIPC profile for the T31N-based XVI ISI-2010C camera.
• Configures GC2053 video, H.264 defaults, day/night GPIOs, Ethernet, and audio.
• Removes unsupported storage, wireless, USB, motor, and PWM components.
Diagram

graph TD
  P["Device Profile"] --> D["Buildroot Config"] --> F["Firmware Image"] --> H["ISI-2010C"]
  P --> K["Kernel Fragment"] --> F
  P --> O["Runtime Overlay"] --> F
  P --> X["Module Excludes"] --> F
Loading
High-Level Assessment

The approach follows the repository’s established per-device profile structure while reusing the generic T31 kernel configuration and limiting board differences to a fragment, overlay, and exclusion list. A shared GC2053 profile would reduce some defconfig duplication but would incorrectly couple board-specific flash, networking, GPIO, and peripheral assumptions, so the current isolation is preferable.

Files changed (6) +91 / -0

Enhancement (2) +78 / -0
t31_lite_xvi-isi-2010c_defconfigDefine the T31 lite firmware build +63/-0

Define the T31 lite firmware build

• Introduces the Buildroot profile for the T31 platform, GC2053 sensor, and 8 MiB NOR layout. It selects the standard OpenIPC services, Majestic video stack, T31 drivers, audio codecs, WireGuard, and compressed root filesystem formats.

devices/t31_lite_xvi-isi-2010c/br-ext-chip-ingenic/configs/t31_lite_xvi-isi-2010c_defconfig

customizer.shConfigure ISI-2010C runtime hardware defaults +15/-0

Configure ISI-2010C runtime hardware defaults

• Sets the board-specific upgrade image and GC2053 sensor. It enables daylight monitoring, maps the light sensor and bistable IR-cut GPIOs, and defaults video encoding to H.264 for compatibility.

devices/t31_lite_xvi-isi-2010c/general/overlay/usr/share/openipc/customizer.sh

Documentation (1) +1 / -0
README.mdList XVI ISI-2010C as a supported device +1/-0

List XVI ISI-2010C as a supported device

• Adds the completed XVI ISI-2010C profile to the device compatibility table with its T31N SoC, GC2053 sensor, wired-only connectivity, and 8 MiB NOR flash.

README.md

Other (3) +12 / -0
xvi-isi-2010c.fragmentDisable unsupported board peripherals and filesystems +7/-0

Disable unsupported board peripherals and filesystems

• Adds a kernel configuration fragment disabling MMC, wireless, USB, FAT, and VFAT support because the tested board exposes none of those facilities.

devices/t31_lite_xvi-isi-2010c/br-ext-chip-ingenic/board/t31/xvi-isi-2010c.fragment

modulesProvide an empty removable-storage module list +1/-0

Provide an empty removable-storage module list

• Documents that no removable-storage modules should be loaded for this board.

devices/t31_lite_xvi-isi-2010c/general/overlay/etc/modules

t31_lite.listExclude unused motor and PWM modules +4/-0

Exclude unused motor and PWM modules

• Removes pan/tilt motor and sample PWM modules from the firmware because the board does not populate those peripherals.

devices/t31_lite_xvi-isi-2010c/general/scripts/excludes/t31_lite.list

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can turn on the rule miner and Qodo learns your standards from review history

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@openipc-ai
openipc-ai merged commit 3924343 into OpenIPC:master Sep 21, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants