-
-
Notifications
You must be signed in to change notification settings - Fork 40.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OLED Driver Feature #5288
OLED Driver Feature #5288
Conversation
This would be absolutely awesome. |
495e55c
to
c40fc73
Compare
Force push rebase on latest master |
It looks like #4994 may compete with this, actually. And that PR may be a better implementation. @XScorpion2 if you wanted to take a look at that PR? Because, personally, I'd like to see one unified implementation. |
@drashna I've looked at that pr a few times before. However, it still requires each keyboard to switch their implementation over as most keyboards pulled in ssd1306 and i2c files into their own directory and made changes to them. Which is the same catch with this PR. Though converting existing keyboards to that driver would be faster as it behaves identically to today. Comparing API and features of the original ssd1306 driver vs this one, this driver requires less code for a user (or keyboard) to write for integration, it's faster, smaller firmware footprint, and has additional features: 90/270 degree rotation support, and scrolling. |
Mostly my comment was a crosspost, and to make sure both of you have had eyes on the other PR. |
~~The logo is stuck on the SOL one. I'm using the CRKBD logo file, and the font file... but .... ~~ Edit: Fixed. Was using the wrong file. |
Working fine for me on crkbd, corne logo showing happily, my changes (cribbed from @r2d2rogers) are in Lenbok@a118a6d |
Well, to be honest, as much as I like optimizing the firmware, I think this is one of those points where functionality is more important. Would it be possible to have defines to set the rotation, but also have it available as a function/call/check/whatever-the-right-term-is? If so, I think that may be the "best" approach. |
There are conflicts now. |
@drashna conflicts? where? =P |
@drashna Firmware size increases by ~230 bytes (same with lto on or off) with the define enabled. Quick test converting that to a runtime switch (init param) would be about ~330 bytes. None of the necessary additional rotation checks are in any hot loops so perf hit would be minimal. Edit: Final results are in, 354 bytes larger for moving 90 degree rotation support to a runtime switch. |
439776d
to
a615e3c
Compare
Rebased & Compacted commits onto latest master |
Also, passes Drashna CI. Been using it for a while. It works very well. |
@@ -20,8 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
|
|||
#pragma once | |||
|
|||
#define SSD1306OLED |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you remove the user keymap changes?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, because they wanted me update it. I'll get them in here to approve.
c3fafe1
to
4064a09
Compare
It's got my blessing, good work @XScorpion2 |
🍌 🚪 😆 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My keymap looks good. Thanks for the hard work on this one @XScorpion2!
So that's approval from keyboard developer, keymap owners, and removal of potential copyright issues. Anything else or is this good to go? |
Build failures were unrelated. Thanks! |
Standalone OLED Driver based on PR #5151 but without the conversion of every keyboard. This is an opt in feature for keyboard owners to adapt to at their leisure, with the Sol being converted as an example (plus it's what I use myself, so easy to test daily)
Description
This is a standalone OLED Driver for ssd1396 based OLED Displays. The goals of this driver were to provide support on both AVR and ARM boards with faster performance and smaller size than what existed today as well as fix issues that exist in the current ssd1306 driver and its i2c usage causing lost data & deadlocks. In addition, this driver supports features the current options do not such as scrolling and 90 degree rotation.
By the numbers:
make sol/rev1:brianweyer
Types of Changes
Issues Fixed or Closed by This PR
Checklist