Bluetechnix 'Time of Flight' API: Unterschied zwischen den Versionen
en>Peter K (1 Version importiert) |
Peter (Diskussion | Beiträge) K (1 Version importiert) |
(kein Unterschied)
|
Aktuelle Version vom 31. Oktober 2023, 09:03 Uhr
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
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