After my experience with the first generation knob, I realized that a complete re-think was needed for a new knob. Ease of use and low cost were critical coupled with a system design approach to get maximum utility out of the solution.
Kevin K6TD and I have worked together for many years – both for the same companies and also with a number of product ideas we'd commercialized ourselves. Kevin is a very successful VP of Engineering and a serious hardware wizard - so I decided to see if I could rope him into a new project. Despite a busy work schedule, Kevin agreed and we started talking about the specification for the new knob.
A simple list of requirements quickly took shape:
- Cost effective
- Simple to use
- Silky smooth tuning (no tuning detents or lag)
- Compact form factor
- USB connected
- Seamless PC side integration
The need for seamless integration on the PC side was a no-brainer – it was a critical element to get that silky smooth tuning experience and part of the system design to eliminate tuning lag. The logical place to provide this was in Steve K5FR's DDUTIL – "the" MUST HAVE for station integration for any FlexRadio owner. You can find Steve's software on his web site.
DDUTIL is an amazing piece of work. Think about all the different elements that make up a modern radio station (amplifiers, power meters, antenna rotators, antenna controllers, switching matrix, filters, multiple software programs…) that need integration. Integration and automation can simplify and streamline operation. Core to this simplification is getting information from the radio to each of the station components – especially frequency information. DDUTIL sits on the CAT control stream provided by PowerSDR and manages the distribution of CAT data to the station components. You can think of DDUTIL as a CAT multiplexor and station component manager.
I got to know Steve shortly after I purchased my Flex 5000 – I'd decided to add an Expert SPE-1K amplifier to the station and wanted to be able to control it via DDUTIL. The Expert amplifier was on the DDUTIL "to do" list and so I emailed Steve to see what he was planning. The reply email came quickly! Steve was ready to go as long as someone could help him debug the implementation. We worked together to get support for the Expert working and during several long phone calls, found we shared a lot of ideas and common experiences – and had a ton of fun working together!
In a quick phone call to Steve I described what I was thinking and got a resounding "I'm in!" – We had our development team up and running!
Kevin started looking for a cost effective replacement for the optical shaft encoder used in the original project. In parallel, Steve and I worked on defining a control protocol between the new knob and DDUTIL. We opted for a simple control set modeled after the ubiquitous CAT format – simple ASCII text commands with a ';' terminator. The spec for the CAT stream quickly took shape and we started thinking about how to prove out the different pieces of the design.
The first step was to find a development board using the same PIC that Kevin had selected as the core of the system. We opted for a development board sold by Futurelec, a company based in Asia – at less than $50, a good basis for the proof of concept (POC) system shown below.
The POC system is simply the development board with a shaft encoder and LEDs mounted on a daughter board. The daughter board connects to the peripheral connectors on the Futurelec board. This enabled me to start developing the software to handle the shaft encoder and the USB port to connect the board to the PC.
The development of the USB software was greatly accelerated by using Ian Harris' PIC PACK library – I covered this in a previous post which you can find here. I quickly got the development board connected to the PC via USB and began implementing the CAT-like control protocol to talk to DDUTIL.
In short order Steve had the basic support for the knob integrated into DDUTIL and had the POC system working as an active tuning knob with DDUTIL. With a little bit of tweaking in DDUTIL we realized we were pretty close to that "silky smooth tuning" effect we were looking for but if you really spun the knob quickly, there was still a lag.
Kevin suggested I implement acceleration detection – change the tuning rate generated by the knob when it was turned quickly. Some thought and basic calculus later, I had this figured out and suggested to Steve that we modify the CAT stream so that the knob could signal that a faster tuning rate was required.
As we were getting this done, Kevin sent the hardware design to the PCB manufacturer and we built up a handful of tuning knobs. You can see this rev A version of the knob below – you can get an idea of scale as the physical knob itself is a little over 2 inches in diameter.
Acceleration detection got us a long way to eliminating the CAT queue but the lag still showed up with aggressive tuning. The challenge was the chain of commands sent to PowerSDR to change the tuning rate – multiple CAT commands to effect a single tuning step – regardless of the size.
Steve had worked closely in the development of DDUITL with Bob Tracy K5KDN who developed the CAT support in PowerSDR. With Bob's help and support from FlexRadio, we were able to get a couple of new CAT commands implemented in the next development build of PowerSDR. This reduced the number of commands needed to tune a step to one. This nailed the CAT queue problem and we got the coveted "silky smooth tuning" we were looking for!
Feedback on the rev A board was positive – we had used the switch incorporated into the shaft encoder to implement a number of different features. We used switch clicks much like mouse commands – single, double and long click. Clicks are detected by the knob and signaled up to DDUTIL so that it can change different controls on PowerSDR.
At the time, Steve was also working with Lee Crocker W9OY to get DDUTIL as the control center for SO2R operation. Lee really liked the idea of the Tuning Knob but said he wanted some additional control switches that could be used with DDUTIL to automate other aspects of station control.
We had decided to spin the PC board to make some manufacturing changes and so it was a logical decision to add three simple push button switches to the hardware. Kevin re-laid the PCB and sent out for board manufacture. The boards came back and we built the rev B version of new tuning knob.
Between us, we built a fair number of rev B units and got them to folks for "real world" testing. This time the feedback was very strong and very positive – we knew we were getting very close to the final solution!
We started the process of getting the tuning knob turned into a product - more on this in the next post…
Adding the auxiliary switches was easy for both hardware and software but I'd made a decision to detect just a simple on/off operation – allowing another three actions to be automated. By now Lee W9OY had his hands on a rev B unit and just like Oliver Twist wanted "More!" – Lee asked for the same kind of click detection on the auxiliary switches as I'd implemented on the shaft encoder switch.
I groaned when I heard this request… since the auxiliary switches had been an afterthought, I'd grafted support for them into the code rather than taking an integrated approach. Supporting multiple click detection on the auxiliary switches required a fair amount of code re-factoring to avoid an even worse "graft" – ok, kludge!
Over Christmas 2010 I finally found time to re-factor the code, document the changes to the CAT stream to allow for signaling auxiliary clicks to DDUTIL and get new code off to Steve.
By late January 2011, we were DONE! Steve added a whole new tab for configuring the knob into DDUTIL and Lee was happy! One of our knob users in Europe took a high place in a major contest and gave the knob the credit for his success.
The journey from concept to product has been very interesting. We started with a distributed development team of three – unique because we've all never met in person. The final version required the collaboration of two more people in different parts of the country… and we've all never met in person or even had a joint conference call together. Email was our primary communication tool and it worked because of a shared vision and mutual respect.
Finally, I'd like to recognize…
- Kevin K6TD and Steve K5FR – they shared the vision and gave their full support to this project. Without them, the tuning knob would likely never have seen the light of day!
- Team FlexRadio Systems for their willingness to incorporate changes into PowerSDR that we requested – there aren't many companies that will take this kind of feedback so willingly to heart from their customers!
In the next post, I'll talk about the final steps of the journey…