From ElphelWiki
Revision as of 12:36, 22 November 2010 by Oleg (talk | contribs)
Jump to: navigation, search


There was an error recently discovered in the 10359 & 10359A boards - due to a wrong source the sensors (J2,J3,J4) were powered from the 10359's 2.5V instead of the correct 3V coming from 10353 - the result was almost not noticeable - vertical stripes with a 4-pixel period (only with 10338d boards) - FixGuide.


10359 current clock tree

10359 is an optional multi-function board for Elplhel Model 353/363 Cameras. It can be connected between the 10353 Processor board and a sensor one (up to three sensor boards can be connected) This board has the same FPGA-DDR SDRAM pair as on the 10353 (Processor) board. It uses just one extra conductor in the flex cable to configure the on-board FPGA, rest of the JTAG programming interface pins share connections with the data signals. This board can fit in the standard camera enclosure (when only one sensor board is used) and does not interfere with the boards that use inter-board connectors (i.e. 10357) - the 10359 is mounted on the other side of the 10353 board.

10359 board can be used in the following applications (as well as other ones):

  • Additional custom image processing in the FPGA without the requirement to recompile the main FPGA on the 10353 board and solve possible conflicts with existent functionality.
  • multiplex several sensor boards (i.e. "day" - color and "night" - monochrome) to one 10353 camera board.
  • simultaneously acquire images from up to 3 sensors, compress them and send out one after another
  • extract 3-d information from multiple sensors in real time in FPGA
  • use additional sensor(s) to run correlation code (like in optical mice) to track camera orientation to compensate for the effect of Electronic_Rolling_Shutter
  • connect earlier sensor boards (with 3.3V interface) to the 10353 board. Interface voltage for the sensor boards can be switched from 2.5V to 3.3V (all 3 simultaneously)


  • 30-pin flex cable connector (J1) for data to/from the 10353 Processor board. It also receives 3.3V power through this connector
  • 3 of 30-pin flex cable connectors (J2, J3, J4) for the flex cables to the sensor boards (i.e. 10338, 10347)


How to connect 10359 to 10353 and sensors


  • Using a standard 30-pin flex cable connect 10353.J1 (connector's foil wires face away from the board) and 10359.J1 (foil wires face up)
  • Using a standard 30-pin flex cable connect 10359.J2 (foil wires face down) and 10338.J1 (foil wires face up) (port 0 sensor, which is used for initialization)

Note: (after power on everything should work - frames from 10338 are transfered to 10353 as in 10338-10353 set up)


  • Using a standard 30-pin flex cable connect 10359.J3 (foil wires face down) and 10338.J1 (foil wires face up) (port 1 sensor)
  • Using a standard 30-pin flex cable connect 10359.J4 (foil wires face down) and 10338.J1 (foil wires face up) (port 2 sensor)

Available modes

1. Program sensors either all at the same time or independently.

2. Switching between 3 direct (w/o buffering in 10359 DDR SDRAM) data streams from sensors.

3. Direct alternation mode (frames from 2 sensors alternate with programmable sequence).

4. Alternation mode with buffering:

  • frames from 2 sensors alternate - one frame is stored in DDR SDRAM while another is direct)
  • frames from 2 sensors are combined into one resulting frame vertically

Note: Vertical parts can be aligned by setting individual starting rows & lines to each sensor.

Controls page

For firmware versions > there's a page with controls:


Scripts for 10359

  • /359/phases_adjust.php?dcm=DCM&n=N&phase_shift=PHASE_SHIFT - adjusts phases for appropriate channels.
DCM=1 - channel 0 (J2)
DCM=2 - channel 1 (J3)
DCM=3 - channel 2 (J4)
N - number of single phase steps
PHASE_SHIFT=1 - positive step
PHASE_SHIFT=2 - negative step
  • /test/test_inner_10359.php - automatic phases adjustment for all channels.


Projects with 10359


  • I2C module - master/slave/transparent
  • DDR SDRAM controller - read/write/refresh/init
  • Simple filters - invert
  • Multiplexing sensors - switching between 3 sensors
  • Image rotating/rescaling


Installing 10359 inside 10353 body

10353-10369-10359 right side
10353-10369-10359 left side
10353-10369-10359 bottom
10353 camera body bottom