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

Can you run Camera_all_options.py from standalone scripts and tell me if it gives you anything and if possible send what it gives you?

Batt stats - will modify, althrough your font is wee bit larger than standard one, check them screens in first post.
 
Ricardo: i am affraid that camera cannot handle better stream as its networking capabilities limits at around 200kB/s which will be too slow for anything better :( Can't 100% confirm that (nor try to tweak that) since i don't own this camera. Maybe different wifi mode would help? No idea...
 
Batt stats - will modify, althrough your font is wee bit larger than standard one, check them screens in first post.
Yepp, this maybe due to my Window OS is Chinese --- never mind !

Can you run Camera_all_options.py from standalone scripts and tell me if it gives you anything and if possible send what it gives you?

dump from Camera_all_options.py, does not seem any strange:
Code:
{ "rval": 0, "msg_id": 3, "param": [ { "camera_clock": "settable:2015-05-12 15:51:56" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "video_standard": "settable:NTSC#PAL" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "app_status": "readonly:idle#vf#record#recording#capture#precise_cont_capturing#burst_capturing#precise_capturing#operation_done" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "video_resolution": "settable:1920x1080 60P 16:9#1920x1080 30P 16:9#1920x1080 48P 16:9#1920x1080 24P 16:9#1280x960 60P 4:3#1280x960 48P 4:3#1280x720 60P 16:9#1280x720 48P 16:9#1280x720 120P 16:9#848x480 240P 16:9" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "video_stamp": "settable:off#date#time#date\/time" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "video_quality": "settable:S.Fine#Fine#Normal" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "timelapse_video": "settable:off#2" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "capture_mode": "settable:precise quality#precise quality cont.#burst quality#precise self quality" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "photo_size": "settable:16M (4608x3456 4:3)#13M (4128x3096 4:3)#8M (3264x2448 4:3)#5M (2560x1920 4:3)" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "photo_stamp": "settable:off#date#time#date\/time" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "photo_quality": "settable:S.Fine#Fine#Normal" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "timelapse_photo": "readonly:off#2" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "preview_status": "settable:on#off" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "buzzer_volume": "settable:high#low#mute" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "buzzer_ring": "settable:on#off" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "capture_default_mode": "settable:precise quality#precise quality cont.#burst quality#precise self quality" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "precise_cont_time": "settable:0.5 sec#1.0 sec#2.0 sec#5.0 sec#10.0 sec#30.0 sec#60.0 sec" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "burst_capture_number": "settable:3 p \/ s#5 p \/ s#7 p \/ s#7 p \/ 2s" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "restore_factory_settings": "settable:on" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "wifi_ssid": "settable:" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "wifi_password": "settable:" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "led_mode": "settable:all enable#all disable#status enable" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "dev_reboot": "settable:on" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "meter_mode": "settable:center#average#spot" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "sd_card_status": "readonly:" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "video_output_dev_type": "settable:hdmi#tv#off" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "sw_version": "readonly:" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "hw_version": "readonly:" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "dual_stream_status": "readonly:" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "streaming_status": "readonly:" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "precise_cont_capturing": "readonly:" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "piv_enable": "readonly:" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "auto_low_light": "settable:on#off" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "loop_record": "settable:on#off" } ] }
{ "msg_id": 7, "type": "battery" ,"param":"99"}
{ "rval": 0, "msg_id": 3, "param": [ { "warp_enable": "settable:on#off" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "support_auto_low_light": "readonly:" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "precise_selftime": "settable:3s#5s#10s#15s" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "precise_self_running": "settable:on#off" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "auto_power_off": "settable:off#3 minutes#5 minutes#10 minutes" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "serial_number": "readonly:" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "system_mode": "settable:capture#record" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "system_default_mode": "settable:capture#record" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "start_wifi_while_booted": "settable:on#off" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "quick_record_time": "readonly:" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "precise_self_remain_time": "readonly:" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "sdcard_need_format": "readonly:" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "video_rotate": "settable:off#on" } ] }
{ "rval": 0, "msg_id": 3, "param": [ { "emergency_file_backup": "settable:on#off" } ] }
_____________________________________________

press CTRL+C to close
 
Thanks, so this works :) Well, i am doing some modifications for better stability atm (proper data receiving from socket) that should solve the issue with new version as well. Should be done within few hours, at most this evening.
 
Andy, I'm not using your app. yet, but still, thank you for the great effort ;)
 
Thanks, so this works :) Well, i am doing some modifications for better stability atm (proper data receiving from socket) that should solve the issue with new version as well. Should be done within few hours, at most this evening.

As I run the Yi Cam app, time is a little bit long. I think the app get all the configure infos when "connecting".
So maybe you can consider to follow this method in your code.
Then after "connected", and click the "configure" button, the program would be more smooth & will not hang for long time.
 
i chose this approach (load all config options only when you click "Configure") as it takes few seconds to load and i didn't want to add unnecessary delay to ppl when they only want to control camera etc, bcs you don't need to know all these options when you only want to take photos or start recording :)

So... not a bug, feature :D
 
i chose this approach (load all config options only when you click "Configure") as it takes few seconds to load and i didn't want to add unnecessary delay to ppl when they only want to control camera etc, bcs you don't need to know all these options when you only want to take photos or start recording :)

So... not a bug, feature :D

If can keep some preferences, that will really great (just my suggestions only) :
Code:
Auto Connect to Camera:
[X] Yes   [ ] No

Auto load configure when connect:
[X] Yes   [ ] No

-------------------------

other settings: ...
In your code, you already keep the default Yi Cam IP address/telnet port/web port/version, ect.
 
nice tip, i will have to implement different config handling as well, but not with this release, maybe the next one. I want to publish this ASAP and i'm almost done, have to tweak one last thing and its on github.
 
meanwhile enjoy rewritten networking stack :)
 
Andy_S is there a way to use the C&C via the usb connection or just wifi is possible at the moment?
 
i don't see how it would be possible via USB connection, wifi is always needed. USB is afaik only for filetransfer...

but then i could be wrong, as i said, i don't know anything about the hw :(
 
Last edited:
Andy_S , i'm not sure if this is something happening to other MacOS users, but in v0.4.2 the "Configure" section seems to fail.
This is the traceback:

Exception in Tkinter callback
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 1532, in __call__
return self.func(*args)
File "/Users/F/Downloads/Xiaomi_Yi-master/CC.pyw", line 495, in MenuConfig
self.GetAllConfig()
File "/Users/F/Downloads/Xiaomi_Yi-master/CC.pyw", line 126, in GetAllConfig
thisoptions = re.findall('settable: (.+)', thisresponse)[0]
IndexError: list index out of range
 
sorry for the delay, gonna release fix within minutes
 
Seems to be working perfect now. Infinite thanks!

Btw, meter_mode refers to the way in which the camera determines the exposure.
Center , using the light information of the center of the image.
Average, an average of all the scene.
Spot, when the user wants to select a different spot than the center. Though i'm not quite sure how it will work in this sort of cameras where you cannot select other spot than the center.
 
In github there's a CC.exe but there's a mention to gui.exe which doesn't require python.

Where's the gui.exe? I need this for windows
 
ricardo: thanks for the note, i of course mean cc.exe. I will update readme.md on next release
 
flynn: i know, i just made a typo in definition ("meter mode" instead of "meter_mode"). Thanks, will fix that with new release.
 
i didn't mean the typo, i just said because in the message box for each option you said "unknown option, let me know if you know what this does", or something like that :)
 
Back
Top