Feasibility of making non-moving text display

I'm a raw beginner to Arduino and programmable devices in general, although I do have quite a bit of experience designing analog and discrete logic circuits. I make my own PCBs and am comfortable with the idea of PWM, multiplexing, driving loads, feedback, sensors, etc. I would like to have some idea about the feasibility of making a text display with Arduino. Please note that I am not asking anyone to spoonfeed me with details of the design.

The object is to display a dozen or so static (not scrolling) text characters that can be changed on the fly with a keyboard. I've done some search but most of the results are about scrolling text. Can you please help by selecting any of the broad classifications below, expanding as you see fit:

  1. Practically impossible. Not for Arduino.

  2. Possible but excessive complexity makes it hardly worth the effort. Not really for Arduino. Other platforms are more suitable.

  3. Routine - with some complexity of course.

Regarding points 2 and 3, I expect that it will need at least some fairly complex programming, add-ons and interface electronics. I repeat that, at this point, I just want to have some idea about the level of feasibility. Thanks in advance.

#3 completely.
This has been done hundreds of times, but you get the choice of multiplexing strategies.
To some extent,this depends on the LEDs you want to use, bit in general -
You could go ‘easy’ by using chips like the MAX7219 per 64 (8x8) block of LEDs.
The old-fashioned way of using a long row of shift-register dot-columns, then loading each row of LEDs, and strobing the row driver, and rinse/repeat for each row.
Finally, you could create an array of smart RGB LEDs, in a daisy-chain, then use software to position each pixel in the array.

Each approach has benefits, and they’re all a great learning curve!
Remember to plan your power supply based on the number of LEDs/dies on at any given moment.

For static text IMO you can take any moving-text project and throw out the moving part.

From the code view you typically have a couple of LEDs and a couple of bits and bytes. One part is setting the right bits for the character patterns, the other one bringing each bit to the right LED. No rocket science at all. The character generator, from chars to bit patterns, will make up the biggest part of your project.

Thanks to both of you. That's the kind of reply I was hoping for. I know I have a long way to go but I'm willing to put in the effort. Could you help ease the trip by pointing to some suitable reading material?

Regarding the heads-up about the power supply, I understand. The aim is to drive a huge display, with a large power draw. It will probably be more practical to use a ready-made power supply module than to make my own. Determining a suitable voltage and the corresponding current rating will come at a later stage.

Take a look at any tutorial for “Arduino matrix display”.
The RGB pixels would most likely use ‘Neopixels’ WS281x family.

How big an array are you thinking about (XxY) ? 1/2/3/4 colours?
These may influence your choice of multiplexing.

  • and indeed, the size of array will influence how you generate and store the pixel bitmaps/font etc.

The colour will be fixed for each character, so no need for the MCU to manage it. The number of characters is not definite yet and could be from 10 to 20. To repeat what I wrote at the beginning, it's important that the characters be easily changed on the fly by anyone with a keyboard. Its purpose is similar to the scoreboard at a sporting event.

Pimpom:
Regarding the heads-up about the power supply, I understand. The aim is to drive a huge display, with a large power draw. It will probably be more practical to use a ready-made power supply module than to make my own.

Ready made display or DIY display? A ready made display will usually come with some kind of digital interface, making it easier to work with.

A DIY one can be done with the MAX7219, but when the currents go up the EMI goes up as well. Maybe better to use shift registers with high drive (the TPIC6B595 can do 150 mA per output), no multiplexing, just one output per pixel. Or regular shift registers with MOSFETs on the output for drives that can basically be as high as you want. Saves a lot of EMI and so.

Determining a suitable voltage and the corresponding current rating will come at a later stage.

You'll probably find that this is a pretty integral part of your design. It determines how you can drive your pixels, whether you can use a multiplex IC or have to use shift registers, etc.

The colour will be fixed for each character, so no need for the MCU to manage it. The number of characters is not definite yet and could be from 10 to 20. To repeat what I wrote at the beginning, it's important that the characters be easily changed on the fly

Not a lot of useful info in there...

Does that mean each character ‘position’ will only ever be a single colour, or something else? Anything else is not a problem, but the processor and memory will have to handle it.

If you’re going to use a typical 5x7 character matrix (allows a blank column between characters... you’ll need 20x8 column drivers, and 7 or 8 row drivers.
For a 9x16 character matrix (better former characters) these numbers go up.

Refreshing this size of display shouldn’t be a problem but consider you may have to allocate some cycles to handle the incoming display data (serial?),

wvmarle:
Ready made display or DIY display? A ready made display will usually come with some kind of digital interface, making it easier to work with.

A DIY one can be done with the MAX7219, but when the currents go up the EMI goes up as well. Maybe better to use shift registers with high drive (the TPIC6B595 can do 150 mA per output), no multiplexing, just one output per pixel. Or regular shift registers with MOSFETs on the output for drives that can basically be as high as you want. Saves a lot of EMI and so.
You'll probably find that this is a pretty integral part of your design. It determines how you can drive your pixels, whether you can use a multiplex IC or have to use shift registers, etc.

Probably DIY. Other points noted. Thanks.

lastchancename:
Not a lot of useful info in there...

Does that mean each character ‘position’ will only ever be a single colour, or something else? Anything else is not a problem, but the processor and memory will have to handle it.

I meant character position. Sorry about the ambiguity.

If you’re going to use a typical 5x7 character matrix (allows a blank column between characters... you’ll need 20x8 column drivers, and 7 or 8 row drivers.
For a 9x16 character matrix (better former characters) these numbers go up.

Refreshing this size of display shouldn’t be a problem but consider you may have to allocate some cycles to handle the incoming display data (serial?),

Most likely 5x7.

Pimpom:
I meant character position. Sorry about the ambiguity.Most likely 5x7.

OK, that's a start - so you only need to populate the required 'areas' in single colour LEDs to satisfy that aspect. If you're really 'cheap' you can leave the blank dot columns empty - or use them for simple sprite-type graphics that span character cells.

Pimpom:
I meant character position. Sorry about the ambiguity.Most likely 5x7.

That certainly simplifies your font-table as 8-bit column bytes (keep the last bit for pseudo-underscore lines)

Thanks again. I have a lot of thinking and learning to do but will have to stretch it out over a long time as I'm rather busy with my regular work.