From ElphelWiki
Jump to: navigation, search

Prod353 is a hardware testing and firmware reflashing tool. Depending on the settings, Prod353 can be used to completely test the hardware of a camera system; from the system memory and video/FPGA memory, to the sensor, to the optional 10359 and 10369 'daughter' boards. It can also be configured to reflash the existing camera firmware, or flash a new updated firmware image onto the camera to increase its functionality and stability.

Downloading and Installing prod353

You can use cvs to download the latest files directly from sourgeforge:

Under Ubuntu and similar:

Install CVS:

sudo apt-get install cvs

And then use cvs to download the latest files (this will create a subfolder called "prod353"):

cvs -z3 co -P prod353

If your prod353 installation is outdated you can update to the latest revision by first going to the correct folder and then doing (this is not required if you just downloaded the latest files):

cvs update -P -d

Installing Required packages

Before using prod353 you need a compiled Elphel firmware & software. This can be done by building the source acquired with an anonymous cvs checkout under Linux:

cvs login 
cvs -z3 co -P elphel353-8.0
cp -R ../353/* .

Now you are ready to set up prod353:

  • Copy file "etraxfsboot" and "cmdline" from the firmware build folder (the binary file will be at ./tools/build/bin/) to current folder;
  • Install and configure (with example for Ubuntu):

Apache web server:

sudo apt-get install apache2


sudo apt-get install php5
sudo /etc/init.d/apache2 restart

NFS with firmware at exported folder:

mkdir /nfs
mkdir /nfs/elphel353-2.10
chmod a+w -R /nfs
sudo apt-get install nfs-kernel-server
sudo echo "/nfs,async,no_root_squash)" >> /etc/exports
sudo /etc/init.d/nfs-kernel-server restart
  • Edit the file ./prod353.conf:
NFS_IP             - local IP of the reflashing station, must be at subnet (by default "")
NFS_DIR            - (not really used currently) exported NFS directory where firmware of the camera placed (by default "/nfs/elphel353-2.10")
ETHERNET_DEVICE    - name of the network device what connected to POE switch (by default "eth0")

POE_TYPE=NONE      - supported PoE switches/routers - 3COM_3CRDSF9PWR, HP, Linksys, Linksys_SRW2008MP.
POE_IP= - PoE managable switch IP
POE_LOGIN=admin    - switch Login
POE_PWD=           - password
  • Copy 7.x firmware files to "/nfs/elphel353-2.10" folder
  • Copy 8.x firmware files to "/nfs/images/8.x.x.x"

Apache Setup

To open prod353 in a browser you first need copy the content of the prod353/station/www/ folder into the default apache directory /var/www/

Now you should be able to see a directory listing when opening http://localhost/prod353/ in your browser.

Now there are several options that need to be set before clicking the 'Start' button.

Please do not connect any cameras to the network until these settings have been properly configured.

In the upper left hand corner of the screen, under the heading 'session settings', there are several lines of options. These are described below:

Files After Installation

/etc/rcS.d/S99prod353 link to /etc/init.d/prod353_launcher.php

Setting up Prod353

Prod353 Opening Screenshot

1. Ports

The first line, 'ports', does not apply to users that are reflashing a single camera directly from their PC.

=====Multiple Cameras===== The 'ports' setting only needs to be changed if you have a network switch connected to your PC, and plan to test/reflash several cameras at once using several of the switch ports. It is generally easiest to reflash one camera at a time. But if it is necessary to reflash multiple cameras in one session, two methods can be used, manual control, and automatic control. Multiple cameras can be controlled manually using a standard network switch. Or multiple cameras can be controlled automatically using a POE manageable network switch (only two POE manageable switches are currently compatible with Prod353. These are listed in the README file in the Prod353 folder). With both methods, type in the number of cameras into the box next to 'ports'.

Automatic POE Control If you are using one of the two compatible POE manageable switches mentioned, all that needs to be done is to plug in the cameras to the first several ports of the POE manageable switch, press 'start', and Prod353 will take care of the rest.

Manual Control If you are using a standard non-POE manageable network switch, do not plug the cameras in until after the 'start' button has been pressed. After the 'start' button has been pressed, the Prod353 software will assign the label 'port 1' to the first camera that is connected, and 'port 2' to the next camera that is connected, etc... It assigns these labels regardless of the physical port number on the network switch.

2. Start MAC, Board Revision, 10369 Start ID, and 10396 Board Revision

Directly below the 'ports' option are two lines for the 10353 'start MAC' address, and 10353 'board revision' number. When the 10369 test is selected, there are also two more lines that will appear below that, the '10369 start ID' number and '10369 board revision' number. These lines can all be ignored. They are only used at the factory for initial programming of the boards, and have no effect on the process after that.

3. Net-Boot by Button

To the right you will find the 'net-boot by button' check box. This box must be checked for the reflashing process to work properly. Checking this box configures Prod353 to allow the user to place their cameras in net-boot mode manually. If it is not checked, Prod353 may go into an endless loop (as it attempts to initialize an automated POE switch).

4. Clean Cameras and POE Switch

Directly beneath the 'net-boot by button' check box is the 'clean cameras/POE switch' check box. This check box must remain un-checked. This option is something that is only needed in the initial factory programming stage.

5. Reflash Cameras

To the right you will find the 'reflash cameras' check box. Place a checkmark in this box if you want to flash the camera with a new firmware image. If the box is left un-checked, the firmware on the camera will remain unchanged.

6. Test Sensor

Directly below this, you will find the 'test sensor' check box. If this box is checked, one of two types of sensor test will be run. If it is not checked, then the two sensor test options will be disabled, and will not be run. It is possible to select between two types of sensor tests. These two options are listed below the 'test sensor' check box. These are the standard 'test sensor board' option for cameras with a single sensor attached, and the 'test 10359 board' option, which is only needed for custom camera applications using the 10359 Sensor Multi-plexor board, with up to three independent sensors attached to it. These tests assure the proper function of the sensor board, and also check the integrity of the image data transmission lines through the cable.

7. Test 10369 Board

Below the sensor test options you will find the 'test 10369 board' check box. Place a checkmark in this box if your camera has a 10369 IO Interface board, and you would like to verify that it is functioning correctly. This test will automatically check for the presence of any IDE, USB, or SATA storage devices, and output the results to a log file that will be discussed in more detail below.

8. MAC Logs List

This is not a setting to be configured, but rather a link to all the log files saved from previous tests. This will also be discussed in more detail below.

9. Firmware

In the top right hand corner of the screen is the 'firmware' selection area. Click on the '8.X firmware' selection button and leave the 'custom firmware:' check box below it blank to reflash your camera to the most recent 8.x firmware. If you would like to reflash you camera using a customized firmware image based on 8.x, just check the 'custom firmware:' check box, and use the drop down menu to select the custom firmware that you would like to use. If you would prefer to use 7.x firmware, Click on the '7.1 firmware' selection button and leave the 'custom firmware:' check box below it blank to reflash your camera to the most recent 7.x firmware. If you would like to reflash you camera using a customized firmware image based on 7.x, just check the 'custom firmware:' check box, and use the drop down menu to select the custom firmware that you would like to use.

Before it is possible to reflash the camera to any firmware at all, the desired image files must first be installed in the proper NFS directory.

8.x Default: Extract the most recent 8.x image tarball (image353-8.X.X.tar.gz) into /nfs/latest80/

8.x Custom: Extract any customized 8.x based image files that you would like to see listed in 8.x custom firmware drop down menu, into /nfs/images/

7.x Default: Extract the most recent 7.x image tarball (image353-2.10- into /nfs/elphel353-2.10/

7.x Custom: Extract any customized 7.x based image files that you would like to see listed in 7.x custom firmware drop down menu, into /nfs/elphel353-2.10/images

Please remember that the 'reflash cameras' check box must have a check mark in it before any of these selections will take effect on your camera.

Reflashing a Camera using Prod353

The Control Buttons

10. 'start' This button begins the reflashing/testing process for the number of cameras specified in the 'ports' setting.

11. 'abort all' This button will stop the reflashing/testing process for all cameras connected to the PC or network switch. It is not possible yet to stop the reflashing/testing process for a single camera without stopping them all.

Starting Prod353

With Prod353 configured as discussed above, once you press the start button, you will be prompted to "Please, push the button of the camera on port 1". When this window pops up, it is time to connect the camera to your PC or network switch, and put it into net-boot mode so that it will accept the new firmware image. There are two different methods of putting the Elphel 353 camera into net-boot mode, depending on the camera's hardware revision. The details of how to do this are found on the Net-Boot page. (If you are using a compatible POE manageable network switch, the cameras should already be attached to the switch, and the switch will automatically put the cameras into net-boot mode.)

Once the camera is connected in net-boot mode, press 'OK' to continue. Prod353 will verify that the camera is in net-boot mode, and run the 'power' and 'memory' tests (if the 'power'test fails, the camera may not have been properly started in net-boot mode. Just unplug the camera for 10-15 seconds, and try putting it into net-boot mode again. Then restart the tests). After these tests are run, Prod353 automatically begins the reflashing process (if the 'reflash cameras' check box is checked). You can monitor the status of the tests on the far right of the screen under the 'current status' heading.

Once the camera has been successfully reflashed, Prod353 will prompt you to restart the camera by unplugging the network cable, and then reconnecting it again. Please do this, and press the 'OK' button. Prod353 will then wait for the camera to reboot, and verify that it has been properly updated. At this point, unless additional tests have been selected, Prod353 will declare the board as PASS (green) or FAIL (red), and all results will be saved to log files that will be discussed in more detail below.

Test Details

If the 'test sensor' or 'test 10369' check boxes have been selected however, Prod353 will automatically run these tests as well. These tests can take several minutes to run.

Test Sensor Board

This test requires that only one sensor be attached, and verifies the type of sensor used, and the integrity of the data transmission lines.

Test 10359 Board

Test 10369 Board

This test

Known bugs

  • sensor test without reflashing does not work
    • workaround - select reflash also
  • 3Mpix sensor test does not work on 8.0 firmware
    • workaround - select 7.1 firmware branch
  • unformatted HDD/CF/SSD would not work
    • workaround - you have to manually partition and format the HDD/CF/SSD
  • 1,8" HDD is detected as CF0
    • workaround - just be aware...