Ioe-python - what are or were the super io expander(s)

This is maybe a question for @gadgetoid .
I am diving into the libraries of ioe-python. I read in reference.md info about a “super io expander”. What is this for a kind of device? I never saw any device with such a name on the website of Pimoroni or elsewhere.

Is it related to the Inventor HAT Mini, perhaps? That uses a Nuvoton microcontroller to provide a range of I/O capabilities described by the Python library documentation. The library itself references an ioexpander package and SuperIOE class which would appear to be in the ioe-python repository you are perusing. Case closed?

Thank you for your explanation. Yep, case closed.

Well actually… Super IO Expander was meant to be a standalone product, an upgrade to the IO Expander we were already shipping, using a bigger Nuvoton chip. For various reasons the product never got released, and now I have the only surviving unit in the office.

You can see a preview of it on a Tom’s Hardware Pi Cast from 5 years ago: https://www.youtube.com/live/Xt16vDuWevg?t=808

Since the chip had a lot of handy features for robotics, it ended up being used on the Inventor HAT Mini.

1 Like

Nice to hear the backstory! I almost bought the Inventor HAT Mini in the recent sale, but couldn’t really justify getting yet more gadgetry: I have a desk full of things to work through, but Pimoroni still offers plenty of temptations.

One thing I wondered about was the sustainability of this I/O expander solution, however. I saw that there is a firmware file (in what looks like Intel HEX format), but is the source code also published and freely licensed, or is it proprietary software?

Is there also documentation for the features, or does the library code serve as the documentation? My reason for asking this is that to stand in for a conventional I/O expander (like the PCF857x or MCP230xx devices), one might also expect to get a datasheet chapter describing the operation of the device.

We currently do not provide the source code for the IO Expanders.

Outside of some documentation added to describe features used by Inventor HAT Mini (ioe-python/docs at main · pimoroni/ioe-python · GitHub) I’m afraid the library code and examples serve as the documentation. This is something we have been trying to get better at with newer products.

That being said, majority of the firmware just exposes the registers of the Nuvoton chip to the I2C bus, as can be seen here (ioe-python/ioexpander/ioe_regs.py at main · pimoroni/ioe-python · GitHub), so referring to the chip’s datasheet itself will describe the majority of its operational characteristics.

1 Like

Thank you for that information!