Skip to content

Instantly share code, notes, and snippets.

@ZachMassia
Last active December 20, 2015 12:09
Show Gist options
  • Save ZachMassia/6128973 to your computer and use it in GitHub Desktop.
Save ZachMassia/6128973 to your computer and use it in GitHub Desktop.
The output of the CAPABILITY_QUERY command from Firmata running on an Arduino Mega ADK.
The function used to produce output seen below.
func (b *Board) handleCapabilityResponse(m message) {
log.Printf("Capability: -- HEXDUMP --\n%s", hex.Dump(m.data))
pin := byte(0) // start with pin 0
buf := bytes.NewBuffer(m.data[2 : len(m.data)-1])
for buf.Len() > 0 {
d, _ := buf.ReadBytes(0x7F)
log.Printf("PIN %d | %s", pin, hex.Dump(d[:len(d)-1]))
pin++
}
}
-----PIN MODES-----
INPUT = 00 // Digital pin in input mode.
OUTPUT = 01 // Digital pin in output mode.
ANALOG = 02 // Analog pin in analogInput mode.
PWM = 03 // Digital pin in PWM output mode.
SERVO = 04 // Digital pin in Servo output mode.
SHIFT = 05 // shiftIn/shiftOut mode.
I2C = 06 // Pin included in I2C setup.
-----MESSAGE FORMAT-----
/* capabilities response
* -------------------------------
* 0 START_SYSEX (0xF0) (MIDI System Exclusive)
* 1 capabilities response (0x6C)
* 2 1st mode supported of pin 0
* 3 1st mode's resolution of pin 0
* 4 2nd mode supported of pin 0
* 5 2nd mode's resolution of pin 0
... additional modes/resolutions, followed by a single 127 to mark the
end of the first pin's modes. Each pin follows with its mode and
127, until all pins implemented.
* N END_SYSEX (0xF7)
*/
-----OUTPUT FROM ARDUINO-----
[gadget] Capability: -- HEXDUMP --
00000000 f0 6c 7f 7f 00 01 01 01 03 08 04 0e 7f 00 01 01 |.l..............|
00000010 01 03 08 04 0e 7f 00 01 01 01 03 08 04 0e 7f 00 |................|
00000020 01 01 01 03 08 04 0e 7f 00 01 01 01 03 08 04 0e |................|
00000030 7f 00 01 01 01 03 08 04 0e 7f 00 01 01 01 03 08 |................|
00000040 04 0e 7f 00 01 01 01 03 08 04 0e 7f 00 01 01 01 |................|
00000050 03 08 04 0e 7f 00 01 01 01 03 08 04 0e 7f 00 01 |................|
00000060 01 01 03 08 04 0e 7f 00 01 01 01 03 08 04 0e 7f |................|
00000070 00 01 01 01 04 0e 7f 00 01 01 01 04 0e 7f 00 01 |................|
00000080 01 01 04 0e 7f 00 01 01 01 04 0e 7f 00 01 01 01 |................|
00000090 04 0e 7f 00 01 01 01 04 0e 7f 00 01 01 01 04 0e |................|
000000a0 06 01 7f 00 01 01 01 04 0e 06 01 7f 00 01 01 01 |................|
000000b0 04 0e 7f 00 01 01 01 04 0e 7f 00 01 01 01 04 0e |................|
000000c0 7f 00 01 01 01 04 0e 7f 00 01 01 01 04 0e 7f 00 |................|
000000d0 01 01 01 04 0e 7f 00 01 01 01 04 0e 7f 00 01 01 |................|
000000e0 01 04 0e 7f 00 01 01 01 04 0e 7f 00 01 01 01 04 |................|
000000f0 0e 7f 00 01 01 01 04 0e 7f 00 01 01 01 04 0e 7f |................|
00000100 00 01 01 01 04 0e 7f 00 01 01 01 04 0e 7f 00 01 |................|
00000110 01 01 04 0e 7f 00 01 01 01 04 0e 7f 00 01 01 01 |................|
00000120 04 0e 7f 00 01 01 01 04 0e 7f 00 01 01 01 04 0e |................|
00000130 7f 00 01 01 01 04 0e 7f 00 01 01 01 04 0e 7f 00 |................|
00000140 01 01 01 04 0e 7f 00 01 01 01 03 08 04 0e 7f 00 |................|
00000150 01 01 01 03 08 04 0e 7f 00 01 01 01 03 08 04 0e |................|
00000160 7f 00 01 01 01 04 0e 7f 00 01 01 01 04 0e 7f 00 |................|
00000170 01 01 01 04 0e 7f 00 01 01 01 7f 00 01 01 01 7f |................|
00000180 00 01 01 01 7f 00 01 01 01 7f 00 01 01 01 02 0a |................|
00000190 7f 00 01 01 01 02 0a 7f 00 01 01 01 02 0a 7f 00 |................|
000001a0 01 01 01 02 0a 7f 00 01 01 01 02 0a 7f 00 01 01 |................|
000001b0 01 02 0a 7f 00 01 01 01 02 0a 7f 00 01 01 01 02 |................|
000001c0 0a 7f 00 01 01 01 02 0a 7f 00 01 01 01 02 0a 7f |................|
000001d0 00 01 01 01 02 0a 7f 00 01 01 01 02 0a 7f 00 01 |................|
000001e0 01 01 02 0a 7f 00 01 01 01 02 0a 7f 00 01 01 01 |................|
000001f0 02 0a 7f 00 01 01 01 02 0a 7f f7 |...........|
[gadget] PIN 0 |
[gadget] PIN 1 |
[gadget] PIN 2 | 00 01 01 01 03 08 04 0e
[gadget] PIN 3 | 00 01 01 01 03 08 04 0e
[gadget] PIN 4 | 00 01 01 01 03 08 04 0e
[gadget] PIN 5 | 00 01 01 01 03 08 04 0e
[gadget] PIN 6 | 00 01 01 01 03 08 04 0e
[gadget] PIN 7 | 00 01 01 01 03 08 04 0e
[gadget] PIN 8 | 00 01 01 01 03 08 04 0e
[gadget] PIN 9 | 00 01 01 01 03 08 04 0e
[gadget] PIN 10 | 00 01 01 01 03 08 04 0e
[gadget] PIN 11 | 00 01 01 01 03 08 04 0e
[gadget] PIN 12 | 00 01 01 01 03 08 04 0e
[gadget] PIN 13 | 00 01 01 01 03 08 04 0e
[gadget] PIN 14 | 00 01 01 01 04 0e
[gadget] PIN 15 | 00 01 01 01 04 0e
[gadget] PIN 16 | 00 01 01 01 04 0e
[gadget] PIN 17 | 00 01 01 01 04 0e
[gadget] PIN 18 | 00 01 01 01 04 0e
[gadget] PIN 19 | 00 01 01 01 04 0e
[gadget] PIN 20 | 00 01 01 01 04 0e 06 01
[gadget] PIN 21 | 00 01 01 01 04 0e 06 01
[gadget] PIN 22 | 00 01 01 01 04 0e
[gadget] PIN 23 | 00 01 01 01 04 0e
[gadget] PIN 24 | 00 01 01 01 04 0e
[gadget] PIN 25 | 00 01 01 01 04 0e
[gadget] PIN 26 | 00 01 01 01 04 0e
[gadget] PIN 27 | 00 01 01 01 04 0e
[gadget] PIN 28 | 00 01 01 01 04 0e
[gadget] PIN 29 | 00 01 01 01 04 0e
[gadget] PIN 30 | 00 01 01 01 04 0e
[gadget] PIN 31 | 00 01 01 01 04 0e
[gadget] PIN 32 | 00 01 01 01 04 0e
[gadget] PIN 33 | 00 01 01 01 04 0e
[gadget] PIN 34 | 00 01 01 01 04 0e
[gadget] PIN 35 | 00 01 01 01 04 0e
[gadget] PIN 36 | 00 01 01 01 04 0e
[gadget] PIN 37 | 00 01 01 01 04 0e
[gadget] PIN 38 | 00 01 01 01 04 0e
[gadget] PIN 39 | 00 01 01 01 04 0e
[gadget] PIN 40 | 00 01 01 01 04 0e
[gadget] PIN 41 | 00 01 01 01 04 0e
[gadget] PIN 42 | 00 01 01 01 04 0e
[gadget] PIN 43 | 00 01 01 01 04 0e
[gadget] PIN 44 | 00 01 01 01 03 08 04 0e
[gadget] PIN 45 | 00 01 01 01 03 08 04 0e
[gadget] PIN 46 | 00 01 01 01 03 08 04 0e
[gadget] PIN 47 | 00 01 01 01 04 0e
[gadget] PIN 48 | 00 01 01 01 04 0e
[gadget] PIN 49 | 00 01 01 01 04 0e
[gadget] PIN 50 | 00 01 01 01
[gadget] PIN 51 | 00 01 01 01
[gadget] PIN 52 | 00 01 01 01
[gadget] PIN 53 | 00 01 01 01
[gadget] PIN 54 | 00 01 01 01 02 0a
[gadget] PIN 55 | 00 01 01 01 02 0a
[gadget] PIN 56 | 00 01 01 01 02 0a
[gadget] PIN 57 | 00 01 01 01 02 0a
[gadget] PIN 58 | 00 01 01 01 02 0a
[gadget] PIN 59 | 00 01 01 01 02 0a
[gadget] PIN 60 | 00 01 01 01 02 0a
[gadget] PIN 61 | 00 01 01 01 02 0a
[gadget] PIN 62 | 00 01 01 01 02 0a
[gadget] PIN 63 | 00 01 01 01 02 0a
[gadget] PIN 64 | 00 01 01 01 02 0a
[gadget] PIN 65 | 00 01 01 01 02 0a
[gadget] PIN 66 | 00 01 01 01 02 0a
[gadget] PIN 67 | 00 01 01 01 02 0a
[gadget] PIN 68 | 00 01 01 01 02 0a
[gadget] PIN 69 | 00 01 01 01 02 0a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment