Giter Club home page Giter Club logo

dxo-one's Introduction

DxO-One Preservation Project

Unofficial, collected information about the (discontinued) DxO-One Camera, a tiny camera with a 1" Sony Sensor and f/1.8 lens.

Contribution is very welcome!

Table of Contents

  1. Hardware
    1. BOM (Hardware Bill-Of-Material)
  2. Software
    1. Ambarella RTOS
    2. Linux OS
    3. Firmware binary Analysis
  3. Interesting things
    1. Connect DxO-One with Lightning Port to the Android App

More information is available in the wiki.

Hardware BOM & Details

  • ODM Manufacturer: Ability Enterprise Co., Ltd TAIWAN
  • FCC ID: 2AAD3JA0J0M0
BOM Details
Role Supplier Component Comment
SoC Ambarella A9-A1-RH S1433 N93WA-D ANM1N1 A9S35
Audio Analog Devices ADAU1382 BCPZ Audio Stereo codec (for Microphone input)
NAND storage SPANSION ML04G200BH100
DRAM SAMSUNG K4P8G304E0-AGC2
Gyroscope Invensense MPU6500
Accelerometer ST ITG1020
Battery Unknown 17360 750mAh 3.7V (with soldered cables)
Wi-Fi Broadcom Azurewave BCM43340(?) abgn+BT+FM+NFC
Wi-Fi Power Aplifier? Novatek NT11004 1416-BG HOA7800 Located on Wi-Fi board

Software

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).

Ambarella RTOS

autoexec.ash:

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

  1. autoexec.ash needs to be stored at the root of the microSD-card (together with the DCIM-Folder)
  2. Line-breaks need to be in Unix-format (LF, not CR LF)
  3. 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

Firmware binary Analysis

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

Interesting things

There's a Smartphone App accompanying the Device for iOS, and an Android-App for the (later) USB-C version of the camera.

Connect DxO-One with Lightning Port to the Android App

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:

  1. Wi-Fi connection between Smartphone and DXO-ONE doesn't work (apparently some protocol-issue I didn't look into yet)
  2. 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)

dxo-one's People

Contributors

rickdeck avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.