Unofficial, collected information about the (discontinued) DxO-One Camera, a tiny camera with a 1" Sony Sensor and f/1.8 lens.
- Support to connect iOS Variant to Android - DONE
- Support to connect USB-C Variant to iPhone 15 or higher
- Additional shot-modes (AE-bracketing, burst,...)
- (Multi) camera control via Wi-Fi (Communication via JSON-RPC Protocol)
- USB-networking Mode to control and charge camera (by initiating USB in the Linux stack)
- Bluetooth Remote-Control integration (Hardware is there, only missing part seems to be the Linux integration)
More information is maintained in the wiki. Contribution is very welcome!
- Software
- Ambarella RTOS
- Linux OS
- Firmware binary Analysis
- Interesting things
- Connect DxO-One with Lightning Port to the Android App
- Fix DxO-One USB-C Device with outdated Firmware
More information is maintained in the wiki.
The device is using Ambarella RTOS as its main OS for controlling the camera hardware and OLED display, and a separate Linux OS to control Wi-Fi functions. This is a quite popular chipset for (older) GoPro and other Action Camera clones as well as many Dashcams.
It seems that in case of the DxO-One, the Linux OS is mostly suspended and only woken up on-demand to connect to Wi-Fi. It might be interesting to achieve a shell to this OS, as it could allow adding wireless features (like FTP-transfer of images or 3rd party Wi-Fi control)
Ambarella OS has a own shell which can accept commands, but as the device is missing a UART-port I didn't find a way so far to connect to it (I suspect that it's possible to switch the USB-Port to UART, but I haven't found a method yet).
On power-on (sliding the lens-cover open or connecting USB), the OS looks for the file autoexec.ash on the SD-Card and, if it exists, executes the shell-commands in it on the RTOS.
This allows to do a few interesting things, such as enabling logging, switching USB-Modes, executing commands, etc.
Important
autoexec.ashneeds to be stored at the root of the microSD-card (together with the DCIM-Folder)- Line-breaks need to be in Unix-format (LF, not CR LF)
- Each command must be finished with a line-break, so the last line of the file should be empty.
To start investigating the Device, the first step is to re-route logging to a file stored on SD-card.
Log RTOS to SD-card
Download here: Log-to-SD
t dxo console 8
(empty)
When this file is saved on the root of the SD-card, on next power-on of the camera it will log its operation to the file console_debug.txt in the root of the microSD
The mobile App contains the firmware binary to update devices with older versions.
- Latest version: 3.2.0
- Binary name: DXOSYS_3.2.0.ecef5ef809.BIN
- Path within iPhone app: /DxO ONE.app/Firmware
Unpacking the binary with gopro-fw-tools ( https://github.com/evilwombat/gopro-fw-tools ) reveals 6 files:
- section_0 - Ambarella RTOS
- section_1 - DSP Microcode
- section_2 - Ambarella ROMFS
- section_3 - Linux kernel
- section_4 - Linux Root FS
- section_5 - Firmware-Update OS
There's a Smartphone App accompanying the Device for iOS, and an Android-App for the (later) USB-C version of the camera.
There is a way to connect the Apple-variant of DxO-ONE to the Android App (assumed here that the Android device has a USB-C port, but it would also work with micro-USB).
Possibly, this could work with a lightning port to USB-C adapter (not tested, happy to hear if someone tried it), but there is a way to do this via the microUSB port on the back of the device.
See here: Enable Lightning via microUSB, Disable Lightning via microUSB
Limitations:
- Wi-Fi connection between Smartphone and DXO-ONE doesn't work (apparently some protocol-issue I didn't look into yet)
- Not really convenient to use as viewfinder, but good to change settings on the camera (current app-setting is preserved by the camera and kept after disconnecting)
If you purchased a DxO-One USB-C Variant online, you may have received a device with very outdated Firmware that cannot connect to the DxO-One Android App. (You likely have only received the device without accessories or sales-box, which was probably a swap-unit which still had to be upgraded before shipping.) These devices only have an initial firmware, where the camera itself is working, but the USB-C connection to the DxO-One Android-App doesn't work.
If you like to upgrade the device to a usable state, I have prepared a script and a set of files which allow you to upgrade the camera via SD-card.
See here: Upgrade-USBC-Model