|
|
%!s(int64=3) %!d(string=hai) anos | |
|---|---|---|
| SD_ROOT | %!s(int64=3) %!d(string=hai) anos | |
| documentation | %!s(int64=3) %!d(string=hai) anos | |
| src | %!s(int64=3) %!d(string=hai) anos | |
| v2_install | %!s(int64=3) %!d(string=hai) anos | |
| README.md | %!s(int64=3) %!d(string=hai) anos |
Run whatever firmware you want on your v2/v3/PANv2 and have root access to the device. This is in early stages of testing, use CAUTION if you are unsure of what you are doing. No support whatsoever is offered with this release.
Do not contact the manufacturer for information or support, they will not be able to assist or advise you!
Using this project can potentially expose your device to the open internet depending on the configuration of your network. You alone are responsible for the configuration and security of your network, make sure you are aware of the risks involved before using.
Use your camera as a spare UVC USB Web Camera on your PC!
Inspired by HclX, bakueikozo, and mnakada!
Everything works except:
wz_mini/etc/ssh/authorized_keys and enter your public key here. If you need a simple guide, how to use public key authenticationcompile_image.sh using linux, wait for the script to finish.demo.bin to root of your micro sd cardwz_mini/etc/ssh/authorized_keys and enter your public key here. If you need a simple guide, how to use public key authenticationEdit wz_mini.conf, this is stored on the micro sd card inside the wz_mini folder, and loads the configuration variables when the camera boots. You can change the hostname of the camera, add a path to a script to mount NFS, add ping commands, anything you like.
Wireguard support is available as a kernel module:
ENABLE_WIREGUARD="true"
Use the command wg to setup. See https://www.wireguard.com/quickstart/ for more info.
Some users have asked about tailscale support, I have tested and it works. See the issue #30 for further information.
Example setup:
ENABLE_WIREGUARD="true"
WIREGUARD_IPV4="192.168.2.101/32"
WIREGUARD_PEER_ENDPOINT="x.x.x.x:51820"
WIREGUARD_PEER_PUBLIC_KEY="INSERT_PEER_PUBLIC_KEY_HERE"
WIREGUARD_PEER_ALLOWED_IPS="192.168.2.0/24"
WIREGUARD_PEER_KEEP_ALIVE="25"
To retrieve the public key that you'll need to add the peer to your wireguard endpoint:
wgDisable automatic firmware updates:
DISABLE_FW_UPGRADE="true"
If a remote or app update is initiated, the camera will reboot due to the failure of the update. The firmware update should not proceed again for some time, or at all.
When a firmware update is initiated, due to a bootloader issue (bug?), we intercept the update process and flash it manually. This should now result in a successful update, if it doesn't, please restore the unit's firmware manually using demo_wcv3.bin on the micro sd card.
USB Ethernet Adapter support:
ENABLE_USB_ETH="true"
the next time you boot your camera, make sure your USB Ethernet Adapter is connected to the camera and ethernet. The camera has to be setup initially with Wi-Fi for this to work. After setup, Wi-Fi is no longer needed, as long as you are using the USB Ethernet Adapter. Note that using USB Ethernet disables the onboard Wi-Fi.
USB Direct Support:
ENABLE_USB_DIRECT="true"
the next time you boot your camera, make sure your USB cable is connected to the router. Remember, the camera has to be setup initially with Wi-Fi for this to work. After setup, Wi-Fi is no longer needed. Note that using USB Direct disables the onboard Wi-Fi. Change the MAC Address if you desire via USB_DIRECT_MAC_ADDR variable.
Connectivity is supported using a direct USB connection only... this means a single cable from the camera, to a supported host (An OpenWRT router, for example) that supports the usb-cdc-ncm specification. (NCM, not ECM) If you have an OpenWrt based router, install the kmod-usb-net-cdc-ncm package. The camera should automatically pull the IP from the router with most configurations. You can also use any modern linux distro to provide internet to the camera, provided it supports CDC_NCM. enjoy!
Note: In my testing, the micro-usb cables included with the various cameras do not pass data, so they will not work. Make sure you have a micro-usb cable that passes data!
Remote Accessories:
When USB Direct connectivity is enabled, the camera will be unable to communicate with accessories. To enable remote spotlight accessory support, enable the following variable and set the IP Address of the host as follows:
REMOTE_SPOTLIGHT="true"
REMOTE_SPOTLIGHT_HOST="0.0.0.0"
Then, run the following command on the host where the spotlight is attached to:
socat TCP4-LISTEN:9000,reuseaddr,fork /dev/ttyUSB0,raw,echo=0
Change /dev/ttyUSB0 to whatever path your spotlight enumerated to if necessary. The camera will now be able to control the spotlight.
USB Mass Storage Support:
ENABLE_USB_STORAGE="true"
If you would like to mount an EXT3/4 filesystem, also change:
ENABLE_EXT4="true"
CIFS is now supported:
ENABLE_CIFS="true"
iptables (ipv4 and ipv6) is available:
ENABLE_IPTABLES="true"
NFSv4 support is available:
ENABLE_NFSv4="true"
RTSP streaming: The RTSP server supports the two video streams provided by the camera, 1080p/360p (1296p/480p for the DB3). You can choose to enable a single stream of your choice, or both. Audio is also available. Set your login credentials here, server listening port, and the stream bitrate. (ENC_PARAMETER variable accepts numbers only. 0=FIXQP, 1=CBR, 2=VBR, 4=CAPPED VBR, 8=CAPPED QUALITY. Currently only 2, 4, and 8 are working)
RTSP_LOGIN="admin"
RTSP_PASSWORD=""
RTSP_PORT="8554"
RTSP_HI_RES_ENABLED="true"
RTSP_HI_RES_ENABLE_AUDIO="true"
RTSP_HI_RES_MAX_BITRATE="2048"
RTSP_HI_RES_TARGET_BITRATE="1024"
RTSP_HI_RES_ENC_PARAMETER="2"
RTSP_HI_RES_FPS="15"
RTSP_LOW_RES_ENABLED="false"
RTSP_LOW_RES_ENABLE_AUDIO="false"
RTSP_LOW_RES_MAX_BITRATE=""
RTSP_LOW_RES_TARGET_BITRATE=""
RTSP_LOW_RES_ENC_PARAMETER=""
RTSP_LOW_RES_FPS=""
ENABLE_MP4_WRITE="false"
the singular stream will be located at rtsp://login:password@IP_ADDRESS:8554/unicast
multiple streams are located at rtsp://login:password@IP_ADDRESS:8554/video1_unicast and rtsp://login:password@IP_ADDRESS:8554/video2_unicast
Note: If you don't set the password, the password will be set to the unique MAC address of the camera, in all uppercase, including the colons... for example:. AA:BB:CC:00:11:22. It's typically printed on the camera. Higher video bitrates may overload your Wi-Fi connection, so a wired connection is recommended.
MP4_WRITE: experimental feature. forces camera to write temporary xx.mp4 files directly to /media/mmc/record/tmp. Normally they are written to /tmp then moved, which can overload camera and or remote network connections. Useful for NFS/CIFS remote video storage.
Huge credit to @mnakada for his libcallback library: https://github.com/mnakada/atomcam_tools
Use as a USB Video Class (UVC) Web Camera for your PC is supported. I have tested with Windows 10 and Linux, and it appears as a Generic HD Camera. Audio is supported. This mode disables all other functionality, and only works as a USB Web Camera for your PC. Experimental. Note that the cables typically included with the camera do not data, use a known working micro-usb cable which supports data.
Supported modes: MJPG 360p/720p/1080p, Video 360p/720p/1080p
WEB_CAM_ENABLE="true"
WEB_CAM_BIT_RATE="8000"
WEB_CAM_FPS_RATE="25"
Run a custom script:
CUSTOM_SCRIPT_PATH=""
Live stream from the local built-in RTSP server to youtube/twitch/facebook live.
edit the file wz_mini/usr/bin/rtmp-stream.sh with your stream keys and then run rtsmp-stream.sh <service> to begin streaming. Experimental.
rtmp-stream.sh, update various system binaries.wz_mini/usr/bin/rtmp-stream.shwz_mini.conf to replace run_mmc.sh, all configuration variables are now stored in this file, scripting logic now in wz_user.sh inside init.d folder. add support for user to add a custom script to run on boot.Build your own!!
https://github.com/mnakada/atomcam_tools has a great repo with docker images which include kernel sources, config, and a whole bunch of other stuff. Check it out.
AS WITH ANY UNSUPPORTED SYSTEM MODIFICATIONS, USING THIS MAY LEAD TO A DEVICE BRICK
IF YOU DON'T KNOW WHAT YOU ARE DOING ( HAVEN'T BRICKED MY DEVICE YET! ) PLEASE
BE AWARE THAT NO ONE ON THE INTERNET IS RESPONSIBLE FOR ANY DAMAGE TO YOUR
UNIT. ANY PROBLEMS WILL BE CONSIDERED USER ERROR OR ACTS OF WHATEVER GOD YOU BELIEVE IN.
USE AT YOUR OWN RISK. NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED.
DO NOT USE THIS SOFTWARE IF YOU ARE NOT CONFIDENT IN RESTORING YOUR DEVICE FROM A FAILED STATE.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Thank you to everyone who is passionate about Wyze products for making the devices popular, and thank you to Wyze for producing them. Sign up for CamPlus, show some love and support to the company.
Thanks for HclX for WyzeHacks! https://github.com/HclX/WyzeHacks/
Thank you mnakada for his atomcam_tools fork! https://github.com/mnakada/atomcam_tools
Thank you bakueikozo for his atomcam_tools repo! https://github.com/bakueikozo/atomcam_tools
Thank you to virmaior for the atomcam_tools tip!