Apr 04

This is part 2 of my hacking adventures on the HT-A1. To see part 1, click here

Mounting the USB-hub and WiFi-module never came to be (i lost interest and figured it would be hard to add the missing features in software since i’m no expert at embedded linux and i don’t have the sources for the software the camera is running.

Browsing the internet it became apparent that Seek is now officially stating that they sell OEM modules and you can buy a development kit with SDK etc. I had a look at their pictures and it was clear that the module that the HT-A1 is using a variant of their “Mosaic” thermal core.

Now, what happens if i load the Seek app and connect this to my smartphone? Will the app recognise the module?

Well only one way to find out i think. I found a suitable piece of flat flex cable that handily went from the 0.5mm pitch to 1mm pitch (so soldering would be a tad easier) I cut it to size so it would fit the small 5 pin connector on the Mosaic core. The docs from Seek says that the Mosaic core is good from 3.3 to 5.5V. I didn’t immediately saw any reasonably sized voltage regulator on the module from the HT-A1 so instead of taking any chances i put two standard 1N4007 diodes in series with VCC to drop the voltage to 3.6V.

I made a concoction of this custom cable and an USB-C OTG cable that would plug into my Oneplus 6-phone.

I went into settings on Android and turned on OTG support so the port would supply power, plugged in the cable and was met with a friendly popup asking if i would allow Seek Thermal to access PIR206 Thermal Camera? – Hell yes!

Pressing OK, nothing more happened. I opened up the Seek app and in the top it said “Unknown” as connected. Pressing the name opened up the preview – it works 😀

OK. This is awesome. Now i can actually use the thermal core in my HT-A1 to record videos via the app.

I don’t want to gut the HT-A1 since i really like have dedicated hardware for a job – that was also the reason i went with the HT-A1 instead of a Seek dongle or similar device that plugs into a phone. I don’t want to leave my phone in a test setup etc, or even worse having a product that eventually gets obsoleted because the app isn’t updated anymore. I could see that happeing very well if you had one of these for an iPhone.

But not having the possibility to record video really detracted from the dream of having the dedicated hardware.

So how do i connect the Thermal core to my phone without drilling any extra holes in the HT-A1 case and installing extra plugs and switches? With some trickery of course!

What we’re looking at is my ugly hand drawing, showing the two DPDT (Dual pole Dual throw) switches that allows us to cut the connection between the CPU and it’s devices. In this case we disconnec the USB port for charging and data and the Thermal Core and then reconnect these two devices so we’ll end up routing USB data from the Thermal core out the USB port, without the CPU internally doing any work.

We can handily do this since the 3.3V rail is alive when the camera charges. When the USB cable is plugged in for charging the display comes on, the charging symbol is shown and the screen is turned off again. Behind the scenes the CPU is still running (although in a low-power state i believe)

If you would rather look at a proper schematic i’ve drawn it up in KiCad for your pleasure as well. Be aware that i made a mistake in the schematic. The upper 1K resistor does not go to 3.3V. It goes from the ID-pin of the USB-plug to the SEL-signal on the chips, and from there to GND via another 1K resistor. This is to form a voltage divider and pulldown from the 5V USB to the chips that only support 3.3V!

We need to cut the USB data stream on the PCB. There is some zero ohm resistors on the two data lines from the Thermal core to the CPU, situated where the GL850G USB HUB would have been situated (R28, R29). If i remove these i can access the data on what would have been pins 25-28. We also need to break the path on the lines from the USB connector for the outside world. This can be done just where the signals go from the bottom layer, trough a set of vias and to some testpoints. The solder mask is removed on the vias and the trace is cut between via and test points.

So if we switch these data lines around while the 3.3V rail is alive and the sensor has power we should be able to route the USB data out of the device.

But how do we trigger this? One could use a small micro processor and hook into the buttons and do something like holding down a key on the front while plugging in, that would enable the switch – but i went with a simpler solution. The fourth pin in the USB connector (the ID-pin) is not used in the HT-A1 so it’s open for playing around. If i make a custom OTG cable that goes from my phone to a micro USB plug with the ID pin pulled to +5V i can trigger the switch. This would allow me to plug the phone into a HT-A1 that is turned off. It will start charging and be immediately ready for the phone to initiate USB data transfers. Cool, huh!

I have a bunch of scrapped circuit boards from my employer which employs some circuitry where a USB signal is switched around with an analog switch that is rated specifically for USB data signals, the FSUSB42

This chip comes in two variants. Piss annoying housing (UMLP) and just downright annoying housing (MSOP). Both are a chore to hand solder point-to-point so i got the idea to cut out a portion of the board with the chip. It’s not pretty but it sure gets the job done. There is oodles of place behind the mainboard so the extra couple of millimetres doesn’t really pose a problem.

So i took my trusty Goscut Eclipse 2000 plate shears and cut out the wanted portion of the PCB. I did this twice since i need two DPDT-switches.

So i took these two cutouts, placed them in a vacant spot on the mainboard and started wiring with enameled magnet wire. This is a great way to spend a Sunday evening btw – Just after easter lunch and a good long walk with friends in the city.

I use green UV-curing soldermask to hold the wires in place. Once i’ve placed a few wires i lock them down with a drop and cure the glue quickly with a 405nm laser pointer.

The finished article look like this. Not too bad if I must say:

The first sign of life on the phone 🙂
The finished setup. The cable is just a temporary one i made from some parts from the scrap bin

A weird thing i found – the image is upside-down. So i need to hold the HT-A1 upside down or my phone for it to be right-side up. I didn’t find any function in the app to rotate the image 180 degrees around. What do people do that have the dongle and USB-port in the top of the phone?

So where does this leave me? I need to solder a nice, short cable, preferably with some angled connectors so i can piggyback the phone on top of the HT-A1 and use it as a whole. I have some connectors and will probably just 3D-print some casings for it instead of waiting for the slow donkey from AliExpress.

Any ideas, comments etc – you are very welcome to let me know what you think in the comment section below.

44 Responses to “More hacking on the HTI HT-A1 thermal imager”

  1. DANIEL Says:

    Do you know of an alternative IC freely available to purchase that i could use?
    That FSUSB42MUX is pretty expensive and available from a single seller
    I have a HT-A2 with an identical main board to yours and looking to do this mod.

  2. Per Jensen Says:

    You need to check with your favorite component supplier. A standard analog switch (4051 etc.) has too high a capacitance to allow USB traffic.

  3. DANIEL Says:

    What is the exact donor board you took that from, looking to see if i can find a spare one.

  4. Per Jensen Says:

    You won’t find that board in the wild unless you want to destroy a $799 Camera

  5. Hacking A Thermal Imager For Twin-use Of The Thermal Sensor – Alexa's Home Says:

    […] and in these instances a little bit of tampering would possibly do the trick. That’s what led to having the ability to document video from a HTI HT-A1 thermal imager regardless of the machine not truly supporting that perform, because of cautious investigation and […]

  6. Hacking a Thermal Imager for Dual-use of the Thermal Sensor – Ham Kar Chan Says:

    […] what one needs, and in those cases a bit of tampering might do the trick. That’s what led to being able to record video from a HTI HT-A1 thermal imager despite the device not actually supporting that function, thanks to careful investigation and […]

  7. DANIEL Says:

    Just got my 2 FSUSB42MUX IC’s and was looking to mod my camera.
    Would you have any higher resolution photos i could see?
    I was trying to follow along the photos on your page but they are a bit blurry when you zoom into detail, can’t really see which trace goes to what pad on the board.

    Also your schematics shows 2x1K resistors but no capacitors, i can see you do have capacitors in circuit, can you explain in more detail ?

    Alternately if you can add to the schematics to which pins on the main PCB those traces go (usb host/slave/ thermal core connection etc, which/where are those exact pads you solder to on the main board?

    Thank you !

  8. Per Jensen Says:

    Click the pictures. They expand into a very big size. The schematic as well. Each FSUSB chip should have a 100nF cap across it’s supply pins.

  9. DANIEL Says:

    Hi, not sure if you got my last post, here goes:

    Just another quick note after i have my setup nearly fully assembled:
    In the pencil schematics you had B to the left and A to the right
    In the kicad version you have them swapped from what i can see, A is on the left.

    Also in the pencil schematics IC A pin 6 and 7 go to “CPU”
    but on the kicad schematics the same pins go to USB Host ports
    Where do they go?

    I would also like to see how you made the custom USB cable,

    Thank you

  10. DANIEL Says:

    Here’s more confusion:

    On your kicad schematics, the ID rail goes directly to both pins 2 , then 1k resistor to ground, and 1k resistor to 3.3v
    In your picture of your board the ID rail goes to a 1k resistor, after that it goes to both pins 2, from there on another 1k resistor to ground


  11. Per Jensen Says:

    The ID pin is shorted directly to 5V on the USB cable.
    You are correct, there is an error in the schematic. The resistor needs to be in series from the ID pin to pin 2. Good catch!
    The direction of the set of pins on the USB MUX is not important since it doesn’t “know” what signals is going through it. It’s just a dumb switch, it doesn’t care about signal polarity or direction. Read the datasheet for the IC if you’re confused 🙂

  12. DANIEL Says:

    Thanks, i did wire my board as your board’s picture showed with the resistor in series and the ID wire on the Vcc 5v, too bad i can’t upload photos to show it, it looks similar to your work 🙂
    I am still confused about the previous question i had:
    In the pencil schematics you draw, IC A pin 6 and 7 go to “CPU”
    but on the kicad schematics the same pins go to USB Host ports
    Where do they go?
    Cheers !

  13. Per Jensen Says:

    Hi. I am sorry for the confusion. I changed the pins in the schematic to make it look neater. It doesn’t matter. If you look at the datasheet for the chip, the direction of data doesn’t matter.

  14. DANIEL Says:

    Ah ok, thanks
    So it doesn’t matter if i connect IC A pin 6 and 7 to USB Host or the CPU?
    How did you connect it in your photo?
    Sorry i know that you said i can zoom in but the quality gets lost and i can’t see the traces, plus a lot of your wires are covered by the UV cure or are under the top PCB and i lose track of where they go.
    Also your IC’s are wired to their own pcb and traces don’t go directly to the legs, and i can’t see under the IC’s to see where traces go to what pins.
    Everything else in the schematics is connected like in your photo.

  15. Per Jensen Says:

    The wires that go under the chip are the USB data lines. They can only go one place so they are self-explanatory.

    In reality you do not reallt need to see where everything goes. The schematic explains how it works and with the datasheet for the chips in hand you can wire it up. The chips are just glorified DPDT switches.

  16. DANIEL Says:

    I’ll have to drop this project at this stage as i’m not getting anywhere
    even if the rails are all ok, i don’t see a direct path between usb +5V and the seek module that bypasses the main board
    Basically the motherboard needs to be on to provide power to the seek core, the USB cable alone will not do it.
    At some point when i was powering up the HTI with the special USB cable, it was turning on to a blank screen suggesting the paths were indeed cut by the 2 IC’s, but beyond that it didn’t work, the seek core was not recognised by any of the 3 android phones i tested, all with USB OTG enabled.
    Hope anyone else has luck with this, if so please share how you got it working.
    Thanks !

  17. DANIEL Says:

    It would be amazing if you could correct the kicad schematics error and also matching the real photo with your schematics, maybe number the 2 IC’s as A and B on the schematics and put the IC’s in the schematics to match the photos, ex left ic to the left side?
    At the moment it’s confusing as they go to different pins, different areas of the board, chips are swapped on your picture compared with the schematics, etc, it might be easy in your head but for someone new taking such a project your drawings photos and explanations don’t make much sense.
    I understand the DPDT are simple devices, what i don’t see is how you matched that with your camera board and DPDT’s with each other, which one is which….

  18. MiguelDP Says:

    Hi, I’ve tried to recreate your schematic and prep it into a PCB(I still need to do the routing). Could you check if I’ve made any mistakes in it? It’s has been a while since I last used KiCad so it’s no masterpiece.

    The files are available here: https://mega.nz/folder/Ov4gURrT#EyXKPMX3OKcxG4Rl7S09Kw

  19. Per Jensen Says:

    I looked at the schematic and i’m not sure if you mixed up the common pins on the chips … It’s a long time i made this and the details are a bit cloudy.
    Also the schematic is a bit hard to read with GND at top etc.

  20. MiguelDP Says:

    I’ve made some changes. I flipped U2 and made 1 ground line for everything to make the PCB cleaner, I assume this isn’t an issue?

    I also noticed I did this wrong: “The resistor needs to be in series from the ID pin to pin 2” so I changed that up.

    I’ve uploaded a screenshot here so that you don’t need to download the file again. https://imgur.com/a/4L37rT7

    For people who visit this in the future, my mega.nz link from earlier contains the updated files.

  21. Per Jensen Says:

    The resistors are wired incorrectly. it needs to go from ID-pin in the USB connector to the SEL-line on the chips and then to the other resistor to GND. It’s done this way to drop the 5V voltage to 2.5V to not upset the chips that only uses 3.3V logic.

  22. MiguelDP Says:

    Ah okey, I misunderstood earlier. I’ve fixed it now https://imgur.com/a/fRCDEae. This should be the final version then. All that’s left is to do the routing as soon as I get freerouting to work and finding the right pins on the motherboard.

    Many thanks for helping out!

  23. Per Jensen Says:

    Freerouting? It takes 5 minutes to route a board with this complexity. Telling an auto router to respect impedance corrected tracks and teaching it to not make a shitshow takes 10 times that. Waste of time.

  24. MiguelDP Says:

    I’ve noticed. I’ve been trying to get Freerouting to work for the past 2 days but it still doesn’t want to. I’ve never drawn routes myself as I mainly just read schematics and repair stuff but I guess I’ll give it a try.

  25. MiguelDP Says:

    Well, I’ve finished the routing. It was definitely faster than getting Freerouting to work although this one probably wont win any pcb design contest.

    For people that visit this in the future, all files are here (same link as in previous comments)

  26. Per Jensen Says:

    That’s some atrocious routing. That will probably not work at all. USB is using impedance matched traces at 90 ohms. At least the traces needs to be parallel, the right width and not crossing all over. Sorry to bring the bad news. Try googling “USB 2 layout considerations” – In reality USB can work even with shit layout (look at my hand wiring) but you at least need to keep the USB D+/D- close to each other and the same length. That is an absolute must. Also you need a groundplane on the bottom layer of the PCB.

  27. MiguelDP Says:

    Haha, I’ll look into improving/remaking it tomorrow. D+ and D- are more or less equal in length. This does explain why some of my past projects sometimes had issues with USB, I always thought it was the cable.

    I’ve just added the groundplane but since there’s a connection in its way not the whole empty space of the pcb gets used as ground. This’ll probably be fixed once I improve the layout. I’ll post another reply once I’m done with it

  28. MiguelDP Says:

    I know you said Freerouting might be a waste of time but I finally managed to get it to work after giving it one last attempt. I think you’ll probably agree that the routing made by the Freerouting tool is way better than mine. https://imgur.com/a/53ScPKk

    I’ve also discovered that the HT-A2 uses the same motherboard as the HT-A1. The only difference probably being the camera module. This should make it possible to upgrade the HT-A1 to a HT-A2 by just changing that module (if you can find it). It’s more expensive than just buying the HT-A2 but it’s nice you can upgrade.
    Found a video of someone that seems to be repairing their HT-A2 https://youtu.be/VSb_VxKDznk

    There’s one last thing I need some help with and that is finding the correct pinout on the motherboard. I already found a few by following the wires from your pictures but there are a few I can’t follow. Since I don’t have a device I can’t measure it out for myself. If you don’t remember it’s fine and I’ll try to fill it in when the one I ordered arrives.

  29. Per Jensen Says:

    Yeah it looks better but it’s still no good. the USB traces need to be seperate. Not next to anything else. You need to know what material your PCB supplier uses and use those data to calculate the trace width and distance. Impedance matched traces is a bit of black magic. Since your PCB will just end up in some pads where you place wires, pinout doesn’t matter. If it doesn’t work, you swap D+/D-.
    I know that the HT-A1/A2 is the same insides. My friend have the A2 and we had it apart and tried swapping the thermal cores just for shits and giggles. It didn’t work. We got an image but it was all garbled and slanted, so there is some config files somewhere in the device that is different. I didn’t have the chance to dump the firmware of the device when we took it apart though. Outside the thermal cores are 100% identical, so my guess is, they are both the same sensor chip, one is just “crippled” intentionally. It’s all about market differentiation.

  30. MiguelDP Says:

    I’ve done what you said and calculated & remade the USB traces. Although this is way out of my area of expertise, if my calculations were right it should work. It does seem like the only way to fix my board was to have a 2 layered one. I was hoping to do everything in 1 layer.

    I used the tutorial from:

    And my go-to pcb company their pcb specs:

    The total trace length of D+ is 22.352 mm and D- is 22.799. It’s only a 2% difference so it should be negligible

    I’ll also dump the files from my HT-A2 once it arrives. I’m planning to add the “Tyrian palette” to it (mentioned in part 1) so I need a backup anyways. Is there any serial number or such in the code I need to remove before posting that?

    Screenshot of the new pcb layout:

  31. MiguelDP Says:

    I’ve gone over the comments from the previous post with the software mods a few times. I saw that you and the user “Preamp” managed to add a lot of mods/upgrades but I don’t see anything mentioned about the 9Hz refresh rate. Did you not find any files related to this or is this done by the camera module itself? According to the spec sheet yours should be able to go to 32Hz

    Something else that seems interesting is that the HT-18 also uses a Seek sensor (probably the same) but the HT-18 saves the images as Radiometric JPEGs while the HT-A1 saves them as regular JPGs. Since the hardware is mostly the same it might be possible to copy the JPG generation code from the HT-18 to the HT-A1. I’m currently trying to open your img files to start exploring

  32. Per Jensen Says:

    Looks reasonable. Make sure the groundplane is unbroken all the way under the USB traces.
    As far as i know there is no serial number in the firmware.

  33. Per Jensen Says:

    I never did any software mods on mine other than replacing the boot logo, so i cannot help you with that, sorry.

  34. MiguelDP Says:

    I’ve finished the pinout on the motherboard so I’m all set now. As always, the finished file is in the mega.nz link for those who want it.

    I’ve looked into changing the FSUSB42 I’m using to the UMLP variant since its a lot cheaper but I don’t want to redo the motherboard so I’ll just leave it.

    I’ll post another reply once I’ve tested everything but since I order my components from AliExpress it’s going to take a month or two. (There are no decent electrical component vendors in my country)

  35. Per Jensen Says:

    Where are you located in the world?
    I am trashing tonnes of PCB’s with the chips on …
    I checked the updated layout on your link. You are using a 4 layer PCB? That’s overkill. You have hardly any traces, 2 layer can do it just fine. You would jump to 4 layers if you could not have an unbroken ground layer under the USB lines.
    Also they way the layers are “bonded” in the corner with a lot of via’s arre weird. It’s no good. You need to have a good, low impedance connection for the I/O pads and chips directly to the groundplane. The detour to the corner and down is not good.

  36. MiguelDP Says:

    I’m located in Belgium. Most of the places in Europe that sell the FSUSB42 are sold out. The ones I found that do sell them required you to buy in massive quantities.

    I switched to a 4 layer one to get the unbroken ground layer as I thought that’s what you meant.

    As for the way I bonded them, I noticed some production grade PCB’s do it that way so I thought it’d be good. I’ll remove them and add “vias” closer to the pads.

  37. Per Jensen Says:

    Add via’s in pads. Then you get the lowest inductance.
    I could take off a handful of chips and send in a letter for €5 …
    Since you are designing a custom PCB, did you put any thoughts into shaping it so it can straddle the original PCB and be connedted via small wires only. You might as well make the PCB do most of the job for you.

  38. MiguelDP Says:

    I’ll have to download pads but I’ll try that.
    Sending the chips via letter is good for me. Can you see the email I use to post this or do I need to post it in a comment?

    As for the shape of the PCB, I don’t really have enough experience to go and make something fancy with it. The most I can see possible is adding a section so it can use the screw hole on the left. I was originally just planning to (electrical)tape it in place

  39. MiguelDP Says:

    You probably meant on the pads instead of in the program pads, my bad.

  40. MiguelDP Says:

    I’ve added them straight onto the pads though the positioning is a little awkward. JLCPCB constraints for a single/double layered pcb are .6mm diameter with a .3mm hole, so they’re quite big. I’ve gone for blind/buried via’s


  41. Per Jensen Says:

    You are /not/ going to get blind or buried via’s. that’s into specialty area and it is EXPENSIVE. All the vias you are going to get on a normal 2, 4 & 6 layers PCB are trough hole. This also means that you only route highspeed signals (USB) on outer layers, or the vias will work as stubs and give impedance discontinuity (reflections in the signal)
    Making a custom shape of the PCB is as easy as drawing a squccly line, so why not?

  42. MiguelDP Says:

    I did not know that, I’ll change it back to throughole then.

    What do you suggest for design? The empty spot near u3 & u5 seems nice and flat enough to make something that also “click” between u1, u3 and u4.

    The current position is pretty good but Y2 seems to be in the way to make something that properly anchors using the cpu and the ic left of it.

    Alternatively I could maybe span a “bar” from the left screwhole to the right but I don’t know how it will closing the device unless I make the holes bigger so they’re around the support pilar of the screw.

    Maybe it would also be possible to straddle it using the buttons on the front of the pcb but that would also mean longer wires which isn’t good for the data lines

    I would also need my device for it. Your pictures are incredibly detailed but I don’t know the width and height of the board.

  43. Per Jensen Says:

    I’m not opening up the device to measure the PCB but i’ll give you a tip. Scale the picture to something you know the size of. The pitch of the flat flex cables is 0.5mm 🙂
    There is tonnes of room behind the PCB so you can mount whatever. No room in front, so don’t do that.
    You can scale the picture and import it into KiCad so you have it as a reference.

  44. MiguelDP Says:

    I tried importing an image but I just get a big yellow silhouette of the whole PCB. The guides online aren’t very useful as they just show how to import an image to print on your PCB. I’ll just leave it as is for now and 3d print something afterwards if it’s necessary.

    If you’re still selling the FSUSB42’s send me a message at migueleken@hotmail.com for my address and such.

Leave a Reply