Page 6 of 6

Re: Digital Display, Yay!

Posted: Tue Oct 06, 2020 7:06 pm
by SuicideJunkie
My old, efficient 14-lamp 7-segment display was getting hard to read in the new graphics, so I improved it.

Chonky Font for Boomer Eyes digital display.
7-segment rules, but with the corner lights set to be suppressed when both segments are on to make rounded corners and pointy verticals (Eg: "Seg 1>Seg 2", as compared to the normal "Seg 1 > 0" enable rule, in case you're wondering).
Toggle the state of the "ZRO OFF" constant combinator to suppress leading zeroes in that position.
The decimal point is just a light manually tweaked to be always-on, and is not part of the blueprint.
7-segBold.png
7-segBold.png (223.45 KiB) Viewed 4150 times
Blueprint String

Re: Digital Display, Yay!

Posted: Sun Oct 25, 2020 11:58 pm
by jade52blue
I've been tinkering with a couple chain-able display designs for my computer project. My numeric display is a 7x2light pattern is a little overcomplicated given my 2 constraints of:

1) I want a traveling minus sign on negative numbers
2) I want 3bit RGB color instead of the factorio default color indexes

There is a "cap" blueprint for the final character, and any number of "cells" can be attached to the left. Since there is no "off" digit, the full-display color (0) makes the display black, so for it to display in white the color channel has to be (7)
Numeric-number.PNG
Numeric-number.PNG (466.77 KiB) Viewed 4035 times
I built a binary encoded 60 character font for the alphanumeric display in a 5x7 grid, which was about the smallest i could get it while still having the letters pass my bar for aesthetically acceptable. Some signals are sent to multiple lights. To per-character color this one a 3-bit rgb value is multiplied by 60 and added to the character (hence why each display has its own test unit blueprint), and color (0) is white as well as color (7) since the display can be deactivated with character=59 for whitespace
Alphanum-number.PNG
Alphanum-number.PNG (877.92 KiB) Viewed 4035 times
Alphanum-text.PNG
Alphanum-text.PNG (958.8 KiB) Viewed 4035 times

Re: Digital Display, Yay!

Posted: Tue Nov 24, 2020 1:34 am
by DaveMcW
With the new 1.1 feature "divide by each", we can simplify multi digit displays.



10-digit-display.png
10-digit-display.png (337.77 KiB) Viewed 3902 times

Re: Digital Display, Yay!

Posted: Wed Aug 18, 2021 6:15 pm
by Delicon
DaveMcW wrote:
Tue Nov 24, 2020 1:34 am
With the new 1.1 feature "divide by each", we can simplify multi digit displays.
What is the new feature that allows divide by each?

Re: Digital Display, Yay!

Posted: Wed Aug 18, 2021 10:27 pm
by NotRexButCaesar
Delicon wrote:
Wed Aug 18, 2021 6:15 pm
What is the new feature that allows divide by each?
The each signal is now allowed on the right side of combinators.

Re: Digital Display, Yay!

Posted: Thu Sep 02, 2021 8:22 pm
by Schallfalke
Thanks to the great DaveMcW 3×5 dot matrix design and posts with formula showing the "magic". Helps me a lot to understand how these things work!

Based on the logic, I have expanded it as my 5×7 dot matrix design. The font is similar (if not exactly) to those used in many dot matrix calculators and printers.
NumericDisplay.jpg
NumericDisplay.jpg (125.99 KiB) Viewed 3183 times
Remarks
The blueprints should work in both vanilla and (most) modded games, even though the above screenshot was taken when having my mod Schall Lamp Contrast, to make the digits much easier to read.



The blueprint book consists of 3 blueprints, as shown in the above screenshot.
  1. Decimal: The yellow (lower) one. Positive numbers only. Range: 0 to 2147483647.
  2. Hexadecimal +: The green (middle) one. Positive numbers only. Range: 0 to 2147483647.
  3. Hexadecimal +/-: The cyan (upper) one. Negative numbers are treated in Two's Complement. 2 extra combinators to handle negative numbers. Range: -2147483648 to 2147483647
Input
Bottom-right-most arithmetic combinator (Any Signal)
Parameters
Bottom-most constant combinator (Colour Signal) [Default as above screenshot, but feel free to adjust it.]

In contrast to DaveMcW, I have removed the "dead pixels" lamps to save up the material cost.
I have also removed the "trimmed leading zeros" feature to save up one decider combinator. (Where such feature will also make the display showing NOTHING if the signal is exactly zero, which I don't like... When I use it on storage, I want it to show an eye-catching "0", instead of an emptiness where I will likely ignore...)

Different Sizes
SchallCircuitScaling.jpg
SchallCircuitScaling.jpg (98.75 KiB) Viewed 3183 times
Also want to make a small ad to my another mod: Schall Circuit Scaling. It allows shrinking the "pixels" (lamps) and combinators to smaller sizes (sub-tile), so occupying less valuable space. I can share the shrinked blueprints if anyone is interested.

Re: Digital Display, Yay!

Posted: Sun Oct 03, 2021 1:57 am
by SuicideJunkie
Inspiration struck and over the last week I made a stock compatible 32 character alphanumeric display with individually addressable colours. (Forget the receiver dish logic and wire your own messages in. Perhaps even make a scrolling marquee since that only requires a simple bit shift with this system ;))
Only 4 constants to hold the decoding rules, plus 5 combinators per segment to do the decoding. I've slipped in an extra bitshift 16 between the top and bottom rows to avoid a lot of clicking to send a wire all the way back to the left.
(And it is two rows because you simply can't zoom out any further to see enough characters)

Main display Blueprint:
Airport_display_blueprint.txt
32 seg display output only.
(88.29 KiB) Downloaded 159 times


Demo rig logic is wired up to a Space Exploration data receiver to display ship's name and status, but you can wire whatever you like instead!
I spent 4 combinators per digit translating an amount (Estimated arrival time) into a decimal readout with fixed locations for each digit, but that can probably be done more efficiently.
And a bunch more deciders and math to determine the state of the ship from its pilot console outputs and slap coloured strings down.

SpaceEx ship status encoder:
Airport_display_SX_Ship_encoder_blueprint.txt
Encoder to display ship stats for Space Exploration ships.
(4.65 KiB) Downloaded 145 times
airboard_live.png
airboard_live.png (1.08 MiB) Viewed 2985 times
airboard_eta.png
airboard_eta.png (1.15 MiB) Viewed 2985 times
airboard_stopped.png
airboard_stopped.png (1.1 MiB) Viewed 2985 times
airboard_lost.png
airboard_lost.png (699.18 KiB) Viewed 2985 times
Edit:
Bonus; turns out the way I'd wired it you can feed in individual segment signals as well as the pre-defined character signals. So pie charts are just a decider and a constant to form, plus a bitshift to position them on the display :)
airboard_spinstats.png
airboard_spinstats.png (1.22 MiB) Viewed 2932 times

Re: Digital Display, Yay!

Posted: Sun Nov 28, 2021 11:45 am
by DaveMcW
Here is a 10-digit domino display, using only 4 combinators.



domino.jpg
domino.jpg (86.46 KiB) Viewed 2278 times

Re: Digital Display, Yay!

Posted: Wed Dec 22, 2021 6:36 pm
by SuicideJunkie
I spent a few days thinking about how you could multiplex multiple digits with fewer than M combinators.
The divide by each, and each modulo 10 part came to me, and I'll use that to save almost 40% on my ETA digit generation :)

But I gave up on the display segment compression bit. Turns out I was too focused on adapting it; I see the logic is in the lamps themselves and the domino nature allows for lamps to never turn off with increasing digit values (aside from the odd/even center which is done with one combinator for the whole set wired separately).

Nice work!

Re: Digital Display, Yay!

Posted: Fri Jan 14, 2022 1:29 pm
by DaveMcW
It is possible to control two digits with one combinator, if you double the size of the dictionary. This reduces the size to 11 arithmetic combinators (+2 constant combinators). Thanks to _RandomComputerUser_ for the idea.



13-combinator-display.jpg
13-combinator-display.jpg (176.27 KiB) Viewed 155 times

Technical description:
Convert a number between 00-99 into a bitmask, with one bit between 0-9 turned on, and one bit between 10-19 turned on. Use the bitwise OR operator to combine the bitmask with the dictionary values, if anything doesn't match the lamp turns off. There is a special case for zero, since the bitmask is 0 it will always match. So the center lamp turns on only if the bitmask is greater than zero.