IO60P16 Module Chaining

The IO60P16 module says…

“It is possible to add up to Eight of this module on one socket with minor hardware changes. See schematics under downloads and CY8C956A datsheet for further details.”

There isn’t a downloads tab for this module. I’m curious to know what your plan is for putting eight on a single X socket. I suppose that’s what the “Port” pads are for but it’s not clear to me how everything is supposed to connect.

Hi Ian,

The schematic is up and ready to download under the download tab now. :slight_smile:

Thanks, Aron! So, it looks like the idea is that it will run via software based I2C and JP3 will be used to chain other boards?

There are many ways for chaining these modules but as you only need a single socket to get 60 IOs, we will not be supporting chaining directly. You are more than welcome to figure it out from the chip datasheet and schematics. Maybe even make a wiki page on how to do so.

From the chip datasheet, you can chain up to 8 IIRC.

Ah, I see. I don’t really need more IOs. I’m thinking of a project that would involve chaining many modules together though and was curious about how you were doing it on this one w/o DaisyLink. I misread “it is possible” as “we’re making it possible” :wink: Thanks.

I think all you’d need to do is alter the device’s address by changing the Ax pin states.

Yea, but what I don’t see is a way to physically chain them together except by adding an Extender module. The SCL & SDL are only exposed in the socket. :frowning: Or am I missing something in the schematic?

Hmm. I smell a new module: The socket replicator module!

Really is enough to have passthrough semtec cable and set A0 pin differently, so you can manage at least 2 modules on the same bus. But if you need more, this expander can manage max 128 addresses for I2C…
But really need more than 2 ? ???

One socket to rule them all! I can see some [rare] value in such a module for I2C. Maybe one socket in and four out with headers on the edge so they could be connected if more happen to be needed.

Well, it would be an expensive route to go…but suppose you wanted to drive an 8x8 LED cube using PWM.

The chip supports I2C already so why not have an extra socket to allow chaining?

Also, it would have been cool if the socket pins were laid out so that it could be a YI socket to get the benefits of the native I2C support if additional speed is necessary.

Yeah, that’s the obvious solution. One socket on either side.

Yep, that also would’ve been very nice. If you were chaining lots of modules, you’d probably want the hardware I2C speed.

It’s OSHW, so you could easily take the board and create a more functional derivative. If you’re comfortable soldering the 100LQFP, it’d be pretty easy to produce, as there’s almost nothing else on the board. The driver could be made to work with either board.

I’m not really looking to create a new board just maybe making some suggestions for v2. I’ve volunteered to help write the driver for this one so I’m exploring all the options as I think of how it should be implemented. It’s an interesting problem… The board doesn’t have a way to chain modules together but you could do it through the use of an Extender. So, do you write the driver so that it works for an individual board or do you write it assuming that they may be chained using this “hack”?

Write it so that they can be chained. That way, when I start producing and selling upgraded modules, your driver will work with them too :wink:

It’s not a big issue to manage 2 cards with 2 different address in the driver, so you get ready for next V2… An other way is to implement the daisylink hw/sw protocol so can be chain as card as needed.

That’s the way I’m leaning. Once I get my modules, I’ll set up a test and make sure it’s as easy in practice as it sounds in theory.

Don’t think that’s possible since we don’t have a programmable chip on the module. Also there would need to be a * socket.

I don’t think DaisyLink adds much here, since you’re working with I2C already, and there’s no real use for a neighbor bus (like ianlee said, there’s no programmable chip on the module).

It’s clear that for daisylink, the module need to be deeply revisited …
As suggested by other adding a second GT connector is the fastest way.