Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lepton 3.1R - functional but no image on GetThermal #62

Open
mhparant opened this issue Jan 23, 2024 · 14 comments
Open

Lepton 3.1R - functional but no image on GetThermal #62

mhparant opened this issue Jan 23, 2024 · 14 comments

Comments

@mhparant
Copy link

mhparant commented Jan 23, 2024

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?

Screen Shot 2024-01-23 at 12 52 13 PM
@mhparant
Copy link
Author

Anybody here reading our questions? Seems like this app needs update for the new Lepton 3.1R.

@kekiefer
Copy link
Member

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.

@mhparant
Copy link
Author

mhparant commented Jan 29, 2024

Hello Kurt
Is "sudo GetThermal" the proper command line?
My terminal doesn't find that command
sudo: GetThermal: command not found

Screen Shot 2024-01-29 at 10 19 57 AM

@metanav
Copy link

metanav commented Feb 7, 2024

How did you install it?

@mhparant
Copy link
Author

mhparant commented Feb 9, 2024

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.

@griffin175
Copy link
Contributor

griffin175 commented Feb 10, 2024

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.

@metanav
Copy link

metanav commented Feb 10, 2024

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.

@griffin175
Copy link
Contributor

griffin175 commented Feb 10, 2024

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

@mhparant
Copy link
Author

mhparant commented Feb 10, 2024

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.

Screen Shot 2024-02-10 at 11 42 16 AM

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.

@mhparant
Copy link
Author

mhparant commented Feb 10, 2024

I just tried with Lepton 3.5 and the same procedure shows the live image.

Screen Shot 2024-02-10 at 11 51 35 AM

But the AGC is all grayed out and it can not be modified.

Screen Shot 2024-02-10 at 11 56 32 AM

.

@mhparant
Copy link
Author

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.

@griffin175
Copy link
Contributor

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

@mhparant
Copy link
Author

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?!

@badgerhoneymoon
Copy link

badgerhoneymoon commented Mar 30, 2024

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.

Screenshot 2024-03-30 at 12 23 23 AM

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() { ... }
UVC_GetAttribute failed: -9UVC_GetAttribute failed: -9UVC_GetAttribute failed: -9UVC_SetAttribute failed: -9UVC_SetAttribute failed: -9UVC_SetAttribute failed: -9Done streaming.
Device closed
UVC exited

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants