Diary of the FUNcube Dongle Pro+, age 2½ weeks

Spaghetti bolognese anyone?


While we await parts for the original FUNcube Dongle, as you may be aware we’ve taken the opportunity to build an updated version which also has many additional features and performance enhancements.

I am pleased to announce that after several weeks of extensive testing and two PCB spins, we have formally placed an assembly order for the updated FCD, called the FUNcube Dongle Pro+. Also we have a conformance test scheduled for the first week in October. Assuming all goes well, we’ll have units available in mid October, perhaps sooner.

This has been hard work, with many early mornings and late evenings (I had a day job too!) but I am absolutely delighted with the result. For example, each of the eleven front end filters has been tweaked, characterised and tested in situ on the final PCB design, not an easy task as the parts are tiny and getting appropriate VNA connections right on the points of interest was an interesting exercise to say the least.

FUNcube Dongle Mission Control

Unlike my previous development modus operandi, where I tend to throw everything together in one go with minimal unit testing, I chose to unit test _every_ section before integrating onto a single PCB. That in itself meant fabricating about 20 separate prototype PCBs that I made “in the kitchen” you’ll be delighted to hear: I am also pleased to report that luckily, there are no new holes in the stainless steel sink this time. In the short term, unit testing seemed like a lot of extra work, but when it came to integrating, it meant that we _knew_ exactly how everything should behave, and when it didn’t, we knew it should be something easy to resolve.

That held true apart from one small but very significant part. For the band switching, we’re using FET switches rather than band switching or PIN diodes to save on board space and reduce component count. I’d unit tested some specialised high frequency FET SPDT switches for filter switching. These looked fine under unit test: it looked as though if neither FET on each side of the FET was biased, both went open circuit so I could “wire OR” (not the right term, but I guess you know what I mean) several together as a band switch multiplexer.

But when it came to a full test something wasn’t right. Then it was. Then it wasn’t. Hmm… turns out that if the two control voltages on the SPDT switches have no differential voltage, after about 25 seconds the FET switches go into conduction. In the first PCB spin, as a hack, I wrote some code to excercise the switches, by toggling them for 50us every five seconds or so. Not good, but it worked for the remains of my tests until I could get another board spin done.

There were two other interesting but frustrating problems with the MCU I am using. This is supposedly pin compatible with the MCU I used in the old FCD. Well, it is, until you read the silicon errata (or at least read between the lines, one of the faults wasn’t directly addressed, we figured it out ourselves, but not until after hours and hours of head scratching).

Firstly, if you used the I2C interfaces in 400kbps mode, they cause a few GPIO pins unassociated with the I2C interface to pull hard to ground. Secondly, in hard reset, the pin I was using to control the SPI enable for the tuner chip placed the MCU’s oscillator right onto that pin despite being configured otherwise. This would crash the tuner chip, recoverable only with a power cycle.

So, luckily we found these last two out before commiting a PCB spin. I am sure the unit testing has saved at least one, possibly two PCB spins in the end. And at $400 a spin plus four days’ wait for a six-layer board, it was worth it.

Needless to say, the MCU wasn’t really pin-compatible at all. So the PCB is now actually a complete redesign from scratch.

Many thanks, Howard

This entry was posted in Uncategorized. Bookmark the permalink.

3 Responses to Diary of the FUNcube Dongle Pro+, age 2½ weeks