CamelCaseName / HUB75nano

This Arduino library adds the basic functionality needed to drive a HUB 75 protocol LED Panel up to 64x32 Pixels RGB.
GNU General Public License v3.0
38 stars 6 forks source link

Set Font to Display #21

Open tahafathi2013 opened 8 months ago

tahafathi2013 commented 8 months ago

I used your library and examples but the font is not my favorite. How can I use my favorite font or at least the international English font?

IMG_20240309_004604

CamelCaseName commented 8 months ago

eh it's rather complicated there is no easy way you would need to replace the method that draws the characters with your own and your own font encoding

CamelCaseName commented 8 months ago

but it should have all letters, no? you can find the font I used linked in the font files

tahafathi2013 commented 8 months ago

Ok How set or change a font on code?

CamelCaseName commented 8 months ago

https://github.com/CamelCaseName/HUB75nano/blob/master/src/fonts/3x5font.h is where the font code is currently located

you would probably also have to adjust this here, where it actually draws the pixels to fit your pixel row and coloumn count for a letter https://github.com/CamelCaseName/HUB75nano/blob/master/src/drawing/char.h

this here is where i got it from, also has an explanation on how it works https://hackaday.io/project/6309-vga-graphics-over-spi-and-serial-vgatonic/log/20759-a-tiny-4x6-pixel-font-that-will-fit-on-almost-any-microcontroller-license-mit#header

basically you have a row of bits and just go through each row of a letter and turn the leds on or off

CamelCaseName commented 8 months ago

i cant really give more info than this, i plan on making the adafruit fonts compatible sometime this year

tahafathi2013 commented 8 months ago

Please put the next update in such a way that you can define the R1 R2 G1 G2 B1 B2 pins manually, as well as the ability to determine the number of panels and the desired font whose file is attached to the project.

CamelCaseName commented 8 months ago

R1 R2 G1 G2 B1 B2

you can already but it is not advised as it will be way slower rtfm: https://github.com/CamelCaseName/HUB75nano?tab=readme-ov-file#pin-mapping

You can deviate from this mapping but it comes at a speed cost. To use your own pins, refer to the table above (def. name coloumn) and just define the pin to one you like. Example: #define RA 12 This puts the first row bit on D12 instead of A0.

as well as the ability to determine the number of panels

so far panel linking is not supported, but if you just have them in a row it works if you define the size correctly so when you have 2 32x16 panels in a row you can set the size to 64x16 and it should work. real chaining is not programmed yet

fonts

fonts are definitely on the todo list :D