Not surprisingly, this all started when (perhaps jokingly) a clever colleague questioned, "Why don't you stack 'em up like a sub sandwich?" A merely mundane Monday morning quickly became a maniacal midnight mash-up for yours truly, mad scientist. A little planning and proving the power of this particular display was providential in the proceeding process.
Initially it was imperative to test the inconceivably incredible display's transparency. With only one unit working wonderfully well, nine more non-functioning displays were stacked on top, one by one. When at last the image at the bottom faded from view, the battle was won but the total number was ten.
Another astonishing achievement that empowered this futuristic artifact was the super speed of the SPI bus. Said bus, in coordination with ten tiny chip select lines, was capable of continually captivating the consciousness of the (possibly concerned) crowd in a blistering burst of brilliance.
Nevertheless, such an exceedingly embryonic idea would be irrefutably evanescent could an elegant software solution not be embraced. Since we can spy furthest standing upon the shoulders of cyclops, I silently sought a singular font of pseudocode. Upon applying Bresengham's arcane craft to an additional dimension, one artful enigma appeared.
Moral of the Story
So what's the take away from this experience? Several things:
- There's a very cool 3D graphics library for Arduino out there by M Rule that allows users to render STL files on a display. If you want to look further, you can also see the code as one of the examples for the transparent graphical OLED.
- SPI is a very nice protocol when you've gotta go fast. The symmetry is also pretty nice, as you can see from the stack of boards that all share MOSI, SCLK, D/C, VCC and GND. The only wire that couldn't be shared was the CS line, which I protected from the other layers with a smidgin of kapton tape.
- Drawing in 3D seems hard, right? Well it's actually easier (from a number-crunching perspective) than drawing something 3D on a 2D screen. When going to 2D, you also need to project your points and determine if there are any overlapping parts.
- If you like algorithms you should check out Bresenham's line algorith applied to 3D.