XYC: Xiaomi Yi Configurator

ml72

New Member
Joined
Aug 2, 2015
Messages
7
Reaction score
12
Country
United States
Thanks to all of the posters here who have shared their findings on how to hack the Xiaomi Yi to produce excellent results.

I'd like to share a program I wrote for my camera called XYC (Xiaomi Yi Configurator). XYC is a script that runs inside the camera and is accessible using Android/Apple smartphones and Windows/Mac/Unix computers (or any device that can run a telnet client) to allow for interactive selection of camera settings (exposure, ISO, whitebalance, etc.). It also allows turning on/off RAW file capture, creation of time-lapse scripts that work with RAW capture and a couple of other features.

xiaomi_screenshot_1.jpg


More details and download are here:

http://www.tawbaware.com/xiaomiyi.htm

Max
 
amzing! so this app can let us change iso and so on threw our phone?
 
Nice! The custom photo mode is working perfectly fine, but the time-lapse mode don't know why I can't get what I was set. I did set my xiaomi yi to take 150 shots, no raw, with 2 seconds interval, but in the end i just got 36 photos.. Any solution ?
 
is the iso 25600 is safe?
 
amzing! so this app can let us change iso and so on threw our phone?

Yes...that's the goal. It should also work with a phone, laptop, tablet or any other device that can connect via to the camera's wifi network and run a telnet client (i.e. pretty much any computer/mobile device available).

I did set my xiaomi yi to take 150 shots, no raw, with 2 seconds interval, but in the end i just got 36 photos.. Any solution ?

Based on my own testing, it appears that the camera needs a considerable amount of time between shots when executing a time-lapse script. If the image capture commands are too close together in time, then some of them seem to be ignored by the camera. If you aren't shooting raw, then using the camera's native time-lapse feature is probably a better solution. If you are shooting raw, then I recommend experimenting with longer intervals to find what works with your camera/SD card. My camera was happy with a 12 second delay between short exposures. Also, keep in mind that the interval is between shutter-press commands, and does not account for exposure length. So, for example, if you are using an 8 second exposure, you'll need a longer interval than if you are using a 1 second exposure.

is the iso 25600 is safe?

I took one shot with ISO 25600 and the camera seems completely fine, although the picture was very noisy (as you would expect for such a high ISO). However, this is probably a good place to reiterate that all of the "autoexec.ash" scripts generated by XYC, and all the others available on this forum are based on undocumented and unsupported features of the Xiaomi Yi. Use at your own risk! There is always chance that something might damage the camera, although I suspect this is unlikely. If you worried about malicious code, both xyc.sh and the autoexec.ash files that it generates are plain text files, and can be read/modified in any text editor.

Max
 
raw2dng will not read Yi RAWs without this ini file:
 

Attachments

  • ini.zip
    215 bytes · Views: 58
Wow, that is GREAT NEWS!
What value is responsible for shutter speed? I would like 1/60 of a second in video mode. Any advice..?
 
raw2dng will not read Yi RAWs without this ini file:

Thanks...I forgot about this.

However, I have updated the raw conversion batch file to work without the ini file. I also fixed a problem with transferring incorrect EXIF data into the DNG files. Lastly, the raw conversion batch file will now embed XMP-crs metadata in the DNG so that the if the DNG files are opened in Adobe Camera Raw, the default settings will produce an image that approximates the Xiaomi Yi's JPEG.

Download link at the bottom of this page: http://www.tawbaware.com/xiaomiyi.htm

Max
 
Hello, thank you for making this program. I'm sure it will help a lot of people including me.

One feature I'm missing is to be able to change the datarate of videocapture. I'd like to have a 30mbit/s when in 1080P 30FPS and 35 mbit/s when in 1080P 60FPS. Also there are settings for adjusting the noise in videocapture. It would be amazing if this could be implemented into this program.

I tried adding some lines I use for video but when change anything via the app my lines are removed.

I tried to understand what your code does but I'm not familiar with the language. What language is it written in?

Thank you for you great work.
 
One feature I'm missing is to be able to change the datarate of videocapture. I'd like to have a 30mbit/s when in 1080P 30FPS and 35 mbit/s when in 1080P 60FPS. Also there are settings for adjusting the noise in videocapture. It would be amazing if this could be implemented into this program.

I don't have plans to incorporate options to change video bitrates or sizes at the moment. However, I'll look to see if I can make XYC retain any other existing lines in the autoexec.ash file so you can add your own settings without them being removed when XYC runs.

I tried to understand what your code does but I'm not familiar with the language. What language is it written in?

It is a shell script. My understanding is that the camera runs BusyBox, which uses the "A Shell" (similar to the Bourne Shell). Here's a clever Javascript BusyBox emulator that you can use to try out/test scripts in your web-browser before loading them into the camera.

Max
 
I have posted an update version of XYC with two main new changes:

1. Ability to incorporate custom settings (e.g. bitrate, video size, etc.). Specify any custom settings/commands in a file called "autoexec.xyc", and set XYC's "Import additional settings..." menu item to yes. XYC will include all settings from autoexec.xyc whenever it writes/updates autoexec.ash.
2. Alternate languages. If you want XYC to operate in a language other than English, you can provide translated strings in a file called "xyc_strings.sh". Thanks to Olivier G for making this suggestion and providing a French language translation file.

Download link at the bottom of this page.

Max
 
Does it work on latest firmware 1.2.12??

I'm using mod firmware from Fried (35Mbps on all resolutions)
 
Does it work on latest firmware 1.2.12??

Yes, it works.

XYC doesn't use any of the hacks that write to memory addresses (unless you specify this in a custom file), so it doesn't need to change for different firmware revisions.

Max
 
Thank you to all those who make this script happen.
With Regards to author of Xiaomi Yi Configurator and Nutsey who published ASH scripts.
I'd like to share improved version of XYC 0.3.2 (Sep 2015) by Alex
https://github.com/alex-agency/XYC

IMG_3196.PNG IMG_3197.PNG IMG_3198.PNG IMG_3199.PNG IMG_3200.PNG

After I started use this amazing XYC 0.1.0 script.
I come across to three different versions: XYC 0.2.0, XYC 4.5, XYC 4.6.
I don't want to create another branch of this app. All of them are nice.
That's why this XYC 0.3.2 version is combined all of them 0.1.0, 0.2.0, 4.5, 4.6.
The XYC 0.3.2 its a 0.2.0 with all features from 4.5 and 4.6.
Also I fixed some issues, added several my own features and slightly simplify user interface for using it in a small screen.

I hope you will like it. )
If you'll find some defects which I missed. Please posting it as new issue at the following page: https://github.com/alex-agency/XYC/issues
Also you can posting new features which you want. If it possible to implement it I'll do it as soon as possible.

This script I'm testing in my Xiaomi Yi 23L with latest firmware 1.2.12
For telnet connection I use Telnet Lite for iOS https://itunes.apple.com/us/app/telnet-lite/id286893976?mt=8 .

Alex
 
In this thread AlexZ, answering to my request about a command via telnet to shoot a photo, wrote (I can not find the answer here anymore):

"I've found it )
If you want to take a picture via telnet do following:
Open connection to 192.168.42.1:7878 and send {"msg_id":769,"token":1}. That's all )
I did it via Telnet Lite for iOS https://itunes.apple.com/us/app/telnet-lite/id286893976?mt=8"

I opened connection to 192.168.42.1:7878 and sent {"msg_id":769,"token":1}.
The cam did not take a photo. The output was: "not found"
Any hints?
 
Awesome but im having problems with the exposure part. Im trying to do a 360 rig with the yi action cam but im trying to find a way to lock the exposure. After testing it still changes when i point it at a window or light. Is there a fix for this? Sorry i very new to this. Just got my cameras last week. Thanks for the help :D
 
Last edited:
I have been checking out XYC and I have run into an issue with raw timelapses. When I create a raw time lapse it takes one exposure. It will beep 2 or three more times at the correct interval and then no beeps. About a minute later the camera is frozen and I have to pull the battery.
 
Hi David, for creating RAW timelapse do following steps:
1. Configure your photo script in the XYC (https://github.com/alex-agency/XYC) -> "[1] View/Edit camera settings" menu. You can configure: Exposure, ISO, AWB, NR, Shadow, Sharpness, Create RAW. Don't forget to chose "[12] <- Save & Back" item.
2. Go to official Xiaomi YiCam app -> Connect -> Photo Time-lapse -> Time Interval -> Metering Mode -> Start.
3. Stop camera after several minutes or hours :) And you'll have a lot of RAW and Jpeg shots.

I've just checked it with latest XYC, YiCam v2.0.0, Firmware v1.2.13.
 
Back
Top