Warning: This post is several years old and the author has marked it as poor quality (compared to more recent posts). It has been left intact for historical reasons, but but its content (and code) may be inaccurate or poorly written.

I’m still working on this project, and although progress is slow I’m learning a lot and the circuit is getting better with time. I’m still not yet ready to post the schematics, but you can get an idea of what’s going on from the picture. It can handle 255 levels of frequency shift and has the ability to turn the tone on and off. 6 capacitors, 3 resistors, 4 transistors, a single inductor, and a micro-controller.

Yes, that’s a double helix

UPDATE I spotted myself on W4BHK’s Grabber about 300 miles away…

#include <avr /io.h>
#include <util /delay.h>

char dotlen=5; // ultimately the speeed of transmission
char call[]={0,1,1,1,2,0,2,1,1,0}; // 0 for space, 1 for dit, 2 for dah

void setfor(char freq, char ticks){
	OCR1A=freq;
	while (ticks>0){
		sleep();
		ticks--;
	}
}

void sleep(){
	for  (char i=0;i<dotlen ;i++){
		_delay_loop_2(65000);
	}
}

void slideto(char freq, char ticks){
	freq=freq+30;
	char step=1;
	if (OCR1A>freq){step=-1;}
	while (OCR1A!=freq){
		OCR1A+=step;
		setfor(OCR1A, 1);
	}
	setfor(freq, ticks);
}

void DNA(){
	char a[]={4,5,5,6,6,6,7,7,7,7,8,8,8,8,8,7,7,7,7,6,6,6,5,5,4,3,3,2,2,2,1,1,1,1,0,0,0,0,0,1,1,1,1,2,2,2,3,3};
	char b[]={1,1,1,1,2,2,2,3,3,4,5,5,6,6,6,7,7,7,7,8,8,8,8,8,7,7,7,7,6,6,6,5,5,4,3,3,2,2,2,1,1,1,1,0,0,0,0,0};
	for (char i=0;i<sizeof (a);i++){
		//slideto(a[i]*4,2);
		//slideto(b[i]*4,2);
		setfor(a[i]*2+5, 10);
		setfor(b[i]*2+5, 10);
	}
}

void ID(){
	for (char i=0;i<sizeof(call);i++){
		setfor(10,50);
		if (call[i]==0){setfor(10,100);}
		if (call[i]==1){setfor(15,100);}
		if (call[i]==2){setfor(15,250);}
		setfor(10,50);
	}
}

void ID2(){
	for (char i=0;i<sizeof(call);i++){
		if (call[i]==0){ampOFF();setfor(10,50);}
		if (call[i]==1){ampON();setfor(10,100);}
		if (call[i]==2){ampON();setfor(13,100);}
		ampOFF();setfor(OCR1A,30);
	}
	ampON();
}

void ampON(){PORTA|=(1<<PA7);PORTA|=(1<<PA0);PORTA&=~(1<<PA1);_delay_loop_2(10000);}
void ampOFF(){PORTA&=~(1<<PA7);PORTA|=(1<<PA1);PORTA&=~(1<<PA0);_delay_loop_2(10000);}

int main(void)
{
    DDRA = 255;
	OCR1A = 75;TCCR1A = 0x81;TCCR1B = 1;
	while (1){
		ID2();
		ID();
		for (char i=0;i<3;i++){
			DNA();
		}
	}

}




Warning: This post is several years old and the author has marked it as poor quality (compared to more recent posts). It has been left intact for historical reasons, but but its content (and code) may be inaccurate or poorly written.

This page documents the progress of my MEPT (manned experimental propagation transmitter) endeavors. If you have questions, feel free to E-mail me! My contact information can be found by clicking the link on the right navigation menu.

The Soup-Can Transmitter

The Signal

The Spots

Florida – 288.3 miles away (W4HBK) May 22, 2010

Massachusetts – 1,075.5 miles away (W1BW) May 27, 2010

Belgium – 4,496.3 miles away (ON5EX) May 27, 2010

Germany- 4,869.2 miles away (DL4MGM) May 28, 2010

Essex – 4,356.4 miles away (G6AVK) May 28, 2010

New Zealand – 8,077.6 miles away (ZL2IK) May 29, 2010