Category Archives: ARDF

FoxScope 2m – 144 MHz ARDF Receiver – Part 4 – Other Boards

By Per Magnusson, SA5BYZ

In addition to the RF and processor boards described in previous articles, there are three simpler boards that make up the electronics of the receiver.

The following files are available for download:

  • Schematics PDF
  • Layouts PDFs
  • Layouts as gerbers
  • BOMs (Bill of materials)

Link to a zip-file with he files:


[ZIP]

LCD Board

The LCD board is very simple. It essentially just contains the LCD and the connector towards the processor board. The LCD is a 16×4 alphanumeric one called EA DOGS164W-A without backlight. It can also be used as 3×16 where one of the rows is twice as high and this mode is used during a race to enlarge either the gain setting and the RSSI indicator, or, more rarely, the frequency setting.

This is all there is to the schematic:

C1 seems to be required by the internal circuitry of the LCD, but is not really mentioned in the datasheet, except that it is present in an example schematic. The decoupling capacitor C2 could probably be skipped as the power consumption is extremely low. The backlight pins are connected, but a module without backlight is used here. The display is configured to use I2C as the interface by grounding the IM1 pin (SPI is another option). Applying a reset pulse after power up is recommended.

The datasheet does not mention what the limits are for the supply voltage. Nominal is 3.3 V, but it seems to run fine on 3.1 V also.

The PCB

The PCB has two layers and is 0.6 mm thick. It is 52 x 47 mm in size. This board is easy to solder manually. The assembly drawings for top and bottom are shown below.

The layout consists mostly of ground planes and this board serves double duty by also being part of the top of a shield box around the processor.

The assembled board looks like this:

The large frame of exposed metal on the bottom side connects to the rest of the shield (formed by a 3D-printed part with copper tape) around the processor.

USB/Headphone Board

This board has the USB and headphone connectors as well as provides the connection for the power switch. It is quite simple without any active components. The schematic is shown below.

J1 is the FPC connector towards the processor board. J2 is the headphone connector wired such that it should work with all (or at least most) 3.5 mm headphones, regardless if they have a microphone or not. J3 is the USB-C connector for charging and firmware updates. Both the headphone jack and the USB connector are waterproof types with gaskets towards the panels, but the waterproofing is unlikely to be perfect because of the uneven surface of 3D-printed walls.

The 5.1 kohm pull-downs on CC1 and CC2 of the USB-C connector, signals to a connected USB host/charger that it should enable 5 V on VBUS. See the article “All About USB-C: Resistors and Emarkers” on Hackaday for more details. If we were to draw more than 500 (or is it 900?) mA from VBUS, we should really check the voltage on CC1/CC2 to see that the source is able to provide that much current. But here it is not strictly necessary. If the receiver is connected via a USB-A to USB-C cable, then these CC pins are not connected and do not matter.

The power switch connects via wires to the through-hole pads TP1 and TP6. Grounding POWER_SW# enables power to the receiver. The pull-up R3 to HP_DETECT# is not populated as there is already another pull-up on the processor board side. SIGGEN/P1 is not used in this 2 m receiver (although it is used for an unshielded inductor that can act as the antenna for a very weak test transmitter for antenna tuning in an 80 m receiver that uses the same board).

VUSB is the voltage from the USB-C connector used for charging the LiPo battery.

The USB_P/N signals carry the USB data.

RIGHT/LEFT_HP are the headphone audio signals. PROG# connects to an optional push-button. This is the processor programming signal that can take it out of some software lock-ups, but is usually not needed. Another PROG# push-button exists on the main board.

HP_DETECT# gets pulled low when plugging in headphones. This is currently not used by the software, but a way to use it as the power-up signal for the receiver is described in the text about the processor board.

J1 is located on the bottom side of the board, while the rest of the components are on the top side. I soldered all these components myself, although both the USB connector and the FPC connector are quite fine pitch. Using a solder paste stencil may help dispensing a suitable amount of solder paste, but someone reasonably experienced with SMD soldering should be able to solder all these connectors with the help of a stereo microscope, a good soldering iron with a thin tip, thin solder wire and perhaps a little flux and solder wick.

Here are the assembly drawings:

And 3D views of the board:

The oval hole in the middle of the board allows a 3D-printed eccentric piece to push the board towards the wall of the box to compress the gaskets of the connectors. This may make the gaskets somewhat more effective, although one probably needs to use e.g. silicone to make the seals truly watertight.

The two copper layers look like this:

Some attempt was made to keep the differential impedance of the USB data lines close to 90 ohms. This board is 0.8 mm thick.

Front Panel Board

The front panel has four buttons, a rotary encoder and three LEDs. These are all supported by a PCB that allows all these parts to be connected via a single FFC cable to the processor board. The front panel board is glued (preferably by epoxy) to the inside of the front panel of the 3D-printed case.

This board is also a very simple 2-layer design. The schematic is shown below.

J1 is the FPC connector towards the processor board. It has 0.5 mm pitch, so requires some skill when soldering. P1 is a pin header to which the membrane keyboard connects. I used the same keyboard from Adafruit in a previous receiver, but apparently it was changed so that the common pin ended up on the other end of the row of pins. I therefore had to patch my boards to accommodate this, but the issue has been corrected in the design shown here. The numbering of the button signals may still be incorrect both here and on the processor board though… Since I was lazy, I did not create symbols and footprints for the LEDs and encoder. Instead, I used test points and manually placed them suitably near holes in the board so that the components could stick out through these and further out through the front. Here are 3D views of the board:

To help reduce water ingress around the encoder, a gasket can be printed using flex/TPU material and put on the encoder before soldering it to the PCB. Adding some silicone to both sides of the gasket is probably a good idea.

The photo below is from an earlier revision of the board where the keyboard connector had to be patched (by offsetting it one notch and adding a new ground connection). The published version does not have this bug.

I made the power LED yellow, the charging LED red and the charging-done LED green. The legs of the LEDs need to be bent in a funny way to reach down to the surface of the PCB. Surface mounting through-hole LEDs like this is perhaps not quite the norm.

This board is 0.6 mm thick to keep weight down.

The legs of the angled pin header need to be cut to be flush with the side of the board that gets glued to the front panel.

FoxScope 2m – 144 MHz ARDF Receiver – Part 3 – The Processor Board

By Per Magnusson, SA5BYZ

This is the third part in the article series about the FoxScope 2m ARDF receiver.

The processor board contains (surprise) the processor, the audio codec, the LiPo charging circuit, voltage regulators and various external interfaces.

The following files are available for download:

  • Schematics PDF
  • Assembly drawing PDF
  • Layout PDF
  • Layout as gerbers
  • Pick-and-place file
  • Normal BOM (Bill of materials)
  • BOM adapted for JLCPCB

Link to a zip-file with the files:


[ZIP]

Software

The software is available in the following Github repo:

https://github.com/per-magnusson/FoxScope2m

The software can be compiled in the Arduino environment with the Teensyduino extension. The processor is the Teensy MicroMod and the software is uploaded via USB. A number of libraries are required. If you do not have them installed already, the error messages should guide you to what needs to be installed.

Processor

The processor is a Teensy MicroMod, made by Sparkfun. This is a module (a small PCB) which contains a 600 MHz ARM Cortex-M7 (IMXRT1062) processor, 16 MB of flash, and 1024 kB of RAM. It plugs into a 75-pin M.2 connector. Using a module like this instead of the processor directly has some advantages. Primarily that it simplifies layout and allows usage of only four layers, whereas six or eight would have been necessary if the BGA package of the processor were to be put directly on the PCB. It also reduces the component count. A drawback is that the layout of the module is not ideal from an EMC perspective and it probably radiates more EMI than what would be possible with a good custom layout and board stackup.

The IMXRT1062 is mighty powerful in terms of processing power and only a fraction of its processing capability is currently utilized in this receiver. So there is plenty of room to add more sophisticated signal processing if that is desired.

The schematics with the connections to the processor module is shown below.

A supply voltage of 3.1 V is used instead of the more common 3.3 V as this is within the allowed range of the processer and has the benefits of:

  • Reducing the power consumption slightly
  • Allowing the supply voltage to be stable down to a lower battery voltage

The processor has a real-time-clock, which is always powered. This allows the receiver to keep time and know which fox should be transmitting. The PROG# button rarely needs to be pushed, but is good to have if the processor gets stuck, e.g. as a result of software bugs. This button is not externally accessible, so disassembly is required if it is to be pushed.

USB _N and USB_P are of course the USB signals through which the processor can be programmed. It is also useful for debugging.

The I2S signals comprise a standard bus (not to be confused with I2C) for digital audio. It connects to the audio codec, so digital audio samples are sent from and to the codec via this interface.

The main I2C bus (I2C.SCL and I2C.SDA) connects to the codec and the Si5351 local oscillator. There is also a separate I2C bus talking to the LCD.

VBAT_MON is an analog input to the processor that allows the battery voltage to be sensed.

The rest of the signals connect to buttons, the rotary encoder and various control inputs of other circuitry.

Audio codec

The schematics of the audio codec circuitry is shown below.

The codec is an AK4619, which has dual 24-bit stereo audio channels, i.e. four ADCs and four DACs. Here we only use one stereo channel, so half of the analog inputs and outputs are unused. It is capable of sampling at 192 kHz, but it is currently being used at only 44.1 kHz. Maybe the software could be rewritten to take advantage of the higher sampling rate, which might potentially provide benefits like improved suppression of undesired signals that may otherwise be aliased into the received band. The load on the processor would naturally increase with a higher sampling rate, but it is most likely more than powerful enough to handle it.

IF_I/IF_Q are the IF signals from the RF board. The inputs are configured in the “pseudo-differential” mode where the P-pin is fed with the (AC-coupled) signal while the N-pin receives an (AC-coupled) ground reference. This provides the noise immunity of differential signals, without having to go through the trouble of creating differential IF signals on the RF board. A minor drawback of pseudo-differential to true differential signals is about 2 dB of reduced signal-to-noise ratio (according to the codec datasheet), but the combined gain of the RF and IF amplifiers is sufficient to make the input referred noise of the codec irrelevant from a systems perspective.

The I2S bus transports the digital audio samples to and from the processor. The analog audio outputs are amplified by an LM4808 to drive the headphone amplifiers. This amplifier might not even be necessary as the headphones require so little power. For safety, the outputs of the LM4808 are limited by 100-ohm series resistors and clipping diodes to prevent hearing damage in extreme cases. The maximum volume is still more than enough despite this limiting.

The software could send different audio to the left and right channels if one could come up with some use for that, but currently, the same audio is sent to both channels.

The codec is powered by its own LDO to minimize the noise on its power rail. Like for the processor, 3.1 V is used instead of the more common 3.3 V, as this is still within the allowable range of the codec and allows sufficient drop over the LDO to provide good noise rejection down to lower battery voltages.

Connector to RF Board

As mentioned, when describing the RF board, the processor board connects to it via a small 32-pin board-to-board connector, P2:

This is the only component on the bottom side of the processor board and as described in the article about the RF board, it is very difficult to solder manually.

LCD Connector

The alphanumeric LCD has an I2C interface and is mounted on a separate board. It connects to the processor board via a miniature pin-header with 1.27 mm pin spacing:

Front Panel Connector

The front panel with its buttons, encoder and LEDs are connected via a 0.5 mm pitch FPC connector:

None of these signals need to be fast, so to prevent EMI they can therefore be low-pass filtered (with 1 nF capacitors) before they leave the shielding neighborhood of the ground plane of the PCB. Whether this is really necessary has not been thoroughly evaluated.

Connector to USB/Headphone Board

An identical FPC connector (but with a different pinout) is used for the interface to the board with the USB- and headphone connectors and power switch.

USB_SPARE is not used. HP_DETECT# can be used to detect whether headphones are plugged in (but is currently ignored by the software). PROG# is the programming button/signal to the processor to bring it into programming mode. It might be easier to access a button on the USB board than in the main board and future versions could make the button available externally. LEFT_HP and RIGHT_HP are the signals to the headphones. USB_N/P are of course the USB data lines while VUSB is the power from the USB connector, used to charge the LiPo battery. SIG_GEN is unused in this receiver (but it is used in an 80 m receiver with the same USB board). +3V1 is made available in this interface, but is not really needed currently. The receiver powers on when POWER_SW# is pulled low by the power switch.

Having a power switch rather than using the plugging-in of the headphones as the signal to enable power to the receiver may be a bit unconventional for ARDF receivers. There may however be a relatively simple way of changing to headphone-controlled power if that should be desired: Leave R39 and R15 unpopulated and solder a wire between HP_DETECT# and POWER_SW# (C13 to C15). I think this should work, but I have not tested it. The scheme is illustrated in the figures below:

Power Circuitry

The schematic below show the battery charging circuit and a few other power related components.

An MCP73833, U2, is used as the LiPo charging controller. The charging current is set by R22. 2.2 kohms gives about 450 mA, which is low enough to not cause overheating in U2 and within the allowed range of the USB 2 standard. The LiPo battery has a capacity of 1500 mAh, so it takes a little more than 3 hours to charge if it is completely empty (which it should never be).

P1 is the battery connector. U3 provides the low-current supply to the real-time clock. This regulator received power as long as the battery is present and reasonably charged. It consumes about 14 µA of quiescent current, so much less than the maximum current the RTC may draw (250 µA). In practice, the RTC seems to draw significantly less than its worst-case maximum, so for me, the battery has not lost very much of its charge after a few months of being turned off. It should probably be able to keep the RTC running for more than a year without needing a recharge.

The PMOS Q1 connects the battery to the +3V8 rail that powers the rest of the receiver. Q1 is turned on when POWER_SW# is pulled low, which is normally handled by the power switch (or the headphones if the modification described previously is implemented).

R19 is a series resistor for the front panel power LED. The voltage divider R17/R20 allows the processor to measure the battery voltage.

U1 is the LDO that creates +3V1 to power the processor and some other circuitry. It is shown in the figure below together with most of the decoupling capacitors.

It is stable with output capacitances between 0.7 and 10 µF, so one has to be a little careful with adding too many high-value decoupling capacitors. This is the reason mostly 100 nF is used rather than e.g. 1 µF.

The PCB

The processor board, like the RF board, had four layers. It is 79 x 52 mm in size. All components, except for the connector P2, are on the top side. See assembly drawings below.

Signal routing is limited to the top and bottom layers, while the internal layers are used for ground and power planes.

The assembled board (with the processor module fitted) looks like this:

Like with the RF board, I let JLCPCB assembled the top side while I left P2 on the bottom to do myself. This was equally difficult as for J2 on the RF boards and in hindsight I should have let JLC solder also the bottom.

Board Manufacturing Details

This board uses the same layer stackup as the RF board, i.e., the 0.8 mm thick JLC04081H-7628. To comply with the EU RoHS directive, lead-free HASL should be selected as the surface plating (ENIG would also work, but is much more expensive).

FoxScope 2m – 144 MHz ARDF Receiver – Part 2 – The RF Board

By Per Magnusson, SA5BYZ

This is the second part in the article series about the FoxScope 2m ARDF receiver.

The RF board contains the RF-attenuator/amplifier, local oscillator, mixer, IF-filter and the IF amplifier. It has an SMA connector for connecting to the antenna and interfaces with the processor board via a 32-pin, 0.5 mm pitch connector on the back side of the board. Power and control signals are supplied to the RF-board via this connector while the analog IF signals go in the other direction.

The following files are available for download in a zip archive:

  • Schematics PDF
  • Assembly PDF
  • Layout PDF
  • Layout as gerbers
  • Pick-and-place file
  • Normal BOM (Bill of materials)
  • BOM adapted for JLCPCB
  • 3D-model (3mf file) for the shield former

Link to a zip-file with the files:


[ZIP]

Low-noise Amplifier

The schematics of the LNA is shown below (click to enlarge, or view it in the PDF).

D1 and D2 provide ESD protection, which is probably quite necessary as the input is connected to an antenna that can be touched or otherwise get in touch with charged objects. The parasitic capacitance of the protection is reduced by having two diodes in series in each direction.

L8 and C19-C22 form a pre-selecting low-pass filter. The antenna will be quite effective at picking up signals at some higher frequencies than the desired ones and unless they are suppressed, they may get mixed into the IF band by harmonics of the LO.

D3 is a PIN diode that will attenuate the input signal significantly (by about 16-20 dB) if a current is passed through it. This is very useful as it prevents the input from overloading when one is close to the transmitter and the signal therefore is really strong. The software takes care of deciding when to activate this attenuation step. The actual amount of attenuation can be entered into the software as it will be a little different from unit to unit and the attenuation must be taken into account when displaying the received signal strength. The bias current through the PIN diode is provided from Q1 via R7, which has a relatively large value to not load the signal significantly when the attenuation is not activated.

Q5, a BFU550W, forms a low-noise common-emitter amplifier with two gain settings. R5-C14 provides negative feedback, as does the emitter degeneration resistor R15 (and R14 if the PIN diode is activated). The ferrite bead L7 at the base and de-Q resistor R3 across the collector load L3 help ensure stability. The voltage divider R6-R13 at the base together with the emitter resistor R15 sets the bias.

The gain can be increased by activating the PIN diode D4 by turning on Q4. This boosts the gain by effectively reducing the emitter degeneration. The difference in gain is about 16 dB.

As of this writing (January 2026), NXP has changed the status of BFU550W to End-of-Life. It can still be bought from e.g., Digikey, but a suitable replacement may have to be found at some point.

The output of the common-emitter amplifier has a high impedance and is therefore buffered by two stages of emitter followers, Q2 and Q3 to provide a suitable impedance for driving the mixers. The dynamic range of the amplifier is primarily limited by the bias current of the final emitter follower Q3, so reducing R9 allows the amplifier to handle stronger signals with less distortion. Conversely, increasing R9 saves power while increasing distortion for strong signals.

The total gain from antenna port to the signal labeled “EMIT” is (according to simulations) between -19.5 dB (max attenuation, minimum gain) +17.3 dB (minimum attenuation and maximum gain).

To provide clean power to the LNA, several levels of filtering is used. +3V8 comes from the LiPo battery and is shared with many other circuits, so should be considered “dirty”. C1/L1/C2 provides some rudimentary rejection of high-frequency noise and creates +3V8_RF. The small low-drop linear regulator (LDO) U1 creates the +3V1_LNA rail while eliminating particularly low-frequency fluctuations. A further stage of low-pass filtering is provided by L2/C7. R1/C9 and R2/C10 provide decoupling so that the RF currents through the emitter followers do not pollute +3V8_RF.

Low-Pass Filter and Splitter

The output of the LNA is routed to a combined low-pass filter and splitter, L4-L6 and C15-C16, see below.

The signal needs to be split into two paths as there are two mixers. As this is obviously a narrow-band application, the splitting can be done by reactive components to not waste signal power, as a resistive splitter would have done. The reactive splitter can be viewed as L-networks that match 50 ohms at the mixer end to 100 ohms at the LNA end. Two such networks in parallel give 50 ohms. 56 nH together with 11 pF forms one such impedance transforming link. The remaining 56 nH (L5) and 22 pF (C15) form a simple low-pass filter. The output impedance of the emitter follower is much lower than 50 ohms and later simulations indicate that one would probably gain 2 dB or so by reducing L5 to 39 nH.

Mixers

Since this is a low-IF architecture, we need two mixers driven by LO-signals that are 90 degrees out of phase so that the SDR can later reject the unwanted side-band. The mixers used here are diode ring mixers of type ADE-1+ from Minicircuits. They require a 7 dBm LO-signal and has a conversion loss of about 5 dB.

Local Oscillator

The local oscillator is an Si5351, a circuit very popular in many radio amateur projects in recent years.

The documentation of some aspects of the Si5351 is unfortunately not ideal. I had hoped to be able to create two LO signals, 90 degrees out of phase, at ~144 MHz, but that turned out not to be possible (it works at some lower frequencies though). After trying many things, it turns out that the best one can do at these frequencies is to set the “multisynth dividers” to 6, which allows for a phase offset of 60 (or 120) degrees. This is obviously not nearly good enough to get any useful sideband suppression, so the extra 30 degrees of phase shift have to be accomplished by an LC-network, L11/C31.

The reference frequency to the Si5351 comes from an inexpensive, low-power, temperature compensated crystal oscillator (TCXO) U4. It provides a “clipped sinewave” output, which mostly means that the output has a high impedance and cannot be loaded much. This is perfectly OK in this application as the input of the Si5351 (which normally is connected to a crystal) is just a few mm away and has a high input impedance. The accuracy of the TCXO is pretty good and should be within about ±4 ppm even after soldering, aging and over temperature. This is much better than normal crystals and probably better than most fox transmitters.

The LO is powered via a separate LDO, U2, to reject low-frequency fluctuations. The supply is further decoupled via the LC-nets L9/C28 and L10/C29. The decoupling both helps creating clean supplies to the LO and prevents the LO from radiating.

Avoiding LO leakage is rather important, particularly in a direct conversion/low-IF receiver like this, as the LO is (almost) at the same frequency as others want to listen to. One of the very few international rules for ARDF receivers is that it must not interfere with other receivers that are at least 10 m away. There are many possible ways for the LO to leak and it is probably a good idea to pay attention to all of them. Another leakage possibility is back through the mixer and LNA to the antenna, but the mixer claims more than 50 dB of LO to RF isolation and the reverse path of the LNA (S12) has about 70 dB of additional attenuation according to simulations, so this path should be pretty well blocked.

The LO leakage path I think is the most problematic is caused by the mixers acting as antennas! They stick up a few mm from the PCB and since the LO signals are thus routed several mm away from the ground plane of the PCB, they have an opportunity to radiate. Maybe the transformers inside the mixers also have a significant field leakage. This radiation can easily be picked up by a simple E-field probe connected to a spectrum analyzer when one lets the probe sniff over the mixers. A sensitive receiver with a good antenna might pick it up from several meters away, so a good shield is necessary over the RF-board. How to construct this shield is described later in this article.

IF Amplifiers

Two identical IF amplifiers (one for I and one for Q) are used.

When receiving weak signals, the LNA has amplified the antenna signal significantly, but it has then been split to two mixers (3 dB loss) and then mixed (5 dB additional loss), so we cannot stop paying attention to noise figure of the amplifiers just yet, but have to use an IF/audio amplifier with very little input referred noise. There are some options, but here I decided to base the amplifier around a low-noise JFET, 2SK3557, Q7, which provides an input-referred noise of about 2 nV/√Hz and a voltage gain of about 3.7. R22 provides proper termination of the mixer output. The output of the JFET amplifier is buffered by an emitter follower to provide a low impedance driving the IF filter.

One objective of the IF section is to reject signals at undesired frequencies, i.e., frequencies higher than the 20 kHz or so the audio codec can digitize. The most important signals to reject are those that are at least 200 kHz away as that, according to the international rules, is the closest frequency spacing between simultaneously operating transmitters during a 2-m fox hunt.

Most of the low-pass filtering is taken care of by L13-L14/C40-C42. This is essentially a Butterworth filter with 200 ohms input impedance, infinite output impedance and a 3-dB cutoff frequency of 25 kHz. It provides more than 80 dB of attenuation at 200 kHz. Some filtering is also provided by L12 together with the input impedance of the JFET amplifier and C37 which bypasses part of the drain resistance of the JFET at higher frequencies.

The output of the filter goes to the opamp U5, which is configured as a non-inverting amplifier with three useful gain setting. If neither of Q12 and Q13 are turned on, the gain is 1 (0 dB). If Q12 is enabled, the gain is 11 (20.8 dB) and if Q13 is turned on, the gain is 101 (40 dB).

The input of the audio codec on the processor board is used in a “pseudo-differential mode” where a single-ended signal as well as an AC-coupled ground reference are needed, so to provide the best SNR and not introduce issues with ground shifts between the boards, both the output of the opamp and an AC-coupled version of the ground potential at the opamp are routed to the codec.

A little bit of low-pass filtering is also accomplished by C60 and R33/C56 to further reduce unwanted high-frequency components that may still be present in the signal, despite the low-pass filtering earlier in the signal path.

The supply of the JFET amplifier must have very little noise as the signal at the drain of the JFET is referred to the supply. This rail, +3VIF, is created by a capacitance multiplier based on Q14:

The supply to the opamp U5 is less critical, so here the battery voltage +3V8 is used directly.

Connector to Processor Board

The RF board receives power and control signals from the processor board and sends the IF signals to the codec via a small 32-pin board-to-board connector, J2:

The PCB

The RF board PCB has four layers and is 83.5 x 40 mm in size. All components, except for the connector J2, are on the top side. See assembly drawings below.

The top copper layer has most of the routing:

Layer 2 is a solid ground plane:

Layer 3 has some power a little routing while the rest is a ground plane.

Layer 4 is also almost completely ground, except around the connector:

An assembled board looks as follows:

I let JLCPCB assemble the top side and to save some cost, I soldered J2 on the bottom side myself. Trying to do this myself was a bit of a mistake as the 0.5 mm pitch connector turned out to have a bad habit of sucking up solder between its pins, forming bridges under the plastic body that were almost impossible to get rid of. The solution I ended up with was to cut out a piece of and old solder stencil with apertures for another 0.5 mm pitch component, masking off part of the apertures to reduce the amount of solder being deposited, and then using it to print a tiny amount of solder paste on each pad. Here is a photo of the stencil with some Kapton tape masking off parts of the apertures:

After placing the connector on the board, I then used a soldering iron with a very fine tip to solder pins at opposing ends of the connector to fix it in position and then carefully soldering the rest of the pins using only the printed solder paste. All of this was done under a stereo microscope. In hindsight it would have been better to let JLC also populate the bottom of the board. If I had planned for that, I might have put some of the other components on the bottom side as well and saved some space/weight.

In a previous version (from 2023) of the receiver, I used a 0.8 mm pitch connector to connect the two boards and that was enormously easier to solder by hand. Unfortunately, it had become obsolete when I updated the design and I was unable to find any other suitable 0.8 mm pitch connector.

As mentioned previously in the section about the LO, preventing LO leakage is rather important. This is largely accomplished by placing a shield over all components on the top side. Making a shield with tight tolerances out of sheet metal is difficult, so I came up with a better solution. I 3D-printed a shield form in PETG (PLA melts too easily and is therefore not particularly suitable) and covered it with a piece of wide copper tape:

After testing that the board works as intended, the shield can be soldered to the exposed ground plane around the circuitry of the board.

If I were to redo a design like this, I would make sure to not require the indents around the screws in the middle of the long sides of the shield. These add some additional complexity and assembly time.

Issues

I had some issues while building these boards. Some have already been mentioned, but here is a summary.

PIN diode polarity

Both PIN diodes on all of the assembled boards did somehow end up assembled with the wrong polarity. Either I gave the wrong instructions to JLC, or they screwed up. This means that the input attenuation (used when very close to a transmitter) was not effective and that the LNA had very little gain. This is incidentally the setting that is used most of the time during a race, so the receiver works pretty well regardless. I did not discover this problem until after I had built several receivers. A friend of mine even won the 2025 Swedish Championships using a receiver with this defect! The highest possible sensitivity is obviously not of utmost importance in all cases. Anyway, I had to take back all receivers, dismantle them, including desoldering the shields, and then rotating the PIN diodes.

BFU550W Obsolescence

The RF transistor BFU550W used in the LNA has become obsolete. It can still be bought (January 2026) at e.g. Digikey, but a replacement should ideally be found.

Soldering J2

As mentioned above, it was a real pain to solder J2 manually. I normally do not have trouble manually soldering 0.5 mm pitch FPC connectors or TQFP ICs, but this connector has very tall (relatively speaking) pins between which solder apparently likes to get sucked in between. Most of each pin is also hidden by the plastic housing, so it gets very tricky to remove the stubborn solder bridges. It is almost not possible to not get too much solder when applying solder manually, so screen printing minute amounts of solder using a stencil was the only workable (although still difficult) solution I found for hand-assembling these.

Board Manufacturing Details

There are some traces on the board intended to have an impedance of 50 ohms. To make them end up close to this impedance, it is important to use the correct stackup. Also, the board needs to be 0.8 mm thick to fit the mechanics. Both of these requirements are met with the JLCPCB stackup called JLC04081H-7628. To comply with the EU RoHS directive, lead-free HASL should be selected as the surface plating (ENIG would also work, but is much more expensive). Asking that the impedance be checked/controlled by the manufacturer is not necessary and would cost extra.