top of page

   Magnetic Loop Antennas -    Home-brew  -   M0HWD       240519

Thank you for visiting my page.
Here I will put all my work regarding  building the Magnetic loop antennas, controller, 3D  printer files for all plastic involved, mechanic and software of the tuning system etc.
but - it will be some time to complete.
after I have finished the work now it will take some time to bring all together from pieces of paper  to a reasonable presentation.
so please came back from time to time , or if you prefer i can establish an email group - and i will update the group. please let me know.
Apologies for my English.  Any  comments and   questions are welcomed.
Thank you, 73 Daniel   M0HWD , 4X1WD, KK4CZI  
​
Magnetic loop   antenna 7-30 MHZ  20180705 .jp

The controller - VER A - bidirectional - 2 COILS - Stepper Motor  

Magnetic loop antenna controller cover box .jpg
CONTROLLER 2 .jpg
IMagnetic loop antenna controller inside    M0HWD.jpg
7  30 MHz      Magnetic loop  antenna
Magnetic loop controller uni m0hwd ver5

220619

The controller ver B - UNIDIRECTIONAL  - 4 COILS Stepper Motor   

part list:        250519

​

1  u1   ST Stepper Motor Control/Driver L293D          (£4.45  inc. VAT)

2  u2   PICAXE-28X2 Module (AXE201)                         (£14.99 inc. VAT) 

3  u3   Budget Serial OLED Module  AXE133Y            (£14.99 inc. VAT) 

4         PICAXE USB Download Cable                           (£14.99 inc. VAT) 

5         PRO SIGNAL - Speaker, 100 mW, 150 ohm,      (£5.58  inc. VAT)

6         small  vector board

7         5 ptt switches

8         1 on off switch

9         2 sockets for ics

10       1 connector and socket for the motor

11       1 connector and socket for the  civ

12       1 connector and socket for the  ps

13       box and cover (i will attach later the stl files for 3d printer)     

14       p.s.  12 v 2 amp 

15       Heat sink  for Stepper Motor  driver 

16       RVFM MY3002 Mini Hybrid Stepper Motor Size 11  (£30.25 inc. VAT)

17       RVFM Worm Gears Pack of 10                                    (£5.38  inc. VAT)

18       4 mm X 3 cm long brass tube (for shaft/step connect)

19       delrin /perspex plate  30 x 15 x 1

20        BNC  connector

21       1 telescopic fiber glass 7- 11 m long

22       1 parasol base 

23       65 cm coax for small loop  RG 240

24       1 m of large mesh screen wire 

25        screws washers and nuts      (braging)

26        320 cm x 32 mm pipe for main loop 

27        KP1-8 5-250 pF 5kV Milirary high-voltage vacuum variable  10 - 40 m 

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

CHANGES TO  PART LIST FOR VER B:

​

1.   4 X 2N6308 (INSTEAD OF L293D)

2.  No need of part list nr 17  Heat sink  for Stepper Motor  driver 

​

260519

1

Magnetic loop antenna  top  1

4

4   MAST PLATE HOLDER.JPG

2

Magnetic loop antenna  2   top main loop mast holder.JPG

5

5  main loop bottom holder.JPG

3

Magnetic loop antenna  3   Main loop tube cover.JPG

6

6  Main loop bottom mast support  .JPG

7

7 bnc box .JPG

9

8

8 bnc box cover .JPG
9 small loop top holder .JPG

11

10

10  mast top small loop connect .JPG
11  STEP HOLDER.JPG

12

12   cacum holder  .JPG

15

13

13   50t gear    .JPG

14

14  SHAFT.JPG
15 capaci cover  .JPG

16

17

16  BOX.JPG
17  COVER.JPG

The stl 3d printer files are here - click on the doc , then save It  to your computer  -  

Magnetic loop antenna - warms .JPG
5-250.png
Magnetic loop antenna  motor
Magnetic loop controller uni  motor   m0

Operation   instruction - Magnetic loop controller     230619 - 120819   M0HWD  rev. 1.4

 

Buttons   (from   right to left)

 

     Short press:

1    civ - change   the antenna   frequency to the transceiver frequency  

2    frequency - down

3     frequency – up

4   band down

5    band - up

 

Long press:

1   calibrate frequency to center frequency    of the band

2     frequencies - down fast

3   frequencies - up -fast

4    calibrate low part of band

5   calibrate high part of the band

 

 

 

Calibrating  the controller – the  first time of operation: 

 

The controller can be programmed   for referent gears, capacitor , and  bands.

This example is for a vacuumed capacitor  5-250 Pf,  - 25 turns , gear have 50 tooth,  and the magnetic loop  is  1 meter  diameter.

The bands covered in this example is    10-40m

 

 

Each band   has a preferred “middle band frequency” as follow   (chosen by me) 

 

160   1830  MHz

80   3700   MHz

60    5000  MHz

40    7100   MHz

30   10120 MHz

20    14250 MHz

17    18100 MHz

15   21250 MHz

12    24950 MHz

11    27300 MHz

10    28450 MHz

6      50100 MHz

By default the program is set up for   first time use to 20 m band.       

By default all the bands factors are programmed to my loop.

 

Calibrating:

You need an antenna analyzer (I am using the aa-230 of Rig expert)

It will be easier to have a switch - switching between the transceiver and the analyzer -connected to the antenna.

 1.  Find out the antenna resonating frequency now.

 2   bring the antenna resonance to 14250 with the frequency buttons 2/3 (my middle band for 

             20m)

3   disconnect the cable from the controller.

4   switch of the controller

5   press button NR 4 continually and switch on the controller, release the button.

6   Reconnect the cable to the controller.

7    bring the antenna to resonant 100kc beyond the “middle band frequency” e.g. 14150 kHz

8   press button 4 for 2 sec (long beep)

9    bring the antenna to resonant 100kc on top of the “middle band frequency” e.g. 14350 kHz

10    press button 5 for 2 sec (long beep)

 The controller will calculate the factor - how many ticks of the stepper motor will be needed for 1 kHz.

The factor will be displayed on the upper  right side of the controller.

After the calculation the controller will move the steeper motor to the “middle band frequency”.

If the frequency is resonate on the frequency displayed, change the resonate of the antenna with button 2/3, than press button 1 for 2 seconds.

That’s it.

Now repeat for all bands,   BUT   only steps   7 – 10.

To change the bands press button 4/5, and remember +-100kc is from the frequency displayed (not anymore 14250 which was done before)

 

 

Normal operation

change the transceivers frequency to find a station or empty space.

When you decide to transmit press bot  1 shortly.

 

As per climate change, humidity, rain etc the calibration may change a little.

the only thing that need to be done  - if the center frequency  changes - bring the middle frequency by pressing the band button 4/5 to the desire band , then calibrate the resonant frequency with button 2/3, then pres button 1 for 2 seconds.

 

 

 

 

Manual ver 1.4

VER 236

The controller program

#no_table : #no_data
symbol b0x = b0: symbol b1x = b1 : symbol b2x = b2 : symbol b3x = b3 : symbol b4x = b4    
symbol b15_last_band = B15 : symbol w5_fac = W5 : pullup   %10111110                                                     
if pinb.2 = 0 then : sound b.0,(70,400) goto DEFAULT : endif                            
gosub INIT      

MAIN: 
  let b16 = pinsB & %00111110        
  if b16 = 62  then : on b1x goto MAIN, D7, BAND_UP, D6, BAND_DWN ,CIV ,BO6, BO7,BO8, RELEASE : endif 
  b16 = 60 - b16/2 : on b16 goto  BOT5 ,BOT4,main,BOT3,main ,main,main,BOT2,main ,main,main,main,main,main,main,BOT1 
 BOT1: pause 10                        
        if pinB.5 = 0 AND w9 < 301  then
            w9 = w9 + 1 
              b1x = 5
           if w9 > 300   then : b1x = 6: sound b.0,(70,255 ) : endif
        endif : goto MAIN
  
BOT2:   w9 = w9 + 1 : b1x=0   
        if w9 > 10 then:  b1x = 7 : endif  
      sound b.0,(70,1)                     
        if w3 > 1 then : w3 = w3 - 1 : endif
        b17 = 20 :  gosub DIRECTION : goto MAIN 
     
BOT3:   w9 = w9 + 1      
        b1x=0
      if w9 > 10 then : b1x = 7 : endif  
      sound b.0,(70,1)                       
        if w3 < W6 then : w3 = w3 + 1: endif   
        b17 = 20 : gosub DIRECTION : goto MAIN     
  
BOT4:   if   w9 < 1001  then  
      w9 = w9 + 1 : b1x = 4
      if w9 > 1000 then : b1x = 3 : sound b.0,(70,255 ) : endif  
        endif : goto MAIN
  
BOT5:   if w9 < 1001  then     
         w9  = w9 + 1 : b1x = 2   
         if w9 > 1000 then : b1x = 1 : sound b.0,(70,255 ) : endif
         endif: goto MAIN
  
  BO6: gosub COMMON : gosub  MID_BAND  : b17 = 3 :  gosub DIRECTION : goto MAIN   
  BO7: gosub COMMON : gosub SCREEN    gosub EE_ENTER : w9 = 0: goto MAIN  
  BO8: goto BC                          

RELEASE: w9 = 0 : w11 = w11 + 1: if w11 = 1000 then : let outpinsa = %00000000: w11 = 0 : b1x = 0 : endif :goto MAIN 

BAND_UP:  
 gosub COMMON:   b15_last_band = b15_last_band + 8
   if b15_last_band = 120 then:  b15_last_band = 0 :  endif      
   b0x = b15_last_band + 5 : read b0x ,b28 : b0x = b15_last_band + 6 : read b0x,B29   
  gosub fr_format : gosub SHOW_FR  
 goto MAIN
  
BAND_DWN:  
 gosub COMMON:  b15_last_band = b15_last_band - 8
 if b15_last_band = 248 then : b15_last_band = 112: endif
 b0x = b15_last_band + 5  : read b0x ,b28  : b0x = b15_last_band + 6: read b0x,B29  
 gosub fr_format : gosub SHOW_FR                                               
goto MAIN
 
 MID_BAND:    
   b17 = b15_last_band + 1 : write b15_last_band, b8 : write b17, b9   
   A1: sound b.0, (70,500)    
   b0x = b15_last_band :  b17 = b15_last_band + 1 :read b0x,b6 : read b17 ,B7        
   b0x = b15_last_band + 5  : read b0x ,b28 : b0x = b15_last_band + 6: read b0x,B29  
   b0x = b15_last_band + 2  : read b0x,b10 :   b0x = b0x + 1  : read b0x,b11        
   w15 = w3        
   gosub FR_FORMAT  
   gosub FAC_SCREEN 
 return

FR_FORMAT: w10 = b28 * 1000 : w14 = B29*10 : w10 = w10 + w14 : write 124,b15_last_band : return   
                                                                                                 
SHOW_FR: setfreq m8: serout b.6, N2400,(254,128) : serout b.6, N2400,(#w10, " ") : setfreq em64  
         pause 2000 : b1x = 8 : w9 = 0 : return
  
COMMON:   w9 = 0: b1x = 0 : sound b.0,(50,25) : return  

EE_ENTER: write 122,b8 : write 123,b9 : b1x = 9 : w11 = 0 : return   
 
FAC_SCREEN:  setfreq m8 serout b.6, N2400,(254,141) : serout b.6, N2400,(#w5_fac) :   setfreq em64 : return  
        
DEF:  w12 = w12 * 100 : w12 = w12/w5_fac : return   

DIRECTION:   if w3 = w4 then : gosub SCREEN : return : endif  

ZUZ:                  
   if w3 < w4  then:  gosub FIRST_1
      else:           gosub FIRST_2
   endif             
 if b1x = 0 then : gosub SCREEN : gosub EE_ENTER : endif  
 return             
  
SCREEN:   
     if w15 > w4 then        
      w13 = w15 - w4    
      else w13 = w4 - w15
    endif
   w12 = w13 * w5_fac :  w12 = w12/100      
 if w15 < w4  then          
   w12 = w12 + w10
     else
   w12 = w10 - w12    
endif
if b4 > 0 then: setfreq m8 : serout b.6, N2400,(254,128) : serout b.6, N2400,(#w11," ",#w4,"  ") : b4=0 : goto DD : endif
                setfreq m8 : serout b.6, N2400,(254,128) : serout b.6, N2400,(#w12," ",#w4,"  ")
DD:             setfreq m8 : serout b.6, N2400,(254,205) : serout b.6, N2400,(#w13,"     ") : setfreq em64   
return     
BC:  w9 = w9 + 1                      
      if w9 = 1500 then:  sound b.0,(50,100): b1x = 0    
       setfreq m8: serout b.6, N2400,(254,128) : serout b.6, N2400,("  WAIT     " ): setfreq em64  
       gosub A1       
      b17 = 3: gosub DIRECTION : w9 = 0 : sound B.0, (60,200 ): sound B.0, (50,200 )  
    goto MAIN
  endif : goto MAIN  
  
D6:  gosub COMMON         
    w15 = w4 : goto MAIN    
  
D7: gosub common           
    w5_fac = 20000 / w13       
    b0x = b15_last_band + 2 :   write b0x,b10 :  b0x = b0x + 1 :   write b0x,b11   
    gosub FAC_SCREEN : gosub SCREEN
    w3 = 10000/w5_fac : w3 = w4 - w3 : w15 = w3 
    b17 = b15_last_band + 1 : write b15_last_band, b6 : write b17, b7   
    b17 = 3 : gosub DIRECTION     
  goto MAIN  
FIRST_2:
 w4 = w4 + 1  
 high A.3 : pause b17
 low  A.0 : pause b17
 high A.2 : pause b17
 low  A.3 : pause b17
 high A.1 : pause b17    
 low  A.2 : pause b17
 high A.0 : pause b17 
 low  A.1 : pause b17     
 if w3 > w4  then  
  goto FIRST_2 
  endif
 return

FIRST_1:
 w4 = w4 - 1  
 high A.1  : pause b17
 low  A.0  : pause b17
 high A.2  : pause b17
 low  A.1  : pause b17
 high A.3  : pause b17    
 low  A.2  : pause b17
 high A.0  : pause b17 
 low  A.3  : pause b17    
 if w3 < w4  then :  goto FIRST_1 : endif
return
 
 CIV:  gosub COMMON : hSerPtr = 0
 serout c.7, T1200, ($FE, $FE,$70,$E0,$3 ,$FD)
 hserin [1000,main],0,10  
  get 3 ,b26   
  if b26 = 112 then
   get 6 ,b26   
   get 7 ,b27   
   get 8 ,b1x    
   if b1x > 9 then  : b1x = b1x - 6  :  endif
   if b1x > 19 then : b1x = b1x - 6  :  endif    
   if b1x > 29 then : b1x = b1x - 18 :  endif 
   if b1x = 28 then : b15_last_band = 80 : endif 
   if b1x = 24 then : b15_last_band = 72 : endif 
   if b1x = 21 then : b15_last_band = 64 : endif 
   if b1x = 18 then : b15_last_band = 56 : endif 
   if b1x = 14 then : b15_last_band = 48 : endif 
   if b1x = 10 then : b15_last_band = 40 : endif 
   if b1x = 7  then : b15_last_band = 32 : endif 
   if b1x = 5  then : b15_last_band = 24 : endif 
   if b1x = 3  then : b15_last_band = 16 : endif       
    w15 = b1x*1000 : b1x = 0  
    w11 = b26/16    
    w14 = b27/16    
    w12 = w14*16 : w12 = b27 - w12 : w12 = w12*10     
    w14 = w14*100        
    w11 = w11 + w12 + w14 + w15   
  gosub A1             
w14 = w5_fac/100       
  if w11 > w10 then   
   w12 = w11 - w10 + w14 
     gosub DEF                                       
       w3 = w3 + w12  
     else
      w12 = w10 - w11  + w14  
     gosub DEF                                         
    w3 = w3 - w12   
  endif  
    setfreq m8:  serout b.6, N2400,(254,192): serout b.6, N2400,( #w11, " " ) :setfreq em64 
endif    
 b4 = 1                          
 sound b.0,(50,100) :  b1x= 0 :   setfreq m8: serout b.6, N2400,(254,128) :serout b.6, N2400,("WAIT     " ): setfreq em64 
 b17 = 3 : gosub DIRECTION   
 sound B.0, (60,200 ) 
goto main  
 
  INIT:  setfreq em64:   settimer t1s_4 
          
    EEPROM 5, (1) :   EEPROM 6, (70)    
    EEPROM 13,(1) :   EEPROM 14,(90)
    EEPROM 21,(3) :   EEPROM 22,(65)    
    EEPROM 29,(5) :   EEPROM 30,(00)   
    EEPROM 37,(7) :   EEPROM 38,(10)   
    EEPROM 45,(10) :  EEPROM 46,(12)   
    EEPROM 53,(14) :  EEPROM 54,(25)   
    EEPROM 61,(18) :  EEPROM 62,(10)   
    EEPROM 69,(21) :  EEPROM 70,(25)   
    EEPROM 77,(24) :  EEPROM 78,(95)   
    EEPROM 85,(28) :  EEPROM 86,(45)   
    EEPROM 93,(30)  : EEPROM 94,(00)   
    EEPROM 101,(55) : EEPROM 102,(10)  
    EEPROM 109,(55) : EEPROM 110,(20)  
    EEPROM 117,(55) : EEPROM 118,(30)  
    
    EEPROM  2  ,(20)    : EEPROM   3   ,(1)                
    EEPROM 10  ,(30)    : EEPROM  11   ,(1)              
    EEPROM 18  ,(40)    : EEPROM  19   ,(1)              
    EEPROM 26  ,(50)    : EEPROM  27   ,(1)             
    EEPROM 34  ,(14)    : EEPROM  35   ,(0)              
    EEPROM 42  ,(40)    : EEPROM  43   ,(0)              
   
    EEPROM 50 ,(105)    : EEPROM  51   ,(0)              
    EEPROM 58 ,(175)    : EEPROM  59   ,(0)               
    EEPROM 66 ,(169)    : EEPROM  67   ,(0)               
    EEPROM 74 ,(83)     : EEPROM  75   ,(0)               
    EEPROM 82 ,(28)     : EEPROM  83   ,(0)             
    EEPROM 90 ,(130)    : EEPROM  91   ,(1)          
    EEPROM 98 ,(140)    : EEPROM  99   ,(1)         
    EEPROM 106,(150)    : EEPROM 107   ,(1)          
    EEPROM 114,(160)    : EEPROM 115   ,(1)         
     
        EEPROM 0,(0)    : EEPROM 1,(5)   
      EEPROM 8,(0)    : EEPROM 9,(5)    
      EEPROM 16,(0)   : EEPROM 17,(5)   
      EEPROM 24,(0)   : EEPROM 25,(5)   
       EEPROM 32,(124) : EEPROM 33,(5)   
      EEPROM 40,(168) : EEPROM 41,(54)  
      EEPROM 48,(20)  : EEPROM 49,(80)  
      EEPROM 56,(102 ): EEPROM 57,(90)  
      EEPROM 64,(169) : EEPROM 65,(96)  
      EEPROM 72,(198) : EEPROM 73,(108)  
      EEPROM 80,(19)  : EEPROM 81,(137)  
      EEPROM 88,(214) : EEPROM 89,(181) 
      EEPROM 96,(0)   : EEPROM 97,(139)       
      EEPROM 104,(0)  : EEPROM 105,(140)  
      EEPROM 112,(0)  : EEPROM 113,(141)  
     
         EEPROM 120,(0)  : EEPROM 121, (255)  
      EEPROM 122,(20) : EEPROM 123, (80)  
      EEPROM 124,(48)                    
  
    read 120,B12 : read 121, B13  
     
    read 122,b8 : read 123,b9    
      read 124,b15_last_band       
    read 125,b14                  
 
    b0x = b15_last_band + 5  : read b0x ,b28 : b0x=b15_last_band + 6:   read b0x, B29  
    gosub fr_format         
    b0x = b15_last_band + 2  :read b0x,b10: b0x = b0x + 1  : read b0x,b11  
         b0x = b15_last_band  : read b0x,B30 : b0x  =b0x + 1 read b0x ,B31    
      pause 5000    
    setfreq m8 : serout b.6, N2400,(254,1)  
    gosub FAC_SCREEN         
    gosub SCREEN  
      w3 = w4                      
      hsersetup B9600_64, %00     
      pause 1000                
return
DEFAULT:
 write 122,29  
 write 123,80  
 write 124,48  
  
 write 56,102  
 write 57,90
 write 58,175
 write 59,0

 write 24,0
 write 25,5
 write 26,50 
 write 27 ,1

 write 32,124 
 write 33,5
 write 34,14 
 write 35 ,0
 
 write 40,168  
 write 41,54
 write 42,40 
 write 43 ,43

 write 48,20 
 write 49,80
 write 50,106
 write 51,0
 
 write 56,102  
 write 57,90
 write 58,175
 write 59,0
 
 write 64,169  
 write 65,96
 write 66,169
 write 67,0
 
 write 72,198  
 write 73,108
 write 74,83
 write 75,0

 write 80,19   
 write 81,137
 write 82,28
 write 83,0
 
 write 88,214   
 write 89,181
 write 90,130
 write 91,1
   
 RESET 

Magnetic loop antenna  Assembly   part 1           ver. 17   

 

To be continued soon

bottom of page