Self-made RF modules

17 March 2019
Originally my article on wireless counting buttons was to also include RF (Radio Frequency) modules I made myself as well as off-the-shelf ones, but I then decided to put them into a seperate article — this is because the modules I made myself, aside from some basic testing, were not actually used to complete the previous project. In the longer-term I did not want to rely on self-contained third-party RF modules but this meant gaining experience with RF circuits, and this article covers the evolution of this experience.

Drop-in replacements

Rather than relying on off-the-shelf modules as I did in the previous article, I wanted to potentially have RF circuitry built straight onto a single PCB, so the next logical step was making my own RF daughter-boards which could be used in place of the off-the-shelf RF modules on my bootstrap circuits — this incremental approach was the only realistic one given that these prototype circuits were the only test equipment I had. Ultimately the real purpose of these PCBs was to gain some confidence in designing radio-frequency circuits — it was a case of follow what guidelines I could find and see if the result worked.

Transmission module

I designed an RF transmission module built around the Melexis TH72012 based on the test schematic within the data sheet, the complete PCB is shown below — I chose this transmitter chip since it can operate with both 3.3v and 5v power supplies. When I patched it into the prototype transmission board in place of the off-the-shelf module it just worked, which was very satisfying as I had no idea if it would actually work. The board could have very easily been made a bit smaller, but at the time size was not a real concern of mine.


Reception module

At the same time I also designed a receiver board based around the Micra (now part of Microchip) MICRF010 RF chip, but due to circumstances I never populated any of the PCBs I had fabricated — an unpopulated PCB is shown below. Seeing the transmitter PCB work gave me enough confidence in my RF circuit design to push ahead with investing effort in a combined receive & send module, and as a result I felt there was no need for a receive-only board. I did have a vague idea about using these two boards together making use of a Skyworks Solutions AS179-92LF RF switch in order to allow both to use the same antenna, but that idea was abandoned before development got that far.

Unpopulated Rx PCB

Combined Tx & Rx board

Although I had considered using seperate transmit and receive chips and have them use a common antenna, I eventually concluded that using a combined chip was a preferred solution, and after a lot of searching and re-searching was convinced that that the Maxim MAX7030 (Farnell 2800969) was the only suitable such chip — there were other two-way chips out there, but none of them were purely transceiver chips. At €5.80 each they were quite expensive but the cost seems to have been reduced since I ordered in my samples. The data-sheet included a schematic which I implemented as shown below. The board is a lot bigger than it really needed to be, but at the time I was once again more concerned with getting things working. Much to my delight it just worked patching it into both my prototype transmitter and receiver boards.

Bi-directional RF PCB

Component headaches

The main complication with the MAX7030 is that it requires components that turned out to be particularly hard — and in a few cases expensive — to source. Most troublesome was needing a 17.63416MHz crystal that even Digi-Key did not stock, and it was only by luck that I found out that Mouser stocked a 17.63417MHz crystal (Crystek 017301, Stock code 549-017301) that I hoped would be close enough. Finding a Murata 10.7MHz ceramic filter was almost as troublesome although I located SFECF10M7HA00-R0 (Digi-Key 490-4682-1-ND) and SFECF10M7DF00-R0 (Digi-Key 490-4678-1-ND), and used the latter since it was the cheaper of the two — I had no idea if the differences between the two mattered so ordered in both. Sourcing all the capacitors and inductors was also an ordeal, with 16nH being particularly difficult — the 0805-sized (2012 metric) ones were of unreasonable cost of €1.40 each on Farnell so I used a 0603-sized one instead. For revision 2 of the board I sourced some 0805-sized 16nH inductors from Digi-Key as 0603 is that bit too small for me.

Prototype two-way board

After headaches with the firmware for the prototype reception board I was already skeptical whether a PIC microcontroller was really up to the task of robust wireless reception, and after seeing how many banks the data memory on the PIC16F1829 is spread over I simply concluded that it was more trouble than it was worth. Instead I decided that I would use an NXP LPC1112 (an ARM Cortex-M0 microcontroller), particularly as the cost difference between it and the PIC offerings was minimal, and I could write the firmware in C with proper debugging tools. Although at time of writing I had created a host board for the bi-directional RF PCB — which is shown in the image below — due to delays ordering in an adapter for the programming interface I have not been able to make any use of it, and therefore will make it a subject of a future article.

Prototype bi-directional board

Conclusion & Future work

I went from practially zero knowledge to designing my own two-way RF circuits, and this was without access to any equipment that would have helped a lot at each stage. The circuit scematics were cook-book, being based on reference circuits within data-sheets, but having done the PCB design myself and seeing it work is no small thing. Having a working two-way RF circuit means that it is realistic to build a circuit that could implement CSMA, and when I built the two-way module I had this in mind — in fact having got all of the circuitry working I was going to use it as the basis of a professional innovation project. I had even written a 4-page proposal that included a tie-in with my Ph.D research a decade ago, but circumstances meant that I never put the proposal into action.