Sunday 30 April 2017

DL4YHF PIC CW Keyer

Bet you all thought I'd left you, eh?

Been concentrating on this years veg garden, so not done much radio or electronics wise worth blogging about. But, I'm back now!

A couple of weeks back myself and Bob M1BBV went to the Norbreck rally, where I picked up a double paddle Morse key. Only one problem - I don't have a keyer! My main radio, the Alinco DX-70TH, does not have an internal keyer. So, I need to make one.

After looking at lots and lots of designs, I've settled on the design by DL4YHF, which uses a Microchip PIC16F628A, a device I have lots of.

I won't detail the project here, as everything you'd need to know about it can be found here http://www.qsl.net/dl4yhf/pic_key.html

After checking I did in fact have some 16F628A's (around a dozen in stock!), I hunted out my PICkit-2 programmer and the multipurpose ZIF socket. At first, the PICkit couldn't find the chip! I vaguely remembered something odd about how the device had to be inserted into the ZIF socket, one connection from the end, and so quickly got the programmer recognizing the device and reading and writing. But, there was a problem! It wouldn't verify!

This was very odd. The device would pass verification following a write, but would fail a manual verify, and if read would return all 0's??? So, in true Lone Ranger 'Hi Ho Silver' fashion it was a case of 'To The Internet!', where, after some in depth (and generally boring) reading of a forum thread from a user with a similar issue, I found this little gem -


Sure enough, I discovered that when the hex was loaded, my programming software was set to Enable Code and Data Protect. Disabling these, plus changing the Vdd and MCLR settings had the device written and manually verified. Of course, at this stage, I don't know for certain that the device has programmed properly, that will have to wait until I have the circuit breadboarded, which is the next task


The code I have opted for is the version with 1second semi-QSK. This will hopefully prevent the radio flipping between Tx and Rx as it waits for my cack-handed sending to catch up!