Long post with piccies, so have made liberal use of the spoiler tag.
30x24+ Binary Display
Features:- 30x24+ binary display.png (1.55 MiB) Viewed 2325 times
+ Fast update speed ~ only 2 ticks delay.
+ Very easy to program the memory.
+ Can be extended far beyond 24 rows. [Or cropped without breaking, eg 12x12].
+ 60fps operation may be possible [but untested].
+ Can output static images / lettering, a picture slideshow, gif style animation, & probably more.
- Does not scroll. [... Yet. I am still a noob with combinator majicks.]
More details
Memory select input is on the red wire as "negative-Fish", 1 tick to read from the corresponding memory block, 1 tick to decode onto the screen.
Pictures are stored as simple binary-encoded decimal strings. 1 row of 30 lamps per channel. Lowest bit is marked by the transport belt.
Signals "Grey" and "Fish" are used internally to decode & select memory cell, colour signals are reserved for optional colour masking of pictures, but all other signals can be used for data channels when extending the display past row 24 [or if you want to place another block for +30 columns].
The timer is just a quick & dirty hack job for the slideshow: needs to have the output memory combinator in it manually reset to zero before using a static picture. I was tired.
If you want to build a binary decoder like this for your own projects, you ought to figure out how to build one for yourself [as I have over last weekend*], as there is something very important you need to understand in order to make it work properly.
Start with this thread for clues: viewtopic.php?f=8&t=20118
All praise to xKnight.
Installed the blueprint mod to export it for anyone who may be interested:
- binary display wiring.png (901.58 KiB) Viewed 2325 times
Pictures are stored as simple binary-encoded decimal strings. 1 row of 30 lamps per channel. Lowest bit is marked by the transport belt.
Signals "Grey" and "Fish" are used internally to decode & select memory cell, colour signals are reserved for optional colour masking of pictures, but all other signals can be used for data channels when extending the display past row 24 [or if you want to place another block for +30 columns].
The timer is just a quick & dirty hack job for the slideshow: needs to have the output memory combinator in it manually reset to zero before using a static picture. I was tired.
If you want to build a binary decoder like this for your own projects, you ought to figure out how to build one for yourself [as I have over last weekend*], as there is something very important you need to understand in order to make it work properly.
Start with this thread for clues: viewtopic.php?f=8&t=20118
All praise to xKnight.
Blueprint
Code: Select all
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
How to encode a picture in 3 easy steps even your granny could do
*The Weekend of Whut? Or: You will need a "binary to decimal converter" [available online, just ask google], one of the blank memory cells, & a pixellated design to copy from. [Start with a small one, heh.]
Step 1 ~ Look at the bottom row of your design and start typing "1" for each bright pixel and a "0" for each dark pixel into your handy binary->decimal converter app.
Example is "10000000" for the bottom row.
Step 2 ~ Press the "convert" button and copy the decimal result to clipboard [select it and press ctrl-C].
Example is "128" for the bottom row [channel "1"].
Step 3 ~ Switch back to Factorio, select channel "1" [for the bottom row] in the blank memory cell you chose, then paste the number into the input box with ctrl-V.
Simply repeat steps 1->3 for each row of your picture starting from the bottom, one row per data channel counting upwards. Easy-peasy binary encoding for non-mathematicians, like me.
[Note: do not overwrite the blank memory cell for "fish=0", as that is reserved to turn the display off.]
Example looks like this when programmed correctly into the memory cell:
- 8x8 example design.png (1.68 KiB) Viewed 2325 times
Example is "10000000" for the bottom row.
Step 2 ~ Press the "convert" button and copy the decimal result to clipboard [select it and press ctrl-C].
Example is "128" for the bottom row [channel "1"].
Step 3 ~ Switch back to Factorio, select channel "1" [for the bottom row] in the blank memory cell you chose, then paste the number into the input box with ctrl-V.
- 8x8 example memory.png (401.82 KiB) Viewed 2325 times
[Note: do not overwrite the blank memory cell for "fish=0", as that is reserved to turn the display off.]
Example looks like this when programmed correctly into the memory cell:
- 8x8 example final.png (463.41 KiB) Viewed 2325 times
Through the looking glass and what KC found there
This was my first try at complex combinator contraptions, it's nowhere near the level of some of the designs on the forums [wow!], but I'm kinda proud of how it turned out.I am not a programmer, nor a mathematician. Last weekend strained my brains.
It all started when I decided to use combinators for more than just "if heavy > light, activate cracking pumps". That was Day 1.
Learned what "modulo" meant, and actually did, then how to use it with combinators. Started with base 10, took a few hours before it clicked and the first binary decoder was built using nested combinators. Made a simple setup to monitor mine production using coloured lamps.
Day 2:
Built a prototype 28x24 display & hard-coded memory cell, figured out how to encode a picture easily into binary channels. But alas, the poor dear was so very slow to update: 4+n ticks [n = # of rows] till the final lamp was updated. Unacceptable!
Spent some time coding a few pictures in between lots of forum reading. Breakthrough happened when I found the "binary decoder" thread late that evening. Studied the decoder thread until xKnights post broke my brain: "Whut?"
Day 3: Much googling was done to understand siggboys helpful but technical explanation. MSB? Integer overflow? Two's complement? I had no idea what any of it meant. Reading DaveMcWs explanation of how his video player works also helped. Meanwhile, redesigned the modulo array based on a design from the decoder thread while my brain was recovering: The refresh delay became much better, only 5 ticks. 3 to parallel decode & 2 for memory lookup.
Then, suddenly, all I had read clicked together like a jigsaw! It finally made sense. My tired brain rejoiced, but still had work to do to rebuild and test the display. Thankfully the construction bots did the heavy lifting while I crunched the numbers. Result: 2 tick update delay. Aww yes!
If you read this section, thank you & have a nice day. Bonus points if you caught the reference in the spoiler tag.
It all started when I decided to use combinators for more than just "if heavy > light, activate cracking pumps". That was Day 1.
Learned what "modulo" meant, and actually did, then how to use it with combinators. Started with base 10, took a few hours before it clicked and the first binary decoder was built using nested combinators. Made a simple setup to monitor mine production using coloured lamps.
Day 2:
Built a prototype 28x24 display & hard-coded memory cell, figured out how to encode a picture easily into binary channels. But alas, the poor dear was so very slow to update: 4+n ticks [n = # of rows] till the final lamp was updated. Unacceptable!
Spent some time coding a few pictures in between lots of forum reading. Breakthrough happened when I found the "binary decoder" thread late that evening. Studied the decoder thread until xKnights post broke my brain: "Whut?"
Day 3: Much googling was done to understand siggboys helpful but technical explanation. MSB? Integer overflow? Two's complement? I had no idea what any of it meant. Reading DaveMcWs explanation of how his video player works also helped. Meanwhile, redesigned the modulo array based on a design from the decoder thread while my brain was recovering: The refresh delay became much better, only 5 ticks. 3 to parallel decode & 2 for memory lookup.
Then, suddenly, all I had read clicked together like a jigsaw! It finally made sense. My tired brain rejoiced, but still had work to do to rebuild and test the display. Thankfully the construction bots did the heavy lifting while I crunched the numbers. Result: 2 tick update delay. Aww yes!
If you read this section, thank you & have a nice day. Bonus points if you caught the reference in the spoiler tag.
Comments / critiques / improvements are all welcome. [I know the timer sucks, it is on the to-do list after 16/32bit & scrolling.]
[edit: Forgot to use code tags in the blueprint spoiler]