So I spent the better part of the afternoon murdering some arduino’s and in the end got no where closer to my objective than from when i started. I guess tomorrow is another day.
Ok, by popular demand, here are my project files for the Arduino SI5351A VFO. The board layout was done in SprintLayout and I do have some boards being fabbed up in China and should have them here within a week, as I need a few for my own projects. So the board uses an Arduino Nano and the SI5351A breakout board from Hans Summers QRP-LABS. The other things needed are LCD 16×2 and an I2C LCD board so that you only need to use 4 wires to connect the LCD, power, ground, SDA and SCL. The only other thing is a rotary encoder. There is no schematic of how to wire these things up, there is only 1 place each thing can go, SDA, SCL for the LCD and INT0 and INT1 for the rotary encoder, its not rocket science, just google the pinout for the nano and you can work it out. And in all reality, you should be able to do and understand these things anyway, just by reading the code.
multifeaturedvfo This code was mostly written by NT7S , SQ9NJE and AK2B. All I have done to this is changed a few things to make the VFO work correctly with the BIYx 40m SSB. Please acknowledge them for their work and contribution by emailing them and thanking them. The 3 libraries used are also included in the archive. Place them into your Arduino Library folder. Also read through the code, I have added some comments that will help in getting the thing aligned and on frequency. Remember every breakout will be slightly different because the xtal will be slightly different so you have to calibrate the SI5351a to get it perfect.
si5361 These are the Gerber files so you can fab your own boards. Either send them to a fab house in China, load them into your own software and CNC route or ink transfer and make your own. The board on the left in the image below is one i made on my CNC router to ensure it is correct and working. The signal out of the SI5351a breakout can be taken from the 3 pin headers or from the SMA on the board, depending on how you need to deliver the signal into your own project. You can also see that I have used SIP Headers to connect everything, rather than soldering direct to the board. Its always nice to be to able to pill things out if they go wrong.
What else is one to do on a lazy Sunday afternoon than to take a QRP Labs Si5351A Synth module and turn it into a VFO using an Arduino, LCD and Rotary encoder.I started out by ensuring that the Arduino was talking to the synth over I2C, with that accomplished I was then able to calibrate the frequency by adjusting in code the actual frequency the crystal was resonating at.
My freq counter only goes down to 100hz resolution, but I think for my needs that this is more than accurate enough. However when i can get my hands on a counter that goes to the Hz level, i will calibrate this a little further. Just because I can 🙂
With it all working, I then turned my attention to making it a VFO. Got the basics working with the rotary encoder. Next job will be to change to a 4 line LCD and start implementing features like USB, LSB, CW, band switching and the like.
Got back into a little development on the Arduino Logger. I have now transfered over from using a Uno/Nano to now using a MEGA as i needed that little bit more overhead in Sram. So i have it all zipped up in a box now, and am slowly working on adding to the code to make it more usable. As you can see in the picture, there is now Operator and Station Calls in keeping with how the WWFF program wants the data formatted in CVS format.
Sometime ago after a long discussion with a fellow ham, we has concocted this idea to create a logging application using an arduino. The whole thing has sat stagnate for so long, with the parts to make it sitting in the box for many many months, that I decided it was time to pull them out and start to put some work into the ideas.
Basically you have an Arduino Uno, PS2 Keyboard, SD Card Reader, and 20×4 LCD with I2C to form up the basics of the unit. At a latter stage i may also include a RTC clock so that you do not have to manually enter date and time, but for now, i am not sure how will both the LCD and RTC would work together on the I2C port together and if one or the other is going to hog to much time slice.
The basic idea can be seen in the image above. Feature wise, it will be able to take your call, todays date and mode, their call, time, rpt rx, rpt tx, and some short notes like the name and location as well as being able to change mode on the fly and also being able to create a new log file as needed. This is something i wish to use myself while out portable, so i can leave my expensive laptops and their battery hunter or expensive tablet at home. Yeah i have had a tablet die on my portable and lost over 150 log entries from 3 WWFF parks. The way the data will be saved in my arduino logger will be every new entry a backup will be made and the new entry will be written to file, worst case scenario you lose 1 entry, not 100’s. Unless the card explodes and well then you are totally buggered anyway. Here is a small video of where we are at with the project and in a few days i should have something very usable happening.
Added in a real time clock so that there is no date and time entries, we can just poll the clock and get the data we need.
Finished off the basic setup, of Your Call, Band and Mode.
This project is based on the code found in the book Arduino for Ham Radio Book” By Glen Popiel, KW5GP I have not reinvented the wheel here or anything, but i have improved on and made fully usable this code. Its a CW keyboard with memory keying, it keys the straight key input on your radio using a relay to replace the straight key. This is obviously low voltage negative keying, and not suitable for old high voltage value systems etc.
So the changes i made have done added the following, firstly to make the default key speed to not be over ridden, currently this is set as 10wpm in code. Next i added in changing the key speed using the page up and down keys. Its very useful to be able to change your key speed to suit the person you are cw’ing with. Next i fixed an issue with the macros keying at a speed other than the current set keying speed. I also make it default to keying mode, not beeping mode. The software had 2 modes, keying the radio and beeping a buzzer for practice i guess, well it kind of seems redundant to key a buzzer with a keyboard when a radio has side tone already and i cannot see much practice value in keying a buzzer with a keyboard, its not really going to help you get better as cw operator.
These were all minor changes but ones that have made this project to be much more usable. I also simplified the schematic somewhat, pin 12 goes straight to the input on the relay board and the resistors on the LCD are not needed at all.
Here is my modified version of the code: CW_Memory_Keyer
So version 1 of these boards was a bit of a failure, a couple of minors errors in missing tracks, and a major one in super failure of how the buffer amp was laid out. The minor errors are ones i can live with for my own projects, but the bad design of the buffer is a bit of a killer. Anyway its the first time i have manufactured a board, so failure is always an option.
I have a work around with them so they are not totally wasted, bypass the buffer and run the DDS direct into the mixer, its close enough to -7dbm output, enough to drive the mixer, I will just have to make sure it does not load down too much. Will see soon as i can pull my finger out and test it.
My home brew cw station will consist of 3 parts, the receiver, the transmitter and the tuner. Each will be built separate of the others and brought together at the end as a whole and hopefully it works. The receiver will be direct conversion using parts of the schematic from Experimental Methods in RD Design by Hayward Et Al. The parts of that i will use are the preamp front end, the audio diplexer and LNA preamp and the headphone amplifier. The mixer will be an ADE-1 from Mini Circuits rather than a TUFF-1, the audio filters will be active OP Amp Salen Key types and the VFO will be an Arduino DDS VFO as you just cannot beat them for stability and easy of use and rather than headphones, the headphone amp will be use as a preamp to a conventional audio amplifier driving a 4ohm speaker.
IMG 1: Schematic from Experimental Methods in RD Design by Hayward Et A
IMG 2: Front view of the case
IMG 3: Arduino nano on etched board with DDS and TX RX switching relay.