Skip to content

Tapo c110 SigmaStar SC3335 flip horizontal or vertical does not work. #2529

Closed
OpenIPC/sensors
#8

Description

@arcidodo

I have the same issue but then with the newest firmware as described here: OpenIPC/majestic#145

if i change the setting flip horizontal or vertical an restart Majestic or reboot the image is stil not up side down.

i want to flip it because it is mounted on the ceiling

Nov  3 17:07:10 openipc-ssc335 user.info majestic[669]: Signal HUP received, reloading config
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: [_MI_AI_IMPL_FreeTmpBuffer:3819] free tmp buffer.
Nov  3 17:07:11 openipc-ssc335 kern.warn kernel: ^[[1;31m[HALSCL]_HalSclDestoryRealTimeModeOrLastChannel Destroy process fence cd 
Nov  3 17:07:11 openipc-ssc335 kern.warn kernel: ^[[m
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: ===== MhalCameraClose begin, ch = 0, VifMask: 0x3 ===== 
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: ===== MhalCameraClose, 11058 end. ===== 
Nov  3 17:07:11 openipc-ssc335 user.info majestic[669]: Loading main configuration: /etc/majestic.yaml
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: CamOsMutexInit already inited, LR:0xBF8EB10B
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: CamOsMutexInit already inited, LR:0xBF8EB067
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: CameraIsp_EnableChannel3A, ch:0 data:  (null)
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: CameraIsp_EnableCus3A AE=1, AWB=0, AF=0
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: CameraIsp_EnableChannel3A, ch:0 data:  (null)
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: CameraIsp_EnableCus3A AE=1, AWB=1, AF=0
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: [_MI_AI_IMPL_AllocTmpBuffer:3801] tmp buffer addr[c6086000].
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: ===== [MhalCameraOpen] begin ===== VifMask : 3
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: Ch= 0, SNR ID: 0x0, VifCh = 0x0, PreOpen = 0
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: 3DNR = 2, Rotation = 0, AckTie : 0
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: (W, H): (2304, 1296)
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: PixelFmt: 1, BayerID: 2, YuvOrder: 0
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: Mode: 0, HdrType: 0
Nov  3 17:07:11 openipc-ssc335 kern.err kernel: [CameraReadIqData] isp root is /etc/firmware, nCh = 0
Nov  3 17:07:12 openipc-ssc335 user.info majestic[669]: RTSP server started on port 554
root@openipc-ssc335:/usr/bin# cat /etc/majestic.yaml 
system:
  webPort: 80
  httpsPort: 443
  logLevel: info
  buffer: 1024
  plugins: false
  unsafe: false
isp:
  antiFlicker: 50
  iqServer: false
  sensorConfig: /etc/sensors/sc401ai.bin
image:
  mirror: true
  flip: true
  rotate: 0
  contrast: 50
  hue: 50
  saturation: 50
  luminance: 50
video0:
  enabled: true
  codec: h264
  fps: 15
  bitrate: 4096
  rcMode: vbr
  gopSize: 1
  profile: high
  size: 2304x1296
  sliceUnits: 0
video1:
  enabled: true
  codec: h264
  size: 640x360
  fps: 15
  bitrate: 1024
  profile: main
  rcMode: vbr
jpeg:
  enabled: true
  qfactor: 50
  fps: 5
osd:
  enabled: false
  font: /usr/share/fonts/truetype/UbuntuMono-Regular.ttf
  template: '%d.%m.%Y %H:%M:%S'
  posX: 16
  posY: 16
  size: 1.0
audio:
  enabled: true
  volume: 30
  srate: 8000
  codec: opus
  outputEnabled: true
  outputVolume: 30
  speakerPin: 61
  speakerPinInvert: false
rtsp:
  enabled: true
  port: 554
nightMode:
  colorToGray: true
  irCutSingleInvert: false
  lightMonitor: true
  lightSensorInvert: false
  irCutPin1: 78
  backlightPin: 14
  monitorDelay: 16
  maxThreshold: 10000
  minThreshold: 1000
motionDetect:
  enabled: false
  visualize: false
  debug: false
records:
  enabled: false
  path: /mnt/mmcblk0p1/%F
  split: 20
  maxUsage: 95
outgoing:
  enabled: false
watchdog:
  enabled: true
  timeout: 300
hls:
  enabled: false
onvif:
  enabled: true
root@openipc-ssc335:/usr/bin# ipctool
---
chip:
  vendor: SigmaStar
  model: SSC33X
  family: infinity6b0
  id: 42BEEFA88E7D
  tag: "MVX1##I6gf74c9b5CMN_ROM######XVMd?\u0002"
board:
  vendor: OpenIPC
  version: 2.5.11.03
ethernet:
  mac: "00:00:23:34:45:66"
rom:
- type: nor
  block: 64K
  partitions:
    - name: boot
      size: 0x40000
      sha1: c359b802
    - name: env
      size: 0x10000
      sha1: 2aebeb5a
      contains:
        - name: uboot-env
          offset: 0x0
    - name: kernel
      size: 0x200000
      sha1: 76ba2dc2
    - name: rootfs
      size: 0x500000
      sha1: 73f5717a
    - name: rootfs_data
      size: 0xb0000
      path: /overlay,jffs2,rw
  size: 8M
ram:
  total: 64M
  media: 32M
firmware:
  u-boot: "2015.01 (Aug 23 2025 - 18:56:24)"
  kernel: "4.9.84 (PREEMPT Mon Nov 3 04:02:25 UTC 2025)"
  toolchain: buildroot-gcc-13.3.0
  main-app: majestic
sensors:
- vendor: SmartSens
  model: SC3335
  control:
    bus: 0
    type: i2c
    addr: 0x60

Activity

  1. transferred this issue fromon May 25, 2026
  2. openipc-ai commented on Sep 19, 2026

    @openipc-ai
    Collaborator

    Worth a retest on a current nightly. Image orientation handling on SigmaStar has changed since this report — flip/mirror is applied through the sensor path and is now reapplied live on a config reload, rather than only at startup.

    Could you grab a recent nightly, confirm the version with majestic --version, set image.flip (or image.mirror) and reload, and let us know whether the picture flips? If it still doesn't, please attach the log around the reload and your majestic.yaml — that'll tell us whether the sensor is rejecting the orientation or something else is in the way.

  3. widgetii commented on Oct 4, 2026

    @widgetii
    Member

    The mirror and flip settings are lost inside the SC3335 sensor driver for infinity6b0, which resets the sensor to unflipped every time it initialises, so the setting cannot survive a restart. That driver (from OpenIPC/sensors) is built and shipped by the firmware, so this is moving to OpenIPC/firmware. Separately, your isp.sensorConfig points at sc401ai.bin while the sensor is an SC3335; leaving it unset lets the matching tuning file load.

  4. transferred this issue fromOpenIPC/majesticon Oct 4, 2026
  5. openipc-ai commented on Oct 26, 2026

    @openipc-ai
    Collaborator

    The fix is in OpenIPC/sensors#8. The driver applied the orientation you asked for and then reset it at init, so a flip or mirror set in majestic.yaml was lost every time majestic started. A change made while it was running did reach the sensor, but didn't survive a restart.

    We have no SC3335 board, so it was verified on an SSC335 with an SC2336, whose driver had the identical bug. After a restart the sensor's orientation register stayed at 0 with the old driver for every setting. With the fixed driver it is 0x66, 0x60, 0x6 or 0, depending on the setting.

    Firmware builds pick up the sensors repository's latest commit, so the fix will be in the first nightly after that PR merges. @arcidodo, if you can flash that nightly and confirm the picture flips on your C110 after a reboot, that's the SC3335 test we can't do here. Also leave isp.sensorConfig unset (it currently points at sc401ai.bin).

  6. openipc-ai commented on Oct 26, 2026

    @openipc-ai
    Collaborator

    OpenIPC/sensors#8 is merged, so the next nightly carries the fix. @arcidodo, a flip or mirror set in majestic.yaml should now survive a reboot on your C110. A report either way, with majestic --version, would confirm it on the SC3335 itself, which we can't test here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions