Software release version 2.1

From edgertronic high speed video camera
Jump to: navigation, search

Version 2.1

Added multishot capture, smart calibrate, external genlock, resave, and user defined URLs.

Version details

Build host: contra-lx
Built by: tfischer
Build date: 20150404175310
Build tag: ssc1
Build hash: 56c4815

Release Notes

  • Multishot recording.
  • External genlock support.
  • Resave video when a saving error occurs.
  • User defined URLs plus python code that runs on the camera. Allows users to extend CAMAPI.
  • Lower latency, higher frame rate live preview.
  • Move default_settings.txt from removable storage device to internal camera storage at /mnt/rw/etc/camera_settings.txt. This means the camera settings are lost when the device is updated.
  • WiFi support documented using ZyXel MWR102 Travel Router
  • CIFS network storage experimental feature allows saving video directly to a Mac, Windows or Linux computer.

Resolved defects

  • 201408260814 URL /trigger does not properly handle optional filename

SDK API changes

  • New camera states:
    • CAMAPI_STATE_SAVE_INTERRUPTED - indicates the video will be when available storage is made available
    • CAMAPI_STATE_SAVE_TRUNCATING - indicates the camera is truncating the video being saved.
  • Multishot support:
    • Request parameter passed to configure_camera(): requested_multishot_count
    • Allowed parameter returned by configure_camera(): multishot_count
    • Buffer currently being used when capturing or saving as indicated by the returned parameter from get_camstatus: active_buffer
    • Number of buffers with video data to be saved during the save operation as indicated by the returned parameter from get_camstatus: captured_buffers
    • This feature may break your existing v2.0 applications if you did not follow the get_current_settings() recommended design.
    • Added save() CAMAPI to force saving the captured multi-shot buffers for the case no all buffers were filled.
    • Added discard_unsaved boolean parameter to save_stop() CAMAPI to indicate if the captured, but unsaved, multishot buffers should be discarded after the video currently being saved is trimmed.
    • In hcamapi.py, enhanced get_satus_string to include multishot information.
  • Fixed defect so /trigger properly uses a filename, if passed in. Filename can include an absolute path (meaning it starts with a forward slash character '/').
  • Added framework for network storage
    • Added CIFS network storage configuration URL /configure_cifs
    • Added file system storage APIs check_storage() and mount() which work with the existing storage API /unmount.
    • Added network file system storage APIs get_ext_storage_state(), scan_ext_storage(), get_ext_storage_configuration(), and set_ext_storage_configuration.
      • External storage state can be unconfigured, configured, mounted, or error. The error state means the external storage device failed to mount.
    • Added network file system storage related status bits.
      • CAMAPI_FLAG_NET_CONFIGURED
      • CAMAPI_FLAG_NET_UNMOUNTABLE
      • CAMAPI_FLAG_NET_FULL
  • In hcamapi.py, expose get_text_state() and get_text_state() methods instead of keeping it private.
  • In hcamapi_example_usage.py, added a bunch of features to demonstrate how to use the new camera capabilities (mainly multishot and smart calibrate support).
  • Removed unsupported URLs test_pattern(), image(), and image3().
  • Added smart calibrate support:
    • Request parameter passed to configure_camera(): requested_smart_calibrate
    • Allowed parameter returned by configure_camera(): smart_calibrate
  • Enhanced contents of metadata file:
    • Added indication if external genlock is enabled
    • Added indication if smart calibrate is enabled
    • Added line indicating number of configured multishot buffers
    • Removed trigger delay value if camera is configured as genlock slave
    • Changed trigger delay resolution from microseconds to nanoseconds
  • caminfo.py changes:
    • Added get_camera_settings_filename() and get_net_storage_dir()

Developer changes

  • Enabled CLI tools expr and diff.
  • Added several developer tools used by camera software engineer:
    • app - starts web server in the foreground so you can see python code error dumps.
    • log - runs tail -f /var/log/messages so you can see the kernel and application output via telnet.
    • rw - changes the root file system to be mounted with read/write permissions - very dangerous.
    • stop - kills all processes related to the camera application; this includes the lighttpd web server and python.
    • ws - start or restart the lighttpd web server (and thus the python camera application that supports CAMAPI). Useful for when debugging user added URLs.
  • Removed unused i2c tools (ddcmon decode-dimms decode-edid decode-vaio i2c-stub-from-dump i2cdump).
  • Disabled all kernel WiFi support and removed all WiFi related tools. Use an external wireless router instead - it is much faster.
  • Switched microSD rw partition from VFAT to EXT3 to improve reliability during unexpected power fail.
  • Enabled kernel support for CIFS and SAMBA CLI tools.
  • HTTP response now includes Access-Control-Allow-Origin so that an external web server can display a customized U.I. and the live preview.
  • When you browsed to the camera's /static directory, there were many more files exposed than was necessary. Removed unneeded files.
  • Added /static/sdk/app_ext.py example file showing how to add URLs. A future version will change this logic to allow more than one CAMAPI extention file to be added. It is all coded, but didn't get into the v2.1 release.

Known defects

The following is the list of known defect in the version 2.1 release.

20150423102247 Vertical stripes after calibration

Calibration defect seen in a small percentage of the cameras sold to date. The symptoms of the defect are 1-2 pixel wide vertical stripes that repeat every 2-8 pixels. The defect will not occur in all cameras, and when it does occur, it will be infrequently.

201412161349 Multishot Genlock buffering can get out of sync due to power cycle

No fix defect -- there are no plans to fix this defect.

If you are in the middle of a Genlocked Multishot sequence and power cycle one of the cameras, the buffering will be out of sync once the camera is powered back on. Until the cameras configured for genlock talk to each other over the network cable, there is not way to resynchronize which multishot buffer is being used.

Work around: Power cycle all cameras that are configured and cabled for multishot and genlock.

201409120935 Updating camera fails if there is a space in the update tarball filename

If you download the update tarball more than once, some operating systems put a space in the file name (e.g. " (1)" so the file being downloaded will have a unique filename. If you use the file with the space in the filename, the update will fail. To work around the defect, remove the big SD card, delete the file with a space in the filename and store the original file on the big SD card. The camera will then update correctly.

201409091802 Cancel trigger at the end of capture misbehaves

No fix defect -- This is really not a defect.

On occasion, if you cancel the trigger just as the post trigger capture buffer is being filled, the camera will calibrate then save the video data instead of properly handling the cancel.

Work around: This is a race condition. The user thinks the camera is still capturing data when they press cancel, but in fact the camera has already switched to saving the captured video. Simply trim the video to get back to filling the pre-trigger buffer.

201408271324 Genlock false triggers

No fix defect -- there are no plans to fix this defect; the hardware design doesn't support any means to fix the issue.

This defect only occurs when using the Genlock feature with multiple cameras and a genlock cable.

Plugging in genlock cable may trigger both master and slave cameras. Unplugging genlock cable may trigger both master and slave cameras. Powering off a genlocked camera may trigger any other connected cameras.

Work around: connect all genlock cables before powering on the cameras.

201407211330 Refreshing browser during a save causes the camera's trigger bar to disappear

No fix defect -- there are no plans to fix this defect.

If the user refreshes the browser screen while the camera is saving video or while the post trigger bar is filling it will cause the trigger bar to disappear. The save progress bar will be visible and in most cases it will fill as normal but it may otherwise appear static. The camera's LEDs still work in this case so the user can see where the camera is in it's capture-save cycle.

Work around: The camera web user interface is not designed to work with the back / forward or refresh buttons. Avoid this defect by not using those browser features.

201407011124 Unmounting the active storage device does not cause the camera to automatically switch to another storage device

If you unmount the active storage device, you have to first remove that storage device to get the camera to switch to using another installed storage device.

Work around: physically remove the device after you have unmounted it.

201406231552 IP address reported by file on SD card is wrong if the static IP address has been manually set

You can set the camera's static IP address by manually editing the /etc/network/interfaces file. When you take the network down and back up again, the camera's address changes, but the address reported by the file on the big SD card is wrong. The System LED that reports if a static or DHCP address is used; may give the wrong indication as well.

Thanks to Craig for reporting this defect.

201406180730 Device loses some settings during device software update

Settings stored in the micro SD card read/write partition are erased during a device update. Currently only manually configured network settings and the camera capture settings are stored in the read/write partition.

201312111624 File timestamp is in GMT

No fix defect -- there are no plans to fix this defect.

The camera was intentionally designed to use GMT for the timezone when saving video files. Some might consider this a defect (issue #182).

201312021613 Browser forward and back buttons may change camera settings

No fix defect -- there are no plans to fix this defect.

If you browse to another site and then use the browser back button to return to viewing the camera, your camera settings may have changed.

Work around: either don't browse to another web site or don't use the back button when you do; simply browse to the IP address of the camera.

201311041114 Playing last recorded video can fail in rare cases

No fix defect -- there are no plans to fix this defect.

The camera will automatically switch which storage device is used when the current storage device fills up and another, non-full, storage device is available. You can not play the video recorded right before the switch occurs since the active storage device has changed.

Work around: You can remove the storage device and properly play the video by retrieving the video file from the non-active storage device.

201311101454 CAMAPI does not detect new space on mounted storage device

No fix defect -- there are no plans to fix this defect.

CAMPI handles changes in storage status using an interrupt scheme (mdev). If your SD card is full and you telnet into the camera and delete some files, no event occurs, so CAMAPI doesn't detect there is now room and the memory full message is displayed.

Workaround: after deleting the files, remove and reinsert the storage device to create a change in storage status event.