Minidrones direct bluetooth commands



im looking for the bluetoothcommands to control the Mambo Minidrone.
Did anyone sniff them out already or someting?



I found this code:
> this.logger(‘RollingSpider#handshake’);

        ['fb0f', 'fb0e', 'fb1b', 'fb1c', 'fd22', 'fd23', 'fd24', 'fd52', 'fd53', 'fd54'].forEach(function(key) {
        var characteristic = this.getCharacteristic(key);

This seems to be the handshake command:

‘fb0f’, ‘fb0e’, ‘fb1b’, ‘fb1c’, ‘fd22’, ‘fd23’, ‘fd24’, ‘fd52’, ‘fd53’, ‘fd54’

can someone translate it for me so i can paste it into the console?
Or tell me how to?

This would be taking off:

if (!this.status.flying) {
new Buffer([0x02, ++this.steps.fa0b & 0xFF, 0x02, 0x00, 0x01, 0x00])
this.status.flying = true;

new Buffer([0x02, ++this.steps.fa0b & 0xFF, 0x02, 0x00, 0x01, 0x00]



You can find here a complete documentation of the protocol used by the Mambo (and other BLE minidrones).

All commands are described in the arsdk-xml repository.



Thanks Nicolas, Ill be fighting through the docs and will post back my experience with it.


so i am able to connect to the drone,
but sending the commands i decrypted to ints/longs
still no reaction comes from the drone

i saw here that the handshake is not neeeded.

the command to take is sent looks like this:

64000, 64011, 4, 64011, 2, 0, 1, 0

DataType, SequenceNumber, else are datas

Am I missing something?

kind regards


also tried this:

//char handshakeChar[] = “fb0f, fb0e, fb1b, fb1c, fd22, fd23, fd24, fd52, fd53, fd54”;
//char handshakeChar[] = “‘fb0f’, ‘fb0e’, ‘fb1b’, ‘fb1c’, ‘fd22’, ‘fd23’, ‘fd24’, ‘fd52’, ‘fd53’, ‘fd54’”;
//char charMapChar[] = “fb0f, fb0e, fb1b, fb1c, fd22, fd23, fd24, fd52, fd53, fd54”;
//char charMapChar[] = “‘fb0f’, ‘fb0e’, ‘fb1b’, ‘fb1c’, ‘fd22’, ‘fd23’, ‘fd24’, ‘fd52’, ‘fd53’, ‘fd54’”;
//char takeoffChar[] = “‘fa00’, ‘fa0b’, 4, ‘fa0b’, 2, 0, 1, 0”;

no success


learned more about frame construction
takeoff command looks like this now:

byte datatype = {0x02}; // datatype - nonAck                               FIRST BYTE IN ORDER
byte seqnumber = {0x01}; // sequencenumber or steps - 0-255 then loops    SECOND BYTE IN ORDER
                         // START OF ACTUAL DATA - device type   0x02??   THIRD BYTE IN ORDER                     
byte devicetype = {0x02};
byte takeoffByte[] = {datatype, seqnumber, devicetype, 0x00, 0x01, 0x00};

but still no success taking off!

is maybe the device type wrong?
its the one from rolling spider - same like Parrot Mambo???


Hi ! Can you send to me an email to talk about this project please ? My email is :

Thanks you so much