midi based controller for sdr-console

This is a quick project that i wanted to build for some time, and since I had the needed parts from another project, i was able to complete in a short time.

Using SDR software has a lot of advantages, you get waterfall views, multitude of operation modes, and it’s all for free. but for the hardcored ham you get to miss the feeling of actual knobs and dials.

fortunately there is a simple way to connect a physical device to control some of the software functions.

I’ve started playing with an arduino to send midi codes to the sdr-console software. you will need a 32u4 processor based board like the leonardo, or the pro-micro.

I’ve connected 3 rotary encoders and 2 push buttons. then I found a library called control surface that do the heavy loading of sending the correct signals to the pc, so no advanced programming skills are required should you wish to change the configuration.

I’ve selected one encoder as the major frequency dial. after some test I realized that it is nice for small fine tuning around a station, but if I wanted to switch to another station I’d reached out to the mouse and click on the waterfall. to solve it I configured the push button next to the encoder to serve as a “bank selector” that causes the dial to send different midi codes. that way I can have normal tuning when rotating the dial, but when I press the button it becomes 10x faster, and i’m able to scan the entire band easily.

one of the small encoders became the volume control, with a mute function when pressed.

another button is TX (transmit/receive toggle)

then I designed an enclosure using fusion 360. I only recently started to learn this software, so it was a nice practice to figure out how to do stuff. I think it came out ok. I had to do a lot of tweaks and prints until I got everything to fit with the dimensions of the parts I had.

when everything was ready, I headed out to the sdr-console setting, and configured the functions. click the Tools->Options button, then select Controllers->Midi in the dialog box.

to configure a button you simply select the function you need and press the button on the controller. sdr-console will show you all the midi values it received, simply select the correct one, and click ok.

you can also use my configuration file as a base for modifications.

I personally find the function list very limited, and wish the developer will add more functions to be controlled. I would love to be able to zoom in and out a signal with the spare knob I got. you can also suggest options on the #future development list.

you can find all the source and production files on my github repository.

edit: I also added a toggle switch I mapped to receivers 1/2 select

note: if you build one, send me a photo of your work and I’ll add it to this article