Oldskool Demo on a 7 Segment Display
plingboot.com
Oldskool Demo on a 7 Segment Display
1–10 of 27 posts
Re: Oldskool Demo on a 7 Segment Display
#2Re: Oldskool Demo on a 7 Segment Display
#3Re: Oldskool Demo on a 7 Segment Display
#4Re: Oldskool Demo on a 7 Segment Display
#5I understand multiplexing is the only way to survive at scale, but for small displays (say, 5x30 (= 150 LEDs)), what solutions would have enough I/O to drive each LED emitter individually, without scanning? I've always wondered what a truly flickerless LED matrix would look like. *
(* Several years ago I had an odd incident where after using a scientific calculator I'd see weird swirling patterns overlaid on top of whatever I was looking at. The LCD itself was not faulty or damaged, and I couldn't see any flickering at all. Considering LCDs run at 30-100Hz, the whole incident (it stopped after a while, I have some theories as to why) made me curious what a truly DC-driven LED matrix would look like.)
Re: Oldskool Demo on a 7 Segment Display
#6This is ever so slightly thread-hijacking but I've been wondering something slightly related for a while now: what's the downright cheapest way to get into really really big LED matrixes? Like the kind used for signs (of various sizes; let's say I'm referring to around The major issue I'm completely ignorant of is how to get enough I/O that can drive the LEDs directly - I'm assuming something with lots of direct driv…
Re: Oldskool Demo on a 7 Segment Display
#7It's amusing but a bit underwhelming, he's simply mapping a grid of pixels to segments, he's not taking the shape and orientation of the segments into account at all.
It would be easy to rework this into a good comment by expressing your point additively rather than as fault-finding. For example, mention "shape and orientation of the segments" as the next thing to take into account and add some information about how one might do that. Then you're helping all of us learn.
Re: Oldskool Demo on a 7 Segment Display
#8This is ever so slightly thread-hijacking but I've been wondering something slightly related for a while now: what's the downright cheapest way to get into really really big LED matrixes? Like the kind used for signs (of various sizes; let's say I'm referring to around The major issue I'm completely ignorant of is how to get enough I/O that can drive the LEDs directly - I'm assuming something with lots of direct driv…
All of the LED driving is taken care of by the module, except for multiplexing the 'lines'. So these work by having drivers for one 'line' or LEDs (or 2 lines on the 32 LED high modules). You shift out the bits to them on a 16 pin plug. My clock as using an STM32F4 chip on a 1Bitsy[4] and was doing 240 FPS. Since these micros can be easily paralleled and synchronized you can drive an arbitrarily large sign by adding about $25 per 16 panels. Feeding them all data is a bit more complicated but not terribly so.
[1] https://www.aliexpress.com/item/3mm-Indoor-SMD0606-rgb-led-d...
[2] https://twitter.com/ChuckMcManis/status/794023527720620032
[3] https://twitter.com/ChuckMcManis/status/794025248203022336
[4] https://1bitsquared.com/collections/embedded-hardware/produc...
Re: Oldskool Demo on a 7 Segment Display
#9It's amusing but a bit underwhelming, he's simply mapping a grid of pixels to segments, he's not taking the shape and orientation of the segments into account at all.
Re: Oldskool Demo on a 7 Segment Display
#10Add some music and the demosceners at pouet.net might get interested in seeing it; they have a "wild" category for hardware/exotic demos like this.
I agree with the second comment there about replacing the verbose chain of if-statements with a single expression; my first thought upon seeing that was "this really needs to be simplified"; likewise, the second part with 7 nearly identical lines shifting left and then right by the same amount, then multiplying by 255(?!) can be simplified to a loop; the way it looked with lines for B and C having a slightly-different mask constant is misleading, since it looks like a copy-paste error. Here's an (untested) attempt at simplifying the code:
int yoffs[] = { 0, 1, 3, 4, 3, 1, 2 };
shift = 6 - ((digit&3) 2) )