Well, I've been working on the keyer. It turns out that the Arduino Mega has the I2C bus on different pins than the Arduino Uno. Since my keyer shield doesn't actually have pins for that location on the Arduino, I had to come up with an adaptor mechanism. I bought some extra long pins from Jameco and put two of the wires into a two-pin housing, and now I have a display. The lack of sidetone output was traced to a broken wire going to the speaker. The paddle inputs didn't work, but that turned out to be a software error.
It occurs to me that I never explained why I'm re-writing the keyer software. To recap the project up to this point: I have wanted a CW memory keyer for a long time, and I had wanted to do some project with the Arduino. However, I didn't think that my circuit design skills were up to designing the necessary hardware and I didn't really want to write the software, and it occurred to me that someone else might have decided to use the Arduino as the basis of a memory keyer and have designed hardware and written the software necessary to make it do what I want.
What happened this weekend was that I wound up not building any antennas. Instead, I started re-writing the keyer software from scratch. It's an iambic keyer now, with no memory features, but there's a speed control and it displays the speed at which you are keying. Progress has been rapid, but now I'm having to think about how to proceed, so it should be slower.
Well, I had not one but two bad potentiometers, and there were three customizations I needed to make to the software for the keyer to work the way I expected, but I've got the speed control working and all of the memory buttons working and the two different PTT lines working.
What isn't working? Well, I destroyed one of the buttons when I recabled it, so I need another momentary contact switch. I don't know if I'll replace it. I mean, 11 memories is almost exactly as good as 12, right? I'm never going to use them all, after all.
At long last, I have a memory keyer. It was about four years ago, as near as I can tell, that it occurred to me that, not only was constructing a memory keyer based upon the Arduino a good idea, that it was sufficiently obvious that someone else must have done it already. That meant I could leverage their code and hardware designs to that end. After I found K3NG's design and and software, I decided that this project would make a good introduction to PC Board layout and good practice for surface-mount construction.
Okay, I wired up the I2C interface to the LCD, connected the potentiometer for the speed control, and connected jacks for the key and the key out. Along the way, I found that I had labelled the I2C lines wrong, swapping the data and clock lines.
And, yesterday I created a keying cable to go between the keyer and the FT-102, and the radio keyed! So, I need to put it in a box.
I survived ApolloCon just fine, and I'm more energetic than I can remember being, so I have started to work on projects again. I have too many projects, but I still want my memory keyer to be finished, so I'm working on that.
A while back, I finished the board layout for the correct transistor pinouts, and I sent it off to OSHPark to be turned into actual boards. I also ordered parts. Last week I even found out what was wrong with my soldering iron (it wasn't set up right at the factory) and I fixed it. So, I was all set.
I have two updates from previous posts. First, Mal just called and said my FT-102 is ready. The problem appears to have been a bad 10 MHz crystal reference oscillator. It wasn't putting out enough signal so the phase comparator wasn't working so the PLL wasn't locking up. I should get the radio back in a week or two, I just have to (gladly!) pay for the repair.
I've wanted a memory keyer for a long time, but they tend to be expensive and I don't work enough CW to really justify it. However, about three years ago it occurred to me that you could make a memory keyer out of an Arduino. (An Arduino is an amazingly cheap microcontroller board that some clever Italians designed. See, e.g. http://www.arduino.cc/ for more information.) Anyway, a while after I thought of that, I decided that I didn't want to spend a bunch of time designing the hardware and programming the Arduino.