Lots of interrupts?

I’ve seen a lot of information about the interrupts and what minimum support requirements are, pull-up vs pull-down requirements etc, but I haven’t found anything that says what is implemented on the GHI devices. The 7 button thing I saw uses a 100ms loop which I find as a bit of a bummer. I also saw one suggestion of using an OR chip to tie all the pins to the 3 pin to make a global interrupt that you then have to check each button.

I’m getting a generic Hardware exception when I try to create an InterruptInput on pins 6 through 9 on a Y port in a custom module. Is it limited to 3, or is there a socket on the Spider that supports 7 interrupts? I have all my sockets used already so I can’t just spread it out.

Am I stuck with using a 100ms loop?

look at the different socket types, maybe one of those support more interrupts.

I have, the socket minimum spec requires pin 3 as GPIO! on most of the socket types, and I have not seen any socket that has a minimum spec of more than pin 3 with GPIO!. It is allowable for more pins to support it, but I believe that is a choice of the board or chip manufacturer as it’s a minimum rather than exact spec.

Pin 3 is guaranteed to be an interrupt pin per Gadgeteer socket specification. The other pins may or may not support interrupts. That is MCU dependent. You need to check with the MCU datasheet/user guide which pins are interrupt capable.

I know, and I’ve tried figuring it out, but the EMX SoM manual for the Spider isn’t the most clear document in the world to someone who doesn’t know how to read it. I did see it says ports 0 and 2 are the only ones that support interrupts, but I don’t understand how that maps to the Spider.

@ PintSize.Me - In the manual for the SoM you will find the Pin-out Table stating on page 8, take note of all the pins that have their IO ids marked with an asterisk, this is in the EMX IO column, these pins are the interrupt capable pins.

Next, open the schematic for the Spider under the Resources tab, the schematic shows every socket and with IO pin the socket pin is connected to. Compare this to the interrupt capable IOs in the SoM manual and you should have an indication of which socket pins can be used as interrupt pins.


Thanks @ taylorza, that may have been what I was missing. I tried matching up but it isn’t working (just back and forth to try and match up, the files do load) on the PDFs so I think I’ll print the schematic and start drawing on it to figure out what is where.

@ PintSize.Me - Remember to share your findings, I can see this being useful info for others.

1 Like

Ok, so that was a royal PITA. But here it is, it would be great if this kind of a list was available on the product page for each board. Anyone who wants to verify the list, reformat, put it on the GHI product page, whatever, please feel free to do so. If you don’t need the LCD that uses the RGB sockets, Socket 14 is a goldmine with 7 interrupt pins, socket 6 and 9 also are good with 6 each.

SPIDER Interrupt pins by socket

  • denotes this pin is shared
    DIP included as it has 3 interrupts, 1 shared with socket 3.
    Socket # (interrupts - shared)

Socket 1 (4-2)
3 - IO21
6 - IO19
8* - IO12
9* - IO11

Socket 3 (4-3)
3 - IO1
6* - IO0
8* - IO12
9* - IO11

Socket 4 (5-2)
3 - IO33
4 - IO37
5 - IO32
8* - IO12
9* - IO11

Socket 5 (1)
3 - IO23

Socket 6 (6)
3 - IO18
4 - IO20
5 - IO22
7 - IO36
8 - IO38
9 - IO35

Socket 9 (6)
3 - IO46
4 - IO6
5 - IO7
7 - IO24
8 - IO25
9 - IO27

Socket 10 (5-2)
3 - IO45
4 - IO5
5 - IO8
8* - IO12
9* - IO11

Socket 11 (3)
3 - IO26
4 - IO3
5 - IO2

Socket 12 (3)
3 - IO70
8 - IO63
9 - IO61

Socket 13 (1)
9 - IO17

Socket 14 (7)
3 - IO69
4 - IO65
5 - IO66
6 - IO67
7 - IO68
8 - IO62
9 - IO64

Config DIP (3-1)
6 - IO0
7 - IO30
8 - IO4

1 Like

@ PintSize.Me - I believe this is already included in the latest non public sdk :slight_smile: you just had to wait a little bit longer.

@ Gus, the next non public sdk that doesn’t help me now and I’ve not seen a release date for. Maybe these lists can be extracted from the sdk and put on the product page under the resources?

When I try to use IO20, IO22, IO36, IO38 (Socket 6 pins 4,5,7,8) as InterruptPorts they do not trigger. Pin 3 on socket 6 (IO18) it works fine.

Has anyone been able to successfully use pins other than pin 3 as InterruptPorts?

UPDATE: Never mind. This was my fault. The interrupts work fine.



Can you clarify that, where can I find this information for existing boards?