Ham Radio Version

How about a version for licensed hams?
70cm band. 433 MHz.
Higher Power, longer range…
Narrow Bandwidth Lora phy (7.8KHz), with either TCXO radios or maybe a frequency stabilizing feature for SX127x. I see that neither RadioLib, or RadioHead have this option so I am working on a basic frequency-correction loop…trying to think how to distribute a frequency reference over a mesh…

Mysensors RFM95 (from RadioHead) have a nice phy power-control feature in their transport, nice to neighbors (ATC). Also CAD, with random CSMA back-off routine.

Tips:
Make sure the Lora radios get good power supply current when using higher power (>17dBm).

Use a NanoVNA to test and tune your antennas (many poor antennas out their).

I have a consistent 7Km link on 433MHz using the Low-cost RA-02 radios and outdoor antennas.

P
ZS1dBm

1 Like

I use custom board with ESP32+RA-02 and RFM98W modules on 433 MHz. Flashed with firmware-ttgo-lora32-v2-EU433-0.6.8.bin
I’d like to use 62.5Khz bandwidth(minimum stable for cheap modules) instead of 125 Khz.

2 Likes

Hi Eugene,
Interesting… You should be able to use 62.5KHz without a problem, at least according to Semtech.
Lower bandwidths to, but you will need to either switch to Lora modules with a TCXO on -board (HopeRF RFM96TW) a bit more pricey.
Or; do as I am;

  1. Calibrate your boards to a standard (GPSD source or other, I use my local TV vision carrier center frequency (479.2500MHz)… I use an RTL-SDR with HD SDR to setup a reasonably good display of the Lora frequency I want to tune to.
  2. Then start transmitting with your module in the low bandwidth mode and you should see your signal on the RTL-SDR.
  3. from there I tune it by eye (my changing RFM95_FXOSC a few 10’s of Hz at a time until it is centered.
  4. dont expect to get better than +/- 40Hz.
  5. then use the FEI frequency error to check your error (the RadioHead the Arduino-Lora libraries have this feature).
  6. expect the radios to drift over temperature. (at 7.8KHz BW, max frequency error is 195Hz)
    p
2 Likes

Change your Phy settings here:

Some phy settings dont work too well, make sure all radios have the same Phy settings!

2 Likes

Note that you will have to find a way to disable encryption to be legal on ham bands.

1 Like

this part is already done - channel keys can be AES256, AES128 or none. Just no gui yet for it in the android app.

I see Ham using Lora on APRS:

1 Like

Is there a way to use the GPS as a frequency reference? Every GPS receiver already has a TCXO and capability to correct it further. Every GPS chip can output 1pps, some can do clocks in the MHz, and there have been projects that do lovely things like “use the GPS 10MHz output as the system clock to run a microcontroller at 10MHz, then just increment a loop counter to count how many clock cycles between ticks of a 1pps signal, and if it’s anything other than ten million, tweak the oscillator.”

It looks like the SX12xx radios have a CLKOUT pin and they can do integer division of the reference clock before it comes out that pin, so then you just need to compare the two clocks and adjust the PLL compensation. (I’m picturing something really hacky like, set the GPS and SX12xx outputs to be close-but-not-identical, pipe them into an XOR gate into some GPIO, and count the “beat frequency”. Tweak until they beat as expected.)

I feel like this is only tangential to Meshtastic’s core goals, but if there emerges a block of hardware and software needed to perform super accurate Lora clocking, it could drop into any number of related projects including Meshtastic.

Semtech AN1200.07 describes distributing a precise reference frequency from a “golden” master node to other nodes within range, so not all nodes would need the frequency-correction hardware to benefit from it.

1 Like

After chatting with Dan Fay (https://github.com/faydr/QMesh) and Stuart from LoRaTracker, (https://github.com/LoRaTracker/SX12XX-LoRa) I think I’m going to get myself some EByte E22 400M30S modules,
You get the SX126x TCXO low bandwidths, and 1W TX output.
Im trying to pull together all the best from the LoRa Libraries (RadioLib, Radiohead, etc and projects for find the best solution.
ZS1dBm (LoRa APRS)

1 Like

Btw for the actual pipes meshtastic uses radiolib. I use to use Radiohead and I think radiolib is nicer.

Hello. Someone has success with the E22-400M30S module. I got 2 modules and it seems they are interesting for basic repeaters.

I have the E22-900M30S hooked up however it seems to have receive sensitivity issues which at this stage I am assuming is a software configuration issue. I haven’t had a chance to dive deeper yet.

If you have a mains power source or a good size panel and batteries you could keep one of these modules alive however they do draw a lot compared to the E22-xxxM22S which I think is a better fit for compact remote nodes.

as far as I understand, an amplifier is installed in the E22 -… m30S and from which power command toadstool it can give maximum or be similar to the E22 -… M22S The difference in price is not big, so I took 30. I plan to use them as a home or a car repeater, so there is no power problem. But I didn’t quite understand how to make it work well and correctly.

I was quite disappointed with the limited RF channels on these units with 1MHz Channel spacing!

If no GUI, is there another way to change encryption?

1 Like

Also, Ham radio has an IDing requirement. Is there a way to add ID in preamble. Or run an analog FM PTT ID.

With the python command line app you can do this with

meshtastic --setowner KIXXXX --setchan psk ""

This removes encryption and assigns the owner info (which is sent periodically) to KIXXXX.

I’m technically (have license but haven’t used it in a while) a ham, so I wanted to support this option.

1 Like

I tagged the above post as a ‘solution’ even though it doesn’t necessary address the original post. I think it is most relevant for those that are stepping in to the Ham world with this project.

1 Like

So, this is configured into the firmware not on the Android app?

the firmware supports it and the python command line client supports it. Alas, no GUI yet in the android client.