{"id":1531,"date":"2015-09-13T03:31:01","date_gmt":"2015-09-13T02:31:01","guid":{"rendered":"http:\/\/phoenixgamedevelopment.com\/blog\/?p=1531"},"modified":"2015-09-13T03:31:01","modified_gmt":"2015-09-13T02:31:01","slug":"project-136-thermal-imager-project-update-3-ram-addon","status":"publish","type":"post","link":"https:\/\/phoenixgamedevelopment.com\/blog\/project-136-thermal-imager-project-update-3-ram-addon\/","title":{"rendered":"Project 136: Thermal Imager Project Update 3: RAM Addon"},"content":{"rendered":"<p>I have added some additional RAM to my arduino board. I need at least 4.8KB&#8217;s of RAM, and the Arduino Nano (and Atmel Atmega 328 chip) has only 2KB. I have added a Microchip 23k256 chip using\u00a0a 3.3v\/v logic level converter. I am running the chip off of the Nano&#8217;s 3.3v line, and using the logic level shifter to change the voltages of the data lines.<\/p>\n<p>Wiring and programming this RAM chip turned out to be very easy. <a href=\"https:\/\/ucexperiment.wordpress.com\/2013\/02\/23\/interfacing-microchip-23k256-32kb-sram-spi-memory-to-the-arduino\/\">THESE<\/a> directions, and the chip&#8217;s datasheet <a href=\"http:\/\/ww1.microchip.com\/downloads\/en\/devicedoc\/22100c.pdf\">HERE<\/a> proved to be all the information that I needed.<\/p>\n<p>I am now using the int8_t data type to store my values. This datatype supports values from -128 and 127. The FLIR data module has a maximum temperature range of -40 to 80 C, so this is all the precision that I need. This is an 8 bit, or 1 byte, datatype, so I can store 4,800 data points using just 4.8 KBs. I can even use linear interpolation to double the effective resolution of the chip, from 80*60 (4800)\u00a0to\u00a0160*120 (19200). This would use up 19.2 KB&#8217;s of RAM, I have 23KB&#8217;s available.<\/p>\n<p>I am a little worried that I will run out of pins, since I still have to add the Display and the FLIR dev kit. If I run out of pins, I will have to use a shift register to add more, which will add complexity. I have looked into this however, and using a shift register does not seem to be as complex as I had initially thought.<\/p>\n<p><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2015\/09\/DSC_0649.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1532\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2015\/09\/DSC_0649-300x225.jpg\" alt=\"DSC_0649\" width=\"300\" height=\"225\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2015\/09\/DSC_0649-300x225.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2015\/09\/DSC_0649-1024x768.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2015\/09\/DSC_0649.jpg 2048w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have added some additional RAM to my arduino board. I need at least 4.8KB&#8217;s of RAM, and the Arduino Nano (and Atmel Atmega 328 chip) has only 2KB. I have added a Microchip 23k256 chip using\u00a0a 3.3v\/v logic level converter. I am running the chip off of the Nano&#8217;s 3.3v line, and using the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-1531","post","type-post","status-publish","format-standard","hentry","category-inventions","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"aioseo_notices":[],"builder_content":"","_links":{"self":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/1531"}],"collection":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/comments?post=1531"}],"version-history":[{"count":1,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/1531\/revisions"}],"predecessor-version":[{"id":1533,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/1531\/revisions\/1533"}],"wp:attachment":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/media?parent=1531"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/categories?post=1531"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/tags?post=1531"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}