Magnetic Loop Controller for 4 Antennas

32K6743

Intro: Magnetic Loop Controller for 4 Antennas

This project is for those ham amateurs who don't have a commercial one . It's easy to build with a soldering iron, a plastic case and a little knowledge of arduino.

This controller doesn't have endstop limit capabilities. In case you'd prefer a model with this feature, I have another design with three motor and endstop capability:

-3 ANTENNAS CONTROLLER WITH ENDSTOP SWITCH

The controller is made with budget components you can find easily in Internet (~20€). The main component is a cnc shield that fits over an Arduino Uno. Both made a compact, small and cheap controller.

Features:

- New revision of the software ver 3.0 05/04/2020 fixed some bug. Some improvements in the code

- Added a new version 3.0 capable to tag frequencies to the memories.

- Version 3.1 fixed some bugs (08/04/2020).

- Factory reset function.

- Timer for every function

- Capable up to 4 different antennas.

- Range of 65000 steps for moving every antenna.

- Microstepping capability 1/2 1/4 1/8 1/16 or even more depending on the pololu stepper control.

- 4 memory banks with 14 programmable memories for antenna (56 memories).

- Programmable upper limit for every antenna.

- backlash compensation from 0 to 200

- speed control from 2 (2 miliseconds between step) to 40 (40 miliseconds between step).

-Power supply 12V

The controller is made by budget components you can find easily in Internet. The main component is a cnc shield that fits over an Arduino Uno. Both made a compact, small and cheap controller.

STEP 1: Overall View

In this photo you can see the CNC shield over the arduino uno, the optical rotary encoder , the I2C 16x2 display and the five push buttons at the bottom.

STEP 2: CNC AND ARDUINO UNO

The arduino board is almost free of wires. The only ones you'll need are the power supply ones. It is necessary to weld some wires into the arduino board and connect them to the cnc shield.The shield comes with 4 pololus a4988 or similar. The pololu has a potentiometer so you can limit the maximum torque of the step motor . My advice is limit the torque to the minimum necessary to move the capacitor. This way prevent for damaging the capacitor

CNC SHIELD WITH ARDUINO UNO

MICRO STEPPING SETUP

ACTIVATING FOURTH STEPPER DRIVER

STEP 3: OPTICAL ENCODER

The optical rotary encoder is a 100 pulses one. The photo you can see how the wires yellow (A ) and green (B) are welded to the pins 10 and 9. just in case a clockwise rotation makes a descending count, you might swap the wires.

Incremental encoder

Connect the wires in this order:

Black - GND

red - 5V+

green - digital pin 9

yellow - digital pin 10

STEP 4: 16X2 DISPLAY AND PUSH BUTTONS

The five push buttons are welded to the cnc shield In this order:

-UP- 17 (A3)

-DOWN - 11 (digital 11)

-MEM UP -15 (A1)

-MEM DOWN - 16 (A2)

-MENU - 14 (A0)

The I2C 16x2 display is joined this order:

DISPLAY SDA - sda pin ( A4)

DISPLAY SCL - scl pin (A5)

DISPLAY GND - gnd

DISPLAY VCC - 5V+

STEP 5: WIRING TO THE MOTOR

I have used ethernet cable for connecting the antenna motor and the control.

Pay attention to the nema wire . Most standard wires does'n come in the correct order.

STEP 6: SCHEMATIC

For a deeper understanding of the cnc shield visit this web page :

Arduino CNC Shield V3.XX – Assembly Guide

Using the fourth stepper control implies using d12 and d13 in the cnc shield.

STEP 7: DIFFERENT VERSIONS OF THE CONTROLLER

There are different versions of this controller._

1)- CONTROLLER FOR 4 MAGNETIC LOOP ANTENNAS-

This is the first one. It is capable up to 4 different antennas. It is made for the CNC platform and Arduino uno. It doesn't have end-stop capabilities.

2)- CONTROLLER FOR 3 MAGNETIC LOOP ANTENNAS-

Modification of the 4 antennas controller. It is capable up to 3 different antennas. It is made for the CNC platform and Arduino uno. It have got end-stop capabilities.

3)- CONTROLLER FOR 3 MAGNETIC LOOP ANTENNAS (OLED SCREEN)

This is a modification of my Controlador loop 3 antennas .It is adapted to use an 128x32 OLED display It is fully compatible with it so instructions are the same. The only difference is the display.

4)- CONTROLLER FOR 2 MAGNETIC LOOP ANTENNAS-

This is a modification of my former control of 3 antennas.

It fits with the CNC shield V4 for arduino nano and V3 for arduino uno.

Fits perfectly in two different configurations of hardware:

-CNC shield V3 for Arduino uno

-CNC shield V4 for Arduino nano

Here you are a link that describes the problem with some v4 CNC

The red one is usually a defective clone. Black one is my advise.

5)-CONTROLLER FOR 1 MAGNETIC LOOP ANTENNA-

This is a variation of the former loop controller for 3 antennas this time with only 1 antenna. At the request of Lev OK2PLL. He is making a small loop controller with an Arduino nano and a pololu for portable operation. The power supply is 5Vcc from the micro USB connector. It is enough for a portable operation with a portable mobile charger

6)-CONTROLLER FOR 1 MAGNETIC LOOP ANTENNA WITH TB6600

It is a modification Just in case you had a TB6600 driver.

STEP 8: CODE AND INSTRUCTION MANUAL

Code on github (click on clone or download and download zip)

For arduino ide you need to have the librairies :

LiquidCrystal_I2C.h

Sometimes, the lcd comes with the chip 8574at and the screen doesn't work.The direction is 0x03f instead of 0x27. In that case you have to change the direction of the chip in this line :

LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27

for this one :

LiquidCrystal_I2C lcd(0x03f,16,2); // in I2C chip 8574at set the LCD address to 0x03f

EEPROM.h included into the arduino ide

I have added a new version for those who like tagging every memory with a frequency (ver 3.0).

You have the two version in case you don't like tagging the memories.

STEP 9: EXPLANATION VIDEO


STEP 10: Torque Limiting

The shield comes with 4 pololus a4988 or similar. The pololu has a potentiometer so you can limit the maximum torque of the step motor . My advice is limit the torque to the minimum necessary to move the capacitor. This way prevent for damaging the capacitor.

Finally, pololus might be damaged if don't have any motor connected. Please, install only the same number of pololus than motors.

STEP 11: BACKLASH COMPENSATION


STEP 12: DOWNLOADABLE STUFF

This control is designed for managing 4
different loops antennas. You can manage every antenna without interfere in the rest. The power supply is 12v. This is not a commercial design it is made for a ham amateur only for the enjoy of the rest of the community.

The controller can manage 4 different loops antennas independently.

It has 64000 step for every antenna

14 memories for antenna.

You can define up limit and down limit.

!!!! VERY IMPORTANT!!!

The controller has 4 memory banks (1 memory bank for antenna). If you want to erase a memory bank push UP & DOWN buttons simultaneously.

Just in case you need to erase the whole data push DOWN & MENU buttons simultaneously.

The controller has five push buttons:

MENU –this button selects between MEM/ANT/SAVE/ADJUST/BACKLASH/SPEED/DISABLE POLOLU AND MICROSTEP functions.

UP/DOWN – used for the next functions:

-Increase and decrease manually the stepper motor (normal and adjust functions).

-Save memory in the save memory function

-Modify backlash/speed/micro step and disable pololu functions.

MEM UP/ MEM DOWN – used to select the memories and to change the antennas.

All the functions return to MEM function after 3 or 8 seconds.

Functions:

--MEM—

In this position you can select the desired memory. If you don’t have any number stored, NO DATA will be shown in the display. Remember that MEM14 is the upper limit. You need to store in this position the maximum step you want to move your capacitor. For select a memory push MEM UP / MEM DOWN.

--ANT—

In this position you can select the antenna between 1 and 3. For choosing an antenna push MEM UP / MEM DOWN.

--SAVE—

Once SAVE is shown in the left corner, you must select the desired number of memory (between 1 and 14) and push UP or DOWN buttons to save.

After this will appear a new screen in which you can save the frequency. Introduce the frequency this way:

-Buttons UP & DOWN to select MHZ (1000 KHz) Up to 59 MHZ

- Buttons MEMP & MEMDOWN to select KHZx100 Up to 59 MHZ

-Rotary encoder to select KHZ.

-Push MENU button to save the frequency or wait 4 seconds.

Remember that this is only a tag not a real frequency.

Remember that in position 14 you must save the upper limit.

--ADJUST—

ADJUST function allows to move the stepper motor without increasing or decreasing any number in the display. It is useful when we need to find the 0 position manually. Sometimes it is necessary for calibrating stored memories. Once adjusted one of them, the rest are calibrated too.

--BACKLASH—

Backlash compensation from 0 to 200. In this position you select the value you consider effective in your system. In order to not to complicate the software, I have decided to compensate only when decreasing. So If you want to as more accurate as possible, before storing a position:

Ej—step 1750

1) increase a bit more the value ---1765

2) decrease the value to the desired position --1750

3) save it --1750 save

Remember to do this if you want to be accurate in the recorded positions.

Just in case you don’t need backlash compensation put the value in 0.

--SPEED—

This function stablishes the maximum speed in automatic movement (memories ). 3 is the max speed (3milisecons pause in every step) 20 is the min speed (20 milliseconds pause in every step). You must adjust the speed in order not to broke your capacitor. I could have used 1 millisecond but the speed was dangerous for almost every system.

--DIS POLOLU—

Pololu is the driver that is in charge to move the step motor. During its work, pololu introduces a lot of rf noise in the antenna. Some people has designed its system in order to not to be affected by this noise. In case you can’t deal with the noise you can disable the pololu after every movement. This happens automatically if you choose “Y“. In case we chose “N” the pololu never disables. Don’t disable the pololu is more accurate but noisier.

--MICROSTEP—

On the cnc shield you’ll find three jumpers you can set to modify the Microstep.

https://blog.protoneer.co.nz/arduino-cnc-shield-v3...

Microstep menu uses a compensation to be more accurate when we use micro stepping in the pololu. For no compensation or no micro stepping you can use 0 compensation.

I have added a brochure of the old blackbox I have used as enclosure. It is useful for the dimensions. As you can imagine, you can use whatever box you want.

STEP 13: 3D PRINTED CASE

I have made a 3d printed case to install properly all the components.

You need to buy some aditional parts that fit properly in the case :

Screws m3 x 8mm (flat countersunk head) for the feet and arduino

3 units rj45 socket

DC jack

STEP 14: ASSEMBLY

Fix the arduino in the base.

Intall the rj45 sockets and wire them to the dupont conector like in picture nº 3

Probably you will neeed some glue to fix the rj 45 to the rear panel.

There are some holes to pass the wires just in case you don't have the rj45 sockets.

The feet lock the case .

You can add some silicone feet to add some grip .

Silicone drop 8mm diameter

STEP 15: STL FOR 3D PRINTED CASE

STEP 16: ADVICE FOR BUTTERFLY AND AIR CAPACITORS

So far I have used a nema 17 motor because y have a 116/12 gearbox to drive my capacitor. In case you had either a butterfly capacitor or an air capacitor, you can't drive ir directly. This is because you'd only have 100 steps to tune your antenna.

My advice is using a modified 12v 28BYJ step motor. This motor is the cheapest on the market . It has a gear box 2000 step per revolution. It is enough to tune your capacitor precisely.

28BYJ-48 Bipolar Mod

An example from Lev Kohút :

Tuner with 12v 28byj

28 Comments

Hello Jose,

Great article and with many opitions.

I've made many Magnetic Loop Antennas which had "Manual" Tuning. I'm currently making a lightweight loop to use at remote locations and want to have automatic tuning/memories.

Iwant to make it as small ans lightweight as possible and just using:

Nano + single A4988 + OLED (128 X 64) + LiPo Battery (NO CNC Shield)

Do you by any chance have a .ino which like what you did for Andy but just for single A4988 (single Antenna) OLED and NO CNC Shield???

Many thanks

Bye for now

Steve/G4MJW
Hi steve
I have just made some modifications. It has two possible ants 1 and 2 .
The code is here :
https://github.com/cabrinana2/Control-for-2-magnet...
Unfortunately I didn't have choice to test it because my only arduino nano is broken.
The screen 180*32 works fine and also the menu .
I can't control pololu because the logic levels in the pins 2 and 3 are only 0.3 V ( i don't know why). Maybe some overcharge during test.
Let me know whether the code works fine in your configuration. Thanks
73 José
Hello Jose,
Thank you very much for doing this for me.

I've breadboarded all the components, downloaded the new sketch and successfully uploaded it to my Nano.

Menues work, Rotary Encoder changes frequencies OK. Just not been able to get the Stepper Motor to move, so far. Might be a problem with the A4988. Need to check outputs with my meter. I'm sure it will be working soon and I will soon be finishing off my new lightweight Loop to go with it.

Many thanks again and I will let you know how I get on with it.

Bye for now

Steve/G4MJW
HI Steve.
I had the same problem with mine. The reason is simple : it is too difficult to breadboard it. :).
I have had a bad week with arduino . I have burned a position of the arduino uno and "I guess" I have broken two nanos testing the code .
No problem "sometimes it happens".
After your mail I was not sure my code worked fine so I tested it in a cnc shield v3 with Arduino UNO ( it is compatible 100% with NANO) . Don't worry, the code works fine, so pay attention to the connections and wiring . In the attached video I use position 2 and 5 to control the pololu. Positions 4 and 6 may work the same.
Don 't forget to put a capacitor ( 0,1 uf ) between the endstop and ground to avoid RF interference. In order to avoid erratic malfunction of the endstop. In your case using a relay is detrimental for the space.
Saludos cordiales José ea7hvo

This is a video I have taken :


Hello José, thank you for spending your time on this for me. I'm not at home at the moment but hope to try it this evening if I am not to late home.

I have 12 Nano's . . . 4 don't work. 2 never able to program from brand new. 2 just failed! Lucky the are not expensive!

Thank you again.

Steve/G4MJW
Hi
Dear G4mjw I don't have the code yet.
I'll get down to work . Maybe in a couple of days i'll have the modifications.
I hope to do it as soon as possible.
saludos cordiales José ea7hvo

Hello Jose, you are so kind. Is it possible to also have End of Limit Switches?

Thank you everso much.

Bye for now

Steve/G4MJW
Hi Jose, great project mate. Started this project some time ago and now at the stage of testing the stepper controller.
I have loaded the software into the Arduino but I can't control the stepper motor. My display is not the same as in your article, the software version I loaded is v3.1.
Your help is greatly appreciated.
Regards Mark
HI.
Many time ago someone had a problem with the lcd.
I don't know if you ave the same problem :
The solution is written in the description.

Sometimes, the lcd comes with the chip 8574at and the screen doesn't work.The direction is 0x03f instead of 0x27. In that case you have to change the direction of the chip in this line :
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27
for this one :
LiquidCrystal_I2C lcd(0x03f,16,2); // in I2C chip 8574at set the LCD address to 0x03fYou have to look for it in the code and change the lines.
Try with it and tell me
Hello!
I have a question if it can be adapted to the antenna tuner.
It is about simultaneous control of 2 stepper motors.
Of course, 14 memories are enough, more than enough.
In the enclosure I send the AT diagram (no additional capacity enclosed by the relay).
`73 Darek MI0SLE ,, MI5K
So far it is not possible. It would need a serious mod in the software. Sorry
Now I am using this solution and I am thinking about changing. two stepper motors controlled by AT89s52, works well but is not very flexible.
I am about to start this project. I had a question. Is it possible to use all 4 memory banks for a single Antenna? Is so do you have to modify the circuit by wiring all 4 drivers to the single motor or is this not possible. I have an antenna that covers 10m, 12m, 15m and 17m and I want to use more than 14 saved frequencies for it.
Thanks for all the information for this project.
There are so many calculators out there and they seem to produce different answers for how large or small the loops should be fore a specific frequency and how what is the maximum power the capacitor should be. I am having a hard time coming up with the size I should go with. I want to maximize power output even if that means I build multiple antennas. What did you use to figure out the size of the loop and capacitor needed.
Thanks
Hi,
66pacific calculator is very accurate .Trust it.
I made several antennas before the definitive I have today. Experimentation is the mother of science. My antenna has 360cm perimeter so it does'nt work properly above 21mhz. it works fine in 7/10/14 and 17 mhz. In 80m works fine but with lots of lost.
My capacitor is a vacuum one 9/1010 pf.
My advise is a round one 80/90cm diameter made of copper pipe 24,5mm diameter. I'd use a 5/250 pf capacitor.

If you have facebook you'll find some groups like this one : https://www.facebook.com/groups/861746933918546
My antenna covers 80/60/40/30/20/17 and 21 m. Being a manual tune antenna, you won't need more than a memory for band( maybe two or three in 80m band). The reason is that temperature and moisture affect to resonant frequency. I use memories to swap from a frequency to another and then I fine tune the capacitor.
My advice is to try it and enjoy .
Thanks for writing
Thanks that makes sense. I will try that. What did you use to for determine your loop size. I been looking at a "small transmitting loops Antenna Calculator" from 66pacific. It seems they suggest keeping each band or bands with max and minimum size to avoid self resonance. What is the consequences of making the loop bigger or smaller than the 1/8 to 1/4 wavelength of desired frequency.
Hi
Just finished the project
I’m very happy to see working as described
My question is is it possible to use OLED screen instead of proposed by you ??
If yes could you help with updating software ??
I will provide more information about OLED when you ready
The picture of my project attached
Thanks
I have just finished the software for your display.
It is almost tested but it works . It's been hard to adapt it beacuse this display uses a matrix of 128x32 and the original software uses only 16x2.I addition, it needs more commands to work properly.
You have to install the libraries. In this tutorial you can find how to made it :
https://randomnerdtutorials.com/guide-for-oled-dis...

Eventually it has been worth it.
You can find the software here :
https://github.com/cabrinana2/Controlador_loop_3_a...
Click on CODE/DOWNLOAD ZIP to download the file.

Please, let me know the results.
Merry christmas.
73 ea7hvo
Really sorry Andrzej4380.
I told you that I had the screen because I received it a week ago.
Today I have noticed that I have bought a 128x32 screen and it seems that your screen is a 128x64.
Please let me know if your screen is a 128x32 or a 128x64.
Thanks
More Comments