Xiaomi Yi Camera: GUI Control & Configure from PC (Win/Lin/Mac)

Just to be sure it is not some bug in my programming, i created simple "Hello world" script, compiled it and virustotal gave me same result for this antivirus. It uses wrong detection and marks all python programs as a threat...
 
I am sorry but can you please tell me how to find what my camera's ip is?
 
if you didn't deliberately change it, then its the default one pre-set in the software - 192.168.42.1, just keep these values. By default camera creates its own wifi hotspot you have to connect to with your computer and it will give you IP in the range of network 192.168.42.0/24. When you are connected to the camera wifi, just launch the program and hit "Connect" :)
 
Hi Andy,
today I tried your new download manager but I couldn't find any files in the "Files" section. I only see a Linux directory structure containing: proc/ dev/ tmp/ sys/ mnt/ opt/ usr/ root/
I think this is a content of internal flash memory. Recorded video files are fully accessible through USB connection. Thanks for your effort.
 
what is your SW version? (camera -> info)

also... can you tell me what path is on your SD Card for files? (full path to a file)
 
Last edited:
nevermind, i see the problem, 101MEDIA instead of 100MEDIA etc... will fix that in 0.3.3 (give me few minutes)
 
SW ver: YDXJv22_1.0.9_build-20150415
HW ver:YDXJ_v22

\DCIM\101MEDIA
 
New version with fix for different path on SD card uploaded.
 
Download manager is now functional. thanks
Measured download speed is about 180kB/s :) I don't know if there is any possible optimization.

I found one minor unrelated glitch. Main window is too small for displaying all content and I must enlarge it after each program start. Could you enlarge this window about 25% please?
 
what seems to be out of the box exactly?

180kB? consider yourself lucky, i didn't get more than 64kB/s ... i will have to investigate it bit more
 
False positive by one product i never heard of before and no descriptions for "TrojanDownloader.Python.a" on Google.
Python is the name of programming language i used to create this program, MAYBE it is frolicking because of update check function? No idea.

You can download the source and compile it with Pyinstaller yourself, you will see if you get different result. Thats why i include source, so you know i didn't pack in some unwanted "features" :)

I think you'd better make a tutorial of How to compile *.pyw to *.exe(for win), rather then distribute the exe file. Cause it hard to figure which PC contain the virus.
I will follow your keyword "Pyinstaller" to study how to build exe by myself.
 
Hi @Andy_S ! the "reboot" function works great !
Do you have any idea, can be done "power off" the Yi Cam?
 
Download manager is now functional. thanks
Measured download speed is about 180kB/s :) I don't know if there is any possible optimization.

I found one minor unrelated glitch. Main window is too small for displaying all content and I must enlarge it after each program start. Could you enlarge this window about 25% please?

open cc.pyw in text editor, find out the code
Code:
self.master.geometry("445x250+300+200")
the 445 represent the width, 250 represent the height, +300 represent the top, +200 represent the left.
Just modify the code and save, you will get a bigger window, e.g.
Code:
self.master.geometry("890x500+400+300")
 
luckylz: no file is infected, it is FALSE positive. So no need for recompile at all.
Powering off - not at this moment, i don't see any JSON command for that
Geometry - it is not that easy, you will be setting only outer boundaries of window without changing dimensions of other elements
 
Powering off - not at this moment, i don't see any JSON command for that
noted.
Geometry - it is not that easy, you will be setting only outer boundaries of window without changing dimensions of other elements
I try google Geometry in python, can not get the good example code for the parameters means. So I just run some test on the issue.
Code:
Geometry("WWW*HHH+LLL+TTT")
When I have more time, I will continue to dig deep into Python.
 
Your interpretation of geometry is correct, but as i said, it only modifies initial borders of the window, does not modify the contents of it.
 
Great work Andy!! The CC works great for me. Just have to connect to the camera on my WiFi network before connecting on CC. Now if I could get Live View working that would be great. I have VLC. I need step by step instructions to make Live View work. Do I need to start VLC or does the CC program do that?

By the way, Warp Mode is where the camera reduces the curved lines at the edges created by Wide Angle lens. Results in smaller field of view.
 
Just click the "Live View" button, it will launch VLC for you or tell you what to do if it doesn't find it in default path.

Warp mode - yes, thats exactly what the hint in the config says. If you have latest (0.3.5) version :)
 
Hello,

I just got my Yi camera today. I did connect to it via VLC and looked at the live stream, haven't tried out this GUI control yet.

I was wondering, are there different modes for the rtsp live stream? It comes up as 640x480, is there a widescreen mode for the live stream? Any way to get 720p out of the live stream?

thank you
Ricardo
 
Hi @Andy_S
Today the Yi Cam released firmware version 1.0.12, your cc.pyw does not work with configure function. I guess maybe the msg contents change a little bit.
Control & Files still works!
SW ver.png
Another thing is the battery info. missing half charator when shows: "charging 100%", this should not be big deal.
Charging 100%.png

This code works for me:
Code:
self.statusBlock = LabelFrame(self.master, bd=1, relief=SUNKEN, text="")
self.statusBlock.pack(side=BOTTOM, fill=X)
#self.status = Label(self.statusBlock, width=28, text="Disconnected", anchor=W)
self.status = Label(self.statusBlock, width=25, text="Disconnected", anchor=W)
self.status.grid(column=0, row=0)
#self.battery = Label(self.statusBlock, width=12, text="", anchor=W)
self.battery = Label(self.statusBlock, width=13, text="", anchor=W)
self.battery.grid(column=1, row=0)
#self.usage = Label(self.statusBlock, width=20, text="", anchor=E)
self.usage = Label(self.statusBlock, width=22, text="", anchor=E)
self.usage.grid(column=2, row=0)
 
Last edited:
Back
Top