Three ways to use the camera: USB Camemake UVC, the phone app in Standalone, or the phone app in Server mode. The PC flashes the board. The live page is a lab view, not a substitute for those three.
2207:0016), MJPEG at full resolution. No phone. Mono / MIRA220 is 1400×1600 on every boot, any computer. Wi-Fi is not required.
https://server.example.com/camevision/v1.
Phone app: App and CameVision-App. Recorder: tools/camevision_agent.py. Server contract: android/server.template.json. Scan name contains CameVision + last 6 MAC hex digits.
| Item | Value |
|---|---|
| Sync | RV1126B direct sensor control. Maximum the RV1126B can handle. |
| Frame rate | All shop sensors 60 fps. This board can go higher than 60 fps. |
| AE / AWB | rkaiq 3A. UVC auto-exposure and white-balance. MIRA220 AWB R×1.90 · G×1.38 · B×3.06, black −10. |
| IMU | LSM6DSVQTR ×1 · 480 Hz |
| Timestamp | CLOCK_MONOTONIC_ns. session.json time_base. imu0.csv t_unix_ns, t_mono_ns. RV-3028 sets the system clock. |
| Exposure · 50 / 60 Hz | UVC power-line 0 / 1 / 2. 50 Hz: N × 10 ms, 25 fps. 60 Hz: N × 8.333 ms, 30 fps. |
After the camera is live, USB is a composite gadget: Camemake webcam plus the microSD as a drive. This binds on every reboot. Wi-Fi is only for Server mode.
| Value | |
|---|---|
| VID:PID | 2207:0016 · product Camemake |
| Class | Composite 0/0/0 · UVC IAD + mass-storage |
| Format | MJPEG |
| Sizes × fps | 1400×1600 · 1050×1200 · 700×800 · 350×400 at 60 / 30 / 15 |
| Controls | Exposure, brightness, contrast, gain, gamma, AE, power-line, white-balance |
| SD card | Windows / Linux mount the FAT volume (sessions in camevision/sessions/) |
| Image | On-board AM ISP (MIRA220 LUT) or rkaiq (SC233). The gadget only sends JPEG. |
Host: Windows Camera, or any UVC client. Do not open the card in the app while the computer has the drive mounted.
One camera, one IMU. This is not the Ego stereo My Recordings/<serial>_<boot>_<index>/episode/ take (two HEVC files + IMU JSONL on the PC).
<card>/camevision/sessions/20261023T160102Z/ session.json imu0.csv cam0/video.mp4 COMPLETE
| File | Content |
|---|---|
cam0/video.mp4 | Full-resolution H.264. SC233 1920×1200. MIRA220 1400×1600 |
imu0.csv | t_unix_ns,t_mono_ns,ax,ay,az,gx,gy,gz — accel m/s², gyro deg/s |
session.json | Format camevision-session-1, product CV-EGO01-SS |
Position preview in the app is 10 seconds over Bluetooth at quarter resolution. It is not written to the card.
| Place | What sits there |
|---|---|
| This PC | Offline tool, USB driver, flash, overlay push, ADB forwards, autostart, diagnostics |
| This phone | CameVision app — Standalone / Server, Bluetooth control, card send |
Board /userdata | Live page, IMU HUD, Wi-Fi + BLE, recorder, Camemake UVC lock, IQ, boot scripts |
| Board kernel | DTB, CSI, IMU SPI, SDIO Wi-Fi/BLE, ADB then Camemake UVC |
Sources: tools/. Overlay → /userdata/.
| Block | Driver | Live nodes |
|---|---|---|
| MIPI sensor | sc233hgs | I2C 3-0030 · chip id 0xcb61 · /dev/v4l-subdev4 |
| CSI / CIF / ISP | dphy0 · mipi0-csi2 · rkcif · rkisp-vir0 | /dev/video13 NV12 1920×1200 |
| 3A / IQ | rkaiq_3A_server | sc233hgs_efference-sc233hgs_default.json, 50 Hz AE |
| IMU | st,lsm6dsv | One IIO pair on SPI1 |
| Wi-Fi / BLE | VS6621 SDIO | wlan0 |
| USB gadget | DWC3 peripheral | ADB 2207:0006, then Camemake UVC 2207:0016 |
S11hwclock
→ S99camevision-single
→ camevision-single.sh
→ kmpp, hw, LED, telnet :2323
→ camevision-wifi.sh + BLE name
→ camera rails / S10mira220
→ single_imu_hud.py (:8083)
→ camevision_agent.py (card + GATT + :8090)
→ single_live.py (:8081)
→ _lock_uvc_safe.sh after the live JPEG (Camemake UVC + SD, any host)
| Block | File | Role |
|---|---|---|
| Live page | tools/single_live.py | One MJPEG pane from /dev/video13, port 8081 |
| IMU HUD | tools/single_imu_hud.py | One LSM6 JSON, port 8083 |
| Boot start | tools/camevision-single.sh | Rails, 3A, HUD, live |
| Init | tools/S99camevision-single | Installs to /etc/init.d |
| IQ | tools/iqfiles/sc233hgs_efference-sc233hgs_default.json | 50 Hz anti-flicker, normal AE |
| Wi-Fi / BLE | tools/camevision-wifi.sh | VS6621 STA + BLE name |
| Recorder | tools/camevision_agent.py | Card sessions, BLE GATT, HTTP :8090 |
| Phone app | android/ | Standalone / Server |
One pane.
| Path | Body |
|---|---|
/ | Mono HTML + IMU HUD |
/ov0 | MJPEG from /dev/video13 |
/snap0 | One JPEG |
/stat | FPS and format JSON |
/imu | Proxy to :8083 |
/brand.png | Camemake mark |
| LBA | Image |
|---|---|
| loader (db once) | rv1126b_spl_loader_k4a8g.bin |
0x0 | env.img |
0x40 | idblock.img |
0x440 | uboot.img |
0x2440 | camevision_boot.img |
0x7C40 | userdata.img |
0x207C40 | oem_noko.img |
0x607C40 | rootfs_bootstable.img |
From the offline tool: USB / Maskrom · select CameVision Ego Single Sensor · Install. Overlay is pushed over ADB.
python tools/cv_single_flash.py --prebuilt python tools/cv_single_overlay_deploy.py python tools/cv_single_page.py
| Block | File | Role |
|---|---|---|
| Offline tool | tools/cv_single_studio.py | Local site :8765 |
| Host first-run | tools/cv_single_setup.py | Python, ADB, USB, autostart |
| USB driver | tools/cv_single_driver.py | Rockusb + ADB |
| Flash | tools/cv_single_flash.py | Maskrom write |
| Overlay | tools/cv_single_overlay_deploy.py | ADB copy into /userdata |
| Open live | tools/cv_single_page.py | Forwards 8081 / 8083 |
| Autostart | tools/cv_single_autostart.py | Plug-in watcher |
| Pack offline | tools/cv_single_pack_offline.py | Folder + zip for a clean PC |