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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ G.Craftsman GCA50 T31ZX GC4653 - NOR_16M done
EC37-T11 T20L SC2232 RTL8188FU_USB MOR_16M in progress
H3C TC2101 SSC337 JXQ03 RTL8188FU_USB NOR_16M done
HB-WIFI-Z6 v1.2 T10 JXH62 RTL8188EU_USB NOR_8M in progress
Heimvision HM202 SSC325 GC2063 RTL8188FU_USB NOR_8M video-ok, wifi-ok, ir-ok, pan/tilt-ok (74HC595)
iFlytek XFP301-M T31ZX JXQ03 RTL8188FU_USB NOR_16 research
Imilab EC3 CMSXJ25A SSC325 GC2053 MT7603UN_? NOR_16M in progress
Dahua IPC-HFW1230SP-V2 SSC335DE GC2053 NOR_16M done
Expand Down Expand Up @@ -132,6 +133,8 @@ Model names Our firmware

Dahua IPC-HFW1230SP-V3 => Dahua IPC-HFW1230SP-V2
Dahua IPC-C22C-LC => Imou IPC-С22CP
Heimlink HM202 => Heimvision HM202
Heimvision HM202A => Heimvision HM202
Imou IPC-С22EP-A => Imou IPC-С22CP
Imou IPC-F22AP => Imou IPC-С22CP
Switcam HS303 v3 => Qtech QVC-IPC-136W
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Architecture
BR2_arm=y
BR2_cortex_a7=y
BR2_ARM_FPU_NEON_VFPV4=y
BR2_ARM_INSTRUCTIONS_THUMB2=y

# Toolchain
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz"
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-openipc-linux-musleabihf"
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y
BR2_TOOLCHAIN_EXTERNAL_CXX=y

# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/openipc/linux/archive/$(OPENIPC_KERNEL).tar.gz"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/infinity6-ssc009a.config"
BR2_LINUX_KERNEL_UIMAGE=y
BR2_LINUX_KERNEL_XZ=y

# Filesystem
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config"
BR2_PACKAGE_EXFATPROGS=y
BR2_PACKAGE_UBOOT_TOOLS=y
BR2_PACKAGE_ZLIB=y
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
# BR2_PACKAGE_MOSQUITTO is not set
# BR2_PACKAGE_MOSQUITTO_BROKER is not set
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
BR2_PACKAGE_WIREGUARD_TOOLS=y
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_SQUASHFS=y
BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y

# OpenIPC
BR2_OPENIPC_SOC_VENDOR="sigmastar"
BR2_OPENIPC_SOC_MODEL="ssc325"
BR2_OPENIPC_SOC_FAMILY="infinity6"
BR2_OPENIPC_VARIANT="lite"
BR2_OPENIPC_FLASH_SIZE="8"
BR2_OPENIPC_SNS_MODEL="gc2053"

# Packages
BR2_PACKAGE_DROPBEAR_OPENIPC=y
BR2_PACKAGE_EXFAT_OPENIPC=y
BR2_PACKAGE_IPCTOOL=y
BR2_PACKAGE_LIBCURL_OPENIPC=y
BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y
# BR2_PACKAGE_LIBCURL_OPENIPC_PROXY_SUPPORT is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_COOKIES_SUPPORT is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_EXTRA_PROTOCOLS_FEATURES is not set
BR2_PACKAGE_LIBEVENT_OPENIPC=y
BR2_PACKAGE_LIBOGG_OPENIPC=y
BR2_PACKAGE_MAJESTIC_FONTS=y
BR2_PACKAGE_MAJESTIC_WEBUI=y
BR2_PACKAGE_MAJESTIC=y
BR2_PACKAGE_MBEDTLS_OPENIPC=y
BR2_PACKAGE_OPUS_OPENIPC=y
BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y
BR2_PACKAGE_QUIRC_OPENIPC=y
BR2_PACKAGE_RTL8188FU_OPENIPC=y
BR2_PACKAGE_SIGMASTAR_OSDRV_INFINITY6=y
BR2_PACKAGE_VTUND_OPENIPC=y
BR2_PACKAGE_YAML_CLI=y
BR2_PACKAGE_GPIOSTEP_OPENIPC=y
BR2_PACKAGE_MAJESTIC_AF=y
BR2_PACKAGE_RESET_BUTTON=y
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Heimvision HM202 pan/tilt head, read by majestic-af's gpiostep actuator. The
# coils sit on a 74HC595 (gpiostep sr_gpios=53,47,52, see /etc/modules).
# Travel from one gearbox stop to the other, in gpiostep steps: the vendor
# driver's hmotor_upbound / vmotor_upbound.
pan_travel=520
tilt_travel=180
# Raw +steps turn the head left and down, in the sensor's own orientation (the
# WebUI maps its arrows through image.mirror/flip).
pan_left=1
tilt_up=-1
pan_delay_us=833
tilt_delay_us=833
# Find both stops once per boot, then centre the head.
home=1
# Steps per frame width/height at 1920x1080, measured by image shift
# (about 13 px a pan step, 15 px a tilt step).
pan_frame_steps=148
tilt_frame_steps=72
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
vfat
exfat
gpiostep sr_gpios=53,47,52
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# The HM202's antenna sits badly for some head positions and the RTL8188FU
# driver never leaves an access point on its own, so a camera can stay on a
# far one after a dropout: let wpa_supplicant scan below -60 dBm and roam.
# A copy of OpenIPC/firmware's general/overlay/etc/network/interfaces.d/wlan0
# with the bgscan line added; keep it in step with that file.
iface wlan0 inet dhcp
pre-up wlan_conf "$(fw_printenv -n wlanssid)" "$(fw_printenv -n wlanpass)" > /tmp/wpa_supplicant.conf
pre-up sed -i 's/^\tscan_ssid=1$/\tscan_ssid=1\n\tbgscan="simple:30:-60:300"/' /tmp/wpa_supplicant.conf
pre-up wpa_supplicant -B -i wlan0 -D nl80211,wext -c /tmp/wpa_supplicant.conf
post-down killall -q wpa_supplicant
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/sh

# Heimvision HM202: LB-Link BL-M8188FU3 (RTL8188FTV) on USB.
if [ "$1" = "rtl8188fu-heimvision-hm202" ]; then
# GPIO 17 powers the module, active low. The SD driver also drives it as
# the card's power switch, hard-wired to that pad: off at probe when no
# card is in. The EHCI here does not see a device that turns up after its
# probe, so power the module and probe the controller again if it is not
# there.
gpio clear 17 > /dev/null
if [ ! -e /sys/bus/usb/devices/1-1 ]; then
sleep 3
echo soc:Sstar-ehci-1 > /sys/bus/platform/drivers/Sstar-ehci-1/unbind
sleep 1
echo soc:Sstar-ehci-1 > /sys/bus/platform/drivers/Sstar-ehci-1/bind
sleep 4
fi
# The driver's own power saving holds every packet for up to a beacon
# interval: 50-350 ms pings and a stalling stream. iwconfig shows it off.
modprobe 8188fu rtw_power_mgnt=0 rtw_ips_mode=0
exit 0
fi

exit 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/bin/sh
#
# Perform basic settings on a known IP camera
#
# Heimvision HM202, also sold as HM202A and as Heimlink HM202 (vendor firmware
# EYEPLUS eyeplus_ipc_ms_002): SSC325, GalaxyCore GC2063 (ID 0x2053, driven as
# gc2053), 8 MB NOR, LB-Link BL-M8188FU3 USB WiFi, pan/tilt steppers on a
# 74HC595, speaker and microphone, reset button.
#
#
# Set custom upgrade url
#
fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/ssc325_lite_heimvision-hm202-nor.tgz'
#
#
# Set wlan device and credentials if need
#
fw_setenv wlandev rtl8188fu-heimvision-hm202
#fw_setenv wlanssid Router
#fw_setenv wlanpass 12345678
#
#
# Set custom majestic settings
#
# The sensor sits upside down for a camera standing on its foot.
cli -s .image.mirror true
cli -s .image.flip true
# The WebUI's pan/tilt pad reads mirror, flip and rotate, and refuses every
# move while one of them is missing; this majestic has no rotate of its own.
cli -s .image.rotate 0
# IR-cut: a pulse on 78 takes the filter out, on 79 puts it back. IR LEDs on 44.
cli -s .nightMode.irCutPin1 78
cli -s .nightMode.irCutPin2 79
cli -s .nightMode.backlightPin 44
cli -s .nightMode.lightMonitor true
# The exposure-based trigger never fires here: the ISP never reports its
# exposure as maxed (isp_exposureismax stays 0 at 99 % and 64x gain in the
# dark). Switch on gain instead; 64x is the most this sensor gives.
cli -s .nightMode.autoNightGain 32
cli -s .audio.speakerPin 62
# Pan/tilt through majestic-af's gpiostep actuator (/ptz, ONVIF, WebUI).
cli -s .ptz.enabled true
cli -s .ptz.actuator gpiostep
fw_setenv ptz_control gpiostep
fw_setenv ptz_caps 'pan tilt'

exit 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
alarm_in=-1
alarm_out=-1
button=66
ircut1=78
ircut2=79
led1=-1
led2=-1
light_ir=44
light_wl=-1
light_sensor=-1
mmc_pwr=-1
speaker=62
usb=17
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/sh

### unmute the microphone ###
# GPIO 16 mutes it while high, and nearly so when left floating as an input.
# The vendor app drives it low once the mic is on.
gpio clear 16
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/lib/modules/4.9.84/kernel/fs/lockd/lockd.ko
/lib/modules/4.9.84/kernel/fs/nfs/nfs.ko
/lib/modules/4.9.84/kernel/fs/nfs/nfsv3.ko
/lib/modules/4.9.84/kernel/fs/nfs_common/grace.ko
/lib/modules/4.9.84/kernel/net/sunrpc/sunrpc.ko