Jump to content
M-atthias

Loran-C radio navigation

Recommended Posts

Happy new year !

I am happy to announce a software defined Loran-C longwave radio navigation receiver running on STM32F407 ! If you happen to live somewhere on earth with Loran-C signal coverage like Europe and parts of Asia, I would like to get in contact with you for beta testing out in the wild.

The first experimental release is available now on download section on http://mecrisp.sourceforge.net/

Best wishes,
Matthias
 

Share this post


Link to post
Share on other sites

This is a neat project. What are the timing characteristics of this implementation? Is there any e-loran extension?

 

You may find folks at  the "time nuts" mailing list <time-nuts@febo.com> quite interested and helpful for testing. Many of them are following the NA based testing of the e-loran next gen private initiative. There is also quite an active bunch in the UK region.

Share this post


Link to post
Share on other sites

Frequency accuracy depends on how far off your crystal is. The closer the crystal matches the frequency, the finer the available calibration steps are. On my STM32F407 Discovery, the crystal is 74ppm too fast.
Besides from this, the simple convolution receiver code included has 1 us time steps, but could changed for more precision at cost of more calculation time.

eLoran enhancements are currently not included in first release :-) This is a basic old-style Loran-C receiver to be build with a common STM32F407 board and a longwave antenna. For eLoran all-in-sight recording we would need (much) more RAM.

Currently, I wish for testing, and if basic receiver code proves to work well, I will continue to try automatic initial coarse crystal frequency determination out of Loran signal itself and on-the-fly clock re-adjustments.

Thank you for the hint with the time-nuts list ! Perhaps you could introduce me there ?



Copy from README of Loran-C package:


  Timer 2 gets 60 MHz clock signal and triggers
    * every 60 clock cycles (exact-xtal)
    * every 60 or sometimes 61 clock cycles (fast-xtal)
    * every 60 or sometimes 59 clock cycles (slow-xtal)

  Timing of captures in Timer ticks @ ~60 MHz:

  | 60 | 60 | 60 | 60 | 60 | 60 | ...  Theoretical f = 1 MHz

  With Switch-cycles:

  Tack=1: | 60 +- 1 | 60 +- 1 | 60 +- 1 | 60 +- 1 | 60 +- 1 | 60 +- 1 |...
  Tack=2: | 60      | 60 +- 1 | 60      | 60 +- 1 | 60      | 60 +- 1 |...
  Tack=3: | 60      | 60      | 60 +- 1 | 60      | 60      | 60 +- 1 |...
  ...

Frequency is theoretically given by
  f = q / (1 +- (1/60*tack))
    f : Frequency on orange LED
    q : Free-running frequency of crystal through PLL

  <=> tack = 60 / (q/f - 1)

  Some examples:

   Offset: Free frequency
    0 ppm: 1 000 000 Hz  Tack infinite, use exact-xtal handler
    1 ppm: 1 000 001 Hz  Tack 16666
   10 ppm: 1 000 010 Hz  Tack  1666
   20 ppm: 1 000 020 Hz  Tack   833
   50 ppm: 1 000 050 Hz  Tack   333
   80 ppm: 1 000 080 Hz  Tack   208
  100 ppm: 1 000 010 Hz  Tack   166

  The more far off the crystal is, the more coarse the Tack steps will be.
  Useful Tack range will be around 150 to 20000...



Some measurements with my particular crystal:

# Tack  Frequency [kHz] determined with frequency counter

# 0   983.682
# 1   983.682 # Every cycle is a switch cycle

2   991.812
3   994.551
4   995.927
5   996.754
6   997.306
7   997.701
8   997.997
9   998.228
10  998.413
11  998.563
12  998.690
13  998.796
14  998.887
15  998.966

20  999.244
30  999.521
40  999.656
50  999.744
60  999.799
70  999.838
80  999.868
90  999.891

100 999.909
150 999.965
200 999.993   # Useful range begin
250 1000.010  #              end   for this particular crystal
300 1000.020

400 1000.034
500 1000.043

# 30000 1000.076 # Almost without switch-cycles, close to free running crystal frequency

  Useful ranges are roughly from 150 (bad crystal, 100ppm offset) to 30000 (0.3ppm crystal offset).
 

Share this post


Link to post
Share on other sites

Are you simply feeding the antenna into the ADC?  This may not work so well without a matched-impedance LNA between them.  Most antennas are designed to 50 Ohm.

 

In any case, later in the year I would love to try this.  Send me email or just post here if you need advice on the RF and antenna circuits.  Moreover, I would love to see if I could heterodyne the Loran-C band into 434 MHz, for local rangefinding, which should also simplify the receiver from an ADC implementation into a zero-crossing implementation.

 

Finally, if you need better crystal precision, the best way is to use a TCXO.  Many GPS receivers use these.  They are not so cheap, but for this project the price of the TCXO should not be a problem.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...