Close

added a details sheet to code that shows what settings do

A project log for spi write up to 64 colors at a time on Arduino!

amg8833 equivilent sensor thermal cam is a perfect example of how to write faster with spi lcd displays. 128x128 sample fast on Arduino.

jamesdanielvjamesdanielv 11/28/2018 at 17:030 Comments

added a details sheet to code that shows what settings do, and some settings that will be removed soon.

https://github.com/jamesdanielv/thermalcam/blob/updates-(possibly-unstable)/featureList.pdf

//thermal cam setting choices and settings

lcd pins 

TFT_CS. //fewer issues if leave pins the same. might need to change some pin settings in 

TFT_RST//st77xx.cpp or ADAFRUIT_SPITFT_ili9341.cpp

TFT_DC 

interlaced - true or false. this changes updates to cells either left to right or every other cell block. it prevents the rolling effect if display update rate drops.

blocKinessRemovalFilter 0-10. zero is disabled. this blends the colors of pixels a little. it helps with blockiness effect. works better at higher resolutions and is only enabled if above 16x16

autorange- true or false. if set true this changes. min and max temp to ram values and it moves entire color range within the values in the sensors. autorange adjusts depending on what looked at and allows higher sensativity generally.

optics_correction-true or false. this is a trick to compensate on the different angles or slight different positions of the sensors in array. if this is turned off especially at lower resolutions you will notice artifacting. sensors are not perfectly placed.

threshold- 0 -100. this ignores values below it and treats them as zero. this is to reduce noise. this is also before the autorange which changed values to a temp range.

enhancedDetail- true or false. this looks for changes within a sensor that would normally just average out. it increase detail resolution to about 16x16 in some situations. it takes advantage that light  intensity is predictable, and if it does not follow predictable pattern a shadow exists in between.

SubtractColor- 0-500. if zero it is disabled. this is a post processing step that says after temp range is calculated and spread across 1024 intensity levels, we want to reject the amount. this allows low changing areas to be filtered out for a cleaner image.

optimize- 0-3. this changes the methods of optimizations to reduce screen writes, such as buffering, bandwith control to only update most changed as small change is usullly noise, and special write patterns that optimize pixel writes to display. higher is better

interpolatemode 0-3, maybe 4 or more. this is the level of detail of sub sample. 0=8x8 pixel blocks, 1=16x16 pixel blocks, 2=32x32 pixel blocks, 3=64x64 blocks……

noisefilter- 0-200. this is only enabled if optimize is 2 or higher. this looks at temp data of a single sensor and only updates it if greater than this value. it reduces noise to display, but too high and detail will be lost. if set too low there will be a lot of snow on screen, 

show_temp_readout- true or false. if true this allows temp infomation to show in center of display and it averages center 4 temp sensors together to get value. depending on sensor used this can be +/- 4 degrees. 

temp_Fahrenheit- true or false. if true temp is in F, if false it is in C

showcolorbar-true or false. if true this shows a color bar map and lowest temp and approx highest temp on screen

colorMode 0 and up. these are color map profiles. you can make your own using colorgenerator.html file 

spi_optimized_st77xx- true or false. at lower resolutions this takes advantage of spi bursting doubling speed

spi_optimized_st77xx-true or false. this uses slower pushcolor and setaddresswindow commands that should be universal but some drivers do not support it. it allows other displays to work for testing purposes, but does not include the spi optimizations

subpixelcoloroptimized- -1,0,1 this command is going away soon. -1 allows commands without lcd overhead for timing and testing, 0 writes 1 pixel at a time, and 1, writes 4 pixels at a time. this currently only works to 16x16 resolution. 

spi_buffer_local- true or false. this command will be going away soon. it was to allow buffering of spi data so it could be pushed thru when it was read to load another byte and effectivily run 14-16 commands in between. the overhead is so small with the new methods that this method will no longer save time. perhaps at higher r resolutions.

spi_safety_checks this command is going away soon. it just allows for spi to do checks for complete transfer rather than just timing. it works better for slower spi speeds

buffersizex

buffersizey - these commands are to help scale buffering features for larger temp arrays in future. not yet in use

AdvancedColorVisualSeperation - 0-100. this is a very powerful setting it allows color seperation of colors within a cell block area. rather than just a autotemp that tightens entire display range of colors to within a few degrees, this setting allows colors that are just 1 or two intensity levels to get pushed further out from eachother to make easier to see, such as fingers details. too high can cause color clipping.

lowerColorvalues -500 to 500 . this moves the color scale to the left or to the right. this is after all other filters, so emoving colors such as from SubtractColor, and then using visual seperation may push colors out of normal range. this allows map to be more centered. this may have different effects depending on color map used.

Discussions