PeterPan321:
I guess I'm spoiled... when I buy a chip, like a digital potentiometer for example, that responds to I2C or another serial standard, there is a data sheet with ALL YOU NEED to program it. What am I missing here? Devices without documentation are near worthless, no?
For super low cost, the trade off is that often you get little if any support or documentation.
For example, suppose you already have the datasheet for a device or you know where to get one or already have code to work with it, wouldn't you be willing to buy the part at a much reduced cost even it came without documentation or support?
So when wanting low cost, you often have to know what you want and be choosy on who you buy it from.
I use ebay all the time for low cost parts but I have a few strict rules I follow.
The #1 rule being, I never buy from a vendor that isn't showing photos of the actual product he is selling.
It is surprising how many vendors cheat and don't post photos of their product and in many cases you can see that their photos are of multiple different products and in some cases the photos are of a product that they are not selling.
As soon as I see that, I move on no matter how tempting the low price is.
But in general, it isn't that bad as you can usually look up a datasheet for the chipset used on the product so having a full datasheet for the product is seldom necessary.
And when it comes to a graphic LCD, you will want to make sure that the chipset used has a ready to go library as writing a graphic lcd library is a HUGE effort.
I spent a few years doing one called openGLCD and Oliver has also spent many years on his U8glib and U8g2 libraries. Adafruit has lots into their GFX library as well.
What can make a big difference on low cost LCDs in terms of updating the dipslay, is the interface used to update the LCD and the library design and how the code was written.
From a h/w perspective SPI is much faster than I2C.
And direct parallel i/o is usually faster than SPI.
However, the way the Arduino core library pin i/o functions and API were designed, particularly with the code implementation used on IDE bundled AVR core, things can get very slowed down when using an AVR.
So it isn't always obvious what LCD h/w will be faster, especially when using an AVR.
For example, my hd44780 library can update a text based LCD faster over 100khz I2C than the IDE bundled LiquidCrystal library can update the same text based LCD using a 4 bit parallel connection.
I think at this point a good value for some eye candy is the ILI9341 color display.
Lots of Arduino support for it and many projects out there using it.
It uses SPI so it is fairly fast to update and most lcd modules/shields/PCBs also include a socket for a SD card.
Prices start at about $5 USD on ebay.
--- bill