Giter Club home page Giter Club logo

Comments (7)

roryjamesallen avatar roryjamesallen commented on June 1, 2024

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.

from europi.

roryjamesallen avatar roryjamesallen commented on June 1, 2024

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

from europi.

roryjamesallen avatar roryjamesallen commented on June 1, 2024

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

from europi.

awonak avatar awonak commented on June 1, 2024

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

from europi.

roryjamesallen avatar roryjamesallen commented on June 1, 2024

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

from europi.

roryjamesallen avatar roryjamesallen commented on June 1, 2024

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

from europi.

roryjamesallen avatar roryjamesallen commented on June 1, 2024

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

from europi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.