{"id":186,"date":"2015-09-12T22:50:14","date_gmt":"2015-09-12T21:50:14","guid":{"rendered":"http:\/\/npham.dk\/?p=186"},"modified":"2020-09-21T19:46:38","modified_gmt":"2020-09-21T18:46:38","slug":"16x16-animated-gif-frame","status":"publish","type":"post","link":"https:\/\/npham.dk\/?p=186","title":{"rendered":"16&#215;16 animated gif frame"},"content":{"rendered":"<p>I once saw a Kickstarter project, where they made a frame with a animated gif.<br \/>\nSo I wanted to try that out.<\/p>\n<p>My main concern, was how a Arduino would read a GIF file, and convert it into a color code that the ledstrip could understand.<br \/>\nLuckily I found this site, which helped me with converting a GIF into a text file containing the colorcodes.<\/p>\n<p><a href=\"http:\/\/www.themeu.net\/downloading-animated-gifs-onto-meu\/\">http:\/\/www.themeu.net\/downloading-animated-gifs-onto-meu\/<\/a><\/p>\n<p>I customized the code to fit my needs, and&nbsp;coded the Arduino from scratch &#8211; actually I coded it twice, as I accidentally delete me sketch during development&#8230;<br \/>\n(now I have Carbon Copy Cloner, which backups to my network drive!)<\/p>\n<p>And here is the end result:<\/p>\n<p><a href=\"\/wp-content\/uploads\/2015\/09\/animatedGif.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-200\" src=\"\/wp-content\/uploads\/2015\/09\/animatedGif.gif\" alt=\"animatedGif\" width=\"154\" height=\"146\"><\/a><\/p>\n<p>Heres a list of the component used for this build &#8211; all found and bought through eBay.<\/p>\n<ul>\n<li>A square frame (mines&nbsp;from IKEA)<\/li>\n<li>RGB LED strip (256 leds)<\/li>\n<li>2 x Arduino\n<ul>\n<li>One for the running the ledstrip<\/li>\n<li>One for the lcd menu system<\/li>\n<\/ul>\n<\/li>\n<li>SD card reader (and a SD card)<\/li>\n<li>Nokia 5110 lcd<\/li>\n<li>Power regulator to turn 12V to 5V and 5V to 3.3V (for the lcd)<\/li>\n<li>Laptop 12v power supply.<\/li>\n<\/ul>\n<p>During developing stage, I used an Arduino Duemilanove I already had. But for the finished product, I made &#8220;DIY&#8221; Arduino from a guide I found online. On afterthought, maybe I could&#8217;ve bought a cheap knockoff online, for less money&#8230; but where the fun in that \ud83d\ude09<\/p>\n<p>At first I try using only one Arduino, but I ran out of memory, when I added the code for the lcd. It used a lot of memory to store all the characters.<br \/>\nSo instead, I&#8217;m using two Arduino. And they are communicating via the serial port.<\/p>\n<p>As a side effect of having two Arduino, is&nbsp;that the menu system is quick and responsive, as it does not need to wait for the ledstrip to be processed.<\/p>\n<p>My next plan is to add a ESP8266, so that I can upload a new image file&nbsp;remotely.<br \/>\nBut so far I havn&#8217;t had any succes using the ESP8266 as a webserver. I can&#8217;t get it to run&nbsp;without it freezing.<\/p>\n<p>More about the software later&#8230;<\/p>\n<div id=\"metaslider-id-207\" style=\"max-width: 700px;\" class=\"ml-slider-3-94-0 metaslider metaslider-flex metaslider-207 ml-slider ml-slider-lightbox-1-13-2 simple-lightbox-2-9-3 ms-theme-default\" role=\"region\" aria-roledescription=\"Slideshow\" aria-label=\"Animated GIF frame\">\n    <div id=\"metaslider_container_207\">\n        <div id=\"metaslider_207\">\n            <ul class='slides'>\n                <li style=\"display: block; width: 100%;\" class=\"slide-195 ms-image \" aria-roledescription=\"slide\" aria-label=\"slide-195\"><a href=\"https:\/\/npham.dk\/wp-content\/uploads\/2015\/09\/IMG_2370.jpg\" target=\"_self\" class=\"metaslider_image_link\" rel=\"lightbox[207]\" data-slb-group=\"207\" data-slb-active=\"1\" data-slb-internal=\"0\" data-slb-caption=\"The LED strip is glued to a piece of cardboard\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/npham.dk\/wp-content\/uploads\/2015\/09\/IMG_2370-700x300.jpg\" height=\"300\" width=\"700\" alt=\"\" class=\"slider-207 slide-195\" \/><\/a><div class=\"caption-wrap\"><div class=\"caption\">The LED strip is glued to a piece of cardboard<\/div><\/div><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-194 ms-image \" aria-roledescription=\"slide\" aria-label=\"slide-194\"><a href=\"https:\/\/npham.dk\/wp-content\/uploads\/2015\/09\/IMG_2371.jpg\" target=\"_self\" class=\"metaslider_image_link\" rel=\"lightbox[207]\" data-slb-group=\"207\" data-slb-active=\"1\" data-slb-internal=\"0\" data-slb-caption=\"I&#039;ve bended the led strip, to make them closer. And to create a small barrier between each led.\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/npham.dk\/wp-content\/uploads\/2015\/09\/IMG_2371-700x300.jpg\" height=\"300\" width=\"700\" alt=\"\" class=\"slider-207 slide-194\" \/><\/a><div class=\"caption-wrap\"><div class=\"caption\">I've bended the led strip, to make them closer. And to create a small barrier between each led.<\/div><\/div><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-197 ms-image \" aria-roledescription=\"slide\" aria-label=\"slide-197\"><a href=\"https:\/\/npham.dk\/wp-content\/uploads\/2015\/09\/IMG_2377.jpg\" target=\"_self\" class=\"metaslider_image_link\" rel=\"lightbox[207]\" data-slb-group=\"207\" data-slb-active=\"1\" data-slb-internal=\"0\" data-slb-caption=\"The components are glued to the back cover.\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/npham.dk\/wp-content\/uploads\/2015\/09\/IMG_2377-700x300.jpg\" height=\"300\" width=\"700\" alt=\"\" class=\"slider-207 slide-197\" \/><\/a><div class=\"caption-wrap\"><div class=\"caption\">The components are glued to the back cover.<\/div><\/div><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-196 ms-image \" aria-roledescription=\"slide\" aria-label=\"slide-196\"><a href=\"https:\/\/npham.dk\/wp-content\/uploads\/2015\/09\/IMG_2373.jpg\" target=\"_self\" class=\"metaslider_image_link\" rel=\"lightbox[207]\" data-slb-group=\"207\" data-slb-active=\"1\" data-slb-internal=\"0\" data-slb-caption=\"I&#039;ve cut a small hole in the frame, for the sd card reader.\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/npham.dk\/wp-content\/uploads\/2015\/09\/IMG_2373-700x300.jpg\" height=\"300\" width=\"700\" alt=\"\" class=\"slider-207 slide-196\" \/><\/a><div class=\"caption-wrap\"><div class=\"caption\">I've cut a small hole in the frame, for the sd card reader.<\/div><\/div><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-191 ms-image \" aria-roledescription=\"slide\" aria-label=\"slide-191\"><a href=\"https:\/\/npham.dk\/wp-content\/uploads\/2015\/09\/IMG_2381.jpg\" target=\"_self\" class=\"metaslider_image_link\" rel=\"lightbox[207]\" data-slb-group=\"207\" data-slb-active=\"1\" data-slb-internal=\"0\" data-slb-caption=\"When the card is in, it&#039;s flushed agains the frame\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/npham.dk\/wp-content\/uploads\/2015\/09\/IMG_2381-700x300.jpg\" height=\"300\" width=\"700\" alt=\"\" class=\"slider-207 slide-191\" \/><\/a><div class=\"caption-wrap\"><div class=\"caption\">When the card is in, it's flushed agains the frame<\/div><\/div><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-190 ms-image \" aria-roledescription=\"slide\" aria-label=\"slide-190\"><a href=\"https:\/\/npham.dk\/wp-content\/uploads\/2015\/09\/IMG_2378.jpg\" target=\"_self\" class=\"metaslider_image_link\" rel=\"lightbox[207]\" data-slb-group=\"207\" data-slb-active=\"1\" data-slb-internal=\"0\" data-slb-caption=\"The menu system, to control the frame settings.\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/npham.dk\/wp-content\/uploads\/2015\/09\/IMG_2378-700x300.jpg\" height=\"300\" width=\"700\" alt=\"\" class=\"slider-207 slide-190\" \/><\/a><div class=\"caption-wrap\"><div class=\"caption\">The menu system, to control the frame settings.<\/div><\/div><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-192 ms-image \" aria-roledescription=\"slide\" aria-label=\"slide-192\"><a href=\"https:\/\/npham.dk\/wp-content\/uploads\/2015\/09\/IMG_2380.jpg\" target=\"_self\" class=\"metaslider_image_link\" rel=\"lightbox[207]\" data-slb-group=\"207\" data-slb-active=\"1\" data-slb-internal=\"0\" data-slb-caption=\"The backside of the frame.\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/npham.dk\/wp-content\/uploads\/2015\/09\/IMG_2380-700x300.jpg\" height=\"300\" width=\"700\" alt=\"\" class=\"slider-207 slide-192\" \/><\/a><div class=\"caption-wrap\"><div class=\"caption\">The backside of the frame.<\/div><\/div><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-189 ms-image \" aria-roledescription=\"slide\" aria-label=\"slide-189\"><a href=\"https:\/\/npham.dk\/wp-content\/uploads\/2015\/09\/IMG_2382.jpg\" target=\"_self\" class=\"metaslider_image_link\" rel=\"lightbox[207]\" data-slb-group=\"207\" data-slb-active=\"1\" data-slb-internal=\"0\" data-slb-caption=\"Heres for frontside, when turned on.\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/npham.dk\/wp-content\/uploads\/2015\/09\/IMG_2382-700x300.jpg\" height=\"300\" width=\"700\" alt=\"\" class=\"slider-207 slide-189\" \/><\/a><div class=\"caption-wrap\"><div class=\"caption\">Heres for frontside, when turned on.<\/div><\/div><\/li>\n            <\/ul>\n        <\/div>\n        \n    <\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>I once saw a Kickstarter project, where they made a frame with a animated gif. So I wanted to try that out. My main concern, was how a Arduino would read a GIF file, and convert it into a color code that the ledstrip could understand. Luckily I found this site, which helped me with [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[11,7,12],"_links":{"self":[{"href":"https:\/\/npham.dk\/index.php?rest_route=\/wp\/v2\/posts\/186"}],"collection":[{"href":"https:\/\/npham.dk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/npham.dk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/npham.dk\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/npham.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=186"}],"version-history":[{"count":17,"href":"https:\/\/npham.dk\/index.php?rest_route=\/wp\/v2\/posts\/186\/revisions"}],"predecessor-version":[{"id":305,"href":"https:\/\/npham.dk\/index.php?rest_route=\/wp\/v2\/posts\/186\/revisions\/305"}],"wp:attachment":[{"href":"https:\/\/npham.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/npham.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/npham.dk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}