The Arduino Sketch for the Simple SSB


Before providing the sketch information I would like to take a few minutes to talk about the sketches in general. I receive many emails about projects and it becomes clear that many inquiries are a result of not investing the time to learn about the basics of the Arduino structure.

First and foremost Arduino is not artificial intelligence and so as the homebrewer you must tell it what to do and in what sequence. Woefully I am not a programmer and so much of the code I write or should say assemble is kind of "klunky". But I am getting better at it. Previously I put everything in one single loop and that often resulted in the poor Arduino having to cycle through a lot of code that was not specific to what was happening at a particular time.

Now I resort to having a bunch of sub-routines that the loop only checks when something has changed. Much cleaner! My loops are much more streamlined and in fact I can better understand what is happening.

Along the way I learned how to add a splash screen that only runs once on boot up and also how to include two VFO's so that you can toggle between the the two VFO's. Some of the displays are more elaborate such as those in the Color TFT series. My last two projects have used 20X4 and 16X4 LCD's that happened to be in the junk box. Actually the interfacing to the LCD's using the I2C backpack only requires 4 connections (duplicate and in parallel with the Si5351) and thus frees up pins on the Arduino. Most often I use the Nano or Pro-Mini because of the small footprint lending itself to more compact rigs; but in the Simple SSB I used a full size Uno R3. Interfacing to the Uno was rather simple requiring only several sections of right angle pin headers. Thus one end is inserted into the Uno and to the other end solder connections are made.

Now one key factor that frequently overlooked by many new homebrewers is the issue of included files. The whole concept of the Arduino is to have a simple sketch and any supporting library is resident in the Libraries folder in the Arduino main directory. Well Gosh Batman --sometimes that does not work too well and so you have to include the files in the same folder as the main sketch. In most cases I include the Si5351 .h and .cpp files as well as the Rotary .h and .cpp files. That typically cures the error message "can't find the si5351.h file". The code for the Simple SSB uses the included files.

Now another hiccup to be aware of --- The I2C is a wonderful mechanism for sharing a common buss with different peripherals. But there has to be some identification of the LCD I2C address. The three most common ones are 0x27, 0x3F and 0x20. Typically one of these will work. I mention this because if you do not have the proper address --nothing will display!!!!!!!!


Simple SSB .ino sketch

Note that the two Rotary, two Si5351 files and two LiquidCrystal_I2C are included files and must be in the SAME folder as the .ino sketch. Failure to include the files will cause error messages as you go to compile the sketch. Note the tabs at the top of the skecth and that you will see the 6 included files. The J in front of the Si5351 files inidcates they came from Jason Milgrum NT7S and were sent to me from Tom, AK2B



If you send me an email to I can send you the 7 files for the sketch or you can just wait until I get them converted to notepad which may take a few more days to a week.