Skip to content
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

[Project Suggestion] Add support for alternative OLED pin configurations #6

Closed
roryjamesallen opened this issue Nov 26, 2021 · 7 comments
Labels
hardware - EuroPi Hardware related issue suggestion New feature or request

Comments

@roryjamesallen
Copy link
Collaborator

Project Suggestion

Describe your suggestion or idea
The current PCBs only support one pin layout for the I2C bus of the OLED display, meaning that alternative displays using the same driver which may be more accessible to other customers cannot be used.
The PCB could contain some hardware to allow the pins to be switched for alternative layouts.

Images
The Pi Hut OLED
image

CPC OLED (theoretically compatible but alternate pin configuration)
image

@roryjamesallen roryjamesallen added the suggestion New feature or request label Nov 26, 2021
@roryjamesallen
Copy link
Collaborator Author

Currently pursuing two possible ways of addressing this issue; hardware switches to allow configuration when the module is assembled, and a software + hardware approach where the pins can be switched using signals from GPIOs. The second would use up more pins of the Pico, but would result in much less hardware clutter and a much easier process for a DIY user.

@roryjamesallen roryjamesallen added the hardware - EuroPi Hardware related issue label Nov 26, 2021
@roryjamesallen
Copy link
Collaborator Author

roryjamesallen commented Nov 26, 2021

Further research shows only two common pin layouts exist for this OLED display, so a simpler approach is possible: A Hardware DIP switch and pull-up/down resistors.

The two potential pin layouts

image

Proposed hardware switching solution

image

In mode 1 (The Pi Hut), the DIP switch would be set to on/on/off/off
In mode 2 (CPC, AliExpress), it would be off/off/on/on

This would allow the two different OLED configurations to be used easily, with only a quick change of the switch positions during assembly to allow it to work.

Potential issues with solution

In theory, due to user error or misunderstanding, incorrect signals could be sent to the OLED, however this should not be an issue as the I2C bus runs on 3.3V, so even if the power rail were connected to a data pin, no damage should be caused and the issue could be fixed with a simple switch change.
Also, due to the nature of the two alternate configurations, no pin is ever 3.3V in one mode and GND in the other, so there is never a risk of shorting the power rails

@roryjamesallen
Copy link
Collaborator Author

roryjamesallen commented Nov 26, 2021

Illustration of proposed solution

image
DIP switch is situated underneath the OLED display to prevent accidental knocking of the switches during removal of the module, but switches would still be accessible with a pencil if required

@awonak
Copy link
Collaborator

awonak commented Nov 26, 2021

Another option I've seen modules use is jumpers and shunts to change hardware configuration. However, this probably wouldn't fit on the jack PCB and would have to be on the pico PBC.

Here's an example of a module I recently build that uses jumpers and shunts (regretfully I don't have the schematics). Check out page 65:
https://zlobmodular.com/wp-content/uploads/2021/01/svf_6612_builddocs-compressed.pdf

@roryjamesallen
Copy link
Collaborator Author

Another option I've seen modules use is jumpers and shunts to change hardware configuration. However, this probably wouldn't fit on the jack PCB and would have to be on the pico PBC.

Yup, I did consider using shunts and in many ways it would have been a cleaner approach, however there just isn't room on either PCB. The jack PCB doesn't have the vertical space between boards for a full jumper + shunt, and the pico PCB doesn't have the room around the existing traces and components

@roryjamesallen
Copy link
Collaborator Author

roryjamesallen commented Nov 27, 2021

A sheepish reply to my above comment: There may in fact be a much simpler header and shunt solution which would fit, as the shunts are shorter than I previously calculated, allowing for them to be mounted on the jack PCB but facing towards the pico PCB.

As the pins alternate in a certain way between the two configurations, a solution with only an 8 way 2 row header and 4 shunts should be possible, taking up minimal space and being easy to set for the user:

image

This implementation would fit snugly between the two PCBs, and there is enough room for an explanatory silkscreen diagram next to the header.

image

@roryjamesallen
Copy link
Collaborator Author

Implemented solution works on new PCBs, users can even make the bridge simply using solder, saving the cost of shunts/jumpers if appearance isn't the priority!

PXL_20211211_141137654

PXL_20211211_141142226

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hardware - EuroPi Hardware related issue suggestion New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants