Pololu Orangutan X2 User Manual
Page 2
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. ATmega644 SPI Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Low-Level SPI Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.a.01. Command 214: Set Motor Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.a.02. Command 128: Independent Motor Brake (inB = inA) . . . . . . . . . . . . . . . . . . . 7
3.a.03. Command 136: Independent Motor Drive (inB = ~inA) . . . . . . . . . . . . . . . . . . 7
3.a.04. Command 232: Independent Motor Drive with Acceleration (inB = ~inA) . . . . . . . . . 7
3.a.05. Command 144: Joint Motor Operation (inA1 = inB1 = in1; inA2 = inB2 = in2) . . . . . . 8
3.a.06. Command 228: Joint Motor Drive with Acceleration (in2 = ~in1) . . . . . . . . . . . . . 8
3.a.07. Command 208: Set Acceleration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.a.08. Command 188: Set Brake Duration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.a.09. Command 212: Set Number of Current Sense Samples in Averages . . . . . . . . . . . . 9
3.a.10. Command 192: Set Current Limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.a.11. Command 210: Set Motor PWM Frequencies . . . . . . . . . . . . . . . . . . . . . . . . 10
3.a.12. Command 216: Get Average Motor Current . . . . . . . . . . . . . . . . . . . . . . . . 11
3.b.1. Command 152: Play Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.b.2. Command 160: Play Frequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.b.3. Command 176: Play Melody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.b.4. Command 168: Store Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.b.5. Command 224: End Melody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.b.6. Command 186: Erase Melodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.b.7. Command 226: Set Volume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.b.8. Command 187: Set Note Gap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.b.9. Command 225: Buzzer Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.c.01. Command 200: Set Serial Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.c.02. Command 219: Read UART Byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.c.03. Command 220: Send UART Byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.c.04. Command 222: Get Free Space in Send Buffer . . . . . . . . . . . . . . . . . . . . . . . 18
3.c.05. Command 223: Get Number of Bytes in Read Buffer . . . . . . . . . . . . . . . . . . . . 18
3.c.06. Command 227: Set Read Ready Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.c.07. Command 252: Get UART Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.d.01. Command 218: Get Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.d.02. Command 240: Write to EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.d.03. Command 248: Read from EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.d.04. Command 254: Check If EEPROM Is Busy . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.d.05. Command 253: Get Firmware version (version = major byte . minor byte) . . . . . . . . 21
3.d.06. Command 255: NULL Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Orangutan X2 Command Documentation v1.01
© 2001–2010 Pololu Corporation
Page 2 of 27