3 March 2016

Getting started

When I discovered the Flex Radio Maestro I realised that there was a new paradigm in town. In many respects the Maestro is exactly what I was looking for, on two counts - It is a proper panel with a decent stab at the sort of controls I feel I would want but much more importantly, it validated the concept of an SDR with a network-connected full panel.

I could have gone for the Maestro but I am an inveterate experimenter and derive great satisfaction out of devising mixed hardware/software solutions to awkward problems. So I was drawn to explore the Flex Radio Application Programming Interface (API) in more detail.

Very quickly I came across Endo, IW7DMH's excellent web site. Wow! Endo has done more or less exactly what I had been thinking of. Not only that but he has written a large body of public domain software to present the Flex API as an interface to Arduino-based processors. A sort of an API on top of an API, if you like. I have done quite a lot of work with Arduinos in the past, so this seems perfect.

I have a couple of Arduino processors kicking around the place in need of a project, so I started writing some code to get an idea of how Endo's API on an API works. It turns out to be quite straightforward and even my rusty C skills soon produced results. Next, I started thinking about the major problem areas for the hardware and quickly came up against the need for high quality high resolution rotary encoders for the VFOs. It's possible to spend a lot of money but I soon found these at a very respectable price. A few days later they'd arrived and I was off writing code again!

By now the lack of a Flex radio was starting to become something of an issue. Martin Lynch came to the rescue in exchanged for a large wad of used notes (well... a severe dent in my credit card, to be more accurate) and less than 18 hours later I was unwrapping my new Flex 6500. Within an hour of switching it on I had one VFO control working (sort of - but it proved the concept). I might be the only radio amateur ever whose immediate reaction to the arrival of a new radio is to start writing software for it!

A snippet of Arduino code
A few days later and I have both VFOs working and, for the most part, debugged. I have a rudimentary display and one shaft encoder, currently programmed as the volume control, sprawled across my desk.

I think this is what they call a lash-up
As you can see, there are in fact now two Arduinos! Well that's what happens when you decide that you want loads of I/O - you run out of pins. So the control Arduino, with the networking card, does all the interface work to the Flex 6500 and also drives the display, a basic character display at the moment, but will eventually be a 5" colour touch-screen.

The other Arduino handles the boring stuff of providing connectivity to all the encoders, switches, LEDs and so on that will festoon the front panel of my controller. The two Arduinos communicate with one-another using serial I/O and a simple protocol than I have devised to keep data transfers as short as possible. All this is working well.

So things are coming along quite nicely. I feel that I am nearing the proof of concept point now, so it's time to start thinking about panel layouts and other implementation details.

No comments:

Post a comment