What am I doing wrong?

I have connected 3-digit 7-segment display to a MAX7219CNG chip, having the most outer right digit assigned to Digit 0 on the driver. The others are two are connected (right to left) to digit 1 and digit 2.

Using some basic Arduino code, the wiring seems to be ok. Now, when switching to SimVim and can't get the display working. It doesn't light up at all.

I followed the 'direct connection' approach (as I don't have my multiplexers received yet).
This is what I tried: https://youtu.be/5zkeMWY1HIg

Basically I don't see my 'XPDR_CODE' anywhere in the output generated by the configurator.

The display simply doesn't light up. Any help would be appreciated

Kind regards,


Jun 3, 2019 in 7-Segment Displays by

1 Answer

Best answer


Please see the second video on this page:  http://simvim.com/test_video.html

First, you need to "connect" the display.
Then you select the parameter and add it to selected display.

Regarding the 3-digit display - is it a common cathode used?

The project is in constant development, the dat config is still changing often, and users should not even notice that, it's intended is that everything you need should be able to assign from the configurator easy and quick (I'm using it, instead of manual enter, no need to spend time to find datanames, etc.).

Besides, much "code" is "behind" SimVim parameter names hidden for many functions (not datarefs and commands only), especially for predefined display data, etc.

Using the panels image maps - is final goal (when all instruments  will be added and  there will be much more panels and instruments soon).

Of course, we will add ALL needed information related to the configurator options and conditions, please wait.

Jun 3, 2019 by

Hi Vlad,

Thanks for your quick reply and clear video: appreciated! Afterwards I was able to see the 'device' and 'output' section with reference to XPDR_CODE in the generated 'data.cfg'.

Unfortunately that did not light up anything.

So back to your question first: yes it is a common cathode display. I think the MAX7219 can only handle that type, and the pure Arduino code seemed to work just fine.

That leaves me to the wiring specific to SimVim:

  • CLK to PIN 37
  • CS to PIN 28
  • DIN to PIN 27
Can you confirm?
To avoid as many mistakes from my side, I also tried the same with a 8 digit 7 segment pre-build setup, but the outcome was the same. Nothing lights up.
Other buttons I add seem to interface as expected (so there is definitely traffic going back and forth).


You have swapped the D and L:
D (DIN) - is Data (pin 28), L (CS) - Pin 27.

(" pure Arduino code" is actually not pure, it uses the huge library.) SimVim firmware works directly with max controller, we don't use any libraries.


Hi Vlad,

Thanks! That did the job! I assumed it was the other way around based on the description below. Assumptions you know... I tried it the reverse way before as well, but for some reason it did not update until I switched to the default 737. 

Edit: The default Baron 58 just does not send out the XPDR_CODE ... because if I switch back, the screen is again blanked.

Happy man now!! Thanks a lot!

In case when you need to use only a few 7-segment displays in your cockpit, or you need to add one more to assigned multiplexed ones, you can use "direct" connection, without multiplexer. The "CLK" input in this case should be connected to assigned controller pin (no need to use a pull-down resistor), other signal inputs (D,L) are the common for all output devices (pins #27,28).

With regards to you remark about the 'pure code': you're absolutely right! So you are using with SimVim directly the driver-specific instructions (as shown in the datasheet of the MAX7219). Sweet (and most likely very efficient)!!

Have a nice evening!



"So you are using with SimVim directly the driver-specific instructions (as shown in the datasheet of the MAX7219). Sweet (and most likely very efficient)!!"

Yes, when I compared the speed of output to 5-digit display with some of the max7219  library the difference was huge -  about 0.5 ms for SimVim and >80 ms for library.

All the default Baron 58 inputs/outputs  work just fine. What do you mean, when the display is blank? ("..if I switch back.. " - what is it?)

(The description on the website page is corrected - L,D, I didn't think that it could be taken as "corresponding" pin numbers)

Wow, that's indeed a serious boost in performance! You have to know that I intially thought I would need tens of Arduino boards to get it all working. The fact that you can do it with just one is amazing.

Either way: find below a video of the behavior I encountered; AFL KA350 (and others like the default 737) seem to send the transponder code as expected, but with the Baron 58 that's not the case. The video might be out of sync a maximum a few seconds, but you'll get the idea.


Hope that helps!