[?] New Haven 128128ASC3 wiring and SPI library

Status
Not open for further replies.

killkrt

Member
Hi,

I am trying to use a NewHaven 128128ASC3 OLED display with my Teensy 3.6.
I've followed different guides and posts on this forum, but at the moment I am not getting anything but a dark screen.

My first question is which wiring I should follow?
At the moment I am using the one suggested by the library that I am using, that is:

  • MOSI to Pin 11
  • SCLK to Pin 13
  • DC to Pin 15
  • CS to Pin 10
  • RESET to Pin 14

wiring.jpg

And I've tried to clock the Teensy CPU to almost all speeds from 24MHz to 96MHz and using the #define SLOW_SPI (as suggested) before including other headers. with all the examples provided by the library, but with no luck :(

Do you have any experience with this display? Could you give me some hints?

Thank you.
 
This display has two CS connections, one for the OLED and one for the SD card. Make sure you are using the correct one to drive the display. Out of that, you should really follow meticulously the complete wiring diagram published in NewHaven’s data sheet:
778126F1-122B-4AAB-908F-39901C9BF3C9.jpg
 
Wiring looks okay so far.
Did you cut the trace between VUSB and VIN on the Teensy? In this case your display has no supply voltage with your current wiring.
The soldering on the pin header of the display looks a bit dirty. Have you checked if every pin has proper contact?
This library seems to be untested with Teensy 3.6. I did not look to far into it, but even if it compiles it could be worth a try to test a different library just to be sure?
 
Wiring looks okay so far.
Did you cut the trace between VUSB and VIN on the Teensy? In this case your display has no supply voltage with your current wiring.
The soldering on the pin header of the display looks a bit dirty. Have you checked if every pin has proper contact?
This library seems to be untested with Teensy 3.6. I did not look to far into it, but even if it compiles it could be worth a try to test a different library just to be sure?

The version Adafruit_SSD1351.h library included with the Teensy releases will work with this OLED display. On the Teensy 3.5 and 3.6, I have discovered that you need to limit the NewHaven display SPI bus speed to at most 18Mhz (the Teensy library sets it to 8Mhz), but other programs like Adafruit's uncanny eyes program might set it higher. If you use the version from Adafruit, it doesn't have SPI_TRANSACTION support, so you might or might not need to lower the 3.5/3.6 clock speed fairly low to get it to work (the SPI transaction support includes an explicit SPI bus speed).
 
The soldering on the pin header of the display looks a bit dirty. Have you checked if every pin has proper contact?

Uhm, I checked contacts with tester and I've noticed that two pins (CD, 3Vo) result in someway touching the GND pin (even if they are next to each other) :( So, I guess this is not a good thing!
I'll try to unsolder them, but I am afraid that I've already killed the board.
 
The version Adafruit_SSD1351.h library included with the Teensy releases will work with this OLED display. On the Teensy 3.5 and 3.6, I have discovered that you need to limit the NewHaven display SPI bus speed to at most 18Mhz (the Teensy library sets it to 8Mhz), but other programs like Adafruit's uncanny eyes program might set it higher. If you use the version from Adafruit, it doesn't have SPI_TRANSACTION support, so you might or might not need to lower the 3.5/3.6 clock speed fairly low to get it to work (the SPI transaction support includes an explicit SPI bus speed).

I was thinking that defining SLOW_SPI (as documented by library author) SPI was limited to 18MHz despite the Teensy CPU speed.
Maybe I'm trying to use a OLED that it is not fitting well with Teensy.
Since maybe my display has dead (because wrong soldering), I am looking for a decent display OLED or TFT (at least 128x128) with 16bit colors (or more) that could run with a good FPS refresh (>30FPS) and will not limit the Teensy speed. I was thinking that OLEDs with SSD1351 were well supported with Teensy, but maybe I got it wrong.
 
Buy the SPI variant. Others are not supported by the libraries.
For the speed in the videos you need a Teensy 3.6, only the Teensy 3.6 can reach enough SPI-Speed. The ILI9341 is overclocked here. Use very short cables / connections (Edit: way shorter than shown post #1!), best is a PCB.
The Teensy64 Emu is open source.
 
Although I really like the ILI9341 (and do in fact use ist too) there is no voodoo behind SSD1351 and it would be interesting to find out what is wrong with your setup. Might be worth it to further investigate. At the time I have just the bare SSD1351 OLED lying around, but I recently ordered the Adafruit version with breakout board and will do a test run with a T3.6. At the moment I can't see why the Newhaven version should not work.
 
At the moment I can't see why the Newhaven version should not work.

You're right, but I am afraid that there are some soldering issues, I have to check better this evening, but it seems that some pins are in short, I mean I have made a quick check with continuity checker and it is beeping when I touch pin CD and 3Vo and GND, maybe it is not a real problem, I have to check schematics (even if I am not such an electronics expert).
Anyway since the other display was quite cheap I prefer to have an alternative and don't waste to much time riding a dead horse.
 
Some updates.

I was able to get it running, but with some nasty workarounds:

  • It works only with CPU speed at 24MHz or lower.
  • I have to disconnect pin 10 (CS0) at startup.
  • I have to connect pin 10 (CS0) after few seconds to SDCS instead of OLEDCS. :confused:

P.S.:
If I am not wrong builtin led is blinking according to pin 13, in that case it seems that the SPI clock (SCK0 on pin 13) is not following the settings provided (15MHz), but the CPU speed. This is because I see builtin led blinking following CPU frequency instead of SCK0 frequency.
If it is true, this could be the reason why I have to downclock my Teensy at 24MHz.
 
Last edited:
I have almost solved, but with a strange wiring solution.

I had to put two pull-down resistors (instead of pull-up as suggested by NewHaven forum) and switch OLEDCS with SDCS. :confused:
With this strange trick it works perfectly even with CPU at 240MHz.

I've already checked soldering issue and there are no shortage between OLEDCS and SDCS.

wiring.jpg
 
Status
Not open for further replies.
Back
Top