Products > Thermal Imaging

Autoliv NV2 on Raspberry Pi

<< < (15/18) > >>

dnhkng:
As perfect is the enemy of good, here's some (very imperfect/not very good) minimal HDL code to at least generate an image on an LCD at 30FPS, using the DS90C124 decoder IC:
https://github.com/dnhkng/NVCAM-readout

You need to just wire the DS90C124 up to the cheapest FPGA you can find that has enough pins. Using the deserializer with a tiny FPGA (< 1k LUTs)  is at least hand-solderable stuff, and won't cost more than a few dollars more than an FPGA with SERDES. I used this cheap dev board:
https://www.seeedstudio.com/Sipeed-TANG-PriMER-FPGA-Development-Board-p-2881.html

and used this screen:
https://www.seeedstudio.com/5-Inch-Display-for-Sipeed-Tang-Nanno-p-4301.html

because it's cheap and they fit together.

This particular screen does NOT give a shit about regular timing signals/clock speeds. I have a hard time giving it a signal that doesn't cause something reasonable to appear on the screen. Due to the timing stuff I mentioned in the post above, you get some extra weirdness on the right-hand side of the screen, due to the internal line buffer in the LCD controller hardware.
There are a few demo projects for that FPGA, including a demo for the LCD. Use the IO config file from that project for the LCD IO's :
https://github.com/Lichee-Pi/Tang_FPGA_Examples

The FPGA has 20K LUTs and 64MBit SDRAM etc, so there is lots of room to improve things, like add a frame buffer, or colour-maps, or SPI stuff to raspberry pi, or even add in a RISC-V core for the unlock.

You'll have to perform the camera unlock separately of course.

dnhkng:
I've added some more stuff:



- I now use a framebuffer
- Use multiple colourmaps
- Do either histogram normalisation (not equalisation, to keep the values linear), or show the lowest 8-bits for maximum contrast
- Plot the histogram of the un-normalised data, so once we figure out the calibration, we have a histogram of true temperatures.

This is currently all done on FPGA without a RISC-V core, because I can't figure out how to use one... I should also learn how to write test benches...  And how to structure VHDL...




ToDo:
- figure out the calibration
- add an optional crosshair, and display the centre temperature on the histogram plot
- write an SPI controller, and interface with an ESP32
- write the video streamer on the ESP32 web server

smason:
Great work so far! I purchased one of these cameras in hope i will be able to buy a kit in the near future to retrofit this into my car!

I will keep an eye on this thread for your progress!

twizzter:
Hello from yet-another-scrapyard-nv2-owner!
Got flash dump, tried to perform an initial analysis and i stumbled onto weird cpu_rec output:

--- Code: ---mint@mint:~/Desktop/nv2$ python3 cpu_rec.py nv2.bin
nv2.BIN
full(0x800000) None                               chunk(0x1b800;55)   6502     
--- End code ---
which seems to be invalid, as i haven't expected 6502 code here.
 
binwalk shows:

--- Code: ---mint@mint:~/Desktop$ binwalk nv2.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             Xilinx Virtex/Spartan FPGA bitstream dummy + sync word
54420         0xD494          Intel x86 or x64 microcode, sig 0x04a00004, pf_mask 0x822000, 20C0-01-10, rev 0x-3ffefdf0, size 657408
1984064       0x1E4640        MySQL MISAM index file Version 4
3210374       0x30FC86        MySQL ISAM index file Version 8
5051898       0x4D15FA        MySQL ISAM compressed data file Version 6
--- End code ---

Is it possible this dump could be encrypted? Or maybe i forgot to add some command line flags when using cpu_rec?
 

                                                                   


Wazowski:
Is there a kit available for someone with zero coding experience. I would love to use this device in my car. It has huge potential for good. Excellent job so far but it has to be dumbed down for the rest of us.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Thanking...
Go to full version