Creation - Button Extender

I just posted Button Extender on Creations. Feel free to discuss and make suggestions here.


Very good idea. Thanks!

Especially great when your buttons do not work and you are not sure if the problem is in the wiring our something else and then this module lets you use the on board buttons

Hallo Dominik,
ich habe mir für einen Fahrroboter eine Platine mit Kollisionstastern gebaut (ähnlich wie beim Asuro). Dabei ist es mir erstens (bei 6 Tastern) nicht gelungen, mittels Widerständen die Tasten zu unterscheiden. Ich habe deshalb digitale Eingänge benutzt die ich in einem Thread abfrage. Das funktioniert, aber ich hätte auch gern einen Interrupt bei jedem Taster, so wie Du das bei Deinem Modul beschreibst. Könntest Du mir einen Tipp geben wie man das anstellt?
Gruß René

@ dutzend - 1st. Even if your question is addressed to a German guy, it would be nice if you write in English, so all people can read it.

About your question:
To get interrupts you need to connect the module to interrupt capable pins.
Which pins of your board are interrupt capable you can find in the specs/broucher of your board.
But I’m not sure if there is any Y Socket that has 7 interrupt capable pins.
According to the Gadgeteer socket specs this is not a must, but can.
In software you create an interrupt input port and add a event handler to it.
Search the forum/codeshare or GHI Support documents for more information about interrupts.


thx for reply Reinhard and sorry now in english.
There is only one interruptable Pin (3) on my spiderboard. My question is wich way must i use to get 6 interrupts for my 6 Switches?
When i see it right Dominik solve this Problem.


@ dutzend
You have to run a timer in a separate thread that checks the input pins. If one toggles, you can raise an event.

Spider uses EMX module.
The User manual of EMX says all P0.x and P2.x pins are interrupt capable.
Now you should have a look at the schematics of the spider board and find a socket where all 7 pins are from P0.x or P2.x and therefor interrupt capable.
You can find all these documents in the Catalog on the Specifications tab of the products (EMX and Spider)
If you are using a Gadgeteer project (with visual designer) I’m not sure if you can easily access all interrupts. But with plain NETMF it’s easy.
Instead of creating an InputPort for each button you create an InterruptPort.
If you can’t find a socket with 7 interrupts you could split the module by using a Extender and a breakout module.

1 Like

When i look in to the documentation i see only socket types with one interruptable pin, this is always pin 3 :frowning:

Yes, because that is what the Gadgeteer Socket spec says as a minimum.
But the board manufacturers can make all pins interrupt capable if they want.
That depends only on the CPU.
So you should check the schematics of the Spider board and see if you can find a socket which has at least 6 pins named P0.x or P2.x. The Px.xx number is labeled at the SoM in the schematics.

1 Like

Thx Reinhard,

i looked here:

and all went fine (100%)!


@ dutzend - Your welcome :slight_smile:

Dominik, I would like to order. But when I go to the information page and click send, nothing happens.

Hey! Just send me an email at: dominik_38 (×@ ∆) hotmail ddot com

@ GHI: Could someone please take a look at it?

Got it. Tried it myself and worked well. Strange ???

@ Ulf - I got your email and responded, but it seems that my response was caught by your spam filter! Please check that.


Is there some way to get the button extender into the designer so that if changes are made in the designer, the entries in program.generated.cs aren’t overwritten?




I am looking at the schematics for the Fez Raptor. I have the Button Extender plugged into Socket 1. But how does one tell from the schematic how many interrupt pins are available in each socket, and which channels on the Button Extender are connected to them?

@ hvelo
What do you mean exactly? I’m not sure if I understand your question correctly.
Can you explain what you want to achieve?

program.generated is a no-touch area. If you change the layout in the designer, the code there WILL change. Don’t put your own code in there manually… for this exact reason