I am trying to control the EV3 using direct commands over a Bluetooth connection. There are no issues pairing the brick with a PC or phone, and opening the serial connection works fine, but sending a direct command such as playing a tone with

0x06 0x00 0x00 0x03 0x0B 0x02 0xF4 0x01

does not produce a tone and does not provide a response on the serial connection, even though the telegram type byte requests it.

I have tested direct commands using two different serial terminals on OS X and Windows 7, as well as an Android app made for this purpose and writing the bytes using my own custom program, and all of these give me the same results. However, the official Robot Commander app does work.

Are there any special connection settings needed for commands to succeed, or any common pitfalls that I might have fallen into? I have read the developer documentation and didn't find any glaring problems.

1 Answer 1


Using the documentation from here, here, here and here, the command for playing a tone should look something like this:

0x0F, 0x00,            // size of message = 14 bytes
0x00, 0x00,            // message counter = 0 [can by any number]
0x80,                  // command = DIRECT_COMMAND_NO_REPLY
0x00, 0x00,            // 0 bytes for global variables, 0 bytes for local variables
0x94,                  // opSOUND
0x01,                  // CMD = TONE
0x81, 0x32,            // VOLUME = LC1(50) [50%]
0x82, 0x0B, 0x02       // FREQUENCY = LC2(523) [C5]
0x82, 0xF4, 0x01,      // DURATION = LC2(500) [0.5s]
  • 1
    Spot on! Apparently, the EV3 is not backwards compatible with the NXT command set and doesn't tell you if you try. When I mentioned "the developer documentation", I meant the NXT Bluetooth developer kit from the Mindstorms site, but what I should have read was the EV3 firmware developer kit. Thanks!
    – Per
    Commented Sep 8, 2015 at 8:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.