Author Topic: OpenIRV. ISC0901B0 (Autoliv NV3, FLIR E4/5/6/8) based opensource thermal camera  (Read 132024 times)

0 Members and 6 Guests are viewing this topic.

Offline VGNTopic starter

  • Regular Contributor
  • *
  • Posts: 146
  • Country: am
M-board is fully assembled. No magic smoke, power consumption at expected level, FPGA is alive, both RAM ranks memtest is OK!
 
The following users thanked this post: ddrl46, JanHenrik, therwp, ajw107

Offline bap2703

  • Regular Contributor
  • *
  • Posts: 200
  • Country: io
That looks so professional  :-+
 

Offline VGNTopic starter

  • Regular Contributor
  • *
  • Posts: 146
  • Country: am
That looks so professional  :-+
Thanks! Doing my best)



The P-board is ready!
 
The following users thanked this post: ddrl46, ajw107

Offline dmendesf

  • Frequent Contributor
  • **
  • Posts: 324
  • Country: br
Seems your project is going well. When will you accept beta-testers?  ;D Planning a crowdfunding of some sort?
 

Offline VGNTopic starter

  • Regular Contributor
  • *
  • Posts: 146
  • Country: am
Seems your project is going well. When will you accept beta-testers?  ;D Planning a crowdfunding of some sort?
I'm still accepting beta-testers, checkout the very first post of this thread (have updated it for clarity), you will find some details about beta tesing. More information I will provide further.

Planning a crowdfunding of some sort?
Sure, but first I must get sure that every single part of this complex device is working properly. I really don't want anyone to face with hardware problems, even beta-testers.
 

Offline _Wim_

  • Super Contributor
  • ***
  • Posts: 1547
  • Country: be
Found this "datasheet" for AL1.65X1.65X5D-4F, according to it only 3,8um@90V :-//
https://img.alicdn.com/imgextra/i2/71977092/TB2wz4ybNaK.eBjSZFAXXczFXXa_!!71977092.png

To be sure, I also ordered a set and will test them the same way.
Anyway, I will be very grateful if you share your results with us!

I received the piezo elements today. And unfortunately the "datasheet" you found was correct. Because they were so small, I could not easily use my interferometer meter, but I used a Keyence LK-G37 laser sensor instead. Signal is a bit noiser, but if they would have met their claimed spec, the Keyence should be more than capable also.

Result: with a 0 to 10 volt sine wave, I measure about a +-0.4µm signal, which matches with the 3.7µm@90V from the datasheet...
 
The following users thanked this post: VGN

Offline VGNTopic starter

  • Regular Contributor
  • *
  • Posts: 146
  • Country: am
Result: with a 0 to 10 volt sine wave, I measure about a +-0.4µm signal, which matches with the 3.7µm@90V from the datasheet...
Thanks so much, _Wim_ , for proving the characteristics! :-+
Yes, this is pity, but ok, at least now we know the truth.

Well, looks like best candidates are still:
Kemet's AE0203D18H18DF from here: https://ru.mouser.com/datasheet/2/212/1/KEM_P0101_AE-1518874.pdf
PI's P-882.51 from here: https://static.pi-usa.us/fileadmin/user_upload/physik_instrumente/files/datasheets/P-882-Datasheet.pdf
Though Kemet's one is avaliable at both Digikey and Mouser, I hope to find something cheaper if it is possible.
 

Offline _Wim_

  • Super Contributor
  • ***
  • Posts: 1547
  • Country: be
Well, looks like best candidates are still:
Kemet's AE0203D18H18DF from here: https://ru.mouser.com/datasheet/2/212/1/KEM_P0101_AE-1518874.pdf
PI's P-882.51 from here: https://static.pi-usa.us/fileadmin/user_upload/physik_instrumente/files/datasheets/P-882-Datasheet.pdf
Though Kemet's one is avaliable at both Digikey and Mouser, I hope to find something cheaper if it is possible.

Those are indeed expsive, for sure if you need at least 2 per camera.

As you doing your own mechanical design also, would integrating a lever to increase the stroke be an option?
 
The following users thanked this post: JanHenrik, VGN

Offline JanHenrik

  • Contributor
  • Posts: 25
  • Country: de
I really love this project, thus I got two NV3 right away! :3

Since I also like the inbuilt superresolution-stage idea, I redrew the XY-Stage as board in KiCAD and ordered a few. Mine are based on either MLCCs or those shitty AliExpress piezo actuators. However I have very low confidence in MLCCs as they most certainly will crack and the piezos from AliExpress seem to have too little travel. :/
Anyways this will be a fun little thing to play with. If someone wants a board or two, DM me :)

 
The following users thanked this post: _Wim_, VGN

Offline _Wim_

  • Super Contributor
  • ***
  • Posts: 1547
  • Country: be
Since I also like the inbuilt superresolution-stage idea, I redrew the XY-Stage as board in KiCAD and ordered a few. Mine are based on either MLCCs or those shitty AliExpress piezo actuators. However I have very low confidence in MLCCs as they most certainly will crack and the piezos from AliExpress seem to have too little travel. :/
Anyways this will be a fun little thing to play with. If someone wants a board or two, DM me :)

Never thought about using MLCCCs, but indeed also a piezoelectric material. Will try to measure some this weekend and check if they move any further then the Chinese piezo's...

I like you pcb design!  :-+
 
The following users thanked this post: JanHenrik

Offline JanHenrik

  • Contributor
  • Posts: 25
  • Country: de
Please do, I am interested in the results as well! I have chosen the 1812 package.

You can try to polarize the MLCC to archive a bigger stroke.
Heat to ~150°C -> apply the maximum rated voltage -> keep it in this condition for ~2hrs -> let it cool down -> turn off voltage.

Offline VGNTopic starter

  • Regular Contributor
  • *
  • Posts: 146
  • Country: am
JanHenrik, finally! I was waiting for your post! ;)
Looking forward your progress!  :-+



As you doing your own mechanical design also, would integrating a lever to increase the stroke be an option?
Thank you, yes, I though about that. There are special series of APA (amplified piezo actuators): https://www.cedrat-technologies.com/en/products/actuators/amplified-piezo-actuators.html
I'm sure, that these ones are going to be even more expensive... :-\

Anyway, we could use this idea with that cheap 3.7um actuator to increase the displacement level this way, but there some disadvantages:
1. More backlash points (piezo-to-lever, lever-to-stage).
2. We will loose some resulting displacement due to lever flexibility. The stage design is going to be not that simple.
3. Lever based design probably will be quite huge, so we will have to say "good bye" to the reused original aluminium housing, though this is not a big trouble.
 

Offline _Wim_

  • Super Contributor
  • ***
  • Posts: 1547
  • Country: be
Today I tried with the following 1206 MLCC capacitor (X7R):
(https://www.digikey.com/en/products/detail/samsung-electro-mechanics/CL31B105KCHSNNE/3888405?s=N4IgTCBcDaIIxgOwDYC0SAsjV1QOwBMQBdAXyA)

I was unable to measure any movement with a 20Vpp sine wave (below the noise floor of the Keyence).  I did not try to pre-polarize it, as I could not detect any movement in its original state. Most other mlcc caps I have are 0805 or smaller. I did not have anything larger than this 1206 at hand. I also did not have any  Z5U or Y5V types at hand, these are maybe better for this application?
 
The following users thanked this post: VGN

Offline _Wim_

  • Super Contributor
  • ***
  • Posts: 1547
  • Country: be
Ok, so I really wanted to know the movement of the MLCC, so I made a setup with the interferometer. But even with the interferometer I could not detect any movement with a 20Vpp 10Hz sine signal.

I connected the setup to the LCR meter and I correctly measure 1µF, so the capacitor is for sure connected.

I even switched the interferometer to FFT mode to see if it would see a 10Hz movement, but nothing. As I do not yet have on optical isolated table, this is really the lowest I can go (if somebody knows a good deal on a small optical table, please let me know).

The 2 peaks in the FFT you can see are the fans of the laptop spinning. Just toughing the mouse already gives a "huge" movement...


 
The following users thanked this post: VGN

Offline _Wim_

  • Super Contributor
  • ***
  • Posts: 1547
  • Country: be
Just tried 4 Chinese 0805 10µF 10V mlcc caps in series on the interferometer, but even with those no detectable movement. Googling a bit more on the topic, I can find much info about the microphonics related to mechanical bending of an MLCC cap, but no real data about expansion due to applied voltage. I am starting to wonder if they really do this...
 

Offline VGNTopic starter

  • Regular Contributor
  • *
  • Posts: 146
  • Country: am
_Wim_, thanks for your tests! I'm not sure, but probably the voltage level is too low. A man here could achieve 800 nm over 100 V for with 1812 capacitor: https://dberard.com/2015/08/16/mlcc-piezo-actuators/



I want to show some my sketches for those people, who is interested in XY-stage development and piezo actuator testing. I don't think that I will start developing XY-stage right now, as I want to focus on new hardware and prepare it for beta-production. Anyway, hope this will be helpful.

If you look at the M-board schematics, you will find an AUX connector (X4). There are 7-pin of 3V3 IOs, connected to FPGA, single ground pin and two rails of power (3V3 and battery power 4V2-2V5). 7 IOs is enough to support two SPI devices + I2C bus (for reserved purposes).

Also I found a piezo actuator driver HV56020, that integrates a step-up DC-DC converter (up to 225V) and two high voltage amplifiers for driving two piezo actuators.
Datasheet: https://ru.mouser.com/datasheet/2/268/HV56020-Data-Sheet-DS20006335A-1843786.pdf
Mouser link: https://ru.mouser.com/ProductDetail/Microchip-Technology/HV56020T-V-KXX?qs=vmHwEFxEFR%252BS41dx8RulPQ%3D%3D

The only problem with this HV56020 - a poor documentation. I can't understand what kind of transformer is used, no information about it in datasheet. I couldn't find any application notes or examples, evalution boards, etc. Also, no support at the microchip forum: https://www.microchip.com/forums/m1144592.aspx

The schematics are attached:
« Last Edit: December 13, 2020, 02:01:59 am by VGN »
 

Offline _Wim_

  • Super Contributor
  • ***
  • Posts: 1547
  • Country: be
_Wim_, thanks for your tests! I'm not sure, but probably the voltage level is too low. A man here could achieve 800 nm over 100 V for with 1812 capacitor: https://dberard.com/2015/08/16/mlcc-piezo-actuators/

That could indeed be the case. He only measured 300nm for 100V with a non-prepolarized DUT (which would be only 30nm with 10V in my case), and had a much "larger" capacitor (1812 vs 1206). This would mean the resulting movement in my case is indeed well below the noise floor of my setup, although I would have expected that something would be visible on the FFT...

But in my opinion these very small movements make MLCC caps also not a usable alternative for the purpose of enhancing camera resolution.


Also I found a piezo actuator driver HV56020, that integrates a step-up DC-DC converter (up to 225V) and two high voltage amplifiers for driving two piezo actuators.
Datasheet: https://ru.mouser.com/datasheet/2/268/HV56020-Data-Sheet-DS20006335A-1843786.pdf
Mouser link: https://ru.mouser.com/ProductDetail/Microchip-Technology/HV56020T-V-KXX?qs=vmHwEFxEFR%252BS41dx8RulPQ%3D%3D

The only problem with this HV56020 - a poor documentation. I can't understand what kind of transformer is used, no information about it in datasheet. I couldn't find any application notes or examples, evalution boards, etc. Also, no support at the microchip forum: https://www.microchip.com/forums/m1144592.aspx

That looks indeed like a very interesting chip for this purpose. For ready made boards you could have a look here also:

https://www.apexanalog.com/applications/ink-jet-printer.html

Edit: I did not look carefully enough, these boards still need a high voltage supply which makes them not useful.





 
« Last Edit: December 13, 2020, 07:26:13 am by _Wim_ »
 

Offline _Wim_

  • Super Contributor
  • ***
  • Posts: 1547
  • Country: be
The only problem with this HV56020 - a poor documentation. I can't understand what kind of transformer is used, no information about it in datasheet. I couldn't find any application notes or examples, evalution boards, etc. Also, no support at the microchip forum: https://www.microchip.com/forums/m1144592.aspx

The schematics are attached:

https://www.coilcraft.com/en-us/products/power/coupled-inductors/1-n-shielded-coupled/lpr/za9735/
 
The following users thanked this post: VGN

Offline VGNTopic starter

  • Regular Contributor
  • *
  • Posts: 146
  • Country: am
https://www.coilcraft.com/en-us/products/power/coupled-inductors/1-n-shielded-coupled/lpr/za9735/
No way... :palm:  Thanks, _Wim_ . Passive parts designed exclusively for certain ICs are so annoying! BTW, this inductor is not avalible at Mouser/Digikey, though at least we know its parameters. Unfortunatelly there are still a lot of undocumented things, like the feedback resistor divider, diodes, dc-dc step-up caps, Rsht and so on. This is ridiculos to have such a useless datasheet for this quite non-standard application. The only hope is that microchip will finally release any appnote or evalution board. :-\
« Last Edit: December 13, 2020, 12:50:19 pm by VGN »
 
The following users thanked this post: ajw107

Offline VGNTopic starter

  • Regular Contributor
  • *
  • Posts: 146
  • Country: am
Happy new year everyone! Some updates:

Still working on design port the to new hardware, but finally could get image from sensor with new hardware.

Also the most part of the HDL sources is avaliable on my repo: https://github.com/OVGN/OpenIRV
Vivado is not version control friendly, but many thanks to this man, that designed these special TCL scripts for painless version control of Vivado projects:
https://github.com/barbedo/vivado-git   :-+
Frankly speaking, I was writing code for 20% of time and fighting with Vivado (IDE) the whole residue time. :palm:  |O
But fortunatelly looks like now me and Vivado are understanding each other! ;D

I haven't finished design port yet, so you can find a lot of stubs, no USB, AV, HDMI outptut yet.

I'm using block design graphical feature of Vivado for easier development, but Vivado is quite massive (~45GB), so checkout PDF attachments of complete block design for a quick look.
« Last Edit: January 02, 2021, 01:32:12 pm by VGN »
 
The following users thanked this post: ddrl46, JanHenrik, ArsenioDev, zrq, ajw107

Offline VGNTopic starter

  • Regular Contributor
  • *
  • Posts: 146
  • Country: am
Hello everyone! Finally updates...

I have redesigned the hardware architecture. Previously we had a single DMA and a huge FSM, that was processing the whole data transfer.
Now we have 3 separate modules, each one with it's own DMA:

1. VDMA - universal video outputing core. We have about 6 universal channels to stream video data to multiple consumers. For now only two channels are activated, the LCD and the OSD (on-scree-display for LCD). Remaining channels will be used for HDMI, AV and USB output.
2. DIP (digital image processing). This module includes all image processing cores, i.e. averaging, NUC (non-uniformity correction), BPR (bad pixel replacement), Histogram Equalization + AGC (automatic gain control).
3. Sensor module. This module is used only to control current sensor, i.e. feed it with bias data, commands and grab the video stream.

Why doing this? Because now the hardware design became more scalable. Now there is no need for massive HDL rework to support new sensors, we just have to replace the sensor capturing module with a new one. DIP became more universal too. Yes, it still depends on knowing the sensor active resolution, but I have an idea how to remove this dependency.
 
The following users thanked this post: ddrl46, ajw107

Offline VGNTopic starter

  • Regular Contributor
  • *
  • Posts: 146
  • Country: am
Also I have developed a special hardware bootloader - OIRVBOOT. This is a special separate "golden" bitstream, that boots first and then switches to the main application bitstream. This hardware bootloader allows to avoid the situations when the device bricks, due to incorrect update or something else. This bootloader for now is quite stupid, I can only stop in bootloder and continue booting the main application. But I'm going to add more features, like firmware update over SD-card, hardware selftesting, selective bitstream boot, backups and so on...

BTW, checkout attached picture with current NOR-flash memory space architecture. There is quite a lot of space to store another bitstream if you would like or keep any other data. The OIRVBOOT will let you to boot any bitstream at the alternate address if needed.

« Last Edit: February 06, 2021, 04:28:45 pm by VGN »
 
The following users thanked this post: ddrl46, ajw107

Offline VGNTopic starter

  • Regular Contributor
  • *
  • Posts: 146
  • Country: am
And one more thing, I have started developing the GUI logic. Checkout the attached video:



I decided to use an immediate mode GUI. The GUI that you see is based on Nuklear project: https://github.com/Immediate-Mode-UI/Nuklear
It is pretty simple, pure C, no external dependences, really good. But that was probably not the best choice for my application, as Nuklear do not support custom input, i.e. it is designed to use mouse and keyboard. That perhaps would't be a trouble, as I could map my 4 buttons to some standatd keyboard keys, but Nuklear doesn't allow to use keyboard to navigate  |O, only text input.

So, I'm still looking for a good GUI library with Apache 2.0 or MIT licenses, pure C (no C++), no external dependencies if possible.
I will be glad If you could recommend me something. Yesterday I came across a LVGL library: https://lvgl.io/, github: https://github.com/lvgl/lvgl
LVGL looks promising, worth to try. Any thoughts?
« Last Edit: February 06, 2021, 04:00:22 pm by VGN »
 
The following users thanked this post: ddrl46, rockwell, ajw107, horstmannhid, ericb

Offline ericb

  • Contributor
  • Posts: 16
  • Country: fr
Hello,

First, congratulations for your work, this is simply awesome !!


REMOVED : I didn't see you asked for C gui, not C++

Apologies for the noise.
« Last Edit: February 06, 2021, 08:52:44 pm by ericb »
 

Offline sslupsky

  • Contributor
  • Posts: 12
  • Country: ca
What OS are you using for the firmware?  You might look into the Zephyr project.  It is an embedded RTOS supported by the Linux Foundation.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf