Skip to content
Josh at WL Tech Blog edited this page Mar 1, 2025 · 8 revisions

The Wuuk Y0510 is an inexpensive camera with a great price point for the quality of the camera. It's currently seen with two different sensors, either the original, SC4336p or the less common SC401AI.

Video guide

There is a easy to follow video on installing Thingino on your Y0510 on the WLTechBlog channel, you can follow along in real time and be up and running in just a few minutes. Video here!

Installation steps

  • Download the zip file for the wuuk y0510 from the WLTechBlog thingino-installers repo
  • Use a sd image burning software such as Rufus, Etcher, or Raspberry Pi Imager to write the image to your sd card (any card 128MB or larger)
  • Power off your camera and insert the sd card, thn power it on
  • Wait around 3-4 minutes and you should see the camera's new wireless network for provisioning it.

Accessing the camera

You should now see a wireless access point available with the format:

THINGINO-xxxx

Connect to this and you should be able to see the following screen.

setup

Fill in the data and click "Save credentials" then check the details on the following screen are correct and click "Proceed"

verification

Frigate Configuration

Frigate is a popular OpenSource, MIT Licensed, NVR solution that can be run at home and the below notes should be considered a starting point on integrating the Wuuk Y0510 into Frigate.

I couldn't reliably get x265 and audio working and this is my testing on an Intel 10th Gen CPU ( i5-10400). I also have a Google Coral TPU using a PCI-E interface, although a USB version exists and they are a fairly low cost solution to offload object detection workload from the CPU.

The below assumes you have a working Frigate instance and I'll cover the config in Thingino that works for me currently, I'm hoping as time goes by, this will get refined as we find out more and people will update this wiki.

Thingino Configuration

In Settings => Streamer

Main Stream

streamer-main

Sub Stream

streamer-sub

Audio

streamer-audio

Here's the prudynt.cfg if you prefer a text based approach.

version = "1.0";
general : 
{
  loglevel = "INFO";
  imp_polling_timeout = 500;
  osd_pool_size = 1024;
};
rtsp : 
{
  auth_required = true;
  name = "thingino prudynt";
  password = "thingino";
  username = "thingino";
  est_bitrate = 5000;
  out_buffer_size = 500000;
  port = 554;
  send_buffer_size = 307200;
};
sensor : 
{
  model = "sc401ai";
  fps = 25;
  height = 1440;
  width = 2560;
  i2c_address = 0x30;
};
image : 
{
  vflip = true;
  hflip = true;
  ae_compensation = 128;
  anti_flicker = 2;
  backlight_compensation = 0;
  brightness = 128;
  contrast = 128;
  core_wb_mode = 0;
  defog_strength = 128;
  dpc_strength = 128;
  drc_strength = 128;
  highlight_depress = 0;
  hue = 128;
  max_again = 160;
  max_dgain = 80;
  running_mode = 0;
  saturation = 128;
  sharpness = 128;
  sinter_strength = 128;
  temper_strength = 128;
  wb_bgain = 0;
  wb_rgain = 0;
};
stream0 : 
{
  osd : 
  {
    enabled = true;
    font_stroke_enabled = true;
    logo_enabled = true;
    time_enabled = true;
    uptime_enabled = true;
    user_text_enabled = true;
    font_path = "/usr/share/fonts/UbuntuMono-Regular2.ttf";
    logo_path = "/usr/share/images/thingino_logo_1.bgra";
    time_format = "%F %T";
    uptime_format = "Up: %02lud %02lu:%02lu";
    user_text_format = "%hostname";
    font_size = 21;
    font_stroke = 1;
    font_xscale = 100;
    font_yscale = 100;
    font_yoffset = 3;
    logo_height = 30;
    logo_rotation = 0;
    logo_transparency = 255;
    logo_width = 100;
    pos_logo_x = -10;
    pos_logo_y = -10;
    pos_time_x = 10;
    pos_time_y = 10;
    pos_uptime_x = -10;
    pos_uptime_y = 10;
    pos_user_text_x = 0;
    pos_user_text_y = 10;
    start_delay = 1;
    time_rotation = 0;
    time_transparency = 255;
    uptime_rotation = 0;
    uptime_transparency = 255;
    user_text_rotation = 0;
    user_text_transparency = 255;
    font_stroke_color = 0xFF000000;
    font_color = 0xFFFFFFFF;
  };
  audio_enabled = true;
  enabled = true;
  allow_shared = true;
  format = "H264";
  mode = "VBR";
  rtsp_endpoint = "ch0";
  bitrate = 3000;
  buffers = 4;
  fps = 25;
  gop = 20;
  height = 1440;
  max_gop = 60;
  rotation = 0;
  width = 2560;
  profile = 2;
};
stream1 : 
{
  osd : 
  {
    enabled = true;
    font_stroke_enabled = true;
    logo_enabled = true;
    time_enabled = true;
    uptime_enabled = true;
    user_text_enabled = true;
    font_path = "/usr/share/fonts/NotoSansDisplay-Condensed2.ttf";
    logo_path = "/usr/share/images/thingino_logo_1.bgra";
    time_format = "%F %T";
    uptime_format = "Up: %02lud %02lu:%02lu";
    user_text_format = "%hostname";
    font_size = 12;
    font_stroke = 1;
    font_xscale = 100;
    font_yscale = 100;
    font_yoffset = 3;
    logo_height = 30;
    logo_rotation = 0;
    logo_transparency = 255;
    logo_width = 100;
    pos_logo_x = -3;
    pos_logo_y = -3;
    pos_time_x = 3;
    pos_time_y = 3;
    pos_uptime_x = -3;
    pos_uptime_y = 3;
    pos_user_text_x = 0;
    pos_user_text_y = 3;
    start_delay = 1;
    time_rotation = 0;
    time_transparency = 255;
    uptime_rotation = 0;
    uptime_transparency = 255;
    user_text_transparency = 255;
    user_text_rotation = 0;
    font_color = 0xFFFFFFFF;
    font_stroke_color = 0xFF000000;
  };
  audio_enabled = true;
  enabled = true;
  allow_shared = true;
  rtsp_endpoint = "ch1";
  format = "H264";
  mode = "CAPPED_QUALITY";
  bitrate = 1000;
  buffers = 2;
  fps = 25;
  gop = 20;
  height = 360;
  max_gop = 60;
  width = 640;
  profile = 2;
};
stream2 : 
{
  enabled = true;
  jpeg_path = "/tmp/snapshot.jpg";
  jpeg_channel = 0;
  jpeg_quality = 75;
  jpeg_idle_fps = 1;
  fps = 25;
};
websocket : 
{
  enabled = true;
  ws_secured = true;
  http_secured = true;
  name = "wss prudynt";
  usertoken = "";
  loglevel = 4096;
  port = 8089;
  first_image_delay = 100;
};
audio : 
{
  input_enabled = true;
  input_high_pass_filter = false;
  input_agc_enabled = true;
  input_format = "AAC";
  input_bitrate = 32;
  input_sample_rate = 16000;
  input_vol = 80;
  input_gain = 25;
  input_alc_gain = 7;
  input_agc_target_level_dbfs = 10;
  input_agc_compression_gain_db = 0;
  input_noise_suppression = 0;
};
motion : 
{
  enabled = false;
  script_path = "/usr/sbin/motion";
  debounce_time = 0;
  post_time = 0;
  ivs_polling_timeout = 1000;
  cooldown_time = 5;
  init_time = 5;
  min_time = 1;
  sensitivity = 1;
  skip_frame_count = 5;
  frame_width = 16384;
  frame_height = 16384;
  monitor_stream = 1;
  roi_0_x = 0;
  roi_0_y = 0;
  roi_1_x = 16384;
  roi_1_y = 16384;
  roi_count = 1;
};
rois : 
{
  roi_0 = [ 0, 0, 0, 0 ];
};

I've found the most reliable way to test things are by restarting the Wuuk after changes, as sometimes I found the stream/codecs didn't always reflect the most recent changes I made.

You can test things on a Linux desktop with mpv installed with:

mpv --profile=fast rtsp://thingino:thingino@IP-ADDRESS-OF-WUUK:554/ch0 

and I also found installing ffmpeg and testing with the following command useful:

ffplay rtsp://thingino:thingino@IP-ADDRESS-OF-WUUK:554/ch0

Both mean you can look at the terminal for clues on what issues may be arising and what video/audio codecs are currently being used.

Frigate Config

mqtt:
  host: mosquitto
  topic_prefix: frigate
  client_id: frigate

go2rtc:
  streams:
    wuuk:
      - rtsp://thingino:thingino@IP-ADDRESS-OF-WUUK:554/ch0

cameras:
  wuuk:
    enabled: True
    ffmpeg:
      hwaccel_args: preset-vaapi #Change appropriate to your host hardware
      inputs:
        - path: rtsp://thingino:thingino@IP-ADDRESS-OF-WUUK:554/ch0
          input_args: preset-rtsp-udp
          roles:
            - record
        - path: rtsp://thingino:thingino@IP-ADDRESS-OF-WUUK:554/ch1
          input_args: preset-rtsp-udp
          roles:
            - detect
      output_args:
        record: preset-record-generic-audio-copy
    detect:
      width: 640
      height: 360
      fps: 5
    objects:
      track:
        - person
    record:
      enabled: True
      retain:
        days: 3
        mode: all # change to motion to only record when motion detected.
    onvif:
      host: IP-ADDRESS-OF-WUUK
      port: 80
      user: thingino
      password: thingino

detectors: # Only valid for Google Coral on PCI
  coral:
    type: edgetpu
    device: pci
version: 0.14

This is not intended to be a config that is the best possible configuration for Frigate, but is merely documented as a starting point for further refining and development as the community learns more.

So please feel free to update with any good changes you might make!

  1. Wiki Home
  2. About the Project
    1. Contributions
    2. Features
    3. Project Philosophy
    4. Releases
  3. Getting Started
    1. FAQ
    2. Glossary
    3. Hardware Identification
    4. Image Builder
    5. USB Boot Mode
    6. Ingenic USB Cloner
      1. OTG Booting
    7. PPSTRONG
    8. Installation: General
    9. Installation: No Tools Methods
    10. Resources and Links
    11. Support Community
    12. Troubleshooting
    13. UART Connection
    14. Updating Firmware
    15. Unbricking
    16. Web UI
  4. Supported Cameras
    1. Cameras
    2. 360 AP1PA3
    3. AliExpress LTIA‐37FJZ (Vanhua Z55 module)
    4. AOQEE C1
    5. Aosu C5L
    6. Cinnado
      1. Cinnado D1 2K
      2. Cinnado D1 3K
    7. Dekco DC5L
    8. Eufy
      1. Eufy E210 Outdoor Cam
      2. Eufy E220
    9. Galayou/Wansview
      1. Galayou G2
      2. Galayou G7
      3. Wansview W6
      4. Wansview W7/Galayou Y4
    10. Hualai (Wyze/Atom/Neos/Personal)
      1. Dafang Upgrading for Wyze v2
      2. NEOS conversion
      3. Personal Cam Pan and Cam 2
      4. Wyze Cam Pan V1
      5. Wyze Doorbell (V1)
        1. Chime Reverse Engineering
        2. Flashing VDB1 over UART (YMODEM)
        3. MQTT Control and Monitoring
      6. Wyze v2/Neos SmartCam/ATOM Cam 1
      7. Wyze v3
      8. Wyze Accessories
    11. iFlytek XFP301‐M
    12. Jienuo JN-107-AR-E-WIFI
    13. Jooan A6M
    14. LaView L2
    15. LongPlus X07
    16. LSC 3215672
    17. Sannce I21AG
    18. Sonoff Cam‐S2 and B1P
    19. TP-Link Tapo C100/C110/C111
    20. Wuuk Y0510
    21. Xiaomi
      1. Xiaomi Mijia1080p (SXJ02ZM)
      2. Xiaomi MJSXJ03HL
      3. Xiaomi Outdoor Camera AW200 (MJSXJ05HL)
  5. Configuration
    1. Administration
    2. Automation
      1. Configuring camera using runonce.sh script
    3. Cron jobs
    4. General
    5. LED Indicators
    6. Lighting
    7. Media Streaming Endpoints
    8. Network Storage
    9. Networking
      1. DHCP: Timezone
      2. Wireless Networking
      3. USB Direct w CDC (NCM)
      4. USB Ethernet Networking
      5. Remote Access
      6. VPN
        1. Tailscale
        2. Wireguard
        3. Zerotier
      7. Wi-Fi
        1. Self Hosted AP
        2. Tips and Tricks
      8. WWAN (Cellular)
    10. Night Mode
    11. ONVIF
    12. OSD (On-screen Display)
    13. Plugins
      1. Motion Guard
      2. Yandex Disk
    14. SSH Access Keys
    15. Wi-Fi Access
    16. Provisioning
    17. Streamer Bitrate Control
    18. Video Rotation
  6. Integration
    1. Home Assistant
    2. Frigate
    3. Ingenic A1/$15 NVR
    4. LightNVR
    5. Mobile Apps
    6. MQTT Integration
    7. Telegram Bot Integration
    8. Virtual Webcam on Linux
    9. Mainsail (Klipper)
  7. Development
    1. Booting
      1. Boot: MMC SD
      2. Boot: NFS
    2. CH341A Programmer
    3. RTSP Players
    4. Flash Chips
    5. go2rtc
    6. Porting Guide
    7. Ingenic Platform Capability Matrix
    8. Ingenic Image Processor
    9. ISP Reserved Memory (RMEM)
    10. Debugging
    11. Software
      1. Building From Sources
      2. Buildroot
      3. Toolchain
      4. Choice of JSON library
    12. SSL and TLS Web UI in thingino
    13. Tech Info
      1. Hardware
      2. PWM Info
      3. Supported Hardware
      4. T23 GPIOs
      5. T31 GPIOs
    14. U-Boot Cheatsheet
    15. Zeratul/Atlas/Tassadar
    16. Resources

Clone this wiki locally