Native ( downloaded, installed) GPIO Buttons plugin newer will work on odroid C2 running volumio.
In details:
-
Different port numbering : PI using port numbers 2, 3, … 26, 27. odroid C2 does not have these ports. It’s port numbers are between 205 and 249 ( but not all numbers). See here : wiki.odroid.com/odroid-c2/hardw … connectors. (Translation between wiringPI port numbers and odroid C2 numbers is done by using previous table.)
-
Not all odroid C2 port numbers can be used. Some of them are used by another devices by default. Free port numbers are : 214, 219, 225, 228, 231, 233, 236, 237, 239 and 247
-
It is not possible to use all GPIO Buttons function at same time ( Play/Pause, Next, Prev, Vol+, Vol-, Power). GPIO Buttons use onoff node library. See here : wiki.odroid.com/odroid-c2/appli … e/gpio/irq.
-
odroid C2 use 2 interrupts for SD CARD detection, and for rising and falling edge detection is needed separate IRQ. Simple mathematics is next : 8 - 2 = 6, 6 / 2 => 3 GPIO buttons can be active at same time.
-
Unfortunatally on my setup I can use only 2 buttons - not enough IRQ … I need to do some deeper investigation.
-
To use GPIO Button on odroid C2, UIConfig.json and config.json need to have some modification. They are located here : /data/plugins/system_controller/gpio-buttons
-
config.json
{
"playPause":{
"enabled": {"value": true, "type": "boolean"},
"pin": {"value": 214,"type":"number"},
"value": {"value": 0, "type": "number"}
},
"volumeUp":{
"enabled": {"value": false, "type": "boolean"},
"pin": {"value": 219,"type":"number"},
"value": {"value": 0, "type": "number"}
},
"volumeDown":{
"enabled": {"value": false, "type": "boolean"},
"pin": {"value": 225,"type":"number"},
"value": {"value": 0, "type": "number"}
},
"previous":{
"enabled": {"value": false, "type": "boolean"},
"pin": {"value": 228,"type":"number"},
"value": {"value": 0, "type": "number"}
},
"next":{
"enabled": {"value": true, "type": "boolean"},
"pin": {"value": 231,"type":"number"},
"value": {"value": 0, "type": "number"}
},
"shutdown":{
"enabled": {"value": false, "type": "boolean"},
"pin": {"value": 233,"type":"number"},
"value": {"value": 0, "type": "number"}
}
}
- UIConfig.json
[code]{
“page”: {
“label”: “GPIO Buttons”
},
“sections”: [
{
“id”: “gpio_setup”,
“element”: “section”,
“label”: “Setup your GPIO button actions”,
“icon”: “fa-plug”,
“onSave”: {“type”:“controller”, “endpoint”:“system_controller/gpio-buttons”, “method”:“saveConfig”},
“saveButton”: {
“label”: “Save”,
“data”: [
“playPauseEnabled”,
“playPausePin”,
“volumeUpEnabled”,
“volumeUpPin”,
“volumeDownEnabled”,
“volumeDownPin”,
“previousEnabled”,
“previousPin”,
“nextEnabled”,
“nextPin”,
“shutdownEnabled”,
“shutdownPin”
]
},
“content”: [
{
“id”: “playPauseEnabled”,
“element”: “switch”,
“label”: “Enable Play/pause”,
“value”: true
},
{
“id”: “playPausePin”,
“element”: “select”,
“label”: “GPIO Pin”,
“value”: {“value”: 214,
“label”: “214”
},
"options": [
{
"value": 214,
"label": "214"
},
{
"value": 219,
"label": "219"
},
{
"value": 225,
"label": "225"
},
{
"value": 228,
"label": "228"
},
{
"value": 231,
"label": "231"
},
{
"value": 233,
"label": "233"
},
{
"value": 236,
"label": "236"
},
{
"value": 237,
"label": "237"
},
{
"value": 239,
"label": "239"
},
{
"value": 247,
"label": "247"
}
],
"visibleIf": {
"field": "playPauseEnabled",
"value": true
}
},
{
"id": "volumeUpEnabled",
"element": "switch",
"label": "Enable Vol+",
"value": false
},
{
"id": "volumeUpPin",
"element": "select",
"label": "GPIO Pin",
"value": {"value": 219,
"label": "219"
},
"options": [
{
"value": 214,
"label": "214"
},
{
"value": 219,
"label": "219"
},
{
"value": 225,
"label": "225"
},
{
"value": 228,
"label": "228"
},
{
"value": 231,
"label": "231"
},
{
"value": 233,
"label": "233"
},
{
"value": 236,
"label": "236"
},
{
"value": 237,
"label": "237"
},
{
"value": 239,
"label": "239"
},
{
"value": 247,
"label": "247"
}
],
"visibleIf": {
"field": "volumeUpEnabled",
"value": true
}
},
{
"id": "volumeDownEnabled",
"element": "switch",
"label": "Enable Vol-",
"value": false
},
{
"id": "volumeDownPin",
"element": "select",
"label": "GPIO Pin",
"value": {"value": 225,
"label": "225"
},
"options": [
{
"value": 214,
"label": "214"
},
{
"value": 219,
"label": "219"
},
{
"value": 225,
"label": "225"
},
{
"value": 228,
"label": "228"
},
{
"value": 231,
"label": "231"
},
{
"value": 233,
"label": "233"
},
{
"value": 236,
"label": "236"
},
{
"value": 237,
"label": "237"
},
{
"value": 239,
"label": "239"
},
{
"value": 247,
"label": "247"
}
],
"visibleIf": {
"field": "volumeDownEnabled",
"value": true
}
},
{
"id": "previousEnabled",
"element": "switch",
"label": "Enable Previous",
"value": false
},
{
"id": "previousPin",
"element": "select",
"label": "GPIO Pin",
"value": {"value": 228,
"label": "228"
},
"options": [
{
"value": 214,
"label": "214"
},
{
"value": 219,
"label": "219"
},
{
"value": 225,
"label": "225"
},
{
"value": 228,
"label": "228"
},
{
"value": 231,
"label": "231"
},
{
"value": 233,
"label": "233"
},
{
"value": 236,
"label": "236"
},
{
"value": 237,
"label": "237"
},
{
"value": 239,
"label": "239"
},
{
"value": 247,
"label": "247"
}
],
"visibleIf": {
"field": "previousEnabled",
"value": true
}
},
{
"id": "nextEnabled",
"element": "switch",
"label": "Enable Next",
"value": true
},
{
"id": "nextPin",
"element": "select",
"label": "GPIO Pin",
"value": {"value": 231,
"label": "231"
},
"options": [
{
"value": 214,
"label": "214"
},
{
"value": 219,
"label": "219"
},
{
"value": 225,
"label": "225"
},
{
"value": 228,
"label": "228"
},
{
"value": 231,
"label": "231"
},
{
"value": 233,
"label": "233"
},
{
"value": 236,
"label": "236"
},
{
"value": 237,
"label": "237"
},
{
"value": 239,
"label": "239"
},
{
"value": 247,
"label": "247"
}
],
"visibleIf": {
"field": "nextEnabled",
"value": true
}
},
{
"id": "shutdownEnabled",
"element": "switch",
"label": "Enable Shutdown",
"value": false
},
{
"id": "shutdownPin",
"element": "select",
"label": "GPIO Pin",
"value": {"value": 233,
"label": "233"
},
"options": [
{
"value": 214,
"label": "214"
},
{
"value": 219,
"label": "219"
},
{
"value": 225,
"label": "225"
},
{
"value": 228,
"label": "228"
},
{
"value": 231,
"label": "231"
},
{
"value": 233,
"label": "233"
},
{
"value": 236,
"label": "236"
},
{
"value": 237,
"label": "237"
},
{
"value": 239,
"label": "239"
},
{
"value": 247,
"label": "247"
}
],
"visibleIf": {
"field": "shutdownEnabled",
"value": true
}
}
]
}
]
}
[/code]
- Finally. I hope that this can help odroid C2 fans tu use GPIO Buttons …