Open mhparant opened 10 months ago
Anybody here reading our questions? Seems like this app needs update for the new Lepton 3.1R.
At some point Apple changed the way permissions to get access to USB devices worked. It could be that you will have better luck running the program from the command line, with sudo
. Also, this way there will be some logging output, in case there is something special that needs to happen to run the 3.1R.
Hello Kurt Is "sudo GetThermal" the proper command line? My terminal doesn't find that command sudo: GetThermal: command not found
How did you install it?
You mean the software? I downloaded GetThermal-v0.1.3-MacOS.dmg and GetThermal-v0.1.4-MacOS.dmg I tried both versions. Same result blank screen on GetThermal 1.3 and 1.4 for the Lepton 3.1R But with Lepton 3.5, I can see the live image.
You need to tell the command line to run the program. Refer to the mac OS terminal user guide
~Try this: sudo open -a GetThermal.pro
~
Strike that, the .pro is part of the source code, not the executable. Find where you installed the program and run with sudo open -a
from there.
You mean the software? I downloaded GetThermal-v0.1.3-MacOS.dmg and GetThermal-v0.1.4-MacOS.dmg I tried both versions. Same result blank screen on GetThermal 1.3 and 1.4 for the Lepton 3.1R But with Lepton 3.5, I can see the live image.
The binaries should be inside the /Applications/GetThermal.app/Contents/MacOS directory.
After sudo
running the GetThermal appimage on Ubuntu 23.10 with a Lepton 3.1R I see the failure:
UVC_GetAttribute failed: -9
.
The error happens in this function call in 'leptonvariation.cpp':
LEP_RESULT LeptonVariation::UVC_GetAttribute(LEP_COMMAND_ID commandID,
LEP_ATTRIBUTE_T_PTR attributePtr,
LEP_UINT16 attributeWordLength)
{
int unit_id;
int control_id;
int result;
unit_id = leptonCommandIdToUnitId(commandID);
if (unit_id < 0)
return (LEP_RESULT)unit_id;
control_id = ((commandID & 0x00ff) >> 2) + 1;
// Size in 16-bit words needs to be in bytes
attributeWordLength *= 2;
QMutexLocker lock(&m_mutex);
result = uvc_get_ctrl(devh, unit_id, control_id, attributePtr, attributeWordLength, UVC_GET_CUR);
if (result != attributeWordLength)
{
printf("UVC_GetAttribute failed: %d", result);
return LEP_COMM_ERROR_READING_COMM;
}
return LEP_OK;
}
The 3.1R CCI Command ID is new 05-070850-
. I think that's the main issue here. If FLIR has an update for the Lepton SDK, that should include support for the 3.1R.
Also, line 136 of leptonvariation.cpp
needs || getOemFlirPartNumber().contains("500-0758-01")
added to bool LeptonVariation::getSupportsRadiometry()
Adding complete terminal output text:
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
UVC initialized
Device found
Device opened
DEVICE CONFIGURATION (1e4e:0100/003d0018-500a-564e-3536-203400000000) ---
Status: idle
VideoControl:
bcdUVC: 0x0100
VideoStreaming(1):
bEndpointAddress: 129
Formats:
UncompressedFormat(1)
bits per pixel: 16
GUID: 5559565900001000800000aa00389b71 (UYVY)
default frame: 1
aspect ratio: 0x0
interlace flags: 00
copy protect: 00
FrameDescriptor(1)
capabilities: 02
size: 80x60
bit rate: 691200-691200
max frame size: 9600
default interval: 1/9
interval[0]: 1/9
UncompressedFormat(2)
bits per pixel: 16
GUID: 5931362000001000800000aa00389b71 (Y16 )
default frame: 1
aspect ratio: 0x0
interlace flags: 00
copy protect: 00
FrameDescriptor(1)
capabilities: 02
size: 80x60
bit rate: 691200-691200
max frame size: 9600
default interval: 1/9
interval[0]: 1/9
FrameDescriptor(2)
capabilities: 02
size: 80x63
bit rate: 725760-725760
max frame size: 10080
default interval: 1/9
interval[0]: 1/9
UncompressedFormat(3)
bits per pixel: 8
GUID: 5938202000001000800000aa00389b71 (Y8 )
default frame: 1
aspect ratio: 0x0
interlace flags: 00
copy protect: 00
FrameDescriptor(1)
capabilities: 02
size: 80x60
bit rate: 345600-345600
max frame size: 4800
default interval: 1/9
interval[0]: 1/9
UncompressedFormat(4)
bits per pixel: 16
GUID: 5247425000001000800000aa00389b71 (RGBP)
default frame: 1
aspect ratio: 0x0
interlace flags: 00
copy protect: 00
FrameDescriptor(1)
capabilities: 02
size: 80x60
bit rate: 691200-691200
max frame size: 9600
default interval: 1/9
interval[0]: 1/9
UncompressedFormat(5)
bits per pixel: 24
GUID: 7deb36e44f52ce119f530020af0ba770 (}�6�OR��S)
default frame: 1
aspect ratio: 0x0
interlace flags: 00
copy protect: 00
FrameDescriptor(1)
capabilities: 02
size: 80x60
bit rate: 1036800-1036800
max frame size: 14400
default interval: 1/9
interval[0]: 1/9
END DEVICE CONFIGURATION
Initializing lepton SDK with UVC backend...
Using GroupGets PureThermal (fw:v1.3.0) with firmware 003d0018-500a-564e-3536-203400000000
OK
Found extension unit ID 3, controls: 000fffff, GUID: 70 74 31 2d 6c 65 70 2d 61 67 63 2d 30 30 30 30
Found extension unit ID 4, controls: 7fffffbf, GUID: 70 74 31 2d 6c 65 70 2d 6f 65 6d 2d 30 30 30 30
Found extension unit ID 5, controls: 3ffcffc81ffffff, GUID: 70 74 31 2d 6c 65 70 2d 72 61 64 2d 30 30 30 30
Found extension unit ID 6, controls: 007fffff, GUID: 70 74 31 2d 6c 65 70 2d 73 79 73 2d 30 30 30 30
Found extension unit ID 7, controls: 00003fff, GUID: 70 74 31 2d 6c 65 70 2d 76 69 64 2d 30 30 30 30
Found extension unit ID 21, controls: 07ff9ff9, GUID: 70 74 31 2d 6c 65 70 2d 72 61 64 32 30 30 30 30
Found extension unit ID 254, controls: 0000003f, GUID: 70 74 31 2d 6c 65 70 2d 63 75 73 74 30 30 30 30
bmHint: 0000
bFormatIndex: 5
bFrameIndex: 1
dwFrameInterval: 1111111
wKeyFrameRate: 0
wPFrameRate: 0
wCompQuality: 0
wCompWindowSize: 0
wDelay: 0
dwMaxVideoFrameSize: 14400
dwMaxPayloadTransferSize: 962
bInterfaceNumber: 1
UVC_GetAttribute failed: -9UVC_GetAttribute failed: -9UVC_GetAttribute failed: -9UVC_GetAttribute failed: -9Estimated / selected altsetting bandwith : 13 / 642.
Streaming...
QQmlExpression: Expression qrc:/ViewerForm.ui.qml:68:22 depends on non-NOTIFYable properties:
LeptonVariation::supportsRadiometry
QQmlExpression: Expression qrc:/ViewerForm.ui.qml:53:30 depends on non-NOTIFYable properties:
LeptonVariation::supportsRadiometry
UVC_GetAttribute failed: -9UVC_GetAttribute failed: -9UVC_GetAttribute failed: -9UVC_GetAttribute failed: -9UVC_GetAttribute failed: -9Surface set. Supported formats: 18 19 22 23 20 21 3 1 10 8 5
Surface supports format 3 width 80 height 60_xgeWireToEvent: Unknown extension 145, this should never happen.
QQmlExpression: Expression qrc:/lepton/InfoControls.qml:51:23 depends on non-NOTIFYable properties:
LeptonVariation::ptFirmwareVersion
QQmlExpression: Expression qrc:/lepton/InfoControls.qml:46:23 depends on non-NOTIFYable properties:
LeptonVariation::oemDspSoftwareVersion
QQmlExpression: Expression qrc:/lepton/InfoControls.qml:41:23 depends on non-NOTIFYable properties:
LeptonVariation::oemGppSoftwareVersion
QQmlExpression: Expression qrc:/lepton/InfoControls.qml:36:23 depends on non-NOTIFYable properties:
LeptonVariation::sysFlirSerialNumber
QQmlExpression: Expression qrc:/lepton/InfoControls.qml:31:23 depends on non-NOTIFYable properties:
LeptonVariation::oemFlirPartNumber
qml: model: LeptonVariation(0x24715f0, "LeptonVariation") property: agcHeqNormalizationFactor value: 0
qml: model: LeptonVariation(0x24715f0, "LeptonVariation") property: agcHeqEmptyCount value: 0
qml: model: LeptonVariation(0x24715f0, "LeptonVariation") property: agcHeqMidPoint value: 0
qml: model: LeptonVariation(0x24715f0, "LeptonVariation") property: agcHeqBinExtension value: 0
qml: model: LeptonVariation(0x24715f0, "LeptonVariation") property: agcHeqClipLimitLow value: 0
qml: model: LeptonVariation(0x24715f0, "LeptonVariation") property: agcHeqClipLimitHigh value: 0
qml: model: LeptonVariation(0x24715f0, "LeptonVariation") property: agcHeqMaxGain value: 0
qml: model: LeptonVariation(0x24715f0, "LeptonVariation") property: agcHeqDampingFactor value: 0
qml: model: LeptonVariation(0x24715f0, "LeptonVariation") property: agcLinearDampeningFactor value: 0
qml: model: LeptonVariation(0x24715f0, "LeptonVariation") property: agcLinearMidPoint value: 0
qml: model: LeptonVariation(0x24715f0, "LeptonVariation") property: agcLinearMaxGain value: 0
qml: model: LeptonVariation(0x24715f0, "LeptonVariation") property: agcLinearHistogramClipPercent value: 0
qml: model: LeptonVariation(0x24715f0, "LeptonVariation") property: agcLinearHistogramTailSize value: 0
QQmlExpression: Expression qrc:/lepton/AgcControls.qml:11:14 depends on non-NOTIFYable properties:
LeptonVariation::supportsRadiometry
QQmlExpression: Expression qrc:/lepton/VidControls.qml:69:22 depends on non-NOTIFYable properties:
LeptonVariation::supportsRadiometry
QQmlExpression: Expression qrc:/lepton/VidControls.qml:62:22 depends on non-NOTIFYable properties:
LeptonVariation::supportsRadiometry
QQmlExpression: Expression qrc:/lepton/VidControls.qml:47:22 depends on non-NOTIFYable properties:
LeptonVariation::supportsHwPseudoColor
LeptonVariation::supportsRadiometry
QQmlExpression: Expression qrc:/lepton/VidControls.qml:26:22 depends on non-NOTIFYable properties:
LeptonVariation::supportsHwPseudoColor
LeptonVariation::supportsRadiometry
UVC_GetAttribute failed: -9
sudo open -a
griffin175 So here's a screenshot of what I tried today with your suggestion
Unfortunately It is still a blank screen for the Lepton 3.1R I had previously plugged the camera before opening the app.
Note - If I change the parameters in GetThermal, even if I dont see the live image, and "PERFORM FFC", these settings are saved and visible in the live image in another software (like MaxMSP or Zoom). AGC is also available. It is really just the update of the live image that is missing it seems.
I just tried with Lepton 3.5 and the same procedure shows the live image.
But the AGC is all grayed out and it can not be modified.
.
At some point Apple changed the way permissions to get access to USB devices worked. It could be that you will have better luck running the program from the command line, with
sudo
. Also, this way there will be some logging output, in case there is something special that needs to happen to run the 3.1R.
For me the USB seems to work since I can read the live image of Lepton 3.5 but not the 3.1R. The USB cable is connected to a powered USB HUB as well.
Also, line 136 of leptonvariation.cpp needs || getOemFlirPartNumber().contains("500-0758-01") added to bool LeptonVariation::getSupportsRadiometry()
Turns out that addition was all that was needed. Just submitted a pull request, but you can try building my branch now: https://github.com/griffin175/GetThermal/tree/Lepton3.1R-support
Also, line 136 of leptonvariation.cpp needs || getOemFlirPartNumber().contains("500-0758-01") added to bool LeptonVariation::getSupportsRadiometry()
Turns out that addition was all that was needed. Just submitted a pull request, but you can try building my branch now: https://github.com/griffin175/GetThermal/tree/Lepton3.1R-support
Hello griffin175, Not sure how to install the addition for GetThermal?!
Lepton 3.1R - trying to run on RPi OS - no cam feed. Adding "500-0758-03" doesn't help. Running via VLC on Mac - it works.
UVC initialized
Device found
Device opened
DEVICE CONFIGURATION (1e4e:0100/004f005b-5008-564e-3536-203400000000) ---
Status: idle
VideoControl:
bcdUVC: 0x0100
VideoStreaming(1):
bEndpointAddress: 129
Formats:
UncompressedFormat(1)
bits per pixel: 16
GUID: 5559565900001000800000aa00389b71 (UYVY)
default frame: 1
aspect ratio: 0x0
interlace flags: 00
copy protect: 00
FrameDescriptor(1)
capabilities: 02
size: 160x120
bit rate: 2764800-2764800
max frame size: 38400
default interval: 1/9
interval[0]: 1/9
UncompressedFormat(2)
bits per pixel: 16
GUID: 5931362000001000800000aa00389b71 (Y16 )
default frame: 1
aspect ratio: 0x0
interlace flags: 00
copy protect: 00
FrameDescriptor(1)
capabilities: 02
size: 160x120
bit rate: 2764800-2764800
max frame size: 38400
default interval: 1/9
interval[0]: 1/9
FrameDescriptor(2)
capabilities: 02
size: 160x122
bit rate: 2810880-2810880
max frame size: 39040
default interval: 1/9
interval[0]: 1/9
UncompressedFormat(3)
bits per pixel: 8
GUID: 5938202000001000800000aa00389b71 (Y8 )
default frame: 1
aspect ratio: 0x0
interlace flags: 00
copy protect: 00
FrameDescriptor(1)
capabilities: 02
size: 160x120
bit rate: 1382400-1382400
max frame size: 19200
default interval: 1/9
interval[0]: 1/9
UncompressedFormat(4)
bits per pixel: 16
GUID: 5247425000001000800000aa00389b71 (RGBP)
default frame: 1
aspect ratio: 0x0
interlace flags: 00
copy protect: 00
FrameDescriptor(1)
capabilities: 02
size: 160x120
bit rate: 2764800-2764800
max frame size: 38400
default interval: 1/9
interval[0]: 1/9
UncompressedFormat(5)
bits per pixel: 24
GUID: 7deb36e44f52ce119f530020af0ba770 (}�6�OR��S)
default frame: 1
aspect ratio: 0x0
interlace flags: 00
copy protect: 00
FrameDescriptor(1)
capabilities: 02
size: 160x120
bit rate: 4147200-4147200
max frame size: 57600
default interval: 1/9
interval[0]: 1/9
END DEVICE CONFIGURATION
Initializing lepton SDK with UVC backend...
Using GroupGets PureThermal (fw:v1.3.0) with firmware 004f005b-5008-564e-3536-203400000000
OK
Found extension unit ID 3, controls: 000fffff, GUID: 70 74 31 2d 6c 65 70 2d 61 67 63 2d 30 30 30 30
Found extension unit ID 4, controls: 7fffffbf, GUID: 70 74 31 2d 6c 65 70 2d 6f 65 6d 2d 30 30 30 30
Found extension unit ID 5, controls: 3ffcffc81ffffff, GUID: 70 74 31 2d 6c 65 70 2d 72 61 64 2d 30 30 30 30
Found extension unit ID 6, controls: 007fffff, GUID: 70 74 31 2d 6c 65 70 2d 73 79 73 2d 30 30 30 30
Found extension unit ID 7, controls: 00003fff, GUID: 70 74 31 2d 6c 65 70 2d 76 69 64 2d 30 30 30 30
Found extension unit ID 21, controls: 07ff9ff9, GUID: 70 74 31 2d 6c 65 70 2d 72 61 64 32 30 30 30 30
Found extension unit ID 254, controls: 0000003f, GUID: 70 74 31 2d 6c 65 70 2d 63 75 73 74 30 30 30 30
bmHint: 0000
bFormatIndex: 5
bFrameIndex: 1
dwFrameInterval: 1111111
wKeyFrameRate: 0
wPFrameRate: 0
wCompQuality: 0
wCompWindowSize: 0
wDelay: 0
dwMaxVideoFrameSize: 57600
dwMaxPayloadTransferSize: 962
bInterfaceNumber: 1
Estimated / selected altsetting bandwith : 18 / 642.
Streaming...
QQmlExpression: Expression qrc:/ViewerForm.ui.qml:68:13 depends on non-NOTIFYable properties:
LeptonVariation::supportsRadiometry
QQmlExpression: Expression qrc:/ViewerForm.ui.qml:53:21 depends on non-NOTIFYable properties:
LeptonVariation::supportsRadiometry
Surface set. Supported formats: 18 19 34 22 23 20 21 3 1 10 8 5
Surface supports format 3 width 160 height 120QQmlExpression: Expression qrc:/lepton/InfoControls.qml:51:17 depends on non-NOTIFYable properties:
LeptonVariation::ptFirmwareVersion
QQmlExpression: Expression qrc:/lepton/InfoControls.qml:46:17 depends on non-NOTIFYable properties:
LeptonVariation::oemDspSoftwareVersion
QQmlExpression: Expression qrc:/lepton/InfoControls.qml:41:17 depends on non-NOTIFYable properties:
LeptonVariation::oemGppSoftwareVersion
QQmlExpression: Expression qrc:/lepton/InfoControls.qml:36:17 depends on non-NOTIFYable properties:
LeptonVariation::sysFlirSerialNumber
QQmlExpression: Expression qrc:/lepton/InfoControls.qml:31:17 depends on non-NOTIFYable properties:
LeptonVariation::oemFlirPartNumber
qml: model: LeptonVariation(0x55a7642b30, "LeptonVariation") property: agcHeqNormalizationFactor value: 0
qml: model: LeptonVariation(0x55a7642b30, "LeptonVariation") property: agcHeqEmptyCount value: 0
qml: model: LeptonVariation(0x55a7642b30, "LeptonVariation") property: agcHeqMidPoint value: 128
qml: model: LeptonVariation(0x55a7642b30, "LeptonVariation") property: agcHeqBinExtension value: 0
qml: model: LeptonVariation(0x55a7642b30, "LeptonVariation") property: agcHeqClipLimitLow value: 512
qml: model: LeptonVariation(0x55a7642b30, "LeptonVariation") property: agcHeqClipLimitHigh value: 4800
qml: model: LeptonVariation(0x55a7642b30, "LeptonVariation") property: agcHeqMaxGain value: 1
qml: model: LeptonVariation(0x55a7642b30, "LeptonVariation") property: agcHeqDampingFactor value: 0
qml: model: LeptonVariation(0x55a7642b30, "LeptonVariation") property: agcLinearDampeningFactor value: 100
qml: model: LeptonVariation(0x55a7642b30, "LeptonVariation") property: agcLinearMidPoint value: 128
qml: model: LeptonVariation(0x55a7642b30, "LeptonVariation") property: agcLinearMaxGain value: 1
qml: model: LeptonVariation(0x55a7642b30, "LeptonVariation") property: agcLinearHistogramClipPercent value: 0
qml: model: LeptonVariation(0x55a7642b30, "LeptonVariation") property: agcLinearHistogramTailSize value: 0
QQmlExpression: Expression qrc:/lepton/AgcControls.qml:11:5 depends on non-NOTIFYable properties:
LeptonVariation::supportsRadiometry
QQmlExpression: Expression qrc:/lepton/VidControls.qml:69:13 depends on non-NOTIFYable properties:
LeptonVariation::supportsRadiometry
QQmlExpression: Expression qrc:/lepton/VidControls.qml:62:13 depends on non-NOTIFYable properties:
LeptonVariation::supportsRadiometry
QQmlExpression: Expression qrc:/lepton/VidControls.qml:47:13 depends on non-NOTIFYable properties:
LeptonVariation::supportsHwPseudoColor
LeptonVariation::supportsRadiometry
QQmlExpression: Expression qrc:/lepton/VidControls.qml:26:13 depends on non-NOTIFYable properties:
LeptonVariation::supportsHwPseudoColor
LeptonVariation::supportsRadiometry
qrc:/lepton/VidControls.qml:163:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(
Hello
I just received my Lepton 3.1R and I am unable to view the live image on GetThermal for Mac (screenshot attached). I am able to see the streaming image on Zoom and MaxMSP.
I reinstalled GetThermal for Mac but it's the same sad result.
Someone can help me with this?