[{"element_type":"image_url","content":"https://www.allaboutcircuits.com/uploads/articles/ROM-chip-with-additional-address-input-and-data-output-lines.jpg","metadata":{"alt":"How","caption":""}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch1\u003eInspiration\u003c/h1\u003e\n\u003cp\u003eMaking beautiful patterns with RGB LEDs is a popular electronics project, but the possibility of generating these patterns with only a piece of flash memory, six D type flipflops, and a 555 timer was too tempting a project to pass up.\u0026nbsp; I'd been puzzling over what to make from the 8 feet of dumb RGP LEDs I'd picked up from Goodwill and when someone shared \u003ca href=\"https://www.allaboutcircuits.com/textbook/digital/chpt-16/finite-state-machine/\"\u003ethis link\u003c/a\u003e explaining how to make a finite state machine from simple electronic components, something clicked and I couldn't stop thinking about how to combine the two \"dumb\" systems into something beautiful.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch1\u003eMaterials\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003e8ft of (dumb) 5V RGB LEDs\u003c/strong\u003e\u003cbr\u003e\n\u003cul\u003e\n\u003cli\u003eA lucky $2 find at Goodwill\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e4, 2ft LED diffuser strips\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003e~$20 (lost the original receipt, sorry)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFlash memory or EEPROM\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eSalvaged 128KB Flash Memory (AT49F010) in my case\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e5, D type flipflops\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eSalvaged SN74LS174N IC\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e555 Timer IC (or other clock source)\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eSalvaged IC from an ancient computer motherboard\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePerfboard\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eNew, 8 segments of an \u003ca href=\"https://www.amazon.com/Prototype-Snappable-Arduino-Electronics-Gold-Plated/dp/B07ZYTZ48N?ref_=ast_sto_dp\u0026amp;th=1\"\u003eElectroCookie PCB Prototype Board\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eNPN BJT x11 (8 bit indicators + 3 LED strip drivers)\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eSalvaged from an ancient (and broken) oscilloscope\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePotentiometer\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eNew, in a kit with other things\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMicro Switches\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eSalvaged\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e8x Red Indicator LED (for displaying the current byte of memory)\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003ePart of a bag from a garage sale, estimated cost \u0026lt;$0.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e5V Power Supply\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eA broken USB cable found in the road\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e3D Printed Case (TBD)\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eTBD\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMisc caps, resistors, indicator LED, wires, and chip sockets\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eSalvaged or spare\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eThe salvage percentage is especially hard to calculate on this one since several items are purchased, but not new.\u0026nbsp; My guesstimate will be based on the market value of a similar system vs the cost of the parts I acquired to create my own.\u0026nbsp; I'm going to ballpark a similar set of RGB LEDs with a few predetermined patterns at about $100, the total cost for my parts was only around $22, so I'm going to call this one 78% salvaged.\u003c/strong\u003e\u003c/p\u003e\n      \n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"image_url","content":"https://github.com/cadet702/cadet702.github.io/assets/32227645/84695cc0-63ca-4e7a-9588-de0f8070ff6f","metadata":{"alt":"Breadboard","caption":""}},{"element_type":"markdown","content":"\u003ch1\u003eInitial Testing\u003c/h1\u003e\n\n\u003cp\u003eSo, my piece of memory has 17 address pins (2\u003csup\u003e17\u003c/sup\u003e is 131,072 possible addresses) and 8 data pins.  There is one byte (8 bits) of data stored at every combination of those 17 address pins.  In the picture above I'm using a tiny set of switches (right) to change some of the address values on the memory chip (middle) and routing the data pins to toggle on and off 8 LEDs (left) as a way of displaying the data stored at each address.  Most memory chips aren't designed to source or sink any significant amount of current, so the black blobs just below each LED are transistors that allow the LEDs to be powered directly from the 5V line but controlled by the digital signal from the flash memory.\u003c/p\u003e\n","metadata":{"markdown":"# Initial Testing\nSo, my piece of memory has 17 address pins (2^17 is 131,072 possible addresses) and 8 data pins.  There is one byte (8 bits) of data stored at every combination of those 17 address pins.  In the picture above I'm using a tiny set of switches (right) to change some of the address values on the memory chip (middle) and routing the data pins to toggle on and off 8 LEDs (left) as a way of displaying the data stored at each address.  Most memory chips aren't designed to source or sink any significant amount of current, so the black blobs just below each LED are transistors that allow the LEDs to be powered directly from the 5V line but controlled by the digital signal from the flash memory."}},{"element_type":"text","content":"\n        \u003ch1\u003eDesign\u003c/h1\u003e\n\u003cp\u003eNow, imagine that instead of controlling 8 red LEDs, I split the output so that the top 5 bits were used to toggle those switches and each of the bottom three were used control a (very large) red, green, and blue LED independently. \u0026nbsp;Every address in memory can now be thought of as containing a display pattern in RGB and part of the next address in the sequence.\u003c/p\u003e\n\u003cp\u003eOne downside of only having 8 data bits to work with is that...\u003c/p\u003e\n\u003cp\u003eNow, how to automatically toggle those switches?\u003c/p\u003e\n      ","metadata":{}},{"element_type":"image_url","content":"https://www.allaboutcircuits.com/uploads/articles/ROM-chip-with-additional-address-input-and-data-output-lines.jpg","metadata":{"alt":"How","caption":""}}]