Arduino Video8 library (176/224px) PAL display .

this library allows you to get a tiled screen display with only an arduino UNO and a couple of resistors
450ohm and 1K ohm resistors .
it uses program memory b/w tiles to generate the display . i am improving the library to ramp up the reading and memory allocation speeds so we might get a decent 200/224px resolution out of this soon .
the problem lays in the 16Mhz clock speed of the arduino at the moment since reading from program memory takes a bit of time , nothing a bit of assembly cant fix though .

though if you want an eazy solution to add more blocks to the screen you can overclock an Atmega328 on a breadboard , that would give you a resolution of 220/224px resolution .
if you want even more you can add a Parallel to Serial shift register along-side that . then you might reach a resolution of 420/224px or a little less , since the byte shifting would not be needed wich takes 8 clocks per burst :slight_smile: .

the current functions are :

  • print (str) and print_char (x,y,char) wich are clear :slight_smile: . the first one has prefix x and y that follow a cursor

  • set_text_offset(p,c) ← needed for print p is the position of the character in the blocks array and c is the character that holds that postion . this function allows you to have multipe fonts and bitmaps in the same array :slight_smile:

  • bitmap(x,y,sx,xy,fblock) : x and y stand for the position of the bitmap on the screen , sx and sy stand for the size of the bitmap on x and y axes . while fblock stands for the position of the first graphical block in the blocks array. make sure that the sx and sy of your bitmap are multiples of 8 to avoid errors . i used “imgtocode” to convert bitmaps to simple arrays then a simple java program to convert them to organized tiles ready for the display , the method is simple all you have to do is take all the 8x8 bytes on the horizontal axes untill you buffer the whole thing …

here is the result of the main example test :

and here is the link for the library :

i am 17 and still at school so i still have a week in spring break , i think ima write an other library if i have time , video16 , wider or bigger tiles for small 8bit games or bitmaps , i dont know if this would be usefull anyway . so enjoy this and tell me about bugs if found please :slight_smile: .

Impressive work - well done.

Just one small thing; calling it "PAL" might raise unsustainable expectations - if it's a 50Hz, 25 field monochrome display, it's CCIR, if it's a 60Hz, 30 field monochrome display, it's RS-170.

thank you very much AWOL :) . to be honest i cant give it the right name . the refresh rate of the screen is high i think .

i think video16 library can have 2bits of gray on the screen which would cut the resolution on half though because of the clock speed .