Tiny note: maybe my English sucks a bit, but I hope you can understand the most of the text below :-)
A couple of months ago, I wanted to experiment with LoRa modules. I started with a breadboard, two AI-Thinker Ra-02 LoRa modules, Nokia displays and ATmega328 boards. After a couple of experiments, I designed a tiny board, my first LoRa pager.
I played around with the new board for a while, made some range tests and got some ideas for improvements.
In the second version of the board, I wanted to keep the board Arduino compatible, but needed a better microcontroller, so I used a SAMD21 Cortex M0 (same on Arduino Zero MKR) microcontroller instead of ATmega328p. I was a bit unhappy with the Nokia display and replaced it with a bigger one. The availability of the AI-Thinker Ra-02 module isn't as good as the RFM95 and I also wanted to get rid of the U.FL connector. So the three main components were replaced and I needed some more features like LiPo Charger, real time clock, sd-card, a proper on/off circuit, navigation switch instead of common push buttons and a buck/boost-voltage converter. I also added some nice-to have things, eg. vibration motor and buzzer.
While designing the schematic, I decided to pick components, which I can get from the common big distributers for electronic components. I decided to choose all the components from Digi-Key, so I can save some shipping costs.
(I don't want to write the detailed hardware description here. For hardware details see the "LoRaNicator Hardware Description" below.)
After 10 sheets of schematics drawing, I started to design the two layer board and configured the design rules first. I used following (significant) design specs which are compatible with the most pcb manufacturers (OSHPark, JLCPCB etc.)
Min. Trace Width / Clearance 6.3mil (0.16mm)
Min. Via Drill / Outer Diameter 10mil (0.254mm) / 20mil (0.508mm)
For the power rail I've chosen a thicker traces: ~23mil (0.6mm). There are two interfaces, where the impedance controlled design has been required. The antenna trace and the USB differential pair.
For those kind of trace design I like to use the PCB Toolkit. Since the board is a two layer design, with 1.6mm thickness, I neglected the USB differential pair to avoid crazy thick traces. The USB traces are pretty short, so it shouldn't make any trouble.
I only focused on the width of the antenna trace. The transmission-line I decided to go with, is coplanar waveguide with ground plane (GCPW). I entered the substrate thickness of the pcb (1.5mm / 59mil) and the overall clearance 0.16mm (6.3mil) and calculated 1mm (~40mil) for the trace width to get a 50Ohm impedance.
I also modified the signal pad of the SMA connector (same width as the trace) to match the 50R impedance. I added a rounded corners to the pad and added a copper cut-out at the edge, next to the signal pin. Furthermore I added a via fence around the GCPW.
A good ground connection is also a factor to improve the HF design. So I created a special design rules in CurcuitStudio, to make a solid connection to GND pins of SMA connector and the RFM95 module. The ground connection for all the other components has the relief connection format
Also placed a lot of vias, for direct connection to the ground plane on the other side of pcb. Maybe it will improve the HF performance or maybe not, but I placed a shield can over the RFM95 module.
After designing the schematics and pcb, I ordered the board and a stencil for reflow soldering. The boards came with a gold finish and black solder mask and looked pretty nice :)