KB3VCQ Amateur Radio Musings

©2010, 2011 S.Koren . All rights reserved.

Softrock Progress

I'm making progress with the Softrock Ensemble RXTX build. I've gotten three more stages completed. The RF/IO switching, the QSD RX mixer, and the RX opamps and output.

Here is the latest bottom of the board pic:

Photo_2

And the top of the board:

Photo_1

The receive section is done! And it works! I was able to hook it up and fire it up. Here is a shot of the waterfall using the Rocky SDR app in Windows:

Pastedgraphic-1

Definitely hear lots of CW. The one problem I'm having right now is that (as you can see from the waterfall) I'm getting mirrored images, so the receiver's image rejection isn't working for some reason. The build manual has a section on dealing with it but I haven't gone through it yet. It could be a bad connection, or my limited knowledge of SDR software. I'll figure it out, but will postpone troubleshooting it until I've worked the rest of the stages to ensure that its not something that fixes itself once another stage is complete. But it's promising and it definitely works! Very cool.

Posted

Sometimes Stupidity...

I forgot to me tion the solution to the inverted QRSS signal was easy (and obvious). I had a me dory location set up on my FT450 for 10.140. I had set it for the wrong mode LSB instead of USB. Thanks for the people who responded.
Sometimes the obvious is invisible to the viewer.
Now I have to realign the kit to get it back on frequency in the new mode.


Sent from Auteureist™ on iPad - http://auteureist.com/

Posted

Small Wonder Labs FreqMite

I took a break yesterday from the Softrock to build something a bit simpler. I built the Small Wonder Labs FreqMite, a small frequency counter that works up to about 30MHz. Output is audio CW.


Having built the SWL 40+ kit, I realized I didn't have a good way of determining frequencies short of using my big rig. The FreqMite seemed to fit the bill in that you could either build it into your rig or use it as a stand-alone unit. You can find more info about the kit here: http://smallwonderlabs.com/

The kit itself is a little bigger than a US quarter, the parts count is low, and there are no SMDs. The main components are a resistor array and the PIC microprocessor. The kit went together in about an hour or so.
I had originally wanted to build it into my SWL40+ but the SWL40+ is in a tin a bit bigger than an Altoids, but there still wasn't enough room or clearance for the FreqMite board. So I've settled on using the FreqMite in a standalone manner and put it and the 9v battery and a tiny speaker into an Altoids. I'll tap proper spots on the SWL40+ and route them to a jack on the enclosure. This will let me use the FreqMite on its own, but still easily plug into the SWL40+ for determining its frequency. The best of both worlds. The nice thing is, is that both kits come from Small Wonder Labs and the documentation of the FreqMite includes proper spots to tap into.
So here is the built FreqMite in its enclosure. The tiny magnetic speaker I salvaged from an old cordless phone set. It just sticks to the Altoids lid. The switch is the control for initiating a frequency check and programming a couple of the functions of the Pic. The jack will let me plug in some probes for testing kits, or an interconnect cable to another jack on a rig such as the SWL 40+ for a semi-permanent hookup.

The jumper array on the board below the resistor array is for programming the IF frequency of the rig and controlling how many digits to ouput if you plan on a permanent hookup.

Photo_1

Here is the closed FreqMite next to the SWL40+

Photo_2

The FreqMite is a nice solution and a lot cheaper than a full digital frequency counter.

Posted

QRSS Mystery Code Cracked

I cracked the mysterious code my QRPLabs QRSS kit is transmitting, but I'm not sure what's causing it or how to fix it.  

Here are 3 screenfulls per a request by Colin G6AVK.  He wanted to see more of the pattern.  

These are taken at 10s per dot.  And its the full pattern.  As I read the code it is (taking into account screen overlaps):

-Screen 1 -  i t ? e 
-Screen 2 -  b t i a 
-Screen 3 -  e i <long t>.

Garbage, but this repeats on every startup.  The weird thing was that the initial 12wpm ID the kit puts out is correct KB3VCQ.  As I was capturing and staring at the screen, I defocused my eyes and low and behold, there is a SECOND signal superimposed on the first.  If you read it it says:

-Screen 1 - KB3
-Screen 2 - VC
-Screen 3 - Q

If you read the BASELINE of the signal rather than the peaks, the signal is correct.  My QRSS kit is putting out an INVERTED signal for some reason.  I'm not sure what is causing this or how to fix it.  I know the gimmick capacitor (3 twists of magnet wire) adjusts the peaks based on how tight the twists are.  Reading the docs there is no mention of HOW to twist the capacitor.  I twisted mine clockwise (looking down on it).  Will twisting the gimmick capacitor counter clockwise (counter withershins) fix the problem?  Or is there some other issue?

(download)

Posted

Softrock Ensemble RXTX Update

I'm making progress on the Softrock. I'm taking my time with this kit given the part count and number of SMDs. The main and USB power supply are done as is the local oscillator. I just finished up the frequency divider which takes the oscillator frequency and divides it by 4. This produces the quadrature frequencies which are 90 degrees apart. Everything tests out ok so far.


I'm getting more confident with SDMs and the results are showing as I continue to use my painter's tape technique. Here is the bottom of the board. Note the multipin SMD (a dual flip-flo) that acts as the divider and the capacitor above it. They definitely look better than the other SMDs.

Photo_1

Here is the top of the board. Just two resistors in this section.

Photo_2

The next section is going to take a while. It's the RF input/output and switching circuitry. This looks like the section with the largest part count.

Updates as I progress.

Posted

There Is Always Something

I finally stabilized and got the QRSS kit aligned only to find that its not sending my call, but rather apparently random code and non-code.

Anyone seen this behavior?  I'm assuming the keyer chip is bad.  Someone mentioned it might be RFI so I'll try to isolate it tomorrow to see if helps.

Qrss
Posted

Arduino Morse

The first thing I did when I got my Arduino Uno was get it to blink some basic Morse letters. Then I had to figure out how to get it to blink at different wpm rates. That was relatively easy once I figured out that 5 wpm is about a 240ms dit/dot or unit based on PARIS . Getting it to blink the complete Morse alphabet was a bit more difficult. I started with adding numbers. Then I ran into a problem. The Arduino would happily send KB3 of my code and then sit there looping over and over and over on the B3. Now, I'm familiar with programming in 'c' and there wasn't anything wrong with the code; this definitely smelled like a memory problem where the code runs into memory making it do strange things. I did some investigation and made a change and it worked! The problem is is that when you statically size character arrays they get stored in a certain (small) section of memory. If you declare the string arrays dynamically (using the [] operator) the arrays are loaded differently and keep the arrays from running into the code.


Anyway, it works. Mark Rogers, KC8GRQ gave me a hint on how to get a tone to play thru a speaker so I added some logic to either blink an LED or play thru the speaker. Here is a sample at 15wpm.

(download)

The code should work with anything from 5wpm on up to where the dahs begin to sound like dits. Mark also wanted to see the code so here it is. The Arduino sketch:


/*
Morse blinker/sounder
Provided as is - KB3VCQ
*/

// Global variables

 

boolean done = false; // initialize a Boolean flag if we don't want to endlessly loop

#define LED 13
#define SPEAKER 6
#define TONE 600.0
#define USESPEAKER true

#define intracharacter 3 // delay between characters
#define dot 1 // length of a dit -- 1 unit
#define dash 3 // length of a dah
#define eow 7 // length at end of word
#define fiveWPM 240 // milliseconds for 5 wpm (based on sending PARIS 5 times for a total of 250 units)
#define wpm 15 // *** SET THIS TO YOUR DESIRED SPEED ***
#define speed fiveWPM / (wpm / 5) // multiplier to apply to 5 wpm rate. 2 = 10wpm, 2.5 = 15wmp, etc.

// *** SET THIS TO THE STRING YOU WANT TO SEND -- MUST BE UPPRCASE ***
char send[] = "THIS IS A TEST CQ DE KB3VCQ";

 

 

// Morse code tokens. 0 = dit, 1 = dah any other character will generate 8 dit error. 

// NOTE: These need to be in ASCII code sequence to work

char tokens [][7] = { "110011","100001", // ,,-
"010101","10010", // .,/
"11111","01111","00111","00011","00001","00000", // 0,1,2,3,4,5
"10000","11000","11100","11110", // 6,7,8,9
"111000","10101","<", // :,;,<
"=",">","001100", // =,>,?
"@", // @,
"01","1000","1010", // A,B,C
"100","0","0010", // D,E,F
"110","0000","00", // G,H,I
"0111","101","0100", // J,K,L
"11","10","111", // M,N,O
"0110","1101","010", // P,Q,R
"000","1","001", // S,T,U
"0001","011","1001", // V,W,X
"1011","1100" // Y,Z };

 

// Arduino setup routine
void setup()

{

pinMode(LED, OUTPUT); pinMode(SPEAKER,OUTPUT);
}

// Routine to output a dit
void dit()
{
if (USESPEAKER)
{
tone(SPEAKER,TONE, dot * speed);
delay(dot * speed); }
else
{
digitalWrite(LED, HIGH); // set the LED on
delay(dot * speed); // wait for a dot's worth
digitalWrite(LED, LOW); // set the LED off
}

delay(speed);
}

// Routine to output a dah
void dah()
{
if (USESPEAKER)
{
tone(SPEAKER,TONE, dash * speed);
delay(dash * speed);

}
else
{
digitalWrite(LED, HIGH); // set the LED on
delay(dash * speed); // wait for a dah's worth
digitalWrite(LED, LOW); // set the LED off
}
delay(speed);
}

// Intracharacter delay
void ic()
{
digitalWrite(LED, LOW); // set the LED off
delay (intracharacter * speed); // wait for a half second
}

// a space is 7 units of off based on speed
void spaceCharacter()
{
digitalWrite(LED, LOW); // set the LED off
delay((eow * speed) + (intracharacter * speed)); // wait for 7 units
}

// Send a CW error for unknown characters
void error()
{
for (int i = 0; i < 8; i++)
{
dit();
}
ic();
}


// Look up a character in the tokens array and send it
void send_element(int c)
{
char token_to_send[7]; // allocate space for the token
strcpy(token_to_send,tokens[c]); // copy the token from the table into our variable

int len = strlen(token_to_send); // figure out how many dit dahs are in it
for (int i = 0; i < len; i++) // for each item in the token
{
if (token_to_send[i] == '0') // if its a 0
{
dit(); // send a dit
}
else if (token_to_send[i] == '1')
{
dah(); // otherwise we send a dah
}
else
{
error(); // we don't have a valid morse token
}
}
ic(); // after each character there is an intercharacter delay
}


// The main send routine. Pull each character apart and determine its corresponding token.
void send_code()
{
int len = strlen(send); // get the length of the string to send
int c;

for (int i = 0; i < len; i++) // loop thru each character in the string to send
{
c = send[i]; // get the ASCII integer value of the character
if (c == ' ') // see if we are between words
{
spaceCharacter(); // send a space
}
else
{
c -= ','; // offset it by the lowest ASCII character in the tokens table (a comma)
send_element(c); // send that element from the token array

}

}
}

// The Arduino main run loop
void loop()

{
if (!done) // see if we are done the loop
{

send_code(); // send the string
spaceCharacter(); // make sure we have a space if we loop around to the beginning
done = true; // Uncomment to set our flag to finish sending
}
}


Feel free to use it.

Posted

Complete Mintduino

Just a quick post.  I got the Mintduino done. 

Here it is running the built in blink program (just a photo).

Img_1074

And here it is packaged up in the original Mintduino tin.  

Img_1075

I had to Dremel the sharp corners down a tiny bit and remove the side nibs along the bottom of the board to get it to fit into the ting; I'm really surprised Makershed doesn't provide it that way to begin with since its so close.  It adheres to the tin via the sticky tape on the bottom of the bread board.  The Dremel pretty much melted the plastic away with a sanding wheel.  The only other problem is the voltage regulator with its heat sink is too tall to close the lid, so I put a bit of velcro on the regulator and the tin lid.  In this "carry" mode, there really isn't room in the tin for a battery.  To use it all I have to do is reinsert the regulator and hook up a battery. The label on the lid is a pinout diagram of the Arduino and ATMega that was part of the build instructions.

Now all I need is a USB to serial cable to actually program it.   
Posted

Mintronics: MintDuino Kit

No, it's not a ham radio kit, but it's still electronics. I got a few Arduino-based items. Arduino is an open source microprocessor platform. In addition to the Arduino Uno I posted about earlier, I also got a kit from Makershed called the MintDuino.


MintDuino is an Altoids-tin (hence the mint) kit that lets you build an Arduino board. Normally when you get the Arduino its a complete board with all components populated. The MintDuino lets you build the actual board on a small breadboard. Here is the tin:

Img_1048

The tin has all the parts including a ATMega 328 processor, which is the heart of this Arduino, and a cool foldable breadboard (the power rails fold down to fit into the tin). The cool bit is also the bad bit, because the breadboard doesn't quite fit in the tin with the rails up, although you can use the sticky tape to mount it on the top or bottom. Getting it to fit would involve grinding down the corners a tiny bit, and I may try that.


The instructions can be found online at http://www.makershed.com/ProductDetails.asp?ProductCode=MSTIN3 under the HowTo tab.

It's a nice easy step by step process that I just started. Here is the breadboard with the 5v power supply under test:

Img_1053

The only other thing that would have been nice is if a schematic was provided so you could correlate what you're building with the circuit--I haven't found one on line. I'll keep you posted as I progress.

Posted

SMDs Are Getting Better

My practice with SMDs and my painter's tape method is improving. If you compare this photo with the last one I posted you can see the SMD alignment is way better although one occasionally gets bumped by the soldering iron tip.

Photo

The little black one is the voltage regulator for the USB rail. The larger gold one is the programmable oscillator chip for the Softrock's local oscillator.


Sent from my iPhone

Posted