We're working on a 3D project using the Arduino. What we need to be able to do is sync the 3D glasses with the pixel refreshes on the screen - either by setting the refresh rate via the Arduino board or sync'ing the board to refresh rate on the the screen - either is fine. We've been lookinging through the different display libraries and can't find what we need -- or we're looking in the wrong place.
Looking using the 4D OLED displays (possibly just a basic black/white/greyscale LCD).
Most importantly, just need to know how to drive the pixel rate on the screen or sync to pixel refreshes. (note: the refresh rate on 3D is typically in the 120Hz range, so not looking to load/reload image at 120Hz, but rather drive/sync with the pixel rate.
Extra credit if there's a way to set the duty cycle on the pixels -- i.e. for dimming/brightness control
Any pointers would be greatly appreciated.
What i see at the moment is, that the transfer rate to the display is too slow to reach 120 Hz. So you need the pictures already pre-rendered in the internal ram of the display. A single command should be available to switch between two (or more) pages.
Most controllers fro graphics LCDs do allow to set the RAM address of the top line, however i guess most displays do not have enough memory to store two full pages. In fact i have never seen that this number is documented.
The dogm132 could be investigated: A 132x32 GLCD, but the internal controller can do 132x64 pixel, so perhaps the supplier has put twice of the memory on it.
one note: we only need to paint 16x16 area so that might get us to where we need in terms of 120Hz if we want to brute force it, but preferred route is to drive the pixel refresh, or get a callback on the sync (vs. repainting every 8ms-16ms).
Some additional research has turned up the use of the SPI interface directly on the display to speed up loading images. for example here:
Additionally with an OLED since the pixel itself provides the light wondering if it's just a matter of modulating brightness from 0 to full and changing the duty cycle (i.e. PWM) and not making any changes to the image. (again, this would be the preferred approach)