Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
wiki:seekthermal [2025/02/23 17:19] – birdy | wiki:seekthermal [2025/02/23 19:35] (current) – birdy | ||
---|---|---|---|
Line 1: | Line 1: | ||
===== Notes on using the Seek Scan thermal camera ===== | ===== Notes on using the Seek Scan thermal camera ===== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | PN: YW-AAA | ||
My configuration: | My configuration: | ||
Line 6: | Line 10: | ||
- [[https:// | - [[https:// | ||
- Install v4l2loopback | - Install v4l2loopback | ||
- | - sudo apt install v4l2loopback | + | - <code -> |
+ | sudo apt install v4l2loopback | ||
+ | </ | ||
- Make udev rule | - Make udev rule | ||
- <code - / | - <code - / | ||
Line 20: | Line 26: | ||
</ | </ | ||
- Create v4l2 device. I'm using /dev/video5 | - Create v4l2 device. I'm using /dev/video5 | ||
- | - sudo modprobe v4l2loopback video_nr=5 card_label=" | + | - <code -> |
+ | sudo modprobe v4l2loopback video_nr=5 card_label=" | ||
+ | </ | ||
- Run seek_viewer | - Run seek_viewer | ||
- | - ./seek_viewer --colormap=4 --mode=v4l2 --output=/ | + | - <code -> |
+ | seek_viewer --colormap=2 --mode=v4l2 --output=/ | ||
+ | </ | ||
+ | - Colormap 2 is the jet colormap from opencv. | ||
+ | - [[https:// | ||
+ | - Run mediamtx | ||
+ | - <code -> | ||
+ | | ||
+ | </ | ||
+ | - Open in chrome | ||
+ | - [[http:// | ||
+ | - Open in VLC | ||
+ | - <code -> | ||
+ | | ||
+ | </ | ||
+ | - Open in chrome android | ||
+ | - [[http:// | ||
+ | |||
+ | ==== Misc ==== | ||
+ | |||
+ | lsusb | ||
+ | |||
+ | <code -> | ||
+ | Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub | ||
+ | Bus 001 Device 008: ID 5149:13d3 Image Processor USB 2.0 PC Cam | ||
+ | Bus 001 Device 007: ID 289d:0010 Seek Thermal, Inc. PIR206 Thermal Camera [Seek Compact] | ||
+ | Bus 001 Device 006: ID 1a40:0801 Terminus Technology Inc. USB 2.0 Hub | ||
+ | Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub | ||
+ | Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub | ||
+ | </ | ||
+ | |||
+ | udev info | ||
+ | |||
+ | <code -> | ||
+ | DEVTYPE=usb_device | ||
+ | DRIVER=usb | ||
+ | PRODUCT=289d/ | ||
+ | TYPE=0/ | ||
+ | BUSNUM=001 | ||
+ | DEVNUM=007 | ||
+ | MAJOR=189 | ||
+ | MINOR=6 | ||
+ | ACTION=add | ||
+ | SUBSYSTEM=usb | ||
+ | TAGS=: | ||
+ | ID_BUS=usb | ||
+ | ID_MODEL=PIR206_Thermal_Camera | ||
+ | ID_MODEL_ENC=PIR206\x20Thermal\x20Camera | ||
+ | ID_MODEL_ID=0010 | ||
+ | ID_SERIAL=Seek_Thermal__Inc._PIR206_Thermal_Camera | ||
+ | ID_VENDOR=Seek_Thermal__Inc. | ||
+ | ID_VENDOR_ENC=Seek\x20Thermal\x2c\x20Inc. | ||
+ | ID_VENDOR_ID=289d | ||
+ | ID_REVISION=0100 | ||
+ | ID_USB_MODEL=PIR206_Thermal_Camera | ||
+ | ID_USB_MODEL_ENC=PIR206\x20Thermal\x20Camera | ||
+ | ID_USB_MODEL_ID=0010 | ||
+ | ID_USB_SERIAL=Seek_Thermal__Inc._PIR206_Thermal_Camera | ||
+ | ID_USB_VENDOR=Seek_Thermal__Inc. | ||
+ | ID_USB_VENDOR_ENC=Seek\x20Thermal\x2c\x20Inc. | ||
+ | ID_USB_VENDOR_ID=289d | ||
+ | ID_USB_REVISION=0100 | ||
+ | ID_USB_INTERFACES=: | ||
+ | ID_VENDOR_FROM_DATABASE=Seek Thermal, Inc. | ||
+ | ID_MODEL_FROM_DATABASE=PIR206 Thermal Camera [Seek Compact] | ||
+ | ID_PATH=platform-fd500000.pcie-pci-0000: | ||
+ | ID_PATH_TAG=platform-fd500000_pcie-pci-0000_01_00_0-usb-0_1_1_1 | ||
+ | CURRENT_TAGS=: | ||
+ | ID_FOR_SEAT=usb-platform-fd500000_pcie-pci-0000_01_00_0-usb-0_1_1_1 | ||
+ | Unload kernel module index. | ||
+ | Unloaded link configuration context. | ||
+ | </ | ||
+ | |||
+ | ==== go2rtc ==== | ||
+ | |||
+ | I initially tried this setup using go2rtc instead of mediamtx, but ran in to a problem where only 1 client could join and only at the start of the stream. See [[https:// | ||
+ | |||
+ | ==== Frigate ==== | ||
+ | |||
+ | If you want to add this camera to Frigate, the rtsp stream needs to be in yuv420p format. | ||
+ | |||
+ | This requires the video to be in a resolution divisible by 2 (the default resolution is 154x207). | ||
+ | |||
+ | I used the answer from [[paths: | ||
+ | |||
+ | <code - mediamtx.yml> | ||
+ | cam: | ||
+ | runOnInit: ffmpeg -f v4l2 -i /dev/video5 -vf " | ||
+ | </ | ||
+ | |||
+ | In the Frigate config: | ||
+ | |||
+ | <code -> | ||
+ | Seek: | ||
+ | ffmpeg: | ||
+ | inputs: | ||
+ | - path: rtsp: | ||
+ | roles: | ||
+ | - record | ||
+ | detect: | ||
+ | enabled: false | ||
+ | </ | ||
+ | |||
+ | ==== Visual camera ==== | ||
+ | |||
+ | The Seek Scan includes a visual camera as well. It's not very high quality. | ||
+ | |||
+ | On my system it was automatically set up as / | ||
+ | |||
+ | Use the [[https:// | ||
+ | |||
+ | Seek_viewer has a default image rotation. To have the visual camera match the rotation of the thermal camera, I used the transpose=2 option. | ||
+ | |||
+ | <code - mediamtx.yml> | ||
+ | vcam: | ||
+ | runOnInit: ffmpeg -f v4l2 -i /dev/video0 -vf " | ||
+ | </ | ||