ge0rg / samsung-nx-hacks

Firmware Hacks for the Linux-based Samsung NX mirrorless camera models (NX300, NX2000, ???)
115 stars 11 forks source link

NX30 telnet and autoexec.sh working #24

Closed hunkreborn closed 1 year ago

hunkreborn commented 2 years ago

I managed to get my hands into a pack of 4 "broken" NX30. I was able to fix 2 of them, there is another that turns on but shuts down after a while, probably something is shorted in the main board, will check later, the last one seems to be a lost cause, won't show any kind of signal whatsoever. Anyway, I was trying to make the same telnet trick as NX2000 and Nx300, but it seems that the busybox within NX30s does not includes telnetd. Autoexec.sh seems to work, green dots appears on the left side of the screen, but I was not able to make any kind of log as proof of it. Is there any way to push the telnet package from the SD card? I do have the NX30 opensource files, provided by Samsung, I'm currently struggling to compile a custom firmware, something is wrong with the SBS packages provided, it wont simply work... Back in 2019 I was able to make a custom ROM for NX2000, now it simply fails me.

My intentions with these nx30 bodies are:

  1. Make it run a python program that will communicate thru OTG and/or wifi5g from my smartphone and I'll build a Android app to read and push commands to change settings in the camera, much like the now dead SMARTCAMERA from Samsung.
  2. If possible get live reading from the sensor at a higher resolution than hdmi's 1080p. That's very unlikely to work as the camera GPU is very old, SGX540, I think it's maximum video output is 2560x2560, I'll confirm it later.

I'm basing my mod in the Sony QX1 idea, I intend to remove all the back buttons, LCD and viewfinder, and build a housing that attaches the smartphone.

Can any one light a way? I'm really lost by now and I really don't feel that I should give up just yet.

Thanks already!

ajavamind commented 2 years ago

I wrote code to control the NX2000, NX300 and NX500 using telnet with a Processing.org (Java) app. See https://github.com/ajavamind/Multi-NX-Camera-Control Since the NX500 did not have busybox, you could use the sdcard contents I made for NX500 at Multi-NX-Camera-Control in your NX30 and see if that resolves the apparent busybox missing issue. Others on Github solved this problem with the NX500 and I use their solution.

Andy

hunkreborn commented 2 years ago

Wow, I'll check! Thanks!

hunkreborn commented 2 years ago

I was able to log in using telnet from your NX500 SD files you provided, thanks! There is a trick tho, to make it work with Nx30 you must set the quick button to email and press it continuously until opens the app and connects to your wifi, the moment it starts loading you should login with telnet in the computer. If you wait the camera to connect and load everything, something happens and the telnet will always ask for a login. The login is "root", but it will fail every time, you must connect with telnet while camera is still connecting to wifi.

I have some trouble using your app, it's trying to connect to the 192.168.1.25 IP for the camera, but the camera is at 192.168.101.159, I was unable to find a config file for this, is there anywhere it can be changed? Thanks again!

ajavamind commented 2 years ago

Good to know the NX30 can connect with telnet, although with issues. Could you please move this discussion by starting a new issue to my MultiNX github page. I have further suggestions for SD file settings and the inability to connect to the camera with MultiNX, so these solutions (if verified) are best documented there. I am also thinking of adding the NX30 to MultiNX, but I do not have this camera to test. Thanks

naums commented 2 years ago

Sorry for of topic'ing. When you are disasembling the one, where you think it may be shorted - could you please make and post (or send to me) high res photographs of the PCB and the chips on it? That would be great. \</ofTopic>

hunkreborn commented 2 years ago

There is no such thing as of topic'ing my friend! If its a useful question/request, I consider it totally valid!

Yes I can! Actually I have those bodies in my storage for like a year now, if I ever knew it would be useful for someone, I would had done it already. I also have the NX Mini, its already in a "exploded view" already, if you wish I could take pics of it too.

I'll try to make it today. I'll set the proper lightning and shoot with my A77!

ge0rg commented 2 years ago

Thanks for documenting the NX30 code execution, I've added it to https://github.com/ge0rg/samsung-nx-hacks#device-support

ChasonDeshotel commented 2 years ago

Back in 2019 I was able to make a custom ROM for NX2000, now it simply fails me.

I'm playing around with the Gear 360 firmware right now. I can get each piece to build (kernel, vImage, etc). I'm quite sure I have everything I need to make the actual .bin but I don't know how to do that part. Can you walk me through that or do you have a good reference?

I'll download the NX30 source and see if my build environment has the same problems or play around with replacing/repairing packages if it comes to that

I have a Gear 360 and the older "Galaxy Camera". Sadly no source code for the EK-gn120, though I was able to root it

Make it run a python program that will communicate thru OTG and/or wifi5g from my smartphone and I'll build a Android app to read and push commands to change settings in the camera

I'm going for something similar. I literally just read a post today about sending commands and Samsung having their own MTP stack. The Gear 360's live view app crashes waiting on a command from the camera... and I'm quite sure it sends a command to the camera to initiate the live view.

You can read and push commands with the Samsung Accessory SDK. Look at this repo. You might be able to achieve what you want with that method

Fun fact the Gear360 implementation was written in Python and obfuscated :,)

I actually want to gut Samsung's crap and use the community standard approaches... v4l2-ctl to send commands, rtmp streams, etc. There's a webcam module in the codebase already... would love to just hook up the video and expose it that way

I've started a Galaxy NX Hackers Discord channel, hoping to rally the troops and work through some of this together. Get the hive mind on it. I did that with another reverse engineering project and it was way more helpful than I could have ever hoped for.

ge0rg commented 2 years ago

@hunkreborn capturing this thread a bit more, could you make a photo of the NX mini PCB with the on-CPU sticker removed? I've made a picture of the NX3000 CPU because it was impossible to find out the specific model number (https://github.com/ge0rg/samsung-nx-hacks/wiki/NX3000-Hardware-Information) and it would be nice to see whether the NX mini is actually using the same CPU.

hunkreborn commented 2 years ago

@hunkreborn capturing this thread a bit more, could you make a photo of the NX mini PCB with the on-CPU sticker removed? I've made a picture of the NX3000 CPU because it was impossible to find out the specific model number (https://github.com/ge0rg/samsung-nx-hacks/wiki/NX3000-Hardware-Information) and it would be nice to see whether the NX mini is actually using the same CPU.

Hi it's been a while! I'll post the pics from Nx Mini and Nx30 here, my camera battery is dead right now, tomorrow I'll try shooting macro with the NX30, quality should improve.

20220818_023011 20220818_022932 20220818_022939 20220818_023002

Another thing, I just bought my first 3D printer, I'm building a grip for Nx30, if you want I can share the .STL file, you may remix as you desire. I designed it to use 2x 18650 batteries, as they are pretty future proof. The BP1410 battery from NX30 are a rare and expensive. It has a window for a 0.96" oled that I'll attach to a Arduino micro pro and INA219 to get readings of drawing current and charging status. I'm still waiting for the parts to arrive, but the prototype fits the camera flawlessly.

20220818_024754 20220818_024733 20220818_024730 20220818_024854 20220818_024925

offnerbalazs commented 1 year ago

Hello All!

I am glad I found this topic. I started to think that no one is dealing with NX30s any more, but maybe you could help me. I've sold my NX30, and the buyer saw it freezing up several times, so he decided to do a FW upgrade. Needless to say, he did not succeed and brought the camera back to me. Now, when I insert the battery (fully loaded) the camera does nothing, except that the AF light is always on. Does not react to any buttons and the screen is also dead. I did not find an NX30 service manual, but in that of the NX300 I found a hint about recovering the main PCB after a failed FW upgrade. It says I need to short a contact on the PCB and then turn the camera on. Has anybody tried this on an NX30? Does that work? If not, do you have any other suggestion?

Thank you in advance, Balázs

ge0rg commented 1 year ago

@offnerbalazs there is a service manual for the NX30 as well as the Open Source downloads at https://nxfiles.nx.tc/files/NX30/

The archive nx30_2014-07-07.tar.gz contains a directory TIZEN/project/NX30/binary/ with dnloader.bin among other files. I suppose those are the ones you need to perform a firmware recovery. Ideally, somebody from a Samsung repair center with access to the Global Service Partner Network should provide the files, but if you have nothing to lose then you can try the above.

offnerbalazs commented 1 year ago

Dear Georg!

Thank you very much for your reply! It will definiately help a lot. I'll try the recovery process in the coming days and come back here with the feedback.

ge0rg commented 1 year ago

@offnerbalazs were you successful in un-bricking the NX30?

@hunkreborn your PCB shots helped me a bit when writing the Samsung NX Camera Archaeology article, thanks again!

offnerbalazs commented 1 year ago

Hello ge0rg!

Yeah, I promised to come back here with a feedback... The reason for not doing so is that so far I did not succeed. I could not get the main PCB into recovery mode with the tweezer shortcut trick. And have not dealt with it in the past few months.

ge0rg commented 1 year ago

Sorry to hear that and thanks for the update.