Skip to content

Instantly share code, notes, and snippets.

@mhasdf
Last active June 11, 2023 06:03
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mhasdf/489c6d35c830dda512143d0374bb17ce to your computer and use it in GitHub Desktop.
Save mhasdf/489c6d35c830dda512143d0374bb17ce to your computer and use it in GitHub Desktop.
Mackie Thump GO Bluetooth Protocol

Mackie Thump GO Bluetooth Protocol

Connection

The Thump GO is visible as two Bluethooth devices. Thump GO is an audio device. The Bluetooth device named LE_Thump GO is used for controlling the loudspeaker.

Only after an audio connection was established and the bluetooth LED lights solidly, the LE_Thump GO device is active. (With Auto Connect off, connect from a previously paired audio device to reach that state. With Auto Connect on, this state is only reached 60 seconds after turning on, even if the audio connection is established much earlier, but one can presses the PAIR button to shorten that time.)

The Bluetooth device LE_Thump GO is the interface the official app Thump Connect 2 uses. This device offers service UUID 49535343-fe7d-4ae5-8fa9-9fafd205e455. Appearently, this is the BM70/RN4870 chip with service "Microchip Transparent UART". Here, I list all the commands of the device I could reverse-engineer. I assume no liability for the correctness. All numbers are in hexadecimal notation.

Settings Vector

ID Function Values
01 Front LED 00 (off) or 01 (on)
(02) Battery SOC ff (?), ..., f1, ee, ... 77, 73, 70 = LED green (100% to 20%)
6c, 69, 65, 62, 5e, 5b, 57 = LED yellow (20% to 5%)
54, ... = LED red (less than 5%)
03 01
04 Auto Link 00 (off) or 01 (on)
05 Auto Connect BT 00 (off) or 01 (on)
06 00
07 00
08 Main Volume ff (full volume) to 00
ff=-0dB, fe=-0.5dB, fd=-1dB, ..., ea=-10dB
09 Main Mute 00 (unmuted) or 01 (muted)
0a Voicing Mode 00 (Music)
01 (Speech)
02 (Monitor)
03 (Sub)
0b Outdoor Mode 00 (off) or 01 (on)
0c Music Ducking 00 (off) or 01 (on)
0d Feedback Eliminator 00 (off) or 01 (on)
0e Custom EQ low fa (-6 dB) to ff (-1 dB), 00, 01 (+ 1 dB) to 06 (+6 dB)
0f Custom EQ high fa (-6 dB) to ff (-1 dB), 00, 01 (+ 1 dB) to 06 (+6 dB)
10 00
11 CH1 Volume ff (full volume) to 00
ff=-0dB, fe=-0.5dB, fd=-1dB, ..., ea=-10dB
12 CH1 Mute 00 (unmuted) or 01 (muted)
13 00
14 CH2 Volume ff (full volume) to 00
ff=-0dB, fe=-0.5dB, fd=-1dB, ..., ea=-10dB
15 CH2 Mute 00 (unmuted) or 01 (muted)
16 00
17 00
18 15
19 00

All the push-button actions (I mean the physical push buttons on the device) can be executed via the Bluetooth protocoll, except the Bluetooth button.

The physical dials (for gain and Main volume) cannot be operated via Bluetooth. 100% on the Bluetooth protocol corresponds to the respective physical dial. The volume can only be lowered(or muted completely) via Bluetooth.

Linked Mode settings (for connecting two loudspeakers) could not be tested.

Writing Values

Write at characteristic 49535343-8841-43f4-a8d4-ecbe34729bb3.

Writing Settings

Write bed103XXYYef, with XX=ID and YY=Value.
Example: bed1030a01ef sets voicing mode to Speech.

Reading Values

Listen to notifications of characteristic 49535343-1e4d-4bd9-ba61-23c647249616.

Regular Notifications

Every 600 milliseconds, a notification indicating (virtual) signal level LEDs is sent. (These level LEDs are not present on the device, but in the virtual mixer of the app.) This is message bed506XX00YY00ZZ00ef with XX=Main, YY=CH1, ZZ=CH2 – with values 00 (LED off) or ff (LED on = signal on this channel).

Every 6 seconds, the battery state of charge (SOC) is transmitted. bed50302XXef with XX being the SOC. Values as described in the Settings Vector table.

Reading Settings

Write the command bed104ef to get the settings vector, in 2 parts.
Response 1: bed505010eXXXXXXXXXXXXXXXXXXXXXXXXXXXXef, with the payload being the settings vector with IDs 01 through 0e.
Response 2: bed5050f09XXXXXXXXXXXXXXXXXXXXXXef, with the payload being the settings vector with IDs 0f through 19.

Changed Settings

If a setting is changed via button press on the device, this is announced with a bed503XXYYef notification, with XX=ID and YY=Value.
Example: bed5030b01ef Outdoor Mode on

Other Readings

Writing bed112ef to bed115ef results in consistent answers (some consistent per session, some across sessions). These could include product ID, serial number, session IDs.

Link Mode

Command bed10aef starts link mode, command bed10bef ends it.

Status changes are announced (bed5030601ef on, bed5030600ef off) for both, Bluethooth command and button press on the device.

Not owning a second Thump GO loadspeaker, link mode could not be tested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment