Shakmat Bard Quartet

Hi folks - starting a new topic since I didn’t find one for the Bard Quartet…

With the release of the new Bard Quartet Expand, I realized (late) that I need to update the firmware on my BQ to support it. Unfortunately this is not quite as straightforward as on some modules. I’m a bit stuck and looking for help, though I’ll share what I’ve learned so far.

Step 1:

You’ll need an FTDI programmer. I bought the one available from Shakmat, because my confidence level in doing the right thing otherwise was low.

Step 2:

Pull the back board off of your BQ. You’ll need to jumper two points on the board. The programmer comes with a short wire to wedge in temporarily, as well as header pins you could solder in more permanently. I did the latter and installed the jumper. (right of image)

Step 3:

You’ll need to get the STM32 cube programmer software installed. On Mac, the downloads provided by both Shakmat and STM will not work as downloaded, as they’re unsigned. I tried the usual “right click, and choose Open” trick, but even that was insufficient.

I needed to run xattr -cr [path to installer file] from the command line, then it would work. Use sudo if you have to.

Step 4:

I hit a wall. I have the programmer app open, I’ve attached the programmer to the board and connected via USB. I can find the UART device when I refresh.

When I click connect, I get an error.

Has anyone completed this update successfully, or otherwise have some suggestions? Thanks!


I have updated my bq from osx and yeah dear lord it was a pain. Googling your particular error message suggests trying again with extra care that you’re doing the “short these pins to put the microcontroller in boot mode” thing.

I didn’t have to resort to soldering the headers for a jumper, but it took me a few tries and I was tempted to.


Thanks for the thoughts!

I seem to have continuity across the jumpered pins, and the jumper is in-place before I apply power to the board.

If I measure voltage across VCC and ground where the programmer is connected, I’m getting 3.08V to the board. I think that’s enough to power the microcontroller.

The advice I got so far from Shakmat was to apply pressure the whole time to keep the programmer and board well connected. Even with an extra pair of hands, I have not seen joy yet. :frowning:

1 Like

Im really sorry you have to go through with this and i feel your frustration. I had a similar problem with a Qubit Contour and had to get an obsolete arduino interface (a bunch of them because people sell counterfeit online which didnt work).
Honestly, its 2023: if manufacturers think their module should need firmware updates, they should include a simple interface for the user (usb or uSD)

Not much of a programmer but it seems your mac doesnt have a usb port and you have to use some kind of adapter? That could be the issue (it was my problem when i had my problem with the qubit module) Maybe try getting an older one or use a windows based computer. You know, start discarding problems.

1 Like

Oof - I am not looking forward to updating my Bard’s Quartet. Not planning on using the expander so maybe I’ll just skip it, although the sample and hold mode would be nice.

1 Like

Not sure how helpful this will be, but having used the stm32cube IDE my fair share at work, sometimes using the CLI to flash was less finicky. I’ve also only ever used it on Linux. I wouldn’t think there would be any huge differences between Linux and osx, but you could try flashing over a VM.

Double check your user has read/write permissions to those TTY devices. Have you tried using the cu.usbserial.*?

1 Like

Yeah, good eye - it’s an Apple USB-C to B converter. Unfortunately, I don’t have another way to make this connection right now, but I agree it is an angle worth trying to check.

I hadn’t, but I gave it a try - no luck

Good thought. When the device is connected it comes up as being owned by root. I did a sudo chown mfurtak /dev/tty.usb* and then tried again - no luck.

Also a good idea.

% /Applications/STMicroelectronics/STM32Cube/STM32CubeProgrammer/ -c port=/dev/tty.usbserial-A50285BI
                        STM32CubeProgrammer v2.12.0

Serial Port /dev/tty.usbserial-A50285BI is successfully opened.
Port configuration: parity = even, baudrate = 115200, data-bit = 8,
                     stop-bit = 1.0, flow-control = off

Timeout error occured while waiting for acknowledgement.
Error: Activating device: KO. Please, verify the boot mode configuration and check the serial port configuration. Reset your device then try again...

It feels to me like the STM tools are happy talking to the programmer interface, but the microcontroller is just not responding. That’s basically just @sixolet 's theory that the microcontroller is not successfully entering boot mode, I guess. But having verified that the two header pins are bridged when jumpered, I don’t know what else to try to make that happen.

All very frustrating, but I greatly appreciate everyone’s help and suggestions!


Just reporting back to say that I finally had success upgrading my firmware after trying many more times tonight. As has been the story I’ve heard from others who’ve done it successfully, I wouldn’t bet that I could do it again if my life depended on it.

The last couple of things I changed before I had my miraculous success were:

  1. Take the cap off the expander header pins. This isn’t noted anywhere in the instructions, so is probably a red herring.

  1. Use jumper wires to make the connection from the programmer to the board.

Everything else was as documented above. After repeated tries in this configuration I finally got a connection and could upload the firmware. After completing the process I disconnected everything and tried again to see if it was indeed down to these steps.

I haven’t made it connect again since :tired_face:

FWIW I love my Bard Quartet, and I’m sorry to make this ordeal the start of this thread :v: