28 noiembrie 2024

433 MHz LoRa SAW Bandpass Filter

 The LoRa network that a team of radio amateurs in Bucharest is testing is - for various reasons - deployed in the 433 MHz ISM band.
A check of the radio spectrum showed that in this band there is a rather high level of noise generated by the multitude of competing networks in the 380 - 500 MHz band, most of them transmitting with high power.
These contribute to an increased noise level which in turn affects the signal to noise ratio of the receiver (usually SX1273).

 According to the SX127x datasheet:

"SX1272/73 Is a half-duplex, low-IF transceiver. Here the received RF signal is first amplified by the LNA. The LNA input is single ended to minimize the external BoM and for ease of design. Following the LNA output, the conversion to differential is made to improve the second order linearity and harmonic rejection. The signal is then down-converted to in-phase and quadrature (I&Q) components at the intermediate frequency (IF) by the mixer stage. A pair of sigma delta ADCs then perform data conversion, with all subsequent signal processing and demodulation performed in the digital domain. The digital state machine also controls the automatic frequency correction (AFC), received signal strength indicator (RSSI) and automatic gain control (AGC). It also features the higher-level packet and protocol level functionality of the top level sequencer (TLS)".

Although the circuit has been designed with interference rejection (IMD) in mind and the modulation itself is designed to ensure communication in environments with radio-frequency pollution and high signal-to-noise ratios, any noise reduction before being processed in the input stages is beneficial.

Filtering signals outside the operating frequency range is, however, a costly process in which a number of compromises have to be adopted.

Although the circuit has been designed with interference rejection (IMD) in mind and the modulation itself is designed to ensure communication in environments with radio-frequency pollution and high signal-to-noise ratios, any noise reduction before being processed in the input stages is beneficial.

Filtering signals outside the operating frequency range is, however, a costly process in which a number of compromises have to be adopted.
Their advantage is the narrow passband and the disadvantage is the insertion attenuation.
There are a number of such filters available for purchase from manufacturers in China but the overwhelming majority of them are realized with 40 MHz bandwidth (@-3db) filters, which allow signals in the 436-440 frequency range, where the output signals of amateur radio repeaters are found, to pass at increased levels.
At least in Bucharest, one of them is in DMR system and emits with increased power of several tens of W, which has the ability to contribute significantly to S/N degradation.

 

 

Another issue noticed was a poor PCB design on which these SAW filters are installed to become a usable product in the shack.



These filters must also ensure a considerable rejection of the transmitting stations of mobile phone network transmitters in the 800 MHz - 1 GHz band.
A look at the way the wiring on which the SAW filter is placed suggests a number of design problems that degrade its performance.
Because I'm a speedy ham, I thought I'd make my own filter, with much better performance than those available at online stores.

So, I started reviewing the range of SAW filters available from reputable manufacturers and settled on Qualcomm.

And after a "painful" and lengthy selection process I settled on a number of three filters that could be a much better solution than the existing ones, for the purpose I proposed.

One of them is  B39431B3735H110.

Now, on the PCB, the manufacturer is giving us some hints about how the PCB must be designed to get the most of what the manufacturer's specs:

"Minimising the crosstalk
For a good ultimate rejection a low crosstalk is necessary. Low crosstalk can be realised with a good
RF layout. The major crosstalk mechanism is caused by the “ground-loop” problem.
Grounding loops are created if input-and output transducer GND are connected on the top-side of
the PCB and fed to the system grounding plane by a common via hole. To avoid the common
ground path, the ground pin of the input- and output transducer are fed to the system ground plane
(bottom PCB plane) by their own via hole. The transducers’ grounding pins should be isolated from
the upper grounding plane.
A common GND inductivity of 0.5 nH degrades the ultimate rejection (crosstalk) by 20 dB.
The optimised PCB layout, including matching network for transformation to 50 Ohm, is shown
here. In this PCB layout the grounding loops are minimised to realise good ultimate rejection".

 


Just compare this with the footprint of the cheap Chinese filters shown above...


And here they are, assembled:





And here are the masurements, taken with SatSaGen with Adalm Pluto as VNA with tracking generator:

 







18 octombrie 2024

LoRa APRS with Meshtastic DevBoard

After I played a little with my Meshtastic Development Board I previously made (and write about) I decided it will be nice to give it a try into LoRa APRS.

This raise some issues about how different modules are connected to the GPIO's of the ESP32 in my configuration.

I was directed by some early adopters in Romania to the CA2RXU web flasher where I found that the Tracker FW can be loaded into a pretty good selection of boards.


But, what board from those would be compatible with my one? Hmmm.... this would require some research!

First, I had to go to CA2RXU's excellent repository and find some clues about pin mapping; how the LoRa transceiver is connected to the ESP32 on various boards in order to choose the proper version of the already compiled FW from the web flasher tool...

Yes, I could compiled it myself but, apart from being a brave ham, I like to cut corners because I'm a lazy one!

Using the already compiled FW will be a good "investment" because I can keep up with the future versions without going to the compiling process everytime a newer version is released.

Flashing the LoRa APRS I-Gate was easy and I already had one working on my bench but the tracker is a different animal because it needs the GPS input to really be usefull as a "tracker"!

So, I land onto the GitHub page of the project and searched for anything that could hint to my problem. Soon I found boards_pinout.h where various ready-made boards are described.

LoRa module is tied to the ESP32 using this diagram:

MISO > D19

MOSI > D27

NSS/CS > D18

SCK > D5

RST > D23

DIO0 > D26

so I searched for this particular definition.

I found two of them that could suit my needs.

First was the TTGO T-Beam family that catched my eye. Almost all of them have the LoRa transcever connected as I needed.

The main problem with the newer versions of the BOARD (!!!) have the battery management circuit APX192 and this is used for informations about the battery voltage.

 


Well, my board is reading the voltage with ESP32's ADC so, using the firmware could cause some problems. Or not. I don't want (yet) to explore the full code to see how APX192 is integrated into the workflow therefore I choose an early version, of T-Beam FW, the 0.7.

 
I connected the GPS Tx to GPIO 12 as defined into the code but, to my surprise, a message on the small LCD told me that there is no GPS data incoming.
Scratched my head a few hours... Everything was right on the HW side but no GPS valid frames and a suggestion to reset it. Well, that was not an option because I was sure my GPS junk was OK because I previously tested on Meshtastic and it performed like expected!

Left the things like that at around 2AM and next morning I was eager to see the schematic of the TTGO TBeam 0.7... Where the heck that GPS Tx was tied to ESP32?
The schematic is hard to find but a picture of the board told the whole story!
The GPS Tx was connected to GPIO 34!!!

Well well, you little TBeam prick, gotcha! I connected the GPS Tx to GPIO 34 and, voila! that message dissapeared and soon a fix was achieved!

Looking into the code I saw that another board had the same pinout definitions on LoRa TRX with some minor variations.

OK, so, what else do I need to look for? 
The Battery ADC..
 
Most of them are at GPIO 35 which is the same as my dev board so, "cheked".
 
Button? 
Well, I might be a nice feature but I think I can use the tracker without it after I tested the programming interface (web based) -most of them are on GPIO's that are not available on my board...

So? I think we are good with GPS and LoRa Trx working properly!

The next step was to play a little bit with the firmware for other boards and found one that fits well:
TTGO_T_LORA32 V2.1
 
 
 
The blue LED connected to GPIO 15 is there to show me when the tracker is transmitting because I intend to use it without the OLED display; that was just to see how the things works..
 
The battery voltage is not correct, it should indicate 4.2V but this is due to the voltage divider that have different resistors than the TBeam original board for which the FW was written. Yeah, Yeah, I know, I can change the ratio by replacing one resistor... I will think about it, I promise!
 

 
73!
 


08 octombrie 2024

Heltec V3 versus LilyGo LoRa T V2 comparision table

These are two LoRa development boards and both are good for Meshtastic networks.

 

LilyGo:

Heltec T3 V2:

 

Key Takeaways

  • Heltec V3 is a better choice if you need better power efficiency and are working on battery-powered IoT applications because the SX1262 LoRa chip consumes less power than the SX1276.
  • LilyGO LoRa32 V2.1 is a good option for projects that don’t need extreme power efficiency but want to use a well-supported and reliable LoRa chip like the SX1276.
  • Both boards offer similar OLED display capabilities using I2C, but the GPIO pin assignments differ, so check compatibility when switching between them.

 

A very quick reference chart for two LoRa modules, the Heltec V2 and LilyGo T V2 (T is with the OLED already mounted).

Feature Heltec V3 LilyGO LoRa32 V2.1
Microcontroller ESP32 (dual-core, 240 MHz) ESP32 (dual-core, 240 MHz)
Flash Memory 8MB 4MB
OLED Display Yes (0.96 inch, 128x64 pixels, I2C) Yes (0.96 inch, 128x64 pixels, I2C)
OLED SDA (I2C) GPIO 4 GPIO 21
OLED SCL (I2C) GPIO 15 GPIO 22
LoRa Chip SX1262 SX1276
LoRa Frequency Bands 868MHz / 915MHz 868MHz / 915MHz
LoRa SPI MISO GPIO 19 GPIO 19
LoRa SPI MOSI GPIO 27 GPIO 27
LoRa SPI SCK GPIO 5 GPIO 5
LoRa SPI CS GPIO 18 GPIO 18
LoRa RESET GPIO 14 GPIO 23
LoRa DIO0 GPIO 26 GPIO 26
LoRa DIO1 GPIO 35 GPIO 33
Power Management Better low-power modes with SX1262 Good, but SX1276 consumes more power
Antenna U.FL connector for external antenna Spring-type antenna (can be replaced)

Most viewed posts in last 30 days