ST recently launched a new module based on their Teseo III GNSS receiver IC, the Teseo-LIV3F. This module makes it quick and easy for designers to take advantage of the Teseo III without having to be experts in RF design or satellite navigation. Key features of the module include:
To support project development, ST provides a number of design and evaluation tools for this module. These include the EVB-LIV3F evaluation kit, the Arduino compatible X-NUCLEO-GNSS1A1 expansion board, and several software solutions like the TESEO-SUITE PC tool. We have taken advantage of this ecosystem to develop a mikroBUS add-on board carrying the Teseo-LIV3F module. This board can be plugged into any mikroBUS socket, making all the module’s features available to the user. For example, check out this page on using a BeagleBone to interface with this board.
The board was designed using KiCAD, a free and open source EDA software. The project files are available for download here: https://github.com/mkmielke/LIV3F_mikroBUS.
The schematics and gerbers of the X-NUCLEO-GNSS1A1 were used as a reference, in particular when designing the RF section (like many who will be using this module, I have little RF experience).The RF section of the schematic appears rather intimidating because the Nucleo expansion board provides RF front end circuitry for both active and passive antennas. The hardware manual for the module explains that an external LNA is needed for a passive antenna and a power supply scheme is needed for an active antenna, as shown below. Notice that for both, VCC_RF is used as the supply voltage and AntOFF is used to enable/disable the components for power consumption optimization.
Recomended RF front ends for active and passive antenna (taken from Section 6 of UM2231)
Many of the resistors and capacitors in ST's reference schematic where omitted from our design, as they were not mounted on the Nucleo expansion board anyway. This allowed us to create a medium sized mikroBUS add-on board rather than a large one. Several of the zero ohm resistors were left in our design, however, to allow the user to decide which elements of the RF front end to use and which to exclude. For example, if you planned to use a passive antenna with this board, you would likely not mount any of the zero ohm resistors in order to exclude the active antenna front end circuitry.
The final schematic of the project
The final consideration in regard to the RF circuitrywas how wide to make the transmission line. Because the RF input impedance of the module is 50 ohms, the transmission line also must have an impedance of 50 ohms. Luckily, KiCAD includes a PCB calculator that tells us what width we need. Since we used OSH Park to fabricate our boards, we plugged in the substrate parameters for their four layer board service (found here) and found the required width to be 0.35 mm.
The final layout of the board is shown below. Layer 1 (the top layer) is red, layer 2 is yellow, layer 3 is magenta, and layer 4 (the bottom layer) is green. The top and bottom layers are signal layers while layer 2 is a ground plane and layer 3 is a power plane (3.3 V).
The Teseo-LIV3F along with ST's numerous design resources make it easy to add GNSS functionality to your projects. With minimal RF experience, I was able to create this mikroBUS add-on board using simple tools and ST's Nucleo expansion board as a reference. For a closer look at the board schematic, layout, and parts used; be sure to download the project files and open them in KiCAD. Feel free to make any modifications you see fit.