MAX-SSB-Front-Panel-NANO Software Download


Updated 2024-05-25

Important!:
If you have trouble communication with your NANO through Windows 10:
I came across an issue with some of my NANO clones running on Windows 10. Depending on the specific brand of your NANO and whether it uses the CH340 USB communications chip, you may or may not encounter this.

The issue is that communication with the NANO through the Arduino IDE is not possible. If you encounter this problem, you might need to update the CH340 USB driver.

The problem is somewhat perplexing because if you download the most recent driver for the CH340 (as you would assume would be the better driver), the communication with the NANO will fail. To overcome this, you have to download a slightly older driver and ensure that it isn't updated later. The specific driver to use is (CH340, CH340G & CH341 (USB-SERIAL chip) V3.5 Driver Version = 2019-01-30, 3.5.2019.1) available from this website: CH340 Windows 10 driver download

Now of course you will want take precautions against malicious viruses et cetera by scanning the above driver download with a virus scanner of some kind. I downloaded this exact driver from this website back on May 2025 and had no problems, but you just want to be sure.

Perform the following steps to download the MAX-SSB-Front-Panel-NANO Arduino sketch:

  1. In your favorite Arduino project area, or other location on your hard drive, create a new folder with the name:
    MAX-SSB-Front-Panel-NANO
  2. Right-Click this link: [Download Zip File] then select "Save Link As" and save the file MAX-SSB-Front-Panel-NANO.zip to the folder you just created in step 1 above.
    NOTE:
    Depending on how your browser is configured, the download function may save the zip file into your computer's 'Download' folder without giving you the ability to pick another folder. If this is the case, you will have to move the zip file manually into the MAX-SSB-Front-Panel-NANO folder.
  3. Using Windows Explorer, navigate to the MAX-SSB-Front-Panel-NANO folder and verify that it now contains the file MAX-SSB-Front-Panel-NANO.zip.
  4. Right click on the zip file and select 'Extract all...'
  5. After the extraction is complete there should be folder named MAX-SSB-Front-Panel-NANO and in this folder a file named MAX-SSB-Front-Panel-NANO.ino should exist.
  6. Start the Arduino IDE and navigate to the MAX-SSB-Front-Panel-NANO folder and open the MAX-SSB-Front-Panel-NANO.ino sketch.
  7. Using the Arduino IDE's Library Manager (see 'How to install library files...' below), search for and install the following libraries if they're not already installed in your IDE: NOTE: The library manager can be slow in responding (or act as if it's locked up) after entering text into the search box, please give it at least 15 seconds or more to completely update its lists.
    • si5351.h (Etherkit Si5351 library verison 2.1.4 or higher - By Jason Milldrum) [Search: 'Etherkit Si5351']
    • Adafruit_GFX.h (Adafruit graphics library version 1.11.9 or higher - By Adafruit) [Search: 'Adafruit GFX'] Note: The installer will indicate that a few additional library files will need to be installed, click [Install all] to install these additional libraries.
    • Adafruit_ILI9341.h (Adafruit ILI9341 TFT library version 1.6.0 or higher - By Adafruit) [Search: 'Adafruit ILI9341'] Note: The installer will indicate that a few additional library files will need to be installed, click [Install all] to install these additional libraries.
  8. How to install library files into the Arduino IDE:
    a.) Select menu items: [Sketch >> Include Library >> Manage Libraries...] (wait for the full list to populate in the Library Manager dialog window).

    b.) In the 'Filter your search...' box, enter the search words indicated for each the libraries identified above.

    c.) If the word 'INSTALLED' appears (to the right of the version number) in the description, no further action is necessary unless your installed version is very old*, in which case you may need to click the 'Update' button in the lower right of the description window (your mouse cursor must be hovering within the window to see the 'Update' button).

    * Caution, because updating libraries can sometimes cause your older Arduino sketches to stop functioning, you should note the version number of any libraries you update so you can downgrade back to that version if your older Arduino sketches fail to run.

  9. Select menu item [Tools >> Port] and select the USB port your Arduino NANO board is connected to. Note: One way to determine which port your Arduino board is connected to is to first, without a board connected, select menu item [Tools >> Port] and make note of all the ports listed, then exit the menu, then connect the board and revisit the menu [Tools >> Port] and look for and select the port that wasn't listed previously.
  10. Select menu item [Tools >> Board: >> Arduino AVR Boards >> Arduino NANO]
  11. Select menu item [Tools >> Processor >> ATmega328p]. Note: For some clone NANO boards, you may have to pick [ATmega328p (Old Bootloader)] if the IDE fails to load the sketch into your NANO.
  12. Select menu item [Sketch >> Upload] to compile and transfer the MAX-SSB-Front-Panel-NANO sketch to your Arduino NANO.
  13. Verify that your NANO is wired as shown in this [schematic].
  14. Power up the MAX-SSB-NANO Front panel and verify that the display shows the home screen and the function buttons cause various settings to change and the rotary encoder control causes the selected digit to increment or decrement accordingly.
  15. Once these initial power up checks are successful, you may wish to verify that the front panel can control the Si5351 (VFO/BFO) oscillators via the I2C bus. To do this you will need to build the VFO / BFO Oscillator module # 120 and supply 12V to it and connect the SDA and SCL lines to the front panel, after which you must power up both the MAX-SSB-NANO Front panel and the VFO / BFO module and perform the following steps:
    • Set the I.F. frequency
      • Press the 'Home' button once, then press the 'Function' button five times or until you get to the 'IF:'setting screen and change the frequency shown there to match your crystal filter's center frequency; e.g. 9.000.000 = 9 MHz. Note: You can change this setting on-the-fly while listening to the receiver to fine tune the I.F. frequency to exactly match your crystal filter.
      • Press and hold the 'Sideband Select / Param Save' button until the 'Params Saved' message appears. This saves the setting in non-volatile memory for recall upon next power-up.
    • Calibrate the Si5351's main oscillator
      • Press the 'Home' button once then press the 'Function' button once. Verify that 'GEN:' is set to 10.000.000 (10 Mhz), or any other frequency you prefer.
      • Press the 'Function' button two more times and verify (or set) the 'Gen mA' to '2'. You can select a larger value if you need a greater signal level from the Si5351's CLK1 output.
      • Using a frequency counter, oscilloscope, another receiver with an accurate dial or other means, monitor the output of the Si5351's CLK1 output.
      • Press the 'Function' button three more times and change the value of 'Si5351 PLL Cal:' (+ or -) (use the 'Left' or 'Right' buttons to select the digit position to change) until the frequency output of CLK1 is the same as the value that was set in 'GEN'; e.g. if the value in 'GEN' is 10.000.000 then adjust the value of 'Si5351 PLL Cal:' until the output is 10.000000 MHz
      • Note: If an accurate means of measuring frequency is not available, you can construct the remaining modules to produce a working transceiver, then simply tune the MAX-SSB's dial to receive an SSB voice signal on a known frequency and change the value of 'Si5351 PLL Cal:' until the received signal "sounds normal".
      • Press and hold the 'Sideband Select / Param Save' button until the 'Params Saved' message appears. This saves the setting in non-volatile memory for recall upon next power-up

The MAX-SSB-Front-Panel_NANO (module 111) contains the Arduino NANO microcontroller, display, and user I/O. The microcontroller software (MAX-SSB-Front-Panel-NANO) allows you to specify or change your SSB crystal filter's center frequency (i.e. IF frequency) from the front panel interactively and in real-time via configuration screens without the need to edit and recompile the source code. It also allows immediate and in real-time selection of USB or LSB, high-side or low-side L.O. injection, apply a correction factor to the Si5351's main oscillator crystal (also interactively and in real-time) to bring your frequency display dead-on. Once configured, all settings can be saved to non-volatile memory via the user interface to preserve these configuration setting between power-ups.