You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This library needs minor changes to work with Teensy. But these edits aren't Teensy-specific and probably will help with other modern boards. Problem was reported on this forum thread:
Default config in ssd1306_hal/arduino/io.h enables AVR-specific features. Just checking #if defined(__AVR__) allows non-AVR hardware to work by default.
ssd1306_hal/arduino/platform.cpp attempts to include Wire1.h, which doesn't exist on many platforms. Adding a __has_include check solves this.
ssd1306_platform_i2cInit() doesn't handle boards with 3 or 4 I2C ports. Simple to add.
ssd1306_platform_i2cInit() defaults to last port on boards with 2+ I2C ports, when busID is -1. Reorder if-else to default to main Wire port.
ssd1306_platform_i2cInit() unhandled cases leave a NULL pointer, which later crashes when used. Add fallback test to default to main Wire port.
Confirmed working with Teensy 3.0 and Teensy 4.1 using ssd1306_demo example.
I hope you will consider merging some form of these minor edits, so Teensy boards can work. Other non-AVR boards will very likely also benefit from these edits.
I could send a pull request if you would like. I can also arrange to send you Teensy 4.0 and Teensy 4.1 hardware for future development and testing.
The text was updated successfully, but these errors were encountered:
Mostly ssd1306 is C-style library and I don't think that __has_include is supported by all compilers.
Regarding your fix: TWI is not supported for all AVR controllers as well as AVR SPI. This will break other platforms.
I agree with other your proposals.
As the code #else case is written today, all platforms (not matched by the specific cases) without TWI using are already broken, because CONFIG_TWI_I2C_AVAILABLE is always defined. Checking only for __AVR__ shouldn't break anything that isn't already broken, but it would indeed leave unknown AVR platforms without TWI broken.
Maybe a better test would look something like this?
This library needs minor changes to work with Teensy. But these edits aren't Teensy-specific and probably will help with other modern boards. Problem was reported on this forum thread:
https://forum.pjrc.com/threads/67585-util-delay-h-no-such-file?p=328244&viewfull=1#post328244
Here is a first attempt to fix:
master...PaulStoffregen:ssd1306:master
Quick summary of these changes:
#if defined(__AVR__)
allows non-AVR hardware to work by default.__has_include
check solves this.Confirmed working with Teensy 3.0 and Teensy 4.1 using ssd1306_demo example.
I hope you will consider merging some form of these minor edits, so Teensy boards can work. Other non-AVR boards will very likely also benefit from these edits.
I could send a pull request if you would like. I can also arrange to send you Teensy 4.0 and Teensy 4.1 hardware for future development and testing.
The text was updated successfully, but these errors were encountered: