I have a synth device using 2-digit 14-segment display, a Mutable Yarns Clone. The PCB design is here.

It uses an STM32F103CBT6. I flashed it via JTAG without any issues.

the display is driven by a pair of 74HC595D ICs. I'm attaching schematic of this part of the device.

DISP_SCK, DISP_EN, DISP_SER, DISP_CHAR0, DISP_CHAR1 goes straight to the controller.

Everything is working great except for the fact that digits are "mirrored" one to each other. Like when I have 1 on the left digit, it is also displayed on right one with 1/2 brightness. The same goes for right digit, its mirrored reflection is overlayed with the left digit.

It seems that device is working fine except for the mentioned display problem.

There are no obvious bad solder joints, flux is cleaned, firmware is open-sourced and tested, I can't think of it as a problem.

Link to firmware is here

What should I check? Any directions?

enter image description here

enter image description here

  • 3
    \$\begingroup\$ How are the DISP_CHAR0 and DISP_CHAR1 signals driven by the STM32F103CBT6 firmware? My guess is that the DISP_CHAR0 and DISP_CHAR1 are not correctly synchronised with the output of the 74HC595D leading to incorrect multiplexing of the two characters on the display. Can you edit the question to include either the firmware source code, or a link to it. \$\endgroup\$ Commented Nov 14, 2023 at 9:44
  • 1
    \$\begingroup\$ DISP_CHAR0, DISP_CHAR1 goes straight to the controller 14 segments leave two open outputs from two 8-bit SIPOs. Then again, it would seem wise to shut off the current display module before registering the segment values for the next. \$\endgroup\$
    – greybeard
    Commented Nov 14, 2023 at 11:03
  • \$\begingroup\$ Thanks! Well i'm not that used to STM code (never actually learned that) but i think it is here - github.com/pichenettes/eurorack/blob/master/yarns/drivers/… \$\endgroup\$ Commented Nov 14, 2023 at 11:10
  • \$\begingroup\$ The only difference which i actually have is that original BOM lists green 14segment (here), and i have different one because green wasn't stocked at the time of a purchase. I have this one. But i personally think it can't be the matter... \$\endgroup\$ Commented Nov 14, 2023 at 11:12
  • 1
    \$\begingroup\$ sorry for the mess! I've messed up transistors for DISP_CHAR lines. Which resulted in completely opposite masking of characters... Thanks everyone! For your ideas \$\endgroup\$ Commented Nov 14, 2023 at 18:51

1 Answer 1


This is so stupid... I messed transistors. Instead of MMBT3904 i've soldered MMBT3906. Which resulted in exactly opposite character selection

Resoldering solved issue completely.


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.