SparkFun will be closed on Tuesday, November 5th to support our team in being able to go out and vote! Orders placed after 2 pm MT Monday, November 4th will ship on Wednesday, November 6th. Thanks for your patience and understanding.
HyperDisplay is perhaps the greatest graphics library I have ever written! And, erm, yeah I've toootally written like a lot of graphics libraries in my day...
Jokes aside, HyperDisplay is a graphics library that makes it easy to support and use new displays, and offers flexibility to users without unnecessary overhead. There are a lot of good embedded system graphics libraries out there, from the feature packed LittlevGL to the ever-popular Adafruit_GFX, but none of these libraries fit the bill of exactly what we wanted: a capable yet uncomplicated library that could easily be extended by SparkFun employees and customers alike.
So, with that plug out of the way let's get to the personal side of the story, the part you won't hear about in the official documentation.
This summer I started working at SparkX alongside Nate, Nick, Jim and the amazing Ciara Jekel. Nate had visions of releasing a whole lot of cool new display-related technology, from RGB OLEDs to ePaper displays and touchscreen panels. Ciara and I both got started on our own products in a more or less isolated fashion - since reading datasheets is hardly a social activity. As is SparkFun fashion we also developed Arduino libraries to support our newborn products, and boy was that a process. I looked to past SparkFun products for inspiration, and also had a good time learning about some famous graphics algorithms like Bresenham's Line and the Midpoint Circle.
At some point Ciara and I started talking about our work and we realized that not only had we doubled our efforts, but we had also made it harder for users to learn our software because of the slight differences in naming, parameter arguments and even how various shapes are defined. Ciara observed that her ePaper and my RGB OLED were the same up to the point of deciding a color and passing actual signals to the device. It seemed like a no-brainer to pool our efforts and develop HyperDisplay.
How we designed HyperDisplay just wouldn't fit here -- it is worthy of its own whole discussion -- but I want to say thank you to Ciara for her invaluable input during the process. It was very rewarding to work as a team.
A good place to start learning HyperDisplay is the tutorial that we've just released:
There you can learn about how to use the drawing functions, easily make repeating patterns, draw in windows, and even allocate memory for persistent storage.
Try it out for real! HyperDisplay is for you. Though we will support our new display products, the really exciting prospect is that any person can support a new display and the possibilities are endless! I'd really like to see a display that draws in sand - so I'll leave that as a challenge to the reader. Most importantly, go start something!
"reading datasheets is hardly a social activity"
What??!!?? You mean you don't sit around on Saturday nights with friends quoting from your favorite datasheets???
:-) Sorry, I just couldn't resist... :-)
Geez, I can remember implementing Bresenham's Line algorithm back in 81 or 82...and didn't even know the name at the time! We were developing a 3K by 4K color raster graphics controller at Auto-trol at the time. We designed our own processor, using 4 AMD 2901 bit-slice processors in parallel. It was...interesting, but that was at the end of my hardware days. I became a bit twiddler in 84.
This looks to be awesome and easy to use! Congratulations! And Thank you! Are there any SparkFun products you might link to which currently work with these lib's? Cheers!
Thanks!
Currently Supported:
The good news is that we have plans for more displays in the future - and that you can add support for past products / other displays. If you're interested in that option let's start a discussion on GitHub!