Skip to content

Allow using alternate GPIO pins or eliminate gpio consumption with i2c based gpio #15

@Dloranger

Description

@Dloranger

I am building a fairly complicated system with the pi3 and find that the two gpio you used are already in use by other boards. I would like to have the Pico UPS designed into the system as the usage may be far up in the mountains where it is difficult to recover from a bad shutdown, right now I can't do this.

I have several questions below

Question 1,

Short term -
what changes can I make to the board and software to get the signals onto different GPIO pins? I am very comfortable with cutting traces, and doing very fine pitch soldering if appropriate. I have access to great tools so I can do most any reasonable mods. I would like to use pins 11 and 37 currently as those are the only 2x20 header pins still open.

Looking at the software, it appears I only need to edit the following to fix the sw
https://github.com/modmypi/PiModules/blob/master/code/python/upspico/picofssd/scripts/picofssd#L25-L26

but I need to know where to cut/jump to bring in these pins in the board where they won't interfere with my other boards..

long term -
Unless there is a strong reason against it, you are already consuming the I2C bus, so why not use an expander like the MCP23017 or a register in the I2C device that could be polled?

perhaps you could also include some options in the board like solderable jumpers or 0-ohm resistors to select between a few of the gpio pins if you can't fit a gpio expander on the board? For selfish reasons, I would like to have 11 and 37 be the alternates :-)

Question 2,
It appears you are using I2C addresses 0x6b and 0x69 - Please confirm if these are the only addresses in use?

Question 3,
For the I2C bus usage, I am using the modern device tree to load up several devices (mostly MCP23017 gpio expanders, but also some others) on the I2C bus.

Can you please update the instructions with a device tree overlay so that I can merge it with my existing overlay rather than having to load the /etc/modules method. I haven't tried yet until I get my hardware delivered, but trying to ensure no conflicts where the two methods stomp on each other.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions