Bluetechnix 'Time of Flight' API

Aus BECOM Systems Support
Version vom 31. Oktober 2023, 09:03 Uhr von Peter (Diskussion | Beiträge) (1 Version importiert)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen






The newer Bluetechnix ToF API v2 is available. Use it instead!





This Section introduces the SDK v1 for Bluetechnix ToF products

Available Versions

Find the SDK implementation you need in the table below

ToF device Library to use
Argos 3D - P100 BtaP100Lib
Argos 3D - P310 BtaEthLib
Argos 3D - P320 BtaEthLib
Sentis ToF - M100 BtaEthLib
Sentis ToF - P509 BtaEthLib
Sentis ToF - P510 BtaEthLib
TIM-UP-19k-S3-Spartan6-USB BtaP100Lib

BTA P100 Library

Downloads



The newer Bluetechnix ToF API v2 is available. Use it instead!





Windows 32 bit Windows 64 bit Linux 64 bit ARM hardfloat
V1.6.1 download
V1.3.0 download download download download
V1.0.0 download download download download

Version 1.6.1

Supported devices/modules in their hardware (HW) and firmware (FW) version combinations:

Argos3D-P100 FW v1.0.0 FW v2.0.0
HW v1.0.0 {{#switch: OK OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}}

HW v2.0.0 {{#switch: OK OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}}

Tim-uP-19k-S3-Spartan-6-USB FW v2.0.0
HW v2.0.0 {{#switch: OK OK OK OK OK OK OK #default = OK

}}

Changes

  • Added new frame modes (see header files).
  • Getter and setter for modulation frequency.
  • PON can be specified in BTAopen.
  • Grabbing functionality for recording the data stream to a file.

Limitations

  • BTAsetKeepAliveMsgInterval()not supported. The device does not need such a feature because it is connected via USB.
  • BTAsetControlCrcEnabled() not suported. The device does not need such a feature because it is connected via USB.
  • If the library starts a thread for getting frames and video mode is disabled, the lib tries to get frames (blockingly) and runs in a timeout. This also blocks register accesses.
  • Only 10 P100 devices supported simultaneously.
  • BTAstartDiscovery() is currently not implemented as intended by the specification. It blocks until there are no new devices to be found. BTAstopDiscovery() in this case is not needed and therefore not supported.
  • BTA_FrameModeDistAmpColor not supported.
  • P100 Firmware 1.0.0: Not possible to set a positive offset.
  • P100 Firmware 1.0.0: Software trigger not supported.
  • P100 Firmware 1.0.0: BTAsendReset not supported.
  • P100 Firmware 1.0.0: BTArestoreDefaultConfig not supported.
  • Be careful when setting a new frame mode either by using BTAsetFrameMode or by direct access to the calculation mode register.
    Allow the device at least 200ms (more to be on the safe side) to stabilize before calling BTAgetFrame. Take special care when your application is multi-threaded. If you do not wait the specified time the device might no longer respond correctly and in the worst case power cycling the device will be necessary.
  • EXPERT USERS ONLY: If you want to change bits in the calculation mode register (0x0F) that affect which containers are produced by the device you have to set the frame mode to BTA_FrameModeCurrentConfig. Failing to do so will cause BTAgetFrame to return with the error code BTA_StatusUnexpectedDataFormat if the source data necessary for the currently set BTA_frameMode is not correct.

Known Issues

  • BTAsetFrameRate with P100 Firmware 1.0.0: please disregard the printf of "OLD FIRMWARE" to stdout.

Virtual Registers

The following registers do not exist on the underlying hardware but are used in the ToF Api layer exclusively. All registers contain 4 bytes of data.

Register name Register address Description
Bilateral Filter Config 1 0x1E0 bilateral filter on(=1)/off(=0)
Bilateral Filter Config 2 0x1E6 bilateral filter window size; valid values: 3,5,7;

Additional Information

Image Data Documentation

Plausibility Flags
The flag channel provides information about each pixel's reliability.
Flag name Flag value Description
FLAG_INVALID 0x1 The pixel is invalid (generic).
FLAG_SATURATED 0x2 The calculated distance is not within a defined range.
FLAG_INCONSISTENT 0x4 The pixel’s raw data values are inconsistent with each other.
This can happen when there are very fast changes in the scene (motion artefacts).
FLAG_LOW_SIGNAL 0x8 The pixel's exposure was too low.
FLAG_SBI_ACTIVE 0x10

Version 1.3.0

Supported devices/modules in their hardware (HW) and firmware (FW) version combinations:

Argos3D-P100 FW v1.0.0 FW v2.0.0
HW v1.0.0 {{#switch: OK OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}}

HW v2.0.0 {{#switch: OK OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}}

Tim-uP-19k-S3-Spartan-6-USB FW v2.0.0
HW v2.0.0 {{#switch: OK OK OK OK OK OK OK #default = OK

}}

Changes

  • Added new frame modes (see header files).
  • BTA_FrameModeCurrentConfig now works as specified.
  • Fixed Bug when assigning an invalid calibration file name in a BTA_Config.
  • Fixed Bug in Bilateral filter.
  • Changed timestamp in BTA_Frame from ms to us.
  • BTAsetFrameMode only sets the necessary bits in register 0x0F and leaves the others untouched.
  • Frame modes XZYAmp and XYZAmpFlags: unit of amplitudes is now BTA_UnitUnitLess (was BTA_UnitMeters).

Limitations

  • BTAsetKeepAliveMsgInterval()not supported. The device does not need such a feature because it is connected via USB.
  • BTAsetControlCrcEnabled() not suported. The device does not need such a feature because it is connected via USB.
  • BTAsendReset(): The device does not support this feature at this time.
  • BTArestoreDefaultConfig(): The device does not support this feature at this time.
  • No queueing is implemented, thus BTAgetFrame initiates the retrieval of a frame (blocking). Using the frameArrived callback function lets the lib call BTAgetFrame() repeadedly in a separate thread.
  • Only 10 P100 devices supported simultaneously.
  • BTAstartDiscovery() is currently not implemented as intended by the specification. It blocks until there are no new devices to be found. BTAstopDiscovery() in this case is not needed and therefore not supported.
  • BTA_FrameModeDistAmpColor not supported.
  • P100 Firmware 1.0.0: Not possible to set a positive offset.
  • P100 Firmware 1.0.0: Software trigger not supported.
  • BTA_FrameModeIntensities: BTAsetFrameRate does not apply (actual value is about 4 times the value set).
  • Be careful when setting a new frame mode either by using BTAsetFrameMode or by direct access to the calculation mode register.
    Allow the device at least 200ms (more to be on the safe side) to stabilize before calling BTAgetFrame. Take special care when your application is multi-threaded. If you do not wait the specified time the device might no longer respond correctly and in the worst case power cycling the device will be necessary.
  • EXPERT USERS ONLY: If you want to change bits in the calculation mode register (0x0F) that affect which containers are produced by the device you have to set the frame mode to BTA_FrameModeCurrentConfig. Failing to do so will cause BTAgetFrame to return with the error code BTA_StatusUnexpectedDataFormat if the source data necessary for the currently set BTA_frameMode is not correct.

Known Issues

  • BTAsetFrameRate with P100 Firmware 1.0.0: please disregard the printf of "OLD FIRMWARE" to stdout.

Virtual Registers

The following registers do not exist on the underlying hardware but are used in the ToF Api layer exclusively. All registers contain 4 bytes of data.

Register name Register address Description
Bilateral Filter Config 1 0x1E0 bilateral filter on(=1)/off(=0)
Bilateral Filter Config 2 0x1E6 bilateral filter window size; valid values: 3,5,7;

Version 1.0.0

Supported devices/modules in their hardware (HW) and firmware (FW) version combinations:

Argos3D-P100 FW v1.0.0 FW v2.0.0
HW v1.0.0 {{#switch: OK OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}}

HW v2.0.0 {{#switch: OK OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}}

Tim-uP-19k-S3-Spartan-6-USB FW v2.0.0
HW v2.0.0 {{#switch: OK OK OK OK OK OK OK #default = OK

}}

Limitations

  • BTAsetKeepAliveMsgInterval()not supported. The device does not need such a feature because it is connected via USB.
  • BTAsetControlCrcEnabled() not suported. The device does not need such a feature because it is connected via USB.
  • BTAsendReset(): The device does not support this feature at this time.
  • BTArestoreDefaultConfig(): The device does not support this feature at this time.
  • BTA_Frame: genericTemp is not valid
  • Only BTA_FrameModeDistAmpFlags and BTA_FrameModeXYZ are supported.
  • BTA_FrameModeCurrentConfig is treated as BTA_FrameModeDistAmpFlags.
  • No queueing is implemented, thus BTAgetFrame initiates the retrieval of a frame (blocking). Using the frameArrived callback function lets the lib call BTAgetFrame() repeadedly in a separate thread.
  • Only 10 P100 devices supported simultaneously.
  • BTAstartDiscovery() is currently not implemented as intended by the specification. It blocks until there are no new devices to be found. BTAstopDiscovery() in this case is not needed and therefore not supported.

Known Issues

  • When assigning an invalid calibration file name in a BTA_Config and calling BTAopen with this BTA_Config the device will return BTA_StatusInvalidParameter. The device will return BTA_StatusDeviceUnreachable to all subsequent calls of BTAopen until the calling application terminates.
  • The bilateral filter does not work reliably. Do not use it.

Virtual Registers

The following registers do not exist on the underlying hardware but are used in the ToF Api layer exclusively. All registers contain 4 bytes of data.

Register name Register address Description
Bilateral Filter Config 1 0x1E0 bilateral filter on(=1)/off(=0)
Bilateral Filter Config 2 0x1E6 bilateral filter window size; valid values: 3,5,7;

BTA ETH Library

Downloads

Windows 32 bit Windows 64 bit Linux 64 bit ARM hardfloat
V1.6.1 download
V1.3.0 download download download n/a
V1.0.0 download download download download

Version 1.6.1

Supported devices/modules in their hardware (HW) and firmware (FW) version combinations:

Sentis-ToF-M100 FW v1.0.0 FW v2.0.1 FW v2.1.0
HW v0.0.0 {{#switch: OK OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}}

HW v0.2.0 {{#switch: OK OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}}

HW v1.0.0 {{#switch: OK OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}}

Sentis-ToF-P510 FW X-grade
HW X-grade {{#switch: OK OK OK OK OK OK OK #default = OK

}}

Argos3D-P320 FW X-grade
HW X-grade {{#switch: OK OK OK OK OK OK OK #default = OK

}}

Argos3D-P310 FW X-grade
HW X-grade {{#switch: OK OK OK OK OK OK OK #default = OK

}}

Changes

  • Added new frame modes (see header files).
  • Getter and setter for modulation frequency.
  • Grabbing functionality for recording the data stream to a file.
  • BTArestoreDefaultConfig no longer sets default register values. Instead it erases that sections in flash. A reset/power cycle is required for the registers to be default.

Limitations

  • BTAstartDiscovery() The functionality is currently not implemented
  • BTAstopDiscovery() The functionality is currently not implemented
  • FrameModes DistAmpFlags, DistAmpColor, XYZAmpFlags and Intensities are not supported

Version 1.3.0

No information available.

Version 1.0.0

Supported devices/modules in their hardware (HW) and firmware (FW) version combinations:

Sentis-ToF-M100 FW v1.0.0 FW v2.0.1 FW v2.1.0
HW v0.0.0 {{#switch: OK OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}}

HW v0.2.0 {{#switch: OK OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}}

HW v1.0.0 {{#switch: OK OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}} || {{#switch: OK

OK OK OK OK OK OK #default = OK

}}

Sentis-ToF-P510 FW X-grade
HW X-grade {{#switch: OK OK OK OK OK OK OK #default = OK

}}

Argos3D-P320 FW X-grade
HW X-grade {{#switch: OK OK OK OK OK OK OK #default = OK

}}

Argos3D-P310 FW X-grade
HW X-grade {{#switch: OK OK OK OK OK OK OK #default = OK

}}

Limitations

  • BTAstartDiscovery() The functionality is currently not implemented
  • BTAstopDiscovery() The functionality is currently not implemented
  • BTA_FrameModeDistAmpFlags is not supported
  • BTA_Frame: The integration time and modulation frequency are not supported (set to 0)
  • BTA_Frame: genericTemp is not valid

Known Issues

  • BTAgetDeviceInfo() triggers assertion when connected to an Argos3D-P510
  • A TCP control connection without a UDP data connection can be established, but not the other way around
  • Due to timing constraints, BTArestoreDefaultConfig() and BTAwriteCurrentConfigToNvm() do not work on Argos3D-P320 and Sentis-ToF-P510

Reference Manual