ma1co / OpenMemories-Tweak

Unlock your Sony camera's settings
MIT License
1.18k stars 113 forks source link

Clean HDMI out for a5000 #70

Open H4ppyDr4gon opened 8 years ago

H4ppyDr4gon commented 8 years ago

With whole videa over 30min it is now possible to stream with the a5000. But atm you cannot get a clean image without info on screen. Would be great to get rid of that if possible :)

lucasl0st commented 4 years ago

I forked the demo app and removed everything except the camera: https://github.com/lucaspape/PMCA-CleanHDMI (with title bar removed). The resolution is not great, I am trying to find a way to activate movie mode

Hi, Would you mind sharing the compiled version? I've cloned and compiled the repo, but as soon as I launch the app, my camera freezes. Thanks in advance!

It currently doesn't work. I can try fixing it on the weekend but right now I don't have setup to test it

Treinkapitein commented 4 years ago

Hope I can help some people out: https://github.com/Treinkapitein/PMCADemo/releases/tag/1.0

Lolloitalia commented 4 years ago

Doesn't work for me : telnet xxx.1xx.1.1xx Trying 1xx.1xx.1.1xx... Connected to 1xx.xxx.1.xxx. Escape character is '^]'. BusyBox v1.13.4 (2012-07-17 15:11:04 JST) built-in shell (ash) Enter 'help' for a list of built-in commands. / # bk.elf r 0x01070a47 id:01070a47 size:1 data: 01, / # id:01070a47 size:1 data: sh: id:01070a47: not found / # 01, sh: 01,: not found / # / # bk.elf w 0x01070a47 00 sh: /: Permission denied / # id:01070a47 size:1 data:00, sh: id:01070a47: not found / # / # bk.elf r 0x01070a47 sh: /: Permission denied / # id:01070a47 size:1 data: sh: id:01070a47: not found / # 00,

Almost! The actual commands are:

bk.elf r 0x01070a47
bk.elf w 0x01070a47 00
bk.elf r 0x01070a47

I don't know you but from Italy I send you a giant thank you. You literally saved my ass after years of testing and never going well. Grazie mille Bro, grazie mille.

Lolloitalia commented 4 years ago

Thanks so much for this thread, I now have clean HDMI on my a5000 ! Yay

Hello. I have only black screen. Can you help me?

Hit the shutter button.

Thank you @mischa85 this is wonderful!

I noticed, however, that the focus frame always remains. do you confirm?

AM555 commented 3 years ago

I seem to have become unstuck,

I have managed to install openmemories - tweak, I have enabled the telent client in windows 10, what do I do next?

When I enable Wifi on the camera do I just connect to the same router as my laptop?

Thanks in advance!!

AM555 commented 3 years ago

I seem to have become unstuck,

I have managed to install openmemories - tweak, I have enabled the telent client in windows 10, what do I do next?

When I enable Wifi on the camera do I just connect to the same router as my laptop?

Thanks in advance!!

I have managed to connect via telnet now. I shall plug it into my capture card and test the HDMI output.

laurismikals commented 3 years ago

@AM555

Using Windows 10

Thanks to the community! This is great! 😄

alexander-manariotis commented 3 years ago

@AM555

Using Windows 10

  • Download pmca-gui - https://github.com/ma1co/Sony-PMCA-RE/releases/download/v0.17/pmca-gui-v0.17-win.exe
  • Download PMCA_CleanHDMI - https://github.com/Treinkapitein/PMCADemo/releases/download/1.0/PMCA_CleanHDMI.apk
  • Connect Sony a5000 with USB
  • Run pmca-gui-v0.17-win.exe that you just downloaded
  • When GUI opens press "Get camera info" to make sure that the camera is connected. The window should display camera model and other info
  • Go to "Install app" tab
  • Make sure that "Select an app from the app list" is ticked
  • From the dropdown chose "OpenMemories: Tweak"
  • Press "Install selected app"
  • Tick "Select an apk"
  • Press "Open apk..."
  • Find "PMCA_CleanHDMI.apk" that you just downloaded
  • Press "Install selected app"
  • Disconnect the camera from the PC
  • In camera go to Menu -> Application List -> OpenMemories: Tweak -> Developer
  • Tick "Enable Telnet"
  • Press on "Wifi settings"
  • Press on "Access Point Set"
  • Choose your wifi and enter it's password
  • Go back to OpenMemories: Tweak -> Developer. Tick "Enable Wifi"
  • Wait till it connects. It will display IP address which you will need later.
  • In your PC open Settings -> search "telnet" -> click on "Turn Windows features on or off" - Select "Telnet Client" -> Press “OK"
  • Open terminal. To do that type "terminal" in Search -> click on "Windows terminal"
  • type "telnet ". For example "telnet 192.168.2.9". Press "Enter".
  • Now copy these commands in terminal:
bk.elf r 0x01070a47
bk.elf w 0x01070a47 00
bk.elf r 0x01070a47
  • Press "Enter".
  • Take your camera. Select "Movie" mode
  • Insert HDMI cable. Now your Sony a5000 should have clean HDMI out with 1080p resolution!

Thanks to the community! This is great! 😄

Just tried these steps and they work 100%.

Thanks so much, been trying to figure this out for ages and this did the trick!

epiceasty commented 3 years ago

This worked for me also. Thank you so much I really thought my sony was gonna be redundant

epiceasty commented 3 years ago

Is there a way to save these settings so u don't have to do this each time?

sanmai commented 3 years ago

I wish someone could figure out a way to break the annoying "skin smoothing" feature in a similar fashion.

alissonpaganini commented 3 years ago

can I apply this to a Sony nex 3n? is there any possibility to adapt to it?

alexandernoakes commented 3 years ago

Decided to revisit this thread today. AMAZING. It's been solved and steps by steps work. Thanks all for the contributions along the way to a working solution.

dsol1980 commented 3 years ago

has anyone tried this clean HDMI technique on another model, like the NEX-5 or 6? @laurismikals do you think it would work on other models? and does it retain settings each time you power the camera off? Happy new years guys!

laurismikals commented 3 years ago

has anyone tried this clean HDMI technique on another model, like the NEX-5 or 6? @laurismikals do you think it would work on other models? and does it retain settings each time you power the camera off? Happy new years guys!

No idea about other models. It does retain settings.

oversaltedpotatoes commented 3 years ago

The step by step instructions worked great for me, and apparently my timing was good, as I just got a new A5000 and capture card and was trying to figure out how to remove the numbers when I discovered this thread.

Thanks!!

ScottyOBrien commented 3 years ago

Hey folks. Is there anyway to get it to look the way it does when I hit the record button without having to record? when im not recording the quality is significantly lower.. based on what im reading in the thread maybe i've done something wrong here or missed a step?

mischa85 commented 3 years ago

Hey folks. Is there anyway to get it to look the way it does when I hit the record button without having to record? when im not recording the quality is significantly lower.. based on what im reading in the thread maybe i've done something wrong here or missed a step?

You are probably not in movie mode, which is the only mode in which these camera's output acceptable video quality. But honestly: this is really, really off-topic.

ScottyOBrien commented 3 years ago

Hey folks. Is there anyway to get it to look the way it does when I hit the record button without having to record? when im not recording the quality is significantly lower.. based on what im reading in the thread maybe i've done something wrong here or missed a step?

You are probably not in movie mode, which is the only mode in which these camera's output acceptable video quality. But honestly: this is really, really off-topic.

EDIT: What I thought was movie mode, was not in fact movie mode. Apologies.

halvards commented 3 years ago

Has anyone enabled clean HDMI output on a5000 with firmware version 1.10?

I currently have it working on my a5000 with firmware version 1.00, and I'm thinking to upgrade to 1.10, but I don't want to lose the clean HDMI output.

brettvac commented 3 years ago

Has anyone enabled clean HDMI output on a5000 with firmware version 1.10?

Yes, I've got the ILCE-5000 with Firmware version 1.10. The tweak worked perfectly. No issues there.

MigueIzu commented 3 years ago

Excellent contribution! It worked the first time. It also leaves the screen enabled while using the HDMI cable, which is a fundamental milestone and nobody mentioned it before !!! Thank you so much!!!

cukabeka commented 3 years ago

I totally can confirm that this is extremely useful for usage with the a5000. It would be great if the APK could be included in the PMCA-GUI tweaks list because it's such a useful tweak!

Addition for Mac users: The GUI download is also available at https://github.com/ma1co/Sony-PMCA-RE/releases/download/v0.17/pmca-gui-v0.17-osx.dmg For telnet, i recommend installing homebrew, then you can install telnet at the terminal with brew install telnet.

One more question remains unresolved: Is it possible to connect a USB while using the HDMI out in order to supply the camera with USB energy instead of having it running on battery? Is that tweakeable in the APK somehow?

untitlednobodyman commented 3 years ago

Hello guys can you help me with sony nex 5r and nex 7. If its possible to get clean hdmi out on this type of cameras?

kaimast commented 3 years ago

Is there a way to save these settings so u don't have to do this each time?

Would love to know this too!

Nahuelitsn commented 3 years ago

Hi guys. I have a Nex 5t . Its possible to use this hack to have a clean HDMI OUT With 1080p like in movie mode? I really appreciate your help. If someone of you travel to Argentina, I promise to cook for you an amazing Asado.

Cheers!!

mariomague commented 3 years ago

@AM555

Using Windows 10

  • Download pmca-gui - https://github.com/ma1co/Sony-PMCA-RE/releases/download/v0.17/pmca-gui-v0.17-win.exe
  • Download PMCA_CleanHDMI - https://github.com/Treinkapitein/PMCADemo/releases/download/1.0/PMCA_CleanHDMI.apk
  • Connect Sony a5000 with USB
  • Run pmca-gui-v0.17-win.exe that you just downloaded
  • When GUI opens press "Get camera info" to make sure that the camera is connected. The window should display camera model and other info
  • Go to "Install app" tab
  • Make sure that "Select an app from the app list" is ticked
  • From the dropdown chose "OpenMemories: Tweak"
  • Press "Install selected app"
  • Tick "Select an apk"
  • Press "Open apk..."
  • Find "PMCA_CleanHDMI.apk" that you just downloaded
  • Press "Install selected app"
  • Disconnect the camera from the PC
  • In camera go to Menu -> Application List -> OpenMemories: Tweak -> Developer
  • Tick "Enable Telnet"
  • Press on "Wifi settings"
  • Press on "Access Point Set"
  • Choose your wifi and enter it's password
  • Go back to OpenMemories: Tweak -> Developer. Tick "Enable Wifi"
  • Wait till it connects. It will display IP address which you will need later.
  • In your PC open Settings -> search "telnet" -> click on "Turn Windows features on or off" - Select "Telnet Client" -> Press “OK"
  • Open terminal. To do that type "terminal" in Search -> click on "Windows terminal"
  • type "telnet ". For example "telnet 192.168.2.9". Press "Enter".
  • Now copy these commands in terminal:
bk.elf r 0x01070a47
bk.elf w 0x01070a47 00
bk.elf r 0x01070a47
  • Press "Enter".
  • Take your camera. Select "Movie" mode
  • Insert HDMI cable. Now your Sony a5000 should have clean HDMI out with 1080p resolution!

Thanks to the community! This is great! 😄

Knowing that firmware of sony cameras are very similar, do you think this would work on a HX400V?

mungewell commented 3 years ago

Another success report, works for me and I'm very happy about it.

We should work on a 'A5000 hacks' wiki page... here's another one. AVCHD menu only offers 60i/24fps, but you can get 29.97 by writing following key (unfortunately 60p doesn't work).

AVCHD capture mode
id=0x0107009e, size=0x0001, attr=0x60:
0 = p60/p50
1 = i60/i50
2 = 30/25
3 = p24

I had also identified the key of bitrate, unfortunately 28MBit doesn't work either

AVCHD bitrate
id=0x010700a1, size=0x0001, attr=0x60:
2
4 = 17mbit/s
5 = 24mbi/s
6 = 28mbit/s

More video keys described here: https://github.com/ma1co/fwtool.py/issues/6#issuecomment-346962702

Treinkapitein commented 3 years ago

Did really not expect this much activity on this thread. (:

There is a misunderstanding for the need of the PMCA_CleanHDMI.apk file. It's not required to get the clean HDMI-experience, only the tweak-app is needed for telnet. The only thing it does, is removing the top-bar inside the PMCADemo-app at the 'camera' entry. This seemed to be the best option a few months ago, but you'll end up with lots of noise. Https://imgur.com/a/NSZXRDy

This is the only and most effective code: bk.elf r 0x01070a47 bk.elf w 0x01070a47 00 bk.elf r 0x01070a47

This thread in a nutshell: https://www.youtube.com/watch?v=UcRfFsyhMFs

Anyhow, I stumbled up on this guy: https://www.youtube.com/watch?v=iRvLcDs2HBw The feed seems like it can be tapped into via wifi, only downside, your camera (looks like it) needs to be the AP at all times. However the pmca-app contains a webserver, which could solve this problem. (https://imgur.com/5ah0VoR) At least I thought so, tried multiple get-requests, but the REST API seems to be dead. Anyone tried to tap into the video feed directly via wifi?

Also, still trying to figure out if the zoom and focal-points can be preset. (or I'll buy a manual lens)

Treinkapitein commented 3 years ago

I wish someone could figure out a way to break the annoying "skin smoothing" feature in a similar fashion.

Not quite, but this guy covers it: https://www.youtube.com/watch?v=UcRfFsyhMFs

mungewell commented 3 years ago

@Treinkapitein You are correct about not needing a special 'clean HDMI' app, but technically you don't need the 'Tweak' app either... you can use the PCMA-Console script to directly read/writing keys on the camera(s).

simon@thevoid:~/Sony-PMCA-RE-github$ sudo python3 pmca-console.py updatershell -m ILCE-5000
No native drivers available
Using drivers libusb-MSC, libusb-MTP
Looking for Sony devices

Querying mass storage device
Sony DSC is a camera in mass storage mode

Initializing firmware update
Switching to updater mode

Waiting for camera to switch...
Please follow the instructions on the camera screen.
Initializing firmware update
Writing firmware
0%
100%
Starting updater shell...

Welcome to the USB debug shell.
Type `help` for the list of supported commands.
Type `exit` to quit.
>bk r 0x01070a47
01
>bk w 0x01070a47 0
Success
>exit
Done

Note: I have to use the '-m' flag as I have changed the camera's model number, see: https://github.com/ma1co/Sony-PMCA-RE/issues/67

On your 2nd question regarding Zoom. There is the Sony Remote API and this provides a method for changing the zoom, unfortunately not to a specific value. The documentation talks that the current position is reported via Events, so in theory it would be possible to write a software loop to drive it to a particular/required position.

The client can check the zoom information using "getEvent". The zoom information consists of four parameters, "zoomPosition", "zoomNumberBox", "zoomIndexCurrentBox", and "zoomPositionCurrentBox" as follows. "Zoom box" represents the type of zoom such as optical and digital.

I've worked a bit on this project, and would happy to work with you writing a script to achieve this. https://github.com/Bloodevil/sony_camera_api

Note: For Windows uses you can wrap Python up as a EXE, so you don't need to install Python and modules.

sanmai commented 3 years ago

I wish someone could figure out a way to break the annoying "skin smoothing" feature in a similar fashion.

Not quite, but this guy covers it: https://www.youtube.com/watch?v=UcRfFsyhMFs

I didn't watch it past first minute, but if that involves slightly zooming it with a digital zoom (as in #25), then yes it works. But it is cumbersome to do, and you have to do that every time you turn on the camera. The thing is they (Sony) had the same issue in more recent models, and they had it fixed with a firmware update. I'll post the details at #25.

maxfridbe commented 3 years ago

Would love to know this too!

Is there a way to save these settings so u don't have to do this each time?

julijane commented 3 years ago

I'm confused why people are asking how to not have to do this each time. Because at least on my A5000 the setting actually persists. When I restart the camera, even from a previous totally powerless state, the setting is still there. If I enable telnet and issue

bk.elf r 0x01070a47

the result is still 00, the value formerly written.

And by the way, in my opinion you do not need the sequence

bk.elf r 0x01070a47 bk.elf w 0x01070a47 00 bk.elf r 0x01070a47

The first and the last command just read back the value. It is only the second command that matters, which sets the value. When I did this the first time, the first command return 01, and after writing it returned 00. And as I said, now it always return 00, no need to set it again, at least on my A5000. It creates clean 1080 output for me.

The issue which is annoying me is that when I have the capture device connected via HDMI it does not display the video after powerup but instead complains about missing SD card. I could not find any way to disable this autojump to play mode, is there any?

What I would love to see is a custom App which would automatically enable Wifi on Cam startup and then provide some API like Sony Remote App to control zoom and other parameters. I'm not sure if that can be done but I think so. I believe installed APK can automatically run code on Cam startup without the need to open them, so it should be possible.

A special apk which just provides a good and easy setup for stream/capture use of the cam.

maxfridbe commented 3 years ago

I have a power brick in the camera itself, not the battery. So i guess if the brick looses power I have to reapply the settings, I can turn it on and off too. but if i unplug the brick I have to reapply.

mungewell commented 3 years ago

@maxfridbe I thought the Backup.bin keys were persistent across complete power off/power cycles.... but you raise an interesting point. This could be an issue for users with external batteries (ie. v-mount) and/or dummy batteries.

More reason to make this key something setable/built into Tweak.

thatcomicsguy commented 3 years ago

I have a power brick in the camera itself, not the battery. So i guess if the brick looses power I have to reapply the settings, I can turn it on and off too. but if i unplug the brick I have to reapply.

There doesn't need to be a permanent power supply for this change to 'stick'. It's a hard switch, evidently.

I know, because the change stays in place between battery swaps. I also have a dummy battery I sometimes plug in. So you can use this tweak with confidence in that you only need to do it once.

-Cheers!

maxfridbe commented 3 years ago

I have a power brick in the camera itself, not the battery. So i guess if the brick looses power I have to reapply the settings, I can turn it on and off too. but if i unplug the brick I have to reapply.

There doesn't need to be a permanent power supply for this change to 'stick'. It's a hard switch, evidently.

I know, because the change stays in place between battery swaps. I also have a dummy battery I sometimes plug in. So you can use this tweak with confidence in that you only need to do it once.

-Cheers!

I will double-check my findings, thanks for calling me out on this, maybe I was seeing something that wasn't there. May have been that i was in a different mode ie, not in movie, when power resumed and i saw all the osd and flipped 👍

Treinkapitein commented 3 years ago

I have a power brick in the camera itself, not the battery. So i guess if the brick looses power I have to reapply the settings, I can turn it on and off too. but if i unplug the brick I have to reapply.

I can also confirm the above. However, the osd reverts to being visible again, while the hdmi output remains clean. Use it on daily basis with dummy-battery, full power drain does not affect the values.

mungewell commented 3 years ago

Did a quick test on my a5000. Setting keys using $ sudo python3 pmca-console.py updatershell -m ILCE-5000.

The '0x01070a47' key remained set to 0 after a battery out, and after a 'Tools/Setting Reset/Camera Settings Reset'. It was reset to 1 after a 'Tools/Setting Reset/Initialize'.

@maxfridbe Which camera do you have, how are you setting the key, and does you clock/calendar remain set after a battery out?

julijane commented 3 years ago

I also use a dummy battery and the setting persists. However there is one little detail which is pointed out here: https://github.com/ma1co/fwtool.py/issues/6#issuecomment-346952777

Since the values are only modified in memory, the Backup.bin file becomes outdated. You can write the data in memory back to the file by calling Backup_sync_all (through bk.elf s for example). Since this writes data to disk, it takes a moment to complete. Backup_sync_all is called automatically when the camera is switched off, so you don't have to worry (as long as you don't crash the camera or remove the battery).

So the settings you change with "bk.elf w" are at first only in memory and need to be persisted by either using "bk.elf s" command or by properly turning off the camera before removing the power.

I suspect this might be the issue some are encountering. Just write it once and then turn off the camera using its switch, then you shall be fine. After that you can remove power as you like without turning it first off, it shall still be fine. For me it works.

If it still does not work for some then there must be some as of yet unknown factor. If in doubt try the "bk.elf s" command and see if it changes things.

jkh13 commented 3 years ago

Has anyone tried this on a NEX-6/5 camera?

bobxbob commented 3 years ago

Has anyone tried this on a NEX-6/5 camera?

I tried on a NEX-6, key is there and can be changed, but does not change anything with the output. / # bk.elf r 0x01070a47 id:01070a47 size:1 data: 01, / # bk.elf w 0x01070a47 00 id:01070a47 size:1 data:00, / # bk.elf r 0x01070a47 id:01070a47 size:1 data: 00,

I assume that its bcs of the lack of "movie mode" of the NEX-6 since it was commented that you need to switch the a5000 to movie mode. I tried all available shooting modes but no success.

I'm unsure what is refered to as "reboot", I tried switching it off and on again and remove the battery, both preserved that changes, however no clean HDMI. Once I reset the camera, settings have been gone. [](url)

wey-gu commented 3 years ago

Thank you all! I just purchased an a5000 now, thanks to your work and sharing!

ghost commented 3 years ago

I can confirm that setting bk w 0x01070a47 0 on a Sony NEX-6 has no effect (even after restarting, taking out battery, etc). The value stays 00 but HDMI output still shows everything.


I don't know how someone found out about 0x01070a47 working for the other cameras, but maybe we can use the same method they used, but instead on a NEX-6 to find out what value (and where) turns off the OSD.

If anyone gets this to work on an NEX-6 it would be very beneficial to people. NEX-6 are way cheaper to get than Sony ax000 series, and in some aspects has superior qualities over the a5000

mungewell commented 3 years ago

@horusra The NEX-7 (with Mic input) is appealing too.

I have been trying (un-successful so far) to match the symbols in CautionConfig to numerical backup keys, some writeup here: https://github.com/ma1co/OpenMemories-Tweak/issues/25#issuecomment-816354708

Unfortunately I don't have sufficient software skills.... ;-(

You may also be able to infer keys, by comparing their location wrt known keys... maybe.

leonardcoutinho commented 1 year ago

For Nex 5n I found an way to clean hdmi, please check my post here https://github.com/ma1co/Sony-PMCA-RE/issues/448 and my video https://www.youtube.com/watch?v=sUqMf6FcSF8 maybe it work in Nex 3, 5, 6 and 7 too

leonardcoutinho commented 1 year ago

Has anyone tried this on a NEX-6/5 camera?

check this https://www.youtube.com/watch?v=sUqMf6FcSF8

dsol1980 commented 1 year ago

I believe it works, but perhaps not at full HD and it won't record any video to your card.  

On Saturday, October 14, 2023 at 07:19:05 PM EDT, Leonardo Coutinho ***@***.***> wrote:  

Has anyone tried this on a NEX-6/5 camera?

check this https://www.youtube.com/watch?v=sUqMf6FcSF8

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

GreyAsteroid commented 1 year ago

Has anyone tried this on a NEX-6/5 camera?

check this https://www.youtube.com/watch?v=sUqMf6FcSF8

Tested this on my NEX-5R, output is fullscreen 16:9 60fps. Doesn't matter which video setting it used before the console command, shows up as 1440x1080 in the menu after the command though that setting doesn't do 60fps so this likely isn't accurate.

I'm going to pick up a mini HDMI cable so that I can plug my camera into my capture card to test what the actual resolution of the output is. Though, compared to what we could previously achieve with HDMICam, this is significantly better quality regardless.