Make a CQ caller, beacon controller, foxhunt tx and more

ATUs, PSUs, Rotators, Test Equipment, components, etc
Post Reply
User avatar
VK3YE
Forum Diehard
Posts: 494
Joined: Sat Oct 18, 2008 2:11 pm
Location: Melbourne
Contact:

Make a CQ caller, beacon controller, foxhunt tx and more

Post by VK3YE »

While they're still in the newsagents I recommend the purchase of this month's Silicon Chip for the intro article on the Arduino microcontroller.

This will be old news to those who've been tinkering with them, but microcontrollers are incredibly versatile for many radio projects and are simpler than making them from parts only. For many radio tinkerers the barriers to programming and computer connections to previous memory and mictrocontroller devices have discouraged involvement due to the steep learning curve and low chance of success.

Low-cost Arduino and compatible boards is making this a lot easier and there's many resources on the web. Even if your code is initially copied and inefficient you can still modify someone elses to do a variety of amateur radio applications.

The video at http://www.youtube.com/watch?v=kTN-68VhF_o demonstrates a clumsy, but ultimately successful attempt at building radio gear like a CQ caller, beacon and fox transmitter using an Arduino.

73, Peter VK3YE
-------------------------
Peter VK3YE http://www.vk3ye.com

NEW FOR 2019! Illustrated International Ham Radio Dictionary. 200 page Kindle ebook. $AU $5.99. Get yours at http://home.alphalink.com.au/~parkerp/dictionary.htm
VK2XSO

Re: Make a CQ caller, beacon controller, foxhunt tx and more

Post by VK2XSO »

I bought silicon chip this month for the read on the Arduino too. Not so much to get on the band wagon but to keep an eye on it because of it's popularity.
Though it probably won't be long before I am forced to write code for it :)


I'll ride the coat tails here......
I prefer PICs for something a little more minimalist.
Like this example that I programmed as a beacon/fox controller.

The code is written in PIC assembler (which isn't for everybody) for the PIC12F510 which cost 70 cents each.
The program is easy enough for anybody to understand which lines of code to change for the desired output.
The 12F510 is am 8 pin DIL package the same as a 555 timer.

The example below, one runs our 80m fox and the other our 10m fox.
There's no need for any external components, the chip runs everything it needs internal. But if you want to add an LED to see the output, that's not big deal.
A few other more modified versions of the program do other unrelated tasks.

Code: Select all

; Fox box controller VK2XSO
;
;
;                   PINOUTS
;                   =======      PIC 12F510
;                                ____  ____
;                               |    \/    |   
;         5 Volts         Vcc --| 1      8 |-- GND
;                               |          |
; 				       GPIO,5 --| 2      7 |-- GPIO,0 AN0   
;                               |          |
;      			       GPIO,4 --| 3      6 |-- GPIO,1 AN1   TX KEY
;                               |          |
;      RESET      GPIO,3 MLCR --| 4      5 |-- GPIO,2 AN2
;                               |__________|
;
;
;


#include <P12F510.inc>
__CONFIG _MCLRE_ON & _CP_OFF & _WDT_OFF & _IntRC_OSC

OPTIN		EQU		001h		;OPTION register

DEL1		EQU		011h		;delay counter 1
DEL2		EQU		012h		;delay counter 2
DEL3		EQU		013h		;delay counter 3
TEMP		EQU		014h		;temporary register
POINT		EQU		015h		;array pointer
CHKSUM		EQU		016h		;checksum

#DEFINE		KEY		GPIO,1		;TX KEY
#DEFINE		CARRY	STATUS,0	;CARRY
#DEFINE 	DC		STATUS,1	;DECIMAL CARRY (busy flag)
#DEFINE 	ZERO	STATUS,2	;ZERO
#DEFINE		PAGE0	STATUS,5	;RP0


;--------------------------------------------------------

ORG		0000h				;Reset Vector

INIT	bsf		STATUS,5	;page 1
		movlw	0C0h		;OPTION register
		movwf	OPTIN		;write register
		bcf		STATUS,5

;		movlw	b'00110000'	; outputs
		movlw	0B1h		;b'10110001' configure AN[1:0] as analog inputs
		movwf	ADCON0	

		bcf		CM1CON0,3	;disable comparitor
		bsf		CM1CON0,6

		movlw	008h		;GPIO,3 input only
		tris	GPIO

		clrf	OSCCAL

		bsf		GPIO,5		;POWER LED ON

		goto	MAIN



;---------------------------------------------------------------



;--------------------------------------------------------
;
;   ...-  -.-  ..---  -..-  ...  ---  _____________________ ~~~~~~~~~~~~~~~~~~~

;===========================================================

MAIN	call	DIT			;V
		call	DIT
		call	DIT
		call	DAH
		call	SPCE		;
		call	DAH			;K
		call	DIT
		call	DAH
		call	SPCE		;
		call	DIT			;2
		call	DIT
		call	DAH
		call	DAH
		call	DAH
		call	SPCE		;
		call	DAH			;X
		call	DIT
		call	DIT
		call	DAH
		call	SPCE		;
		call	DIT			;S
		call	DIT
		call	DIT
		call	SPCE		;
		call	DAH			;O
		call	DAH
		call	DAH
		call	SPCE		;
		call	SPCE		;
		call	SPCE		;
CWON	bcf		KEY			;CW ON
		movlw	07Eh		;15 seconds
		movwf	DEL3		;set counter
		call	LOOP3
		call	OSC
		call	SPCE
		call	SPCE
		call	SPCE

		goto	MAIN

;		bsf		GPIO,1
;		bsf		GPIO,4
;		bsf		GPIO,5

;		movlw	002h
;		xorwf	GPIO

;------------------------------------------------

DIT		bcf		KEY
		call	LDELAY
		bsf		KEY
		call	LDELAY
		retlw	0

;-----------------------------------------------

DAH		bcf		KEY
		call	LDELAY
		call	LDELAY
		call	LDELAY
		bsf		KEY
		call	LDELAY
		retlw	0

;-----------------------------------------------

SPCE	bsf		KEY
		call	LDELAY
		call	LDELAY
		call	LDELAY
		retlw	0

;-----------------------------------------------
; 15 second tone

OSC		movlw	07Eh		;15 seconds
		movwf	DEL3		;set counter
TD3		movlw	0FFh		;~100mS
		movwf	DEL2		;set counter

TONE	bsf		KEY			;Tone Generator
		movlw	0FFh		;Set value
		movwf	DEL1		;set counter
TD1		decfsz	DEL1		;~1mS
		goto	TD1			;
		bcf		KEY			;key off
		movlw	0FFh		;Set value
		movwf	DEL1		;set counter
TD2		decfsz	DEL1		;~1mS
		goto	TD2			;

		decfsz	DEL2		;decrement counter
		goto	TONE
		decfsz	DEL3		;decrement counter
		goto	TD3

		bsf		KEY			;turn transmitter off
		retlw	0


;----------------------------------------------
; Long Delay

LDELAY	movlw	001h		;~1/3 second
		movwf	DEL3		;outside loop
LOOP3	movlw	0FFh		;256
		movwf	DEL2		;middle loop
LOOP2	movlw	0FFh		;256
		movwf	DEL1		;inside loop
LOOP1	nop
		decfsz	DEL1		;decrement loop 1
		goto	LOOP1
		decfsz	DEL2		;decrement loop 2
		goto	LOOP2
		decfsz	DEL3		;decrement loop 3
		goto	LOOP3
		retlw	0

		goto	MAIN

END


;#####################################################################

		call	DIT			;A
		call	DAH
		call	SPCE		

		call	DAH			;B
		call	DIT
		call	DIT
		call	DIT
		call	SPCE			

		call	DAH			;C
		call	DIT
		call	DAH
		call	DIT
		call	SPCE

		call	DAH			;D
		call	DIT
		call	DIT
		call	SPCE

		call	DIT			;E
		call	SPCE

		call	DIT			;F
		call	DIT
		call	DAH
		call	DIT
		call	SPCE

		call	DAH			;G
		call	DAH
		call	DIT
		call	SPCE

		call	DIT			;H
		call	DIT
		call	DIT
		call	DIT
		call	SPCE

		call	DIT			;I
		call	DIT
		call	SPCE

		call	DIT			;J
		call	DAH
		call	DAH
		call	DAH
		call	SPCE

		call	DAH			;K
		call	DIT
		call	DAH
		call	SPCE

		call	DIT			;L
		call	DAH
		call	DIT
		call	DIT
		call	SPCE

		call	DAH			;M
		call	DAH
		call	SPCE

		call	DAH			;N
		call	DIT
		call	SPCE

		call	DAH			;O
		call	DAH
		call	DAH
		call	SPCE		;

		call	DIT			;P
		call	DAH
		call	DAH
		call	DIT
		call	SPCE

		call	DAH			;Q
		call	DAH
		call	DIT
		call	DAH
		call	SPCE

		call	DIT			;R
		call	DAH
		call	DIT
		call	SPCE

		call	DIT			;S
		call	DIT
		call	DIT
		call	SPCE

		call	DAH			;T
		call	SPCE

		call	DIT			;U
		call	DIT
		call	DAH
		call	SPCE		;

		call	DIT			;V
		call	DIT
		call	DIT
		call	DAH
		call	SPCE		;

		call	DIT			;W
		call	DAH
		call	DAH
		call	SPCE		;

		call	DAH			;X
		call	DIT
		call	DIT
		call	DAH
		call	SPCE		;

		call	DAH			;Y
		call	DIT
		call	DAH
		call	DAH
		call	SPCE		;

		call	DAH			;Z
		call	DAH
		call	DIT
		call	DIT
		call	SPCE		;

		call	SPCE		;SPACE
		call	SPCE		;
		call	SPCE		;

		call	DIT			;1
		call	DAH
		call	DAH
		call	DAH
		call	DAH
		call	SPCE		;

		call	DIT			;2
		call	DIT
		call	DAH
		call	DAH
		call	DAH
		call	SPCE		;

		call	DIT			;3
		call	DIT
		call	DIT
		call	DAH
		call	DAH
		call	SPCE		;

		call	DIT			;4
		call	DIT
		call	DIT
		call	DIT
		call	DAH
		call	SPCE		;

		call	DIT			;5
		call	DIT
		call	DIT
		call	DIT
		call	DIT
		call	SPCE		;

		call	DAH			;6
		call	DIT
		call	DIT
		call	DIT
		call	DIT
		call	SPCE		;

		call	DAH			;7
		call	DAH
		call	DIT
		call	DIT
		call	DIT
		call	SPCE		;

		call	DAH			;8
		call	DAH
		call	DAH
		call	DIT
		call	DIT
		call	SPCE		;

		call	DAH			;9
		call	DAH
		call	DAH
		call	DAH
		call	DIT
		call	SPCE		;

		call	DAH			;0
		call	DAH
		call	DAH
		call	DAH
		call	DAH
		call	SPCE		;

User avatar
VK3YE
Forum Diehard
Posts: 494
Joined: Sat Oct 18, 2008 2:11 pm
Location: Melbourne
Contact:

Re: Make a CQ caller, beacon controller, foxhunt tx and more

Post by VK3YE »

Thanks Trash,

I suppose the main appeal of the Arduino was the ability to program without a $60-odd PIC programmer kit, though the trade-off is higher device costs. Another thing that attracted me to Ardunio (proved at the Maker Faire) is that it attracted a lot of people with limited electronics skills who became successful users. This has unleashed a lot of creativity from artist types for whom stuff like PICs was too hard. Which motivated me - if they could then I could (and should).

One initial worry was that once you've got a prototype going it would be great for reproducibility to be so cheap that you'd be mad not to use it for numerous projects. This is where the cheaper PIC undoubtedly has the edge.

I was worried for a while that you had to pay $30-odd for an Arduino board each time, which really adds up and goes against the grain (I'd rather it be on the same board as my project for compactness). Further reading indicated that you could get pre-bootloaded chips, that if I'm right could be programmed the usual way and inserted in your board. There's a discussion here: http://www.arduino.cc/cgi-bin/yabb2/YaB ... 1252022534

Some of the usual suppliers don't seem to sell the pre-loaded chip on its own, but one source is http://littlebirdelectronics.com/produc ... tiboot-uno

$6-odd for the chip plus crystal and voltage regulator drops the cost to about $10-odd (plus other bits) per project which I can live with (though still dearer than PIC).

Peter
-------------------------
Peter VK3YE http://www.vk3ye.com

NEW FOR 2019! Illustrated International Ham Radio Dictionary. 200 page Kindle ebook. $AU $5.99. Get yours at http://home.alphalink.com.au/~parkerp/dictionary.htm
VK2XSO

Re: Make a CQ caller, beacon controller, foxhunt tx and more

Post by VK2XSO »

Yes, PIC programmers tend to put a wet blanket on their use. Though some circuits I've built the in circuit programmer onto the board where I know I want to regularly change the firmware. A couple of dollars worth of parts replaces a programmer.

The modules for the arduino are what got my attention. There are similar modules available for PICs too which I also use, but I can also integrate the arduino modules.

The best feature I do think is the bootstrap loader and the simplistic programming language combined the with the modules.
I won't be surprised when other chipsets are used with the same setup in the future.

I wonder if any schools are using them for specific subjects. I guess electronics is a subject in itself at high schools these days ?
VK1DJA
Forum Novice
Posts: 31
Joined: Fri Oct 13, 2006 8:59 am
Location: 2614

Re: Make a CQ caller, beacon controller, foxhunt tx and more

Post by VK1DJA »

You might like to check out the web site of Owen VK1OD.

One of Owen's topics is a beacon for 136 kHz. A single ATTiny 25 chip generates the QRSS sequence (callsign, etc) at the desired frequency. Component cost under $10 or thereabouts.

$50 or so for a programmer is still inexpensive compared to most items in the shack. The free integrated development environments simplify code development hugely. Like most radio-related skills, there is a certain learning period to get up to speed, but it's rewarding in what it opens up.

Dave VK1DJA
Dave
VK2XSO

Re: Make a CQ caller, beacon controller, foxhunt tx and more

Post by VK2XSO »

See you've just given me an idea. 136KHz software defined direct synthesis PIC transmitter :D
About 147 clock cycles for a PIC running at 20MHz :)
VK2LK
Forum Diehard
Posts: 250
Joined: Sun Jan 15, 2012 11:00 pm
Location: Sydney, Australia

Re: Make a CQ caller, beacon controller, foxhunt tx and more

Post by VK2LK »

Now that would be very cool!
Matt, VK2LK
VK2GOM

Re: Make a CQ caller, beacon controller, foxhunt tx and more

Post by VK2GOM »

A propeller development board will make RF...

http://blog.g4ilo.com/2012/01/propeller ... o-air.html

And is of course programmable to do beaconing, WSPR and suchlike.

73 - Rob VK2GOM / G0MOH
VK2XSO

Re: Make a CQ caller, beacon controller, foxhunt tx and more

Post by VK2XSO »

Ah I've got a propeller board too, but I've not bothered to learn ARM assembler or SPIN.
Propeller's are a transputer on a chip. I think it was 16 or 32 COG's running at 80MHz.
If a couple of those boards get together for a bit of a chat it will be the beginning of skynet. !

I'm glad this thread popped up, I'd forgotten about the 137KHz project. I'd been working on my repeater controller which also uses this chip.
It's currently running our local 23cm repeater and I'm porting the code across to the 16F84/88 to run our 23cm link repeater.
The hope is to link the Mt Nardi 23cm repeater with the Tamworth 23cm repeater. And there is enough room for expansion in the controllers, racks, radios and sites to expand it to cover most of SE VK4 and Northern and Central VK2.

I don't know much about WSPR, it will require some reading to catch up unless somebody knows a few short cuts to transmitting dumb beacons.

I was just going to start with a simple DS Direct Synthesis of 137KHz and then CW modulate it and then PSK modulate it and then 4FSK modulate it just for demonstration purposes to prove to myself they can be done and then worry about how to construct a WSPR sequence later.
User avatar
VK5ZT
Frequent Poster
Posts: 143
Joined: Tue Dec 01, 2009 5:39 pm

Re: Make a CQ caller, beacon controller, foxhunt tx and more

Post by VK5ZT »

Hi all

Maybe some of you guys should have a look at the Duinomite from olimex/Dontronics.

The larger board supports Arduino shields. This thing drives a VGA monitor, uses a PS2 keyboard and amongst other things can be programmed in BASIC

Go to olimex.com or the local Dontronics site.

Also coming soon is the Raspberry Pi.....go to raspberrypi.com

Cheers

Tim

VK5ZT
Post Reply