Software for Xtherm T3s and HT-301 - Page 1
Forum section: electronics / general

author: zrq
author_rank: Frequent Contributor
timestamp: January 26, 2020, 04:56:46 pm
content: For Xtherm T3s (almost identical to HT-301), here is the link to the SDKLINK REMOVED FOR PRIVACY CONSIDERATION (pm me to request it, tks)(I may remove or disable the link anytime if I'm notified of a copyright infringement)You can pass frames grabbed with UVC protocol to the binary library (XthermDll.dll or libthermometry.so) to get radiometric temperature data.Unfortunately, documentation is Chinese only and the demo programs are crappy, but I can help you with Chinese if there is something too difficult for Google Translate.I also reverse engineered the binary XthermDll.dll to make it work with x64 programs and wrote some utilities for grabbing frames with OpenCV, doing NUC, naive removal of the vertical and horizonal line pattern. See XthermToolkit.zip in the link.Enjoy the great camera on any platform you preferEDIT: I willNOTsend the files to Zero Posters in the forum, unless they can show a proof of purchase.

author: zrq
author_rank: Frequent Contributor
timestamp: January 26, 2020, 06:36:34 pm
content: I just uploaded a modified app for HT-301 and Xtherm T3s without the logo.LINK REMOVED FOR PRIVACY CONSIDERATION (pm me to request it, tks)What I did is0.generate a self-signed certificate1.apktool d2.replace hti_logo.png with a transparent png3.apktool b4.jarsigner

author: alex871
author_rank: Regular Contributor
timestamp: January 26, 2020, 10:52:14 pm
content: Hi, unfortunately I'm not very practical about these things. What is the procedure? Which file should I download? Should the .apk file be opened with the android cell?

author: zrq
author_rank: Frequent Contributor
timestamp: January 27, 2020, 04:29:02 am
content: Quote from: alex871 on January 26, 2020, 10:52:14 pmInstall HT-301_nologo.apk on your phone and it's done.I posted the procedure to help others who want to do this after new versions are released.

author: alex871
author_rank: Regular Contributor
timestamp: January 27, 2020, 03:31:58 pm
content: Ok, if it's just for the logo it's okay to keep it. I'm interested in the processing of thermal images with PC software.Thank youAlessio

author: alex871
author_rank: Regular Contributor
timestamp: February 13, 2020, 11:27:45 pm
content: xinfrared offers much more complete software. How do you get it ?http://www.xinfrared.com/index.php?m=content&c=index&a=show&catid=50&id=7

author: alex871
author_rank: Regular Contributor
timestamp: February 16, 2020, 02:46:27 am
content: This software aviable for hti 301 ?http://www.grayess.com/software/irt-analyzer/

author: zrq
author_rank: Frequent Contributor
timestamp: February 16, 2020, 10:14:59 am
content: No.The official app for Xtherm is almost the same of the app for HT-301 but slightly older, there is no need to try it.You should stop dreaming for a existing perfect software for this new Chinese camera. Try to develop your own analysis software with the SDK and reference code I posted, or you can grab the raw frame and do analysis with matlab or python.

author: alex871
author_rank: Regular Contributor
timestamp: February 16, 2020, 11:48:21 am
content: Quote from: zrq on February 16, 2020, 10:14:59 amAs already said I am not a computer scientist, I do not understand much of these things so I would not be able to process the images with the information you have given me. Thank you all the same but it's all out of my reach

author: RBsonic
author_rank: Regular Contributor
timestamp: March 04, 2020, 07:42:17 am
content: If someone wants to play with HTI apk file, I recommend for this "APK Editor Studio"https://qwertycube.com/apk-editor-studio/May be you need latest Java:https://java.com/en/download/manual.jspI changed cursors for temperature measurement.There are two versions:1. I made cursors smaller and added borderhttps://yadi.sk/d/nGgIERvTW_YQGA2. I made round cursors like in Thermviewerhttps://yadi.sk/d/s_skZGN0-Pg9zQBoth versions have no logo. Now cursors are more visible on some palletes.P.S. If someone knows how can I change color of digits and add border, please let me know.HT-301 Other cursors. All palleteshttps://youtu.be/IoVj6wSQZ34

author: ssytn
author_rank: Newbie
timestamp: April 23, 2020, 04:33:41 pm
content: Hello wonder if you managed to get the SDK for this camera

author: rmp94
author_rank: Newbie
timestamp: May 16, 2020, 01:56:11 am
content: Also looking to work with the SDK and docs. Is it re-posted somewhere?

author: jerry12335
author_rank: Newbie
timestamp: May 20, 2020, 03:57:55 pm
content: May I have those SDK and apps of HT-301?I think the apps could be enhance by DIY.Just pmedThanks.

author: haizaar
author_rank: Regular Contributor
timestamp: June 03, 2020, 01:14:05 am
content: Trying to use my shining HT-301 here on Galaxy S10 Android 10.The official app from the Play Store doesn't detect the camera at all.Download link on the HTI web site is broken but Mr Lin was quite responsive in sending me the fixed link:http://124.225.183.134/12488881.s21d-12.faiusrd.com/0/ABUIABBKGAAgqsXG7wUonOaatQQ?f=HT-301_Please+remove+the+old+version+software+before+install.apk&v=1576116906&wsiphost=local&wsrid_tag=5ed6f58a_PS-HAK-01vNQ133_14229-19466However video recording doesn't work in the above app - it just exits when I try to record. Same for those altered by RBsonic (thank you!) - work perfectly except for video recording. Did anyone encounter this issue? Something to do with Android 10? (I double-checked and no permissions are denied for the app)

author: haizaar
author_rank: Regular Contributor
timestamp: June 03, 2020, 03:59:59 am
content: Mr Lin updated that their HTI app indeed doesn't support video recording on Galaxy S10 with Android 10. He sent me apk for Xtherm but it has exactly the same issue - app exists once you try recording. Here is the apk if anyone is interested. As a bonus, settings have a toggle to control logo on/off.http://124.225.183.133/12488881.s21d-12.faiusrd.com/0/ABUIABBKGAAg4v3b9gUo96f7SA?f=com.infiRay.Xtherm.apk&v=1591148259&wsiphost=local&wsrid_tag=5ed6ff03_PS-HAK-01mEe140_30926-3425Mr Lin frankly stated that they won't fix the issue with S10/ Android 10.On the bright side, video recording works just fine with ThermView which I planned to purchase anyway.

author: haizaar
author_rank: Regular Contributor
timestamp: June 03, 2020, 05:45:40 am
content: Wow, HTI kindly suggested to reimburse me for TermView license cost, since they couldn't get my cam to record videos with their app on Galaxy S10. Totally impressed with this kind of service!

author: Michael82
author_rank: Newbie
timestamp: June 03, 2020, 03:03:03 pm
content: I got my T3s a week ago.All apps working on my Note10+ N975f Android 10Great camera compared to my old FlirOne gen2 160x120App is very simple (i prefer the Hti App) , so i need a better... thermviewer.But the Thermviewer images are less sharp than HTI and Xtherm app.Image quality is very poor.And its not possible to activate TV "link adress error"

author: alexwhittemore
author_rank: Frequent Contributor
timestamp: June 03, 2020, 09:19:04 pm
content: Quote from: Michael82 on June 03, 2020, 03:03:03 pmHow'd you find one and what'd you pay? I see we're in different countries, but I can't seem to find a price or purchase link for a T3s/Pro anywhere, JUST HT-301 (which is a bummer since I think one of the T3s or pro is supposed to be cheaper?)

author: RBsonic
author_rank: Regular Contributor
timestamp: June 04, 2020, 01:48:59 am
content: Quote from: alexwhittemore on June 03, 2020, 09:19:04 pmI found T3s onaliexpress, but it is not cheaper.

author: Michael82
author_rank: Newbie
timestamp: June 04, 2020, 03:38:12 pm
content: For Germany:liemke.shop T3s 750€ (paypal)Amazon.de Ht301 818€ (Creditcard mandatory)Important: T3s and HT301 have different housings!HT301 owns an extended/longer USB plug.Any ideas why TV is so blurry compared to Hti/xtherm app?We need a better app for the cameras, developers! ;-)

author: RBsonic
author_rank: Regular Contributor
timestamp: June 04, 2020, 04:47:41 pm
content: Also T3s can official measure tempetarure only up to 120°C.HT-301 - up to 400-600°C

author: Nyx_
author_rank: Newbie
timestamp: June 18, 2020, 01:06:15 pm
content: Hello Folks. Good day.I've read on this thread that we can capture some metadata for the HT-301 by analyzing the USB stream. It was stated also that we can send commands via the Zoom channel.I'm wondering how can I get started to capture the individual pixel temperature values with the camera connected to a USB Linux PC. I see about 4 green lines on the bottom of the video stream that, I believe, might contain some relevant information like the temperature range or something else that might help put together the temperature matrix.Does anyone can kindly point me to something resource that will help get the thermometric information out of this camera via a USB connection?I believe it's possible to obtain this information but so far, I'm clueless on how to get started with capturing the information and commanding the camera via USB.Any help is highly appreciated.Thank you.

author: RBsonic
author_rank: Regular Contributor
timestamp: June 18, 2020, 04:01:40 pm
content: Quote from: Nyx_ on June 18, 2020, 01:06:15 pmIf you understand android software, you can try a reverse engineering with HTI Imager and Thermviewer Apps to find programm code for control thermal camera.

author: zrq
author_rank: Frequent Contributor
timestamp: June 19, 2020, 05:28:46 am
content: I sent you the link to the SDK in PM.For the Zoom Channel commands, I had a note in XthermToolkit.zip (in XthermDll调用说明.docx), you may also refer to the xthermpyshowpyqt.py for some usage.You can derive the temperature mapping from the 4 lines, using the XthermDll.dll(the original one or the one from the decompiled source). I also succeeded in making this a .so and run on Ubuntu. See the XthermDll调用说明.docx for its usage or look at xthermpyshowpyqt.py as an example.

author: petr
author_rank: Newbie
timestamp: June 19, 2020, 11:45:46 am
content: Hi can I ask you for the link too zrq? I sent you PM some time agoThank you.

author: Nyx_
author_rank: Newbie
timestamp: June 19, 2020, 03:34:55 pm
content: Thank you zrq. Appreciate your help. I'll take a look into it and see if I can make it to work. Appreciate your help.

author: bermak
author_rank: Newbie
timestamp: June 20, 2020, 05:09:39 pm
content: Does HT-201 also work as usb webcam?I’m thinking of getting a thermal camera to see which part of my notebook caused GPU/CPU throttling while use.ht-201 is almost half price of 301 which is more budget friendly.

author: PachekoVA
author_rank: Newbie
timestamp: June 20, 2020, 07:51:35 pm
content: can you send me the example xthermDLL?

author: zrq
author_rank: Frequent Contributor
timestamp: June 21, 2020, 03:37:59 am
content: For some reason, I feel a bit relutant to send the files to Zero Posters, unless they can show a proof of purchase.

author: rmp94
author_rank: Newbie
timestamp: July 20, 2020, 10:53:14 pm
content: Were you able to reverse out compute_atmo_trans() from the compiled DLL or did you use that book's equation as your own atmospheric transmission function? That's pretty neat and not that obvious of an equation.

author: zrq
author_rank: Frequent Contributor
timestamp: July 21, 2020, 01:39:16 am
content: I reversed it and found it coincident with what I found in the book.

author: SaitComplete
author_rank: Newbie
timestamp: July 23, 2020, 05:11:40 am
content: hello can you send yours ubuntu files ? i can buy it

author: Zhao
author_rank: Newbie
timestamp: September 06, 2020, 10:29:37 pm
content: Hello, I am planning to order an Xtherm T3s from alibaba to save ~150 bucks over the HT-301, which is available on Amazon with fast shipping. I wonder if there are any major quirks with T3s compared to HT-301?One thing I have noticed is the difference in temperature range:- HT-301 claims to work for -20 to 400 deg C (there are some sources citing -20 to 300 and -20 to 120+ deg C).- T3S only officially support -20 to 120 deg C. Higher temperature range is reserved for T3Pro.I wonder if this is strictly enforced in the FW or it can be walked around with 3rd party software such as ThermViewer. T3Pro is much more expensive compared to T3s or HT-301. If T3s is hard-capped in temperature range, it will make more sense to get the HT-301 instead.The other thing is about the permanent logo. According to cnxunuo, the logo seems to be baked into the raw data. I wonder if there are ways to get around. I plan to play with the raw data in OpenCV so it will be pretty nasty if there is a logo on the corner. I wonder if HT-301 has the same issue.Quote from: cnxunuo on May 11, 2019, 12:01:17 pmThanks!

author: Unknown
author_rank: Unknown
timestamp: September 10, 2020, 01:12:11 am
content: Mind sending me a link to your SDK?I have a HT-301; would like to interface it to a Windows PC and analyze images in NumPy.

author: valerian
author_rank: Newbie
timestamp: September 11, 2020, 07:44:27 am
content: Hello,Can you send me the SDK link pleaseRegards,

author: Zhao
author_rank: Newbie
timestamp: September 21, 2020, 12:36:07 am
content: Hello, I wonder if I can get a copy of your code that converts the raw data from HT301 / T3s / T3Pro to temperature readings.I have recently purchased a T3Pro after knowing how hackable it is. Based on your posts, I'm now able to stream the 16-bit raw data from the camera (code and result attached).I appreciate your work!Code:import numpy as npimport cv2cap = cv2.VideoCapture(1)cap.set(cv2.CAP_PROP_CONVERT_RGB, 0)# Use raw modecap.set(cv2.CAP_PROP_ZOOM, 0x8004)# Calibrate#cap.set(cv2.CAP_PROP_ZOOM, 0x8000)while(True):ret, frame = cap.read()frame = frame.reshape(292,384,2) # 0: LSB. 1: MSB# Remove the four extra rowsframe = frame[:288,...]# Convert to uint16dt = np.dtype(('<u2', [('x', np.uint8, 2)]))frame = frame.view(dtype=dt).astype(np.float32)# Sketchy auto-exposureframe -= frame.min()frame /= frame.max()gray = np.clip(frame, 0, 1) ** (1/2.2)cv2.imshow('frame',gray)if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release()cv2.destroyAllWindows()

author: therm_space
author_rank: Newbie
timestamp: October 14, 2020, 11:34:32 pm
content: Zrq:I joined EEVvblog yesterday to find some information to read images and thermal data from T3s from my linux PC. Can you share any information to create dynamic library?Thanks in advance.

author: alexwhittemore
author_rank: Frequent Contributor
timestamp: October 17, 2020, 02:45:07 am
content: Quote from: haizaar on June 03, 2020, 03:59:59 amAre you freaking kidding? How is this company SO bad at software?Quote from: zrq on January 26, 2020, 04:56:46 pmNow that I've got one of these 301s in my hands, I'd love a copy of your SDK!

author: alexwhittemore
author_rank: Frequent Contributor
timestamp: October 25, 2020, 05:09:12 am
content: Quote from: zrq on January 26, 2020, 04:56:46 pmThanks for sending along the SDK! I'm trying to run the Python example under linux (Ubuntu 20.04, x86_64 desktop VM). I've managed to install opencv and pyqt5, but I'm running into an error here:Code:if not (rawFrame.size == 292 * 384 * 2):print('ERROR: Incorrect frame size, wrong camera selected?')print('Frame size: {}'.format(rawFrame.size))exitNow()rawFrame.size appears to be 336384, which is actually 292 * 384 * 3. I think that means 3 bytes per pixel instead of the expected 2? It doesn't make any sense to me why that'd be.

author: zrq
author_rank: Frequent Contributor
timestamp: October 25, 2020, 04:32:39 pm
content: This looks weird to me, when I was using Ubuntu 18.04, I never have such an issue. Sorry but I don't really have an idea. Is the acquisition mode wrong and OpenCV is getting some RGB data?

author: alexwhittemore
author_rank: Frequent Contributor
timestamp: October 25, 2020, 05:24:20 pm
content: Quote from: zrq on October 25, 2020, 04:32:39 pmOh definitely an interesting though to chase down. Sounds extremely plausible.

author: Tavana
author_rank: Newbie
timestamp: November 10, 2020, 04:31:12 pm
content: May I ask you to please send me SDK for ht-301 ?

author: Zhao
author_rank: Newbie
timestamp: November 14, 2020, 08:32:18 pm
content: I have the same issue. A simple reshape worked for me. See my previous post with code.Quote from: alexwhittemore on October 25, 2020, 05:24:20 pm

author: rasselfast
author_rank: Newbie
timestamp: December 18, 2020, 07:51:39 pm
content: Received my copy of HT-301, found fixed pixels. Pixels have a halo. Dust on the matrix? It was not possible to unscrew the lens, rested against the retainer. I will disassemble.I made an adapter and connected it to a Windows computer, found two dead pixels. In the official application, they are not visible, probably interpolation overwrites them, or a map of dead pixels is loaded. I am interested in the ability to get RAW data for extracting temperature data in Windows environment.Quote from: zrq on January 26, 2020, 04:56:46 pmI would be grateful for your SDK!

author: mell
author_rank: Newbie
timestamp: January 13, 2021, 10:13:33 am
content: Hi everybody!Hi Mr. zrq!Mr. zrq,let me ask you to check your forum mailbox.

author: Odiug
author_rank: Newbie
timestamp: January 30, 2021, 09:41:39 pm
content: Hi All,Since yesterday I am also a proud owner of an HT-301. And I also would like to use it freely under Linux preferably with temperature information.@Zhao: Thanks for the Python OpenCV script. Works fine for me.So what do we know about the device already? From Zhao's script I deduce that with some UVC properties we can control certain things. The "calibrate" or shutter (the clicking sound) is also something I can confirm from looking at the APK with jadx-gui. I guess it takes a dark frame for calibration. In the app you can manually trigger it by touching the shutter symbol (lower left of UI).From the apk, I also learned that most of the interesting stuff happens in libUVCCamera.so, which also calls libthermometry.so. I will probably try to continue my reverse engineering, but it is a bit tedious as my Android programming experience is rather limited.I saw that eric in another thread has the palette working. Is this also something being controlled by a property setting, or does this happen in libUVCCamera.so?@zrq: What can I do to convince you sharing the SDK with me?How did you obtain it? NDA?RegardsGuido

author: stawel
author_rank: Newbie
timestamp: January 30, 2021, 09:57:35 pm
content: This is my first message, so hello everyone!I recently bought a HT-301 thermal camera, unfortunately I couldn't find a software which would meet my needs,so I wrote my own, maybe some of you will be interested:https://github.com/stawel/ht301_hacklib/tree/masterit's a very simple (hacked) python script which is able to display the temperature in Celsiusand runs on ubuntu 20.04 (not sure if it will run on windows).The temperature calculation is based on this project:https://github.com/mcguire-steve/ht301_ircamcurrently the values are probably a little bit off, but are good enough for me.I've tried to 'decipher' what is going on there with little success, but found some useful papers:https://www.mdpi.com/1424-8220/17/8/1718unfortunately I don't have time to develop it further, as the current state meets my needs, so do what you want with it.best regards,Pawel

author: Odiug
author_rank: Newbie
timestamp: January 30, 2021, 10:21:18 pm
content: Hi PawelThanks a lot for sharing your software and the other references. That's just what I was looking for.Ah, I see, ht301_ircam contains a decompiled version of Xtherm.dll.RegardsGuido

author: stawel
author_rank: Newbie
timestamp: January 30, 2021, 11:34:22 pm
content: what a interesting suggestionhm.. I myself was wondering what a strange code standard they have in the original ros projectbut to be honest, the only part that was not changed (or only slightly changed) is:https://github.com/stawel/ht301_hacklib/blob/master/ht301_hacklib.py#L74-L94which I don't fully understand (and variable names associated with this code)unfortunately this also means that I probably introduced my own mistakes

author: stawel
author_rank: Newbie
timestamp: February 06, 2021, 12:29:18 am
content: I was asked what I was able to figure out about the XthermDll.cpp code so here it is, maybe it will be useful to some of you.(bare in mind that I may have introduced some errors to the code)useful materials:https://en.wikipedia.org/wiki/Stefan%E2%80%93Boltzmann_lawhttps://www.mdpi.com/1424-8220/17/8/1718(sensors-17-01718-v2.pdf)https://github.com/mcguire-steve/ht301_ircamhttps://github.com/stawel/ht301_hacklib#################### sub_10001010 ###################################sub_10001010: - calculate: water vapour content coefficient, transmittance of atmosphere and part of object temperature equation (formula (2))code mapping:https://github.com/mcguire-steve/ht301_ircam/blob/fd6daa8fcee96835d52e200f53451d613718cc66/src/XthermDll.cpp#L13-L48https://github.com/stawel/ht301_hacklib/blob/a54853a62323c5d6d2befac636568590f433a87b/ht301_hacklib.py#L34-L64sensors-17-01718-v2.pdf page:4variables in 'ht301_hacklib.py code', [XthermDll.cpp code]:'w',  - water vapour content coefficient, formula (4)'t',  - transmittance of atmosphere, formula (3)'part_emi_t_1',  - part of formula (2) (denominator without the Stefan-Boltzmann constant)'part_Tatm_Trefl',  - part of formula (2) (part of the numerator without the Stefan-Boltzmann constant)note 1: h0, h1, h2, h3 coefficients from paper differ from XthermDll.cpp codenote 2: XthermDll.cpp code uses mostly 32 bit floats so numbers have bigger rounding errors#################### sub_10001180 #####################################sub_10001180 - generate lookup table (LUT)sensor raw values are mapped from [0, 16384] -> object temperature (floats)code mapping:https://github.com/mcguire-steve/ht301_ircam/blob/fd6daa8fcee96835d52e200f53451d613718cc66/src/XthermDll.cpp#L72-L141https://github.com/stawel/ht301_hacklib/blob/a54853a62323c5d6d2befac636568590f433a87b/ht301_hacklib.py#L74-L94this is the part which I don't fully understand, but it's essentially formula (2) with some addons:variables (which I understand) in 'ht301_hacklib.py code', [XthermDll.cpp code]:'np_Ttot',  - Total radiation temperature (is the name correct?) (Wtot = o*Ttot^4, formula (2))'np_Tobj_C',  - object temperature in Celsius (formula (2), note Stefan-Boltzmann constant is not needed because we are using Ttot^4 instead of Wtot)'np_result', [*p] - np_result = np_Tobj_C + distance_c * (np_Tobj_C - airtmp_) - some "magic" addon, this is the temperature presented to user, probably not needed (?)'distance_c', [(v16 - 1.125) / 100.] - helper variable used in "magic" addonsome additional info:result = 4;v17 = 1.0;while (1) {v12 = v20;if (result & 1)v17 = v17 * v12;result >>= 1;if (!result)break;v20 = v12 * v12;}is a fancy way of saying: v17 = v20**4, or np_Ttot**4#################### UpdateParam #####################################read calibration data (Non-uniformity correction (NUC) data(?), shutter closed) and calculate LUTcode mapping:https://github.com/mcguire-steve/ht301_ircam/blob/fd6daa8fcee96835d52e200f53451d613718cc66/src/XthermDll.cpp#L143-L199https://github.com/stawel/ht301_hacklib/blob/a54853a62323c5d6d2befac636568590f433a87b/ht301_hacklib.py#L118-L137(the two lines:https://github.com/mcguire-steve/ht301_ircam/blob/fd6daa8fcee96835d52e200f53451d613718cc66/src/XthermDll.cpp#L198-L199are here:https://github.com/stawel/ht301_hacklib/blob/a54853a62323c5d6d2befac636568590f433a87b/ht301_hacklib.py#L70-L71)################## GetTmpData #######################################get min, max,.. temperatures in the current framecode mapping:https://github.com/mcguire-steve/ht301_ircam/blob/fd6daa8fcee96835d52e200f53451d613718cc66/src/XthermDll.cpp#L252-L295https://github.com/stawel/ht301_hacklib/blob/a54853a62323c5d6d2befac636568590f433a87b/ht301_hacklib.py#L163-L187

author: Odiug
author_rank: Newbie
timestamp: February 06, 2021, 10:20:59 pm
content: Pawel, thanks a lot for your detailed explanation. I need to have a closer look.I am still wondering what those are:Code:flt_10003360 = f32(m3, 6);flt_1000335C = f32(m3, 10);flt_1000339C = f32(m3, 14);flt_10003398 = f32(m3, 18);flt_10003394 = f32(m3, 22);Seems they go into the calculation of np_Ttot by calculating these coefficients from those polynoms:Code:v23 = flt_10003360 * coretmp_**2 + flt_1000335C * coretmp_;v22 = flt_1000339C * fpatmp_**2 + flt_10003398 * fpatmp_ + flt_10003394;Is there information out there about the values in the frame meta data? Besides what as been figured out so far.I assume the SDK also does not provide anymore details and the DLL is just a black box to be fed with frames.I remember I have seen something about which bolometer is used in the HT-301. Does someone know?But I assume there is no publicly available information aka datasheets about that one. Pretty much the same situation as with CMOS sensors nowadays.RegardsGuido

author: Messers
author_rank: Newbie
timestamp: April 24, 2021, 04:27:47 am
content: Hi!As in this thread much information about both HTI-301 and T3s can be found, following question:I have both thermal cameras and what I really love is HTI-301 is working out of the box as an UVC Webcam with a white-hot color palette. The T3s is recognized as a Webcam, too, but it outputs some green-greyish crumble, which is totally unusable. On the Android app both cameras produce the same thermal image quality (at least in my eyes). So, if anyone in here can give me a hint how to get a UVC video stream out of the T3s, this would be really great!Greetings,Marcel

author: therwp
author_rank: Contributor
timestamp: May 20, 2021, 03:52:28 pm
content: You can just plug your HT-301 into your computer and stream it to VLC?

author: ArsenioDev
author_rank: Frequent Contributor
timestamp: May 20, 2021, 04:31:40 pm
content: VLC or any other UVC supporting app, you can even do Zoom calls with it (I did that for a semester, confused the hell out of my professors)

author: rajeshmag
author_rank: Newbie
timestamp: August 09, 2021, 03:25:35 am
content: Hi, I bought an HT-301 and received it just a few days ago. Can you please share the software to run it on Windows 10?Email: rajeshmag1@gmail.comUploadLink:https://www.dropbox.com/request/A3o8k9QCG5fj1CBSFU82Thank you,Rajesh

author: publioelon
author_rank: Contributor
timestamp: October 03, 2021, 06:05:10 am
content: Can anyone share the Python SDK which the user zrq was willing to share a while ago? I got my Xtherm T3C , I managed to get it working via USB, but I can't change the color palette or calibrate the temperature measurement

author: zrq
author_rank: Frequent Contributor
timestamp: October 31, 2021, 12:54:17 pm
content: Sorry for not able to reply to all the PMs as I have some personal issues with my school work. As someone already posted the reversed code to get temperature data from the UVC frames. I don't think anyone will need the low quality "SDK" anymore. I attached the code and a python demonstration script for your reference if you can not find the code.

author: Karl_S
author_rank: Newbie
timestamp: December 26, 2021, 01:53:15 am
content: Hi,I really like that script-idea as I've got a T3S.However, when I try to run the script I keep on getting following messages:[ WARN:0] global /io/opencv/modules/videoio/src/cap_v4l.cpp (887) open VIDEOIO(V4L2:/dev/video1): can't open camera by index[ WARN:0] global /io/opencv/modules/videoio/src/cap_v4l.cpp (887) open VIDEOIO(V4L2:/dev/video3): can't open camera by index[ WARN:0] global /io/opencv/modules/videoio/src/cap_v4l.cpp (887) open VIDEOIO(V4L2:/dev/video4): can't open camera by index[ WARN:0] global /io/opencv/modules/videoio/src/cap_v4l.cpp (887) open VIDEOIO(V4L2:/dev/video5): can't open camera by index[ WARN:0] global /io/opencv/modules/videoio/src/cap_v4l.cpp (887) open VIDEOIO(V4L2:/dev/video6): can't open camera by index[ WARN:0] global /io/opencv/modules/videoio/src/cap_v4l.cpp (887) open VIDEOIO(V4L2:/dev/video7): can't open camera by index[ WARN:0] global /io/opencv/modules/videoio/src/cap_v4l.cpp (887) open VIDEOIO(V4L2:/dev/video8): can't open camera by index[ WARN:0] global /io/opencv/modules/videoio/src/cap_v4l.cpp (887) open VIDEOIO(V4L2:/dev/video9): can't open camera by indexTraceback (most recent call last):File "./pyplot.py", line 22, in <module>cap = ht301_hacklib.HT301()File "/home/karl/Public/FLIR-Test Software/ht301_hacklib.py", line 245, in __init__video_dev = self.find_device()File "/home/karl/Public/FLIR-Test Software/ht301_hacklib.py", line 276, in find_deviceraise Exception("device not found!")Exception: device not found!The interesting thing is this message keeps coming up for all video channels up to 9 except on 2 which happens to be my camera input as confirmed in VLC.Has anyone any idea why that is ?I'm using Kubuntu 20.04 which is almost identical to Ununtu 20.04Any help would be appreciated.- Update: After many hours of research I've managed to get rid of above mentioned message, but when running the "excample-simple" script I get:raceback (most recent call last):File "/home/karl/Public/FLIR-Test Software/example_simple.py", line 11, in <module>ret, frame = cap.read()File "/home/karl/Public/FLIR-Test Software/ht301_hacklib.py", line 291, in readret, frame_raw, frame, meta = self.read_()File "/home/karl/Public/FLIR-Test Software/ht301_hacklib.py", line 282, in read_frame = frame.reshape(self.FRAME_HEIGHT, self.FRAME_WIDTH)ValueError: cannot reshape array of size 307200 into shape (292,384)

author: ericb
author_rank: Contributor
timestamp: December 31, 2021, 10:50:33 am
content: Hello,After a github fork, I finaly made it work under Linux (tested both x86_64 and aarch64). Can someone confirm the script works ? (I expect I didn"t break anything on Windows)git clonehttps://github.com/ebachard/ht301_hacklibcd ht301_hacklibpython3 opencv.pyNote: you'll have to export PYTHONPATH, in order to find the folder containing the cv2 python3 module.e.g. on my machine I added in ( ~/.bashrc) the following lines:Code:PYTHONPATH=${PYTHONPATH}:~/Devel/OpenCV/opencv-4.5.5/build/python_loader::~/Devel/OpenCV/opencv-4.5.5/build/python_loader:/usr/local/opencv4/lib/python3.8/site-packages/cv2/python-3.8export PYTHONPATHIMPORTANT : if you install OpenCV from your distro, the lines above are uselss (I simply do my own OpenCV build from sources, and can select whatever OpenCV version doing that)Thanks in advance for your feedback. Time to really stop now ;-)

author: Karl_S
author_rank: Newbie
timestamp: January 01, 2022, 02:37:00 am
content: Thanks for the latest version.(Using Kubuntu 20.04)When running pyplot.py I'm getteing following message now:Let's start ...isHt301 is Truedevice is validFPS = 25.0fourcc = 1448695129initial status of CAP_PROP_CONVERT_RGB = 1.0set device property CAP_PROP_CONVERT_RGB ...after the setting of CAP_PROP_CONVERT_RGB we have : 0.0set device property CAP_PROP_ZOOM to 0x8004Traceback (most recent call last):File "/home/karl/Public/FLIR-Test Software/Version4/pyplot.py", line 23, in <module>ret, frame = cap.read()File "/home/karl/Public/FLIR-Test Software/Version4/ht301_hacklib.py", line 353, in readret, frame_raw, frame, meta = self.read_()File "/home/karl/Public/FLIR-Test Software/Version4/ht301_hacklib.py", line 335, in read_frame = frame.reshape(self.FRAME_HEIGHT, self.FRAME_WIDTH)ValueError: cannot reshape array of size 307200 into shape (292,384)I suspect it may be my T3S as it has different resolution (256x192) compared to the HT-301Also have to admit did use the distro version and may have that problem that you've described. ......will work on installing it from source.When runninght301_hacklib.pyI get just a blank screen in konsole. - Nothing else happening.--> Update:Been installing cv via source but discovered another underlying problem: The script picks up my build in camera first,(I'm using a laptop computer) rather than the USB 3TS.I guess this was part of the problem all along.Anyone any ideas how to change that? ....Should I enter the cam myself in the script rather than let it search for it ?Thanks

author: ericb
author_rank: Contributor
timestamp: January 01, 2022, 10:30:43 am
content: Hello,Thanks for the feedback.As short answer, what you see is simply usefull information I had to retrieve to fix some issues with the initial version on Linux. I'll comment them in a future version.About your issue : everything is based on the resolution, and what you can try is to put YOUR width / height values (256x192 IIRC) and try. I'm not sure it will work, because we suppose the last 4 lines contain the radiometric information, but the modification is IMHO mandatory.After a fast read, I'd suggest you to change the following lines, in ht301_hacklib.py :Code:class HT301:FRAME_WIDTH = 384FRAME_HEIGHT = 292And replace them with :Code:class HT301:FRAME_WIDTH = 256FRAME_HEIGHT = 192If we are not too wrong, the reshape could work (but I can be wrong). To anyone who know better than me, please correct me if I'm wrong.+ maybe change debug = 0 for debug = 1 (line 7) to improve verbositySecond part : detect the right device.I see you are on Linux. So it's easy :-) FYI, the recent kernel see some v4l2 devices differently, causing a double detection, mainly the integrated webcam are causing trouble. For further information please have a look at :https://bugzilla.kernel.org/show_bug.cgi?id=199575In some words, your integrated webcam is seen as two devices.To fix this second issue, what I'd suggest you is to proceed as follow :connect your IR cameraopen a terminaltype :Code:v4l2-ctl --list-devicesN.B. : if v4l2-ctl is not found, please install v4l-utils (the exact package name depends on your distribution)If the IR camera is seen as device 2 (I'm probably close), just change the range in find_device method, around line 308.Current code:Code:for i in range(0,4):Modified :Code:for i in range(2,4):(no need to go after 4, excepted if you are using more devices connected to your machine)HTH and Happy New Year to everyone :-)

author: Karl_S
author_rank: Newbie
timestamp: January 01, 2022, 02:20:09 pm
content: First of all also a happy new year and all the best for 2022.Thanks for your reply.The reduced search value did help and now appears to pick up my FLIR . - ThanksBut unfortunately still have the screen size problem. I had already previously attempted to use my camera specific values, but no luck.I've noticed Zhao made some remarks about that ( "I have the same issue. A simple reshape worked for me. See my previous post with code."-- Reply #35 on: September 21, 2020, 12:36:07)and appears he'd managed to fix his problem but unfortunately don't have enough knowledge to work out how I can apply his fix / code to solve my problem.His code:import numpy as npimport cv2cap = cv2.VideoCapture(1)cap.set(cv2.CAP_PROP_CONVERT_RGB, 0)# Use raw modecap.set(cv2.CAP_PROP_ZOOM, 0x8004)# Calibrate#cap.set(cv2.CAP_PROP_ZOOM, 0x8000)while(True):ret, frame = cap.read()frame = frame.reshape(292,384,2) # 0: LSB. 1: MSB# Remove the four extra rowsframe = frame[:288,...]# Convert to uint16dt = np.dtype(('<u2', [('x', np.uint8, 2)]))frame = frame.view(dtype=dt).astype(np.float32)# Sketchy auto-exposureframe -= frame.min()frame /= frame.max()gray = np.clip(frame, 0, 1) ** (1/2.2)cv2.imshow('frame',gray)if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release()cv2.destroyAllWindows()The odd thing I've noticed is the doubled value in regards to frame size I get in the messages when executing opencv.py. The first reference ( 100352) is exactly double than the second reference in the last line ( 50176)Let's start ...isHt301 is Truedevice is validFPS = 25.0fourcc = 1448695129width: 256 height: 196initial status of CAP_PROP_CONVERT_RGB = 1.0set device property CAP_PROP_CONVERT_RGB ...after the setting of CAP_PROP_CONVERT_RGB we have : 0.0set device property CAP_PROP_ZOOM to 0x8004(process:9563): Gtk-WARNING **: 01:17:04.698: Locale not supported by C library.Using the fallback 'C' locale.frame.size = 100352Traceback (most recent call last):File "/home/karl/Public/FLIR-Test Software/Version4/opencv.py", line 15, in <module>ret, frame = cap.read()File "/home/karl/Public/FLIR-Test Software/Version4/ht301_hacklib.py", line 353, in readret, frame_raw, frame, meta = self.read_()File "/home/karl/Public/FLIR-Test Software/Version4/ht301_hacklib.py", line 335, in read_frame = frame.reshape(self.FRAME_HEIGHT, self.FRAME_WIDTH)ValueError: cannot reshape array of size 50176 into shape (192,256)--> Update:Just solved it,.....only to an extendThe catch with the resolution is those extra 4 lines containing the data. So in order to have correct resolution set it is necessary to add 4 lines.In my case 256x192 didn't work as script expected to see 50176 pixels. But 256x196 does result in that value.But as it happens this is of little joy to me as it now repeatedly carries out the script yet now actual video footage.

author: ericb
author_rank: Contributor
timestamp: January 02, 2022, 04:15:49 pm
content: @Karl_S7Indeed, looks like you are not far. Maybe there are two tracks :- idx : I can be plain wrong, but looks like the index (probably the Interface descriptor length) is wrong, or the frames are stored another way. Using a random value will cause frames to become undisplayable. Testing on my side, means changing the idx value with my HT-301-ht gives same type of error btw. I even found other value working (... ?)What you could do is try to use another value than 48 in ht301_hacklib . Sorry, didn't investigate more- wrong dtype in frames ? (realy not sure)Yet another last suggestion : lsusb -v could help too to find the header size.Of course, it would be great to find a real, or at least more documentation, that's so easy when things are open ...HTH

author: Karl_S
author_rank: Newbie
timestamp: January 04, 2022, 02:31:25 am
content: Thanks for all the help.Did try different values but no joy.It appears to be that the data stream is not correctly decoded, but that's just my thought.Anyway, spent so much on this time to give it a break. But as it happens managed to get the original xtherm operational on my PC. - Somewhat unstable but at least working.Once again, thanks.

author: thermalengineer
author_rank: Contributor
timestamp: January 08, 2022, 01:04:47 am
content: Hello, recently my student recommended me to buy InfiRay T2S+, it is said that its software algorithm and demo programs have been updated perfectly, have you heard of this product? Now I am entangled between T3S and T2S+, I hope you can give me some advice. Thank you very much!

author: Karl_S
author_rank: Newbie
timestamp: January 08, 2022, 04:36:05 am
content: My understanding is the 's" stands for search and hence the optics are designed for long range view, not up close as required for inspection of electronic boards and other components.The resolution is also the same as to the T2LThe "+" stands for higher temperature rating - up to 450CAs to software: Not sure but I understand it uses the same software anyway which is known to be very unstable (despite just having had another upgrade in December)The only other software I'm aware made by this company is linked to their WIFi enabled devices.Also from my tests so far it would appear that a simple c-type USB connector is not sufficient to make it work (on a mobile phone & tablet that is). I've discovered that many cheaper phones & tablets only have a USB 2.0 support despite having a c-type port. (buyer beware). Only an actual USB 3.0 and up will work.(This is rather annoying as the type-c was supposed to be for USB 3.0 and higher. So that some manufacturer still use it but only support USB 2.0 sux)

author: alberth
author_rank: Newbie
timestamp: March 19, 2022, 02:51:03 am
content: Hallo, I'm searching for the sdk for the t2L, would be great if someone could help me.

author: ahsan
author_rank: Newbie
timestamp: June 19, 2022, 06:02:19 pm
content: hello,can you send me the code file you have modified to get temperature of each pixelThanks

author: Angel1024
author_rank: Newbie
timestamp: September 08, 2022, 10:25:01 am
content: Hi, good news!At least is possible to get worked ht301_hacklib on windows 11 with T3SStawel fixed a shape problem in his script on Githubhttps://github.com/stawel/ht301_hacklib/and i add some strings in ht301_hacklib.py from line 293Code:if device_strings == 'T3-317-13': frame_ok = Trueelse:if device_strings == 'T3S-A13': frame_ok = Trueelse:if debug > 0: print('frame meta no match:', device_strings)after it worked wellhttps://github.com/stawel/ht301_hacklib/issues/5Has maked single "all-in-one" exe for it (pyinstaller --noconfirm --onefile --windowed) and share it. It must work with HT-301 (if you have it please try) and T3S (my one is). T3Pro i think it need to update strings - something like "T3Pro-A13" but not sure, i not have this cam.Here is the link for exehttps://www.mediafire.com/file/1fy3o2gm8imu5ow/opencv.zip/filecontrols:c-calibrates-screenshotq-quitclosing window by pressing cross with mouse not working its will appear again, just press q to quit

author: Angel1024
author_rank: Newbie
timestamp: October 23, 2022, 06:19:12 am
content: Two good APPs for t3s for Windows. Supersmall, superfast, supereffective.xThrem Demo - viewer with pallete changing and two modes -20-120C and 400CFix Dead Pixel - for dead pixel skipping, chinese language interface only,but you can use google camera translator in recognize text mode from pictures.There have english manual in archive.This app flashing dead pixel map into device memory - don't use it if you don't sure.

author: Angel1024
author_rank: Newbie
timestamp: November 08, 2022, 05:04:24 am
content: Another app PCXthermDemo_v2r9Small size & fast*RAW/YUW modes*exposition adjustment*120/400C switch*mouse cursor tracking measure*user defined point measure*logging*alarm*histagramm*user defined colour pallete (DIY pallete)IMHO this one is best one at this moment

author: Danielsan79
author_rank: Contributor
timestamp: December 11, 2022, 01:03:39 am
content: I just bought my first thermal camera, its a totally unknown model from guide, model MobIR 2S. Marketed as the first thermal camera for smartphone with autofocus. I am a bit disapointed from teh quality, thats why i think i send it back and buy the HT-301. Does it make any difference in buying the HT-301 or Infiray T3s ? Or should i just buy the cheaper offering? Somebody has a T3S and a xiaomi redmi11 on android 10 and its working with the original app?

author: akosvr
author_rank: Newbie
timestamp: February 18, 2023, 06:09:09 pm
content: Hi! Also please, may I get the sdk?

author: michaelnyden
author_rank: Newbie
timestamp: September 25, 2024, 11:08:09 pm
content: I can't get any of these scripts to with the T2 pro, I wish it could just work like a regular UVC webcam on linux like my P2 pro did, can't use ffmpeg to get /dev/video0 as more than green static from the T2 pro and non of the scripts I find on github seem to work. The T2 pro is so much clearer and better for long range than the P2 pro when I compared them, it wasn't even close! My dream is find something like the T2 pro but easy can just send right to the ffmpeg and rtsp server like the P2 does right out of the gate.

author: alfonatr
author_rank: Newbie
timestamp: October 01, 2024, 07:43:14 am
content: Hello.I have a HT-301 385x288 , it is of very good quality and I use it a lot for electronic repairs, thanks to its adjustable focus.I changed my phone for a new xiaomi 13 note pro, and with android 14, and the app is no longer compatible.The camera still works on Windows, but as I use it with the phone, now it is not working for me and at the moment I can't find the updated app for android 14.Does anyone know of alternatives to the app for HT-301 ?Thanks