IO22D08 I/O board library

The IO22D08 is an I/O board for an Arduino Pro Mini; it provides:

  • 8 x relay outputs (10A NO/NC outputs) + LED per channel
  • 8 x optically isolated inputs
  • 4 x pushbuttons
  • 4 x 9-segment LED display (88:88), handy for time/state info

The vendor I acquired the board from provided no information, the vendor that originally produced it appears to have once provided some example code that may or may not have been useful.

The project GitHub - bdlow/IO22D08: Arduino library for the IO22D08 relay IO board contains an Arduino library that can be used to interact with the IO22D08 hardware and an example sketch that exercises the library. It also documents how the multiplexed 7-segment 4-digit LED display and relays are driven via only 3 pins from the Arduino, using a chain of three 74HC595 shift registers.

From what I’ve found, you’ll need to modify it to make it work. Here’s a link that explains the details and provides more information about the board: Arduino Pro Mini Relay Board 8 Channel Relay PLC Board IO22D08 for Arduino Pro Mini.

1 Like

Hi @gilshultz; yes, I found the werner.rothschopf.net page (and related posts at arduino.cc and on YT by the same person, I believe they go by @noiasca). That in turn appears to build on the original vendor's 'eletechsup's work. My work was originally based on that, however there is little left of the original and of course, imnsho, GitHub - bdlow/IO22D08: Arduino library for the IO22D08 relay IO board is a much improved implementation, including documentation for how the display + relays are driven via the shift registers: IO22D08/display.md at main · bdlow/IO22D08 · GitHub.

PS: not sure what you mean by "modify it to make it work": the two boards I received worked out-of-the-box with generic Pro Mini clones, no hardware modifications required.

That was in reference to making the decimal points function properly. I didn’t go into the details of how to do it.

two things:
a)
todays example sketch throws a warning:

C:\Daten\myrepository\Arduino\libraries\IO22D08\examples\IO22D08\IO22D08.ino: In function 'void buttonHandler(ace_button::AceButton*, uint8_t, uint8_t)':
C:\Daten\myrepository\Arduino\libraries\IO22D08\examples\IO22D08\IO22D08.ino:123:16: warning: this statement may fall through [-Wimplicit-fallthrough=]
       buttonId += 4; // "virtual" buttons 8-5
       ~~~~~~~~~^~~~
C:\Daten\myrepository\Arduino\libraries\IO22D08\examples\IO22D08\IO22D08.ino:124:5: note: here
     case AceButton::kEventClicked:
     ^~~~

you could either mark it with an intent or add the break.

b) please don't publish my code on your repo at all. It will get outdated there when I update my code. Furthermore, currently I see two folders with my code in your repo. Please delete both of them.
Thank you.

Ta for that; I didn't realise the Arduino IDE's default warnings setting is "off"! Warning suppressed; TIL: C++ attributes: Attribute specifier sequence (since C++11) - cppreference.com

I've removed all the code that I didn't create; TBH it's unclear to me what is yours and what is others' work, though none of it is needed here so not a problem to remove it all.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.