Samsung NX500 / NX1 Modding
About
This is a repository hosting information for those interested in altering the functionality of their Samsung NX500 and NX1 cameras.
These cameras run a full blown Linux distribution (Tizen) with shell, X, networking stack, debugging and testing tools - the works. This enables us to alter functionality of the cameras and ... well - just play around - it's fun! Seeing xeyes on your camera is such a heart warming experience :)
Inital work was done and presented on DPReview Samsung Forum here and here and EOSHD here. Special thanks to tecnoworld, Vasile, Kino Seed, outerbeat, arspr and many others.
TL;DR - I want my camera hacked - what to do?
There were multiple generations of hacks developed and improved from 2014 to 2017.
NX-KS2 is the recommended and most comprehensive hack. It is installed persistently to the camera flash, can be uninstalled (or removed by flashing the official firmware). Features:
- on-screen-menu (press EV twice)
- configurable shortcut scripts (EV + different keys)
- time-lapse and batch recording
- video bitrate and resolution mods
- silent shutter
- focus stacking
- profile management
- no 30min recording limit
The official developer page on Facebook has been discontinued, there is a download mirror including the last 2.88 release and a long NX-KS thread on dpreview.
TL;DR - I want to remove 30 min movie recording limit without hacking my camera
Read these instructions: Removing 30 min Movie Recording Limit Without Hacking the Camera
TL;DR - I want to check second hand camera (or my own, but I don't want to hack it) for shutter count, etc, What to do?
Read these instructions: Checking Shutter Count, Power-on Count, etc. Without Hacking the Camera
Outdated hack resources
Resources in this repository are aimed more at "developers" or "advanced users" than "regular users". If you just want to quickly use all these mods, there are two ways to take:
- Use a mod pack made by @Vasile-gh here. You will need a one-time install of this, though. This mod is integrated into the camera hibernation image and does not require Bluetooth for startup.
- Use a mod with many many integrated options packed together by @KinoSeed: Read about it at facebook.com/NXKS2 or download directly from http://authors-vault.com/NX-KS2.zip - this mod is launched by enabling Bluetooth.
Status
Things that work:
- [Higher bitrates for any video mode - developed by @vasile-gh] (https://github.com/ottokiksmaler/nx500_nx1_modding/tree/master/video-bitrate-mods/nx-patch)
- [Persistent modding of camera without use of the Bluetooth - developed by @vasile-gh] (https://github.com/ottokiksmaler/nx500_nx1_modding/tree/master/nx-on-wake)
- Customizing functions of various keys for introduction.
- Focus stacking
- Focus on near point - press "Near"
- Focus on far point - press "Far"
- Click "Stack" and wait for it to finish
- Files are in the usual place - remember to fix exposure/awb/etc as you normally would
- Precompiled binary is here
- Command line options are:
focus_stack [ help | sweep | number_of_photos [ delay_between_photos [ button_height [ button_width ] ] ] ]
- NX500 - Fully electronic shutter - silent
- Shutter count and power on count
- Prefman tool - access to full preferences in usable form
- Collection of small utilities for bash scripting:
popup_timeout ["text message"] [timeout_in_seconds]
- displays a popup message for a given number of seconds
popup_ok [message] [ok label] [cancel label]
- displays a OK / Cancel dialog, returns 0 if OK, 255 if Cancel
popup_entry [message] [OK label] [cancel label] [sample entry] [number]
- displays an entry box with OK/Cancel buttons and prefilled sample text, returns entered text and 0 code for OK or just 255 for cancel. If the fifth parameter is "number" then the NUMBERONLY keyboard is shown.
onscreen_key [Label] [button] [x y] [width height]
- Displays a button at given coordinates (default 400 0) of given size (default 120 60) with given label (default REC) and clicks given button (default rec). To dismiss long-click it for at least five seconds. Record - rec, OK - ok, Half-shutter - S1, Full-shutter - S2, Menu - menu, etc.
shutter_to_key
- remaps half-shutter and full shutter to user specified keys, for example: shutter_to_key ael rec
will remap half-shutter to AEL and full-shutter to REC so you can start/stop video and lock exposure while camera is in gimbal.
shutter_to_rec
- remaps half-shutter to OK (video pause) and full shutter to REC (video start/stop)
log_watcher
- restart video before file corruption, generate lists of selected/displayed files in gallery
- Running scripts without entering factory mode by starting Bluetooth
- Running an SSH/SFTP/SCP server on camera
- Running a FTP server on camera
- Enabling PTP mode on the camera
- Capturing screenshots of LCD
- Running arbitrary shell scripts from SD card
- Running a telnet server for remote access to camera
- Running a fully functional browser on camera (run browser from script or telnet session)
- Controlling the camera over telnet or from scripts (two different ways) including changing modes, exposure parameters, capturing images, setting resolution and quality, etc.
- Not a real 120fps - sorry - NX500 - 1920x1080 video at 120fps and ~40Mbps (already present in NX1)
- Working with key events (detecting and sending) - also covers touch
- Working with generic X - xeyes work, xmessage works, etc.
- Running debugger - gdb on device and gdb server on device
- Description of working with focus from command line
- Description of working with lens
- Focus buttons - Program that displays series of buttons on top of the screen
- long press (1+s) to save current focus position
- click to restore saved focus position
- Can be used for studio shooting, astrophotography (focus on infinity during day, recall the focus during the night), etc.
- Precompiled binary is here
- Remove 29:59 time limit for video via DEV Mode - original work by Vasile
- Controlling LCD / EVF
- Utility for direct read/write access to RAM of another process - useful for in place patching of already loaded binaries
- Boot process and speeding up the mods
- Compiling against camera library
- Updating the Hibernation Image
- Permanent bitrate mods to hibernation image
To do ...
Things that should work given time:
- [x] Removing video recording time limit - thanks to Vasile
- [ ] SSH on camera - client should work just fine, have to test server
- [ ] Automatic backup - have to decide how to implement - related work
- [ ] Enabling additional kernel modules - should work similar to what's described here
- [ ] Crypto like here NX Crypto Photography
Things that could work with a bit of luck
- [ ] USB audio
- [ ] Removing sharpening and noise reduction in video
- [ ] Adding support for different Gamma/LUT in video on NX500 (perhaps on NX1 as well)
Not likely - but might be possible
- [ ] No crop 4k video
- [ ] Higher framerate 1080p or 720p (sensor can be read at 240fps but that's that - not implemented anywhere else in camera)
- [ ] Full sensor video at any rate
- [x] Silent shutter (fully electronic) - NX500 only for now
Donations
Q: So, where's the Donate button?
A: Nowhere. Find a suitable charity and donate. If you cannot afford it, find a local charity and see if they need help in person - it will do you a world of good.