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

Write Big Chars on Panel #3

Closed fcabrera23 closed 3 years ago

fcabrera23 commented 3 years ago

Hi, I was checking your library and its not possible to write a big string, like for example 10:30 in the whole LED display. Do you have any function for that?

CamelCaseName commented 3 years ago

Hi, unfortunately I only have the small font (5x3) implemented..

You could set every pixel the number should use manually/in a function, but apart from that, I have nothing for this. Sorry. But I am currently working on a new project, which will bring some improvement to this one also

For making your own font display function, you can use the one I use to display the small ones, and increase the sizes for everything, then load a different (bigger) font into it.

i might do this myself sometime™

CamelCaseName commented 3 years ago

you can take a look at my Word clock example, which displays characters on the panel, but very small ones.

fcabrera23 commented 3 years ago

Hi, thanks for your quick response. I would be willing to pay for the development, do you think you can make it? I need this asap. My idea es showing a text like " 23.5 | 76%" which is the temp and humidity. Thanks

CamelCaseName commented 3 years ago

i added a function with a scaling factor for the font it currently uses, so you can have big chars, but still blocky. just call it stylized and done

panel.drawBigChar(0,7,'2',0,3); panel.drawBigChar(10,7,'3',0,3); panel.drawBigChar(17,7,'.',0,3); panel.drawBigChar(24,7,'5',0,3); panel.drawBigChar(34,7,'7',2,3); panel.drawBigChar(44,7,'6',2,3); panel.drawBigChar(54,7,'%',2,3);

this would work in a space sense, or you can put each value in a different row. one thing that doesnt work yet is displaying a whole string in one go, but you should be able to just replace the hardcoded chars with an string referenced like an array like this: `

String test = "23.576%";

panel.drawBigChar(0,7,test[0],0,3);
panel.drawBigChar(10,7,test[1],0,3);
panel.drawBigChar(17,7,test[2],0,3);
panel.drawBigChar(24,7,test[3],0,3);
panel.drawBigChar(34,7,test[4],2,3);
panel.drawBigChar(44,7,test[5],2,3);
panel.drawBigChar(54,7,test[6],2,3);

`

fcabrera23 commented 3 years ago

Hi, @CamelCaseName thanks for all your help. I have just tried and getting some errors with the display. Im attaching prictures

IMG_0286 copy

IMG_0287 copy

CamelCaseName commented 3 years ago

ok, this looks weird. i saw something similar with my tries yesterday, and i got it solved by reducing ram usage. can you please check in the "panel.h" whether "#define BIG" is commented or not.

if you comment this line, you can only set the first 8 colors(0-7), but it might fix this problem. with the BIG statement set, the buffer uses two bits per pixel, which comes out to a total of nearly 95% ram usage, which doesn't always work. with only one bit per pixel, you have about 800bytes of ram to work with. it might also be the wiring, there is nothing more I can think of right now.

if you take a look at the "word clock example", there should be some info on the ram issues.

i could also try to reduce variables used, but it is getting kind of complicated

CamelCaseName commented 3 years ago

the one thing that is extra weird is the fact, that the letters are along the short side, which I have no idea on how they got there.

i might look into a vertical mode as well, but I can not guarantee anything

fcabrera23 commented 3 years ago

Thanks.. I was using horizontal mode, just took the picture in a vertical mode. I will try your solution and let you know tomorrow.

CamelCaseName commented 3 years ago

i tried your code with both big and small buffer, and it had no effect. IMG_20201207_150143 the number looks normal, even the small red bar at the top is kind of normal, i dont know where these bleeds come from, or how to get rid of them. the only thing i think might cause your problem are wrongly connected row select lines.

i included your code in the exampe, so you can try also

have fun