Thats one awesome hack
I can’t stop here. Next time you hear from me I’ll have a greyscale demo for you.
I’ve only been playing with these displays for a week now and started with I2C interface, but this is going to be too slow to get the full 1024 bytes written in time, so will have to re-write my code for SPI.
I’ll be back. Cheers.
The [nothing] is actually the reason I am here and reading through all the “tl;dr” materials.
Good dig on the hardware. The MCU was smaller than the one I had with my display. Perhaps version problems.
Pin 7 … I guess it is because the interface (IIC/I2C, SPI) don’t support it as of yet.
Or perhaps they found out it was unstable or what, and just disconnected it straight.
But hmm … I think I see one or two screens with all the pins brought out to the ribbon cable …
You sound like me when I’ve had too many beers. Cheers for the reply.
That’s absolutely normal #nohate
Thats some fine soldering
With having access to the FR pin. You could run test with all kinds of commands to see if FR can be influenced somehow. If that’s possible then maybe that command could be used to make the display (frame) run in sync with the MCU.
FR can be controlled (indirectly) by altering frame timings. The data sheet documents those commands. However, it will not help synching the MCU’s clock to the display because the display is using its own internal clock source. You’d have to feed the display controller with an external clock derived from the MCU’s clock to do that but that’s another hardware change.
Any Taiwanese Arduboy fans here? The OLED MFG are based there, if I had a local fixer I’d love to just show up at the doorstep of the company and show them all of this work the community has put into trying to get gray scale. If they are selling this as a commodity item then they can have a benefit over the other screens, by literally adding a small trace of copper they can have grayscale function for the display!
This is completely wrong and just confusing others. The reason I’ve gone to this trouble is to enable what you’ve just said can’t be done. The FR pin output IS the display clock’s frame reference . . . . hello ?
My bad … I have to edit this because I’m completely wrong after all. DBX IS correct ! Sorry about that. Brain doesn’t always work correctly.
I should have been more specific. I ment a way to reset the FR counter with one of the commands.
I wonder how many displays you would need to buy in order for the MFG to add a customized flex cable to the displays instead of the standard ones.
Getting spicy here cool it down now we’re all friends
One thing that might be important reminder is that this is a really international community here and for a lot of people English may not be their primary language. Also that what we are trying to do is confusing enough for one person to do in the lab by themselves (I know this first hand) so feel free to cut everyone as much slack as possible as we try to figure this thing out together.
When I told my distributor that I wasn’t going to pay for my order until they asked the factory if I can have a meeting with them. (That’s seriously what it took for them to bother to simply ask a question) I was told that I would need to place an order of a million units before they would have a meeting with me.
I bet you this was a “bugger off” kind of answer and not necessarily the truth. For instance I have a feeling if you were coming to them as a fellow regional developer then that million unit requirement would drop by something like an order of magnitude or two.
Absolutely that’s why I need a Taiwanese fixer
Hello hello I may have misunderstood what @Mr.Blinky was asking so my answer may make sense only to me.
I took this to mean: “while you have FR connected, you could explore if any controller command(s) can be used to sync and then use those commands to sync without connecting FR.”
Which is not going to work. I thought my interpretation of the question made sense because if FR is connected to the MCU there is no need for such command so, if @Mr.Blinky is asking about command sequences, he is probably looking for a solution that doesn’t require hardware modification.
Edited to clarify my POV and tag @Mr.Blinky correctly.
Even if you had the exact same frame rate frequency for MCU and SSD1306, they would eventually drift out of phase firstly, then frequency. You’d start to see a slowly moving black bar running up or down the display, like when your old CRT TV used to get out of sink. Even TVs needed a sync signal from the TV transmitter
to lock on to.
That’s correct. If FR pin is available, you have the choice to sync your MCU to FR signal or else if CL and CLS pins are available, you’d have the ability for the SSD1306 to sync to your MCU instead. The later option requires 2 extra pins (CL and CLS) plus the need to output a 400Khz clock signal, compared to just one FR pin only for the former.
This would be a bit tricky because there’s no spare space, without moving a bunch of pcb tracks along one space.
You can’t bring FR pin# 51 out at I/O 7 because it’s further along to the right and it has a pcb track loop shorting pins 50 and 52 either side of it. It would require a major re-design.
That’s what I ment.
If there is an command X that resets FR then the idea was to reset it each (Arduboy) frame. But I now realize that wouldn’t work properly as part of the OLED display is updated more than once and will be brighter than the part that is updated just once.
Interesting I’d wonder what those pins are but I’ve seen a 2 sided FPC in these before so the pin can be jumpered. All things can be done I guess it isn’t SUPER trivial, but for the manufacturer this is what they do all day long.