Author Topic: Question about FLIR One for Android  (Read 261972 times)

0 Members and 1 Guest are viewing this topic.

Offline Fraser

  • Super Contributor
  • ***
  • Posts: 13148
  • Country: gb
Re: Question about FLIR One for Android
« Reply #150 on: January 20, 2016, 03:19:27 am »
Looking very good. Excellent work. 👍
If I have helped you please consider a donation : https://gofund.me/c86b0a2c
 

Offline tomas123

  • Frequent Contributor
  • **
  • Posts: 832
  • Country: de
Re: Question about FLIR One for Android
« Reply #151 on: January 20, 2016, 08:53:05 am »
Thank You!

Unfortunately we are only two F1G2 hackers  :(

The internet is full with crazy projects using a Lepton 60x80.

https://store.groupgets.com/#!/p/52239877
- $210 FLIR Lepton Dev Kit
- with Raspberry Pi 2 Model B and a Raspberry Pi 5 MP Camera Board
- Requires FLIR Lepton (sold separately)

  :-DD



And don't forget, the Flir One is the only Lepton module with (calibrated) temperature measurement
http://www.flir.com/cvs/cores/knowledgebase/index.cfm?CFTREEITEMKEY=914&view=67485
« Last Edit: January 20, 2016, 08:59:27 am by tomas123 »
 

Offline Fraser

  • Super Contributor
  • ***
  • Posts: 13148
  • Country: gb
Re: Question about FLIR One for Android
« Reply #152 on: January 20, 2016, 05:59:38 pm »
Yes it is a pity that there are not more people working on F1G2 development. Sadly my skill set does not include coding and the LEPTON 3 hardware is pretty well formed for many tasks. When I find time I will make a close up lens holder for the unit that will utilise a 12mm ZnSe lens. Sadly the MSX tends to be detrimental to close up performance even if the visible light camera is blinded.

I appreciate your work and efforts though. I thought the other day that the F1G2 has not made the splash that I had expected. When compared to the SEEK camera release, the FLIR F1G2 has received a very muted response for no reason that I can identify. It is certainly selling well as FLIR continue to have trouble meeting demand. Maybe the Budget thermal camera is old news now and of less interest to the forum membership ?

Fraser
If I have helped you please consider a donation : https://gofund.me/c86b0a2c
 

Offline tomas123

  • Frequent Contributor
  • **
  • Posts: 832
  • Country: de
Re: Question about FLIR One for Android
« Reply #153 on: January 20, 2016, 09:12:38 pm »
Sadly the MSX tends to be detrimental to close up performance even if the visible light camera is blinded.

try the SDK apk, there you can disable MSX
I uploaded the self compiled SDK app for Android.
Try the "Thermal Linear Flux 14 Bit Image" mode:

http://www.file-upload.net/download-11032220/FlirOneSDK.apk.html


Maybe the Budget thermal camera is old news now and of less interest to the forum membership ?
I think also. Furthermore most retailer can't deliver Flir One G2 for Android.
We have a delay of 6 weeks in Europe.

Offline Trax

  • Regular Contributor
  • *
  • Posts: 124
  • Country: at
Re: Question about FLIR One for Android
« Reply #154 on: January 30, 2016, 06:52:47 pm »
what hardware are you connecting the F2G2 to?
Is it running some plain Linux or an android firmware?
 

Offline cynfab

  • Regular Contributor
  • *
  • Posts: 175
  • Country: us
Re: Question about FLIR One for Android
« Reply #155 on: January 30, 2016, 07:17:11 pm »
Both tomas123 and I have the F1G2 running under linux (various distros) on x86 and ARM hardware.
RPi2, pcduino nano lite, Dell i7 desktop, hardkernel XU4, Amazon Fire 2015 tablet, Motorola Moto E, Google Nexus 7 2012
We also have each built Android apps from the FlirOne SDK.
« Last Edit: January 30, 2016, 07:19:50 pm by cynfab »
 

Offline Trax

  • Regular Contributor
  • *
  • Posts: 124
  • Country: at
Re: Question about FLIR One for Android
« Reply #156 on: January 30, 2016, 07:26:59 pm »
is the howto and source code organized in some place or do one need to scavenge the whole thread for bits and pieces?

F1G2 on a x86 tablet would be awesome for me :D
 

Offline cynfab

  • Regular Contributor
  • *
  • Posts: 175
  • Country: us
Re: Question about FLIR One for Android
« Reply #157 on: January 30, 2016, 08:32:53 pm »
It's all in this thread.
 


Offline Trax

  • Regular Contributor
  • *
  • Posts: 124
  • Country: at
Re: Question about FLIR One for Android
« Reply #159 on: February 03, 2016, 06:58:44 pm »
I read in another thread that flir is deliberetly degrading the quality of teh f1g2 images, is that solved by the custom software or is it done in firmware ?
 

Offline tomas123

  • Frequent Contributor
  • **
  • Posts: 832
  • Country: de
Re: Question about FLIR One for Android
« Reply #160 on: February 03, 2016, 10:10:19 pm »
The camera sends over USB full resolution images.
"Downgrade" or MSX works in user software.
With free SDK you also can process 160x120 images.

Offline in.Vitro

  • Regular Contributor
  • *
  • Posts: 50
  • Country: de
Re: Question about FLIR One for Android
« Reply #161 on: February 10, 2016, 11:23:05 am »
i have a dumb question... is there any way to get any data from the micro USB port or is just for charging? has anyone "backtraced" the USB port?
 

Offline frenky

  • Supporter
  • ****
  • Posts: 1003
  • Country: si
    • Frenki.net
Re: Question about FLIR One for Android
« Reply #162 on: February 10, 2016, 11:33:45 am »
It looks like only the Vcc pin is connected to bottom layer... (and ground of course)



http://hardtechlife.com/teardown-flir-one-for-android/
« Last Edit: February 10, 2016, 11:38:25 am by frenky »
 

Offline tomas123

  • Frequent Contributor
  • **
  • Posts: 832
  • Country: de
Re: Question about FLIR One for Android
« Reply #163 on: February 11, 2016, 06:59:00 am »
I think also, but it's a multi layer circuit board. Therefore I can't see any details on this images.
 
Sharper images from disassembly you find here:
https://www.eevblog.com/forum/thermal-imaging/new-flir-products/msg750181/#msg750181
     
« Last Edit: February 11, 2016, 07:06:11 am by tomas123 »
 

Offline cynfab

  • Regular Contributor
  • *
  • Posts: 175
  • Country: us
Re: Question about FLIR One for Android
« Reply #164 on: February 12, 2016, 03:45:23 am »
I'm pretty sure I rang out the D+ & D- lines on the charging connector and they don't go anywhere.
But, you can charge the camera while operating. The charging messages tell you the state.
I have had some wierd things happen if left on charge too long. The power button turns red and flashes. I haven't seen any description of what that
means but I can guess it is not good.
I'd bet is one of the bad ones below, probably FAULT_HEAT.

From the SDK docs:

BAD
Indicates that a valid battery charging state was not available.
CHARGING_SMART_PHONE_FAULT_HEAT
Indicates that a charging fault exists but the iPhone is being charged
CHARGING_SMART_PHONE_ONLY
Indicates that the device is in phone-charging-only mode
FAULT
Indicates that an unexpected charging fault occurred (bad battery, etc.)
FAULT_BAD_CHARGER
Indicates that a charging fault occurred due to low current from the charging source
FAULT_HEAT
Indicates that a charging heat fault occurred
MANAGED_CHARGING
Indicates that the battery is charging from external power.
MANAGED_CHARGING_ONLY
Indicates that the device is in charge-only mode
NO_CHARGING
Indicates that the battery is not charging because the device is not connected to an external power supply.

 

Offline nitroxide

  • Contributor
  • Posts: 26
Re: Question about FLIR One for Android
« Reply #165 on: March 12, 2016, 03:37:30 am »
Tomas123, you rock! Great work.

If you (or others) feel like customising the F1G2 software as well:

      As you may well know already there's a UART interface (3.3V level; 3 pads on the corner of SoC - GND RX TX) on the F1G2 PCB that allows serial console access to the Linux running on the SoC.
     However it's password protected and simple bootargs tricks from uboot would not work (bootargs env. variables are simply ignored).

     I've dumped the NAND from uboot and done some poking around with binwalk and recovered the root password.

     If anyone wants to check it out login with (root:indigo):

Code: [Select]
U-Boot> run boot_op
boot operational

Loading from nand0, offset 0xe00000
   Image Name:   Linux-2.6.39+
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3358884 Bytes = 3.2 MiB
   Load Address: 20008000
   Entry Point:  20008000
Automatic boot of image at addr 0x22000000 ...
## Booting kernel from Legacy Image at 22000000 ...
   Image Name:   Linux-2.6.39+
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3358884 Bytes = 3.2 MiB
   Load Address: 20008000
   Entry Point:  20008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.025000] AT91: CM rev B and higher
[    0.037000] AT91: EK rev B and higher
[    0.401000] AT91SAM9 Watchdog: sorry, watchdog is disabled
Starting watchdog...done
mounting jffs2 READ-ONLY...done
start battery charge control
Starting battery_charge: OK
done
Formatting /tmp/versions: OK
[    1.677000] lepton_init
[    1.685000] lepton_probe: using 16-bit SPI width

Welcome to Rosebud (Operational)
(none) login: root
Password:
login[315]: root login on 'ttyS0'
-sh: id: not found
sh: bad number
-sh: id: not found
-sh: /bin/hostname: not found
-sh: alias: not found
-sh: alias: not found
-sh: alias: not found
-sh: alias: not found
-sh: alias: not found
-sh: alias: not found
-sh: alias: not found
-sh: alias: not found
-sh: alias: not found
$ cd /
$ ls
bin          home         linuxrc      proc         sys          var
dev          init         mnt          root         tmp          version.txt
etc          lib          opt          sbin         usr
$ cd /
$ uname -a
Linux (none) 2.6.39+ #5 Fri Sep 4 16:01:23 PDT 2015 armv5tejl GNU/Linux

Cheers!
Nitro
 

Offline Fraser

  • Super Contributor
  • ***
  • Posts: 13148
  • Country: gb
Re: Question about FLIR One for Android
« Reply #166 on: March 12, 2016, 11:23:52 am »
@Nitroxide,

Nice work. The name  'Rosebud' has been seen before in FLIR cameras. The password on many FLIR cameras was a Swedish word but 'Indigo' is a nod to the company, Indigo Systems that FLIR bought in 2003.

Indigo Systems were a specialist in compact thermal cameras and experts in microbolometers, image processing and novel camera design. FLIR wanted that specialist knowledge, so bought them.

http://www.flir.com/corporate/display/?id=55679

Fraser
« Last Edit: March 12, 2016, 11:28:49 am by Fraser »
If I have helped you please consider a donation : https://gofund.me/c86b0a2c
 

Offline nitroxide

  • Contributor
  • Posts: 26
Re: Question about FLIR One for Android
« Reply #167 on: March 12, 2016, 11:36:39 am »
@Fraser Yep, definitely not without reason

In case anyone was curious, here's a dmesg output:

Code: [Select]
$ dmesg
[    0.000000] Linux version 2.6.39+ (nightly@rosebud-dev) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #5 Fri Sep 4 16:01:23 PDT 2015
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine: Atmel AT91SAM9X5-EK
[    0.000000] Ignoring tag cmdline (using the default kernel command line)
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] Clocks: CPU 400 MHz, master 133 MHz, main 12.000 MHz
[    0.000000] On node 0 totalpages: 16384
[    0.000000] free_area_init_node: node 0, pgdat c071ada8, node_mem_map c0729000
[    0.000000]   Normal zone: 128 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 16256 pages, LIFO batch:3
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
[    0.000000] Kernel command line: mem=64M mtdparts=atmel_nand:50M(rosebud),14M(shared_files),12M(kernel),37M(rootfs),14M(shared_files2) rw atmel_nand.use_dma=0 quiet
[    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Memory: 64MB = 64MB total
[    0.000000] Memory: 57600k/57600k available, 7936k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     DMA     : 0xff000000 - 0xffe00000   (  14 MB)
[    0.000000]     vmalloc : 0xc4800000 - 0xfee00000   ( 934 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc4000000   (  64 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .init : 0xc0008000 - 0xc0482000   (4584 kB)
[    0.000000]       .text : 0xc0482000 - 0xc06fe508   (2546 kB)
[    0.000000]       .data : 0xc0700000 - 0xc071b4a0   ( 110 kB)
[    0.000000] NR_IRQS:192
[    0.000000] AT91: 128 gpio irqs in 4 banks
[    0.000000] AT91: Disabled rtc irq
[    0.000000] console [ttyS0] enabled
[    0.000000] Calibrating delay loop... 197.88 BogoMIPS (lpj=98944)
[    0.011000] pid_max: default: 32768 minimum: 301
[    0.011000] Mount-cache hash table entries: 512
[    0.012000] CPU: Testing write buffer coherency: ok
[    0.019000] NET: Registered protocol family 16
[    0.025000] AT91: CM rev B and higher
[    0.029000] AT91: Configured PCK0 clock output to 25000000 Hz
[    0.029000] BT: PCK0 on PB10 = 74
[    0.037000] BT: gpios initialized
[    0.037000] AT91: pin-mux CS0
[    0.037000] AT91: pin-mux CS2
[    0.037000] AT91: EK rev B and higher
[    0.044000] AT91: Power Management (with slow clock mode)
[    0.044000] AT91: Starting after general reset
[    0.045000] tcb_clksrc: tc0 at 16.166 MHz
[    0.068000] bio: create slab <bio-0> at 0
[    0.070000] usbcore: registered new interface driver usbfs
[    0.071000] usbcore: registered new interface driver hub
[    0.072000] usbcore: registered new device driver usb
[    0.075000] i2c-gpio i2c-gpio.0: using pins 62 (SDA) and 63 (SCL)
[    0.075000] at_hdmac at_hdmac.0: Atmel AHB DMA Controller ( cpy slave ), 8 channels
[    0.080000] at_hdmac at_hdmac.1: Atmel AHB DMA Controller ( cpy slave ), 8 channels
[    0.086000] Switching to clocksource tcb_clksrc
[    0.092000] NET: Registered protocol family 1
[    0.206000] JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    0.206000] msgmni has been set to 112
[    0.207000] io scheduler noop registered (default)
[    0.217000] atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL
[    0.224000] brd: module loaded
[    0.236000] atmel_nand atmel_nand: No DMA support for NAND access.
[    0.236000] ONFI flash detected
[    0.237000] ONFI param page 0 valid
[    0.237000] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xa1 (Micron MT29F1G08ABBEA3W)
[    0.237000] atmel_pmecc_init_params
[    0.237000] nand_chip->ecc.bytes 28
[    0.237000] nand_chip->ecc.steps 1
[    0.237000] nand_chip->ecc.layout = pmecc_oobinfo_2048
[    0.237000] host->mm 13
[    0.237000] host->nn 8191
[    0.237000] host->tt 4
[    0.237000] host->sector_size 512
[    0.237000] host->sector_number 4
[    0.237000] host->ecc_bytes_per_sector 7
[    0.237000] host->alpha_to -996098048
[    0.237000] host->index_of -996114432
[    0.237000] Scanning device for bad blocks
[    0.297000] 5 cmdlinepart partitions found on MTD device atmel_nand
[    0.297000] Creating 5 MTD partitions on "atmel_nand":
[    0.297000] 0x000000000000-0x000003200000 : "rosebud"
[    0.301000] 0x000003200000-0x000004000000 : "shared_files"
[    0.304000] 0x000004000000-0x000004c00000 : "kernel"
[    0.307000] 0x000004c00000-0x000007100000 : "rootfs"
[    0.311000] 0x000007100000-0x000007f00000 : "shared_files2"
[    0.316000] SPI MR: 0x33
[    0.317000] atmel_spi atmel_spi.0: Using dma0chan0 (tx) and  dma0chan1 (rx) for DMA transfers
[    0.317000] atmel_spi atmel_spi.0: Atmel SPI Controller at 0xf0000000 (irq 13, SR 0x00010202)
[    0.317000] SPI turning on CSAAT
[    0.318000] setup: 22222222 Hz bpw 8 mode 0x3 -> csr0 00000609
[    0.319000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.319000] ehci_hcd: block sizes: qh 60 qtd 96 itd 160 sitd 96
[    0.319000] Initializing Atmel-SoC USB Host Controller
[    0.319000] atmel-ehci atmel-ehci: start
[    0.320000] atmel-ehci atmel-ehci: Atmel EHCI UHP HS
[    0.320000] atmel-ehci atmel-ehci: new USB bus registered, assigned bus number 1
[    0.320000] atmel-ehci atmel-ehci: reset hcs_params 0x1303 dbg=0 cc=1 pcc=3 ordered !ppc ports=3
[    0.320000] atmel-ehci atmel-ehci: reset hcc_params 0026 thresh 2 uframes 256/512/1024 park
[    0.320000] atmel-ehci atmel-ehci: park 0
[    0.320000] atmel-ehci atmel-ehci: reset command 0080b02  park=3 ithresh=8 period=1024 Reset HALT
[    0.320000] atmel-ehci atmel-ehci: irq 22, io mem 0x00700000
[    0.320000] atmel-ehci atmel-ehci: reset command 0080b02  park=3 ithresh=8 period=1024 Reset HALT
[    0.321000] atmel-ehci atmel-ehci: init command 0010005 (park)=0 ithresh=1 period=512 RUN
[    0.327000] atmel-ehci atmel-ehci: USB 2.0 started, EHCI 1.00
[    0.327000] usb usb1: default language 0x0409
[    0.327000] usb usb1: udev 1, busnum 1, minor = 0
[    0.327000] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    0.327000] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.327000] usb usb1: Product: Atmel EHCI UHP HS
[    0.327000] usb usb1: Manufacturer: Linux 2.6.39+ ehci_hcd
[    0.327000] usb usb1: SerialNumber: atmel-ehci
[    0.328000] usb usb1: usb_probe_device
[    0.328000] usb usb1: configuration #1 chosen from 1 choice
[    0.328000] usb usb1: adding 1-0:1.0 (config #1, interface 0)
[    0.329000] hub 1-0:1.0: usb_probe_interface
[    0.329000] hub 1-0:1.0: usb_probe_interface - got id
[    0.329000] hub 1-0:1.0: USB hub found
[    0.329000] hub 1-0:1.0: 3 ports detected
[    0.329000] hub 1-0:1.0: standalone hub
[    0.329000] hub 1-0:1.0: no power switching (usb 1.0)
[    0.329000] hub 1-0:1.0: individual port over-current protection
[    0.329000] hub 1-0:1.0: power on to power good time: 20ms
[    0.329000] hub 1-0:1.0: local power source is good
[    0.330000] hub 1-0:1.0: trying to enable port power on non-switchable hub
[    0.331000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.331000] ohci_hcd: block sizes: ed 64 td 64
[    0.332000] at91_ohci at91_ohci: start
[    0.332000] at91_ohci at91_ohci: AT91 OHCI
[    0.332000] at91_ohci at91_ohci: new USB bus registered, assigned bus number 2
[    0.332000] at91_ohci at91_ohci: supports USB remote wakeup
[    0.332000] at91_ohci at91_ohci: irq 22, io mem 0x00600000
[    0.332000] at91_ohci at91_ohci: created debug files
[    0.387000] at91_ohci at91_ohci: OHCI controller state
[    0.387000] at91_ohci at91_ohci: OHCI 1.0, NO legacy support registers
[    0.387000] at91_ohci at91_ohci: control 0x083 HCFS=operational CBSR=3
[    0.387000] at91_ohci at91_ohci: cmdstatus 0x00000 SOC=0
[    0.387000] at91_ohci at91_ohci: intrstatus 0x00000004 SF
[    0.387000] at91_ohci at91_ohci: intrenable 0x8000005a MIE RHSC UE RD WDH
[    0.387000] at91_ohci at91_ohci: hcca frame #0005
[    0.387000] at91_ohci at91_ohci: roothub.a 02000203 POTPGT=2 NPS NDP=3(3)
[    0.387000] at91_ohci at91_ohci: roothub.b 00000000 PPCM=0000 DR=0000
[    0.387000] at91_ohci at91_ohci: roothub.status 00008000 DRWE
[    0.387000] at91_ohci at91_ohci: roothub.portstatus [0] 0x00000100 PPS
[    0.387000] at91_ohci at91_ohci: roothub.portstatus [1] 0x00000100 PPS
[    0.387000] at91_ohci at91_ohci: roothub.portstatus [2] 0x00000100 PPS
[    0.387000] usb usb2: default language 0x0409
[    0.387000] usb usb2: udev 1, busnum 2, minor = 128
[    0.387000] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[    0.387000] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.387000] usb usb2: Product: AT91 OHCI
[    0.387000] usb usb2: Manufacturer: Linux 2.6.39+ ohci_hcd
[    0.387000] usb usb2: SerialNumber: at91
[    0.389000] usb usb2: usb_probe_device
[    0.389000] usb usb2: configuration #1 chosen from 1 choice
[    0.389000] usb usb2: adding 2-0:1.0 (config #1, interface 0)
[    0.390000] hub 2-0:1.0: usb_probe_interface
[    0.390000] hub 2-0:1.0: usb_probe_interface - got id
[    0.390000] hub 2-0:1.0: USB hub found
[    0.390000] hub 2-0:1.0: 3 ports detected
[    0.390000] hub 2-0:1.0: standalone hub
[    0.390000] hub 2-0:1.0: no power switching (usb 1.0)
[    0.390000] hub 2-0:1.0: global over-current protection
[    0.390000] hub 2-0:1.0: power on to power good time: 4ms
[    0.390000] hub 2-0:1.0: local power source is good
[    0.390000] hub 2-0:1.0: no over-current condition exists
[    0.390000] hub 2-0:1.0: trying to enable port power on non-switchable hub
[    0.392000] atmel_usba_udc atmel_usba_udc: MMIO registers at 0xf803c000 mapped at c4876000
[    0.392000] atmel_usba_udc atmel_usba_udc: FIFO at 0x00500000 mapped at c4900000
[    0.393000] gadgetfs: USB Gadget filesystem, version 24 Aug 2004
[    0.394000] at91_rtc at91_rtc: rtc core: registered at91_rtc as rtc0
[    0.394000] AT91 Real Time Clock driver.
[    0.394000] i2c /dev entries driver
[    0.395000] Linux media interface: v0.10
[    0.396000] Linux video capture interface: v2.00
[    0.401000] usbcore: registered new interface driver uvcvideo
[    0.402000] USB Video Class driver (v1.0.0)
[    0.402000] AT91SAM9 Watchdog: sorry, watchdog is disabled
[    0.407000] at91_wdt: probe of at91_wdt failed with error -5
[    0.410000] at91_rtc at91_rtc: setting system clock to 2007-01-01 00:00:17 UTC (1167609617)
[    0.413000] Freeing init memory: 4584K
[    0.430000] atmel-ehci atmel-ehci: GetStatus port:2 status 001803 0  ACK POWER sig=j CSC CONNECT
[    0.430000] hub 1-0:1.0: port 2: status 0501 change 0001
[    0.490000] hub 2-0:1.0: state 7 ports 3 chg 0000 evt 0000
[    0.530000] hub 1-0:1.0: state 7 ports 3 chg 0004 evt 0000
[    0.530000] hub 1-0:1.0: port 2, status 0501, change 0000, 480 Mb/s
[    0.555000] Empty flash at 0x000001b0 ends at 0x00000800
[    0.581000] atmel-ehci atmel-ehci: port 2 high speed
[    0.581000] atmel-ehci atmel-ehci: GetStatus port:2 status 001005 0  ACK POWER sig=se0 PE CONNECT
[    0.632000] usb 1-2: new high speed USB device number 2 using atmel-ehci
[    0.680000] Major: 252; minor: 0
[    0.680000] Registered device at91_adc.
[    0.684000] atmel-ehci atmel-ehci: port 2 high speed
[    0.684000] atmel-ehci atmel-ehci: GetStatus port:2 status 001005 0  ACK POWER sig=se0 PE CONNECT
[    0.788000] usb 1-2: skipped 1 descriptor after configuration
[    0.788000] usb 1-2: skipped 6 descriptors after interface
[    0.788000] usb 1-2: skipped 1 descriptor after endpoint
[    0.788000] usb 1-2: skipped 9 descriptors after interface
[    0.789000] usb 1-2: default language 0x0409
[    0.795000] usb 1-2: udev 2, busnum 1, minor = 1
[    0.795000] usb 1-2: New USB device found, idVendor=0c45, idProduct=6369
[    0.795000] usb 1-2: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[    0.795000] usb 1-2: Product: USB 2.0 Camera
[    0.795000] usb 1-2: Manufacturer: Sonix Technology Co., Ltd.
[    0.802000] usb 1-2: usb_probe_device
[    0.802000] usb 1-2: configuration #1 chosen from 1 choice
[    0.802000] usb 1-2: adding 1-2:1.0 (config #1, interface 0)
[    0.807000] uvcvideo 1-2:1.0: usb_probe_interface
[    0.807000] uvcvideo 1-2:1.0: usb_probe_interface - got id
[    0.807000] uvcvideo: Found UVC 1.00 device USB 2.0 Camera (0c45:6369)
[    0.842000] usb 1-2: adding 1-2:1.1 (config #1, interface 1)
[    1.454000] at91_ohci at91_ohci: auto-stop root hub
[    1.594000] usb 1-2: link qh4-0001/c32407a0 start 1 [1/0 us]
[    1.695000] lepton_init
[    1.698000] tx_buf = c3328000 rx_buf = c3330000, frames = bf006f74
[    1.703000] lepton_probe: using 16-bit SPI width
[    1.708000] SPI turning on CSAAT
[    1.708000] setup: 22222222 Hz bpw 16 mode 0x3 -> csr0 00000689
[    1.714000] VSYNC [4294669010]
[    1.718000] lepton: bad line index, last line index 255 != expected index 60
[    1.718000] lepton status = 3 xfer 4 [4294669014]
[    8.156000] usb 1-2: unlink qh4-0001/c32407a0 start 1 [1/0 us]
[    8.156000] atmel-ehci atmel-ehci: shutdown urb c320cac0 ep3in-intr
$
 

Offline Bill W

  • Super Contributor
  • ***
  • Posts: 1102
  • Country: gb
    • Fire TICS
Re: Question about FLIR One for Android
« Reply #168 on: March 12, 2016, 05:44:43 pm »
I wonder how many folks from Indigo are now with SEEK ?  Far too much of a coincidence I reckon.

Fired up an old Indigo Alpha core the other day, surprisingly poor for a VOx with a lot of column structure, how far they have come.  Even then it was very compact though.  The oddest feature of that was the external shutter.
A 2005 paper about early VOX bolometers :
http://www.flir.com/uploadedFiles/CBI/Documents/Technical_Publications/2005SPIE/techpub_2_Photon_SPIE_2005.pdf
It must be early, they were still being honest about NETD's  >:D

Bill

www.fire-tics.co.uk



Offline Fraser

  • Super Contributor
  • ***
  • Posts: 13148
  • Country: gb
Re: Question about FLIR One for Android
« Reply #169 on: March 12, 2016, 08:10:23 pm »
FLIR were certainly annoyed when the two ex Indigo staff started SEEK Thermal. A complex situation that ended in court.

I was always interested that FLIR enforced disablement of every 15th pixel on the SEEK 12um microbolometer. At the time I suspected the FLIR & SEEK 12um microbolometers were likely the product of a single research work  stream within FLIR.

Fraser
If I have helped you please consider a donation : https://gofund.me/c86b0a2c
 

Offline tomas123

  • Frequent Contributor
  • **
  • Posts: 832
  • Country: de
Re: Question about FLIR One for Android
« Reply #170 on: March 13, 2016, 01:13:56 pm »
     I've dumped the NAND from uboot and done some poking around with binwalk and recovered the root password.

     If anyone wants to check it out login with (root:indigo):

interesting :-+
In the Flir One SDK library I can't find the strings root:indigo.
There is only the well known Flir login root:3vlig
Code: [Select]
$ strings FLIRONEExampleApplication/app/src/main/libs/armeabi-v7a/libjnidevicewrapper.so  | grep -Fx -A1 root
root
3vlig

In the FlirOneApp the functions of the "SDK library libjnidevicewrapper.so" is splittet in a libjnidevicewrapper.so and a libsystemimage.so.
The FlirOneApp handles also the firmware updates of the Flir One.
Code: [Select]
$ strings FlirOne/apk/FlirOne/lib/armeabi-v7a/libsystemimage.so | grep -Fx -A1 root
root
3vlig

Offline nitroxide

  • Contributor
  • Posts: 26
Re: Question about FLIR One for Android
« Reply #171 on: March 13, 2016, 06:50:07 pm »
@tomas123 Could be something left out in their SDK? I don't think the smartphones handling the updates do any logging in on the F1G2..

There's a separate kernel image for the updater but I've checked now with 3vlig and the password for that one is indigo as well.
Fun fact: the indigo password was hashed but unsalted so it only took John the Ripper a few seconds to crack :)

I may do a dump of all folders from both images if I get some time next week but that'll need some fiddling around with serial file transfer.

Nitro
 

Offline eren

  • Newbie
  • Posts: 4
  • Country: tr
Re: Question about FLIR One for Android
« Reply #172 on: March 15, 2016, 05:41:49 pm »
Hi all,

amazing work on this thread! I am continually blown away by the casually colossal magnitude of work done here  :-+   

I'm just catching up with the capabilities, and running the F1 on Raspbian. Every once in a while I'm getting these stretches of rainbow frames where the FFC apparently gets in a bad state, and I have to wait until the next automatic FFC to clear it up. There is nothing coming from the 0x81, 0x83 or 0x85 endpoints to indicate we're entering a bad state. I'd like to try inducing an FFC state, at first periodically, any maybe later when I detect this state by pixel standard deviation etc. I can see manual FFC commands in the SDK, but no way to do that manually using libusb. Anybody have any ideas on how to manually trigger FFC by writing to USB endpoints?

Cheers
 

Offline tomas123

  • Frequent Contributor
  • **
  • Posts: 832
  • Country: de
Re: Question about FLIR One for Android
« Reply #173 on: March 16, 2016, 09:48:53 pm »
There is nothing coming from the 0x81, 0x83 or 0x85 endpoints to indicate we're entering a bad state.
The stretches of of rainbow frames are reflections of the temperature of warm lepton on the shutter ;)
I wrote here something about trigger the FFC:
...The blue line is the average temperature of 2x2=4 center pixels. The measured temperature was a wall with a constant temperature over the hour.
The F1 G2 needs 10 minutes until stabilization.
The vertical green lines mark the FFC shutter movements.

The shutter interval is constant 135 seconds after 5 minutes runtime.

watch for combination of "shutterState" AND "ffcState" on EP 0x85
Code: [Select]
#000373 77/10 fps:{"shutterState":"ON","shutterTemperature":310.040008544922,"usbNotifiedTimestamp":1176999451.09764,"usbEnqueuedTimestamp":1176999451.09942,"ffcState":"FFC_VALID_RAD"}
#000374 77/10 fps:{"shutterState":"ON","shutterTemperature":310.040008544922,"usbNotifiedTimestamp":1176999451.2123,"usbEnqueuedTimestamp":1176999451.21411,"ffcState":"FFC_VALID_RAD"}
#000375 78/10 fps:{"shutterState":"ON","shutterTemperature":310.040008544922,"usbNotifiedTimestamp":1176999451.32683,"usbEnqueuedTimestamp":1176999451.32872,"ffcState":"FFC_VALID_RAD"}
#000376 78/10 fps:{"shutterState":"ON","shutterTemperature":310.040008544922,"usbNotifiedTimestamp":1176999451.43988,"usbEnqueuedTimestamp":1176999451.44173,"ffcState":"FFC_VALID_RAD"}
#000377 78/10 fps:{"shutterState":"ON","shutterTemperature":310.040008544922,"usbNotifiedTimestamp":1176999451.55378,"usbEnqueuedTimestamp":1176999451.55576,"ffcState":"FFC_VALID_IMG"}
#000378 78/10 fps:{"shutterState":"ON","shutterTemperature":310.040008544922,"usbNotifiedTimestamp":1176999451.66878,"usbEnqueuedTimestamp":1176999451.67105,"ffcState":"FFC_VALID_IMG"}
#000379 78/10 fps:{"shutterState":"ON","shutterTemperature":310.040008544922,"usbNotifiedTimestamp":1176999451.7818,"usbEnqueuedTimestamp":1176999451.78388,"ffcState":"FFC_DESIRED"}
#000380 79/10 fps:{"shutterState":"ON","shutterTemperature":310.040008544922,"usbNotifiedTimestamp":1176999451.8954,"usbEnqueuedTimestamp":1176999451.89716,"ffcState":"FFC_DESIRED"}
#000381 78/10 fps:{"shutterState":"ON","shutterTemperature":309.940002441406,"usbNotifiedTimestamp":1176999452.01968,"usbEnqueuedTimestamp":1176999452.0214,"ffcState":"FFC_PROGRESS"}
#000382 75/10 fps:{"shutterState":"FFC","shutterTemperature":309.940002441406,"usbNotifiedTimestamp":1176999452.35303,"usbEnqueuedTimestamp":1176999452.35494,"ffcState":"FFC_VALID_RAD"}
#000383 75/10 fps:{"shutterState":"FFC","shutterTemperature":309.940002441406,"usbNotifiedTimestamp":1176999452.46615,"usbEnqueuedTimestamp":1176999452.46842,"ffcState":"FFC_VALID_RAD"}
#000384 75/10 fps:{"shutterState":"FFC","shutterTemperature":309.940002441406,"usbNotifiedTimestamp":1176999452.57972,"usbEnqueuedTimestamp":1176999452.58159,"ffcState":"FFC_VALID_RAD"}
#000385 75/10 fps:{"shutterState":"FFC","shutterTemperature":309.950012207031,"usbNotifiedTimestamp":1176999452.69317,"usbEnqueuedTimestamp":1176999452.6951,"ffcState":"FFC_VALID_RAD"}
#000386 72/10 fps:{"shutterState":"FFC","shutterTemperature":309.950012207031,"usbNotifiedTimestamp":1176999453.16082,"usbEnqueuedTimestamp":1176999453.16271,"ffcState":"FFC_VALID_RAD"}
#000387 70/10 fps:{"shutterState":"FFC","shutterTemperature":309.950012207031,"usbNotifiedTimestamp":1176999453.37775,"usbEnqueuedTimestamp":1176999453.38077,"ffcState":"FFC_VALID_RAD"}
#000388 71/10 fps:{"shutterState":"ON","shutterTemperature":309.950012207031,"usbNotifiedTimestamp":1176999453.49103,"usbEnqueuedTimestamp":1176999453.4927,"ffcState":"FFC_VALID_RAD"}
#000389 71/10 fps:{"shutterState":"ON","shutterTemperature":309.950012207031,"usbNotifiedTimestamp":1176999453.60539,"usbEnqueuedTimestamp":1176999453.60742,"ffcState":"FFC_VALID_RAD"}
#000390 71/10 fps:{"shutterState":"ON","shutterTemperature":309.950012207031,"usbNotifiedTimestamp":1176999453.71995,"usbEnqueuedTimestamp":1176999453.72604,"ffcState":"FFC_VALID_RAD"}



Anybody have any ideas on how to manually trigger FFC by writing to USB endpoints?

You can simple debug all USB commands with the Flir SDK by using the extracted flir java.class.
Set a breakpoint in FLIROneSDKBundle/FLIRONEExampleApplication/app/src/main/java/com/flir/flironesdk/usb/UsbCommunicator.java
in function    public void sendDataToDevice(byte[] data, ProtocolType protocolType)
on             sendData(destinationEndpoint, data, data.length);
and watch for array "data"


Here you can download a working SDK sample with the extracted java.class (see my post above)
 see path FLIROneSDKBundle\FLIRONEExampleApplication\app\src\main\java\com\flir\flironesdk\usb

have fun
http://www.file-upload.net/download-11040066/FLIROneSDKBundle04-Basis.zip.html

as sample the tune command
{"type":"setOption","data":{"option":"doFFC","value":true}}
Code: [Select]
data = {byte[60]@21045}
0 = 123 (0x7B)
1 = 34 (0x22)
2 = 116 (0x74)
3 = 121 (0x79)
4 = 112 (0x70)
5 = 101 (0x65)
6 = 34 (0x22)
7 = 58 (0x3A)
8 = 34 (0x22)
9 = 115 (0x73)
10 = 101 (0x65)
11 = 116 (0x74)
12 = 79 (0x4F)
13 = 112 (0x70)
14 = 116 (0x74)
15 = 105 (0x69)
16 = 111 (0x6F)
17 = 110 (0x6E)
18 = 34 (0x22)
19 = 44 (0x2C)
20 = 34 (0x22)
21 = 100 (0x64)
22 = 97 (0x61)
23 = 116 (0x74)
24 = 97 (0x61)
25 = 34 (0x22)
26 = 58 (0x3A)
27 = 123 (0x7B)
28 = 34 (0x22)
29 = 111 (0x6F)
30 = 112 (0x70)
31 = 116 (0x74)
32 = 105 (0x69)
33 = 111 (0x6F)
34 = 110 (0x6E)
35 = 34 (0x22)
36 = 58 (0x3A)
37 = 34 (0x22)
38 = 100 (0x64)
39 = 111 (0x6F)
40 = 70 (0x46)
41 = 70 (0x46)
42 = 67 (0x43)
43 = 34 (0x22)
44 = 44 (0x2C)
45 = 34 (0x22)
46 = 118 (0x76)
47 = 97 (0x61)
48 = 108 (0x6C)
49 = 117 (0x75)
50 = 101 (0x65)
51 = 34 (0x22)
52 = 58 (0x3A)
53 = 116 (0x74)
54 = 114 (0x72)
55 = 117 (0x75)
56 = 101 (0x65)
57 = 125 (0x7D)
58 = 125 (0x7D)
59 = 0 (0x0)
protocolType = {UsbCommunicator$ProtocolType@20949} "CONFIGURATION"

PS: Please don't forget to post your knowledge here!

Offline eren

  • Newbie
  • Posts: 4
  • Country: tr
Re: Question about FLIR One for Android
« Reply #174 on: March 18, 2016, 05:31:24 pm »
Hi Tomas,

thanks a bunch for your suggestion -- it worked!  :-+  after dumping the data argument of sendDataToDevice and tinkering with the app, I got the following code to trigger FFC frames:

Code: [Select]
unsigned char my_string2[16]={0xcc,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0xb9,0xcb,0xa2,0x99};

                r = libusb_bulk_transfer(devh, 2, my_string2, length, &transferred, 0);
                if(r == 0 && transferred == length)
                    printf("\nWrite successful!");
                else
                    printf("\nError in write! res = %d and transferred = %d\n", r, transferred);

                char my_string[128];
                transferred = 0;

                strcpy(my_string, "{\"type\":\"setOption\",\"data\":{\"option\":\"doFFC\",\"value\":true}}");
                length = strlen(my_string)+1;

                unsigned char *my_string1 = (unsigned char*)my_string;

                transferred = 0;

                r = libusb_bulk_transfer(devh, 2, my_string1, length, &transferred, 0);
                if(r == 0 && transferred == length)
                {
                    printf("\nWrite successful!");
                    printf("\nSent %d bytes with string: %s\n", transferred, my_string);
                }
                else
                    printf("\nError in write! res = %d and transferred = %d\n", r, transferred);
* note that I'm sending two messages -- the clear string doesn't work without the binary "pre-message"  ???


unfortunately, this didn't clear up the "rainbow frames", which sort of look like the attached image.

Even after I remove FFC frames, I also see the "wavy" pixel intensity behavior you see (also attached graph). You can also see the "rainbow frames" where the frame max/mean go up  by a few hundred intensity values and stay up for a few hundred frames.

This behavior persists even if I uplug and restart the camera. I'm guessing it has to do with overheating -- I'm using the camera on continual charge, and while I don't always get the flashing red light I do sooner or later always end up with rainbow frames. Seeing as how reboots don't help I'm guessing it might be a hardware issue, so it'll probably be with us until FLIR find a firmware workaround.

Thanks a bunch! Didn't solve the immediate issue, but learned a lot  ;D
Eren

« Last Edit: March 18, 2016, 05:33:53 pm by eren »
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf