Installing 2.0.4 IDE

Just downloaded and installed IDE 2.0.4. After unpacking and double-clicking the app, the IDE opened up and, after perhaps 20 seconds, it appeared ready to load a sketch. I clicked on File, and my only option was Exit. I'm running Win11 and had no problems with 2.0.3.

Anyone else experience this?

If you haven't, stop and restart the IDE. Also, try launching the IDE by double-clicking an .INO file. @ptillisch should be along shortly to gather some data.

Hi @econjack. I'm going to ask you to post some additional information that might help us to identify the problem.

Please do this:

  1. Start Windows "File Explorer".
  2. Open the Arduino IDE installation folder.
    (usually C:\Program Files\Arduino IDE or C:\Users\<username>\AppData\Local\Programs\Arduino IDE).
  3. In the folder listing of the Arduino IDE installation folder, hold the Shift key while clicking the right hand button on the mouse.
  4. From the context menu, click "Open PowerShell window here".
    Windows PowerShell will now open with the current directory set to the Arduino IDE installation folder.
  5. Type the following command:
    & ".\Arduino IDE"
    
  6. Press the Enter key.
    Debug output should now be printed to the PowerShell window as Arduino IDE starts.
  7. Wait for Arduino IDE to finish starting.
  8. Switch back to the PowerShell window.
  9. Right click on the title bar of the PowerShell window.
    This will open a context menu.
  10. Select Edit > Select All from the context menu.
    This will select all the text in the PowerShell window.
  11. Press Ctrl+C.
    This will copy the contents of the PowerShell window to the clipboard.
  12. Open a forum reply here by clicking the Reply button.
  13. Click the <CODE/> icon on the post composer toolbar.
    This will add the forum's code block markup (```) to your reply to make sure the error messages are correctly formatted.
    Code tags icon on toolbar
  14. Press Ctrl+V.
    This will paste the output into the code block.
  15. Move the cursor outside of the code block markup before you add any additional text to your reply.
  16. Click the Reply button to post the output.

Please let me know if you have any questions or problems while following those instructions.

I recommend rolling back to Arduino version 1.8.19 very stable, faster much less bells and whistles

you can download it from here
https://downloads.arduino.cc/arduino-1.8.19-windows.exe

IDE 2.0.4 should be named IDE beta.0.4

@econjack, I've moved your topic to the dedicated IDE 2.0 section of the forum.

sterretje: Thanks! I guess I didn't see the thread when I first posted.

No worries.

ptillisch: This probably isn't helpful, as nothing really happened in the PowerShell. The first time I download 2.0.4, I used the ZIP file for the install. That's when all I could see under the File menu is Exit. I unistalled that version and downloaded the EXE version. This time under File, I got "New Sketch", "Open", etc., but "Sketchbook" and "Preferences" are greyed out. I followed your instructions on this version and this is all I got:

PS C:\Arduino2.0.4\Arduino IDE> & ".\Arduino IDE"
PS C:\Arduino2.0.4\Arduino IDE>

I have installed off the root directory as:
C:\Arduino2.0.4
However, when adding libraries under 2.0.3, they were placed in
C:\Users\user\AppData\Local\Arduino 15\packages\arduino\hardware\avr\1.8.6\libraries
Clearly, I'm doing something wrong.

It is expected that the File > Sketchbook menu item will be greyed out if there are no sketches in your sketchbook folder. The location of the sketchbook folder is set via the Sketchbook location preference.

The File > Sketchbook menu item should be greyed out only when the "Preferences" dialog is open (this prevents the user from opening multiple "Preferences" dialogs).

Was the IDE already running when you ran that command? I neglected to mention that you must exit the IDE before performing the instructions I provided. The lack of logs you experienced is expected when you run the command while the IDE is already running. If it was running, please select File > Quit from the Arduino IDE menus and then try running the command again. This time you should see a large quantity of logs printed to the PowerShell terminal as the IDE starts up.

It appears that I did have the IDE running when I tried the PowerShell. I closed everything, did a soft reboot, and then tried your instructions again. I got a boatload of stuff this time, but a lot of it looks like some of the source code for a project I was working on. I have placed the output in the code blocks:

253A%2520512%252F92000%253B%250D%250A%2520%2520%252F%252Fpixel_per_khz%2520%253D%2520%2528%25281%2520%253C%253C%2520spectrum_zoom%2529%2520%252A%2520SPECTRUM_RES%2520%252A%25201000.0%2520%252F%2520SR%255BSampleRate%255D.rate%2529%2520%253B%250D%250A%2520%2520pos_left%2520%2520%2520%2520%2520%2520%253D%2520centerLine%2520%252B%2520%2528%2528int%2529%2528bands%255BcurrentBand%255D.FLoCut%2520%252F%25201000.0%2520%252A%2520pixel_per_khz%2529%2529%253B%250D%250A%2520%2520if%2520%2528pos_left%2520%253C%2520spectrum_x%2529%2520%257B%250D%250A%2520%2520%2520%2520pos_left%2520%253D%2520spectrum_x%253B%250D%250A%2520%2520%257D%250D%250A%250D%250A%2520%2520%252F%252F%2520Need%2520tto%2520add%2520in%2520code%2520for%2520zoom%2520factor%2520here%2520AFP%252010-20-22%250D%250A%250D%250A%2520%2520filterWidthX%2520%253D%2520pos_left%2520%252B%2520newCursorPosition%2520-%2520centerLine%253B%250D%250A%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_LIGHT_GREY%2529%253B%250D%250A%2520%2520if%2520%2528switchFilterSideband%2520%253D%253D%25200%2529%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%2520%2520else%2520if%2520%2528switchFilterSideband%2520%253D%253D%25201%2529%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_LIGHT_GREY%2529%253B%250D%250A%250D%250A%2520%2520MyDrawFloat%2528%2528float%2529%2528bands%255BcurrentBand%255D.FLoCut%2520%252F%25201000.0f%2529%252C%25201%252C%2520FILTER_PARAMETERS_X%252C%2520FILTER_PARAMETERS_Y%252C%2520buff%2529%253B%250D%250A%250D%250A%2520%2520tft.print%2528%2522kHz%2522%2529%253B%250D%250A%2520%2520if%2520%2528switchFilterSideband%2520%253D%253D%25201%2529%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%2520%2520else%2520if%2520%2528switchFilterSideband%2520%253D%253D%25200%2529%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_LIGHT_GREY%2529%253B%250D%250A%2520%2520MyDrawFloat%2528%2528float%2529%2528bands%255BcurrentBand%255D.FHiCut%2520%252F%25201000.0f%2529%252C%25201%252C%2520FILTER_PARAMETERS_X%2520%252B%252080%252C%2520FILTER_PARAMETERS_Y%252C%2520buff%2529%253B%250D%250A%2520%2520tft.print%2528%2522kHz%2522%2529%253B%250D%250A%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%2520%252F%252F%2520set%2520text%2520color%2520to%2520white%2520for%2520other%2520print%2520routines%2520not%2520to%2520get%2520confused%2520%253B-%2529%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520DrawSMeterContainer%2528%2529%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520DrawSMeterContainer%2528%2529%250D%250A%257B%250D%250A%2520%2520int%2520i%253B%250D%250A%250D%250A%2520%2520tft.drawFastHLine%2520%2528SMETER_X%252C%2520SMETER_Y%2520-%25201%252C%252012%2520%252A%2520s_w%252C%2520RA8875_WHITE%2529%253B%250D%250A%2520%2520tft.drawFastHLine%2520%2528SMETER_X%252C%2520SMETER_Y%2520%252B%252020%252C%252012%2520%252A%2520s_w%252C%2520RA8875_WHITE%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520changed%25206%2520to%252020%250D%250A%250D%250A%2520%2520for%2520%2528i%2520%253D%25200%253B%2520i%2520%253C%252010%253B%2520i%252B%252B%2529%2520%257B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Draw%2520tick%2520marks%250D%250A%2520%2520%2520%2520tft.drawFastVLine%2520%2528SMETER_X%2520%252B%2520i%2520%252A%252012.2%252C%2520SMETER_Y%2520-%25206%252C%25207%252C%2520RA8875_WHITE%2529%253B%2520%2520%2520%2520%2520%252F%252F%2520charge%25208%2520to%252018%250D%250A%2520%2520%257D%250D%250A%250D%250A%2520%2520tft.drawFastHLine%2520%2528SMETER_X%2520%252B%2520120%252C%2520SMETER_Y%2520-%25201%252C%2520%252062%252C%2520RA8875_GREEN%2529%253B%250D%250A%2520%2520tft.drawFastHLine%2520%2528SMETER_X%2520%252B%2520120%252C%2520SMETER_Y%2520%252B%252020%252C%252062%252C%2520RA8875_GREEN%2529%253B%250D%250A%250D%250A%2520%2520for%2520%2528i%2520%253D%25200%253B%2520i%2520%253C%25205%253B%2520i%252B%252B%2529%2520%257B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Draw%2520tick%2520marks%250D%250A%2520%2520%2520%2520tft.drawFastVLine%2520%2528SMETER_X%2520%252B%2520120%2520%252B%2520i%2520%252A%252012%252C%2520SMETER_Y%2520-%25206%252C%25207%252C%2520RA8875_GREEN%2529%253B%2520%252F%252F%2520charge%25208%2520to%252018%250D%250A%2520%2520%257D%250D%250A%250D%250A%2520%2520tft.drawFastVLine%2520%2528SMETER_X%252C%2520%2520%2520%2520%2520%2520%2520SMETER_Y%2520-%25201%252C%252020%252C%2520RA8875_WHITE%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520charge%25208%2520to%252018%250D%250A%2520%2520tft.drawFastVLine%2520%2528SMETER_X%2520%252B%2520182%252C%2520SMETER_Y%2520-%25201%252C%252020%252C%2520RA8875_GREEN%2529%253B%250D%250A%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%2520%2520tft.setCursor%2528SMETER_X%2520-%252010%252C%2520%2520SMETER_Y%2520-%252025%2529%253B%250D%250A%2520%2520tft.print%2528%2522S%2522%2529%253B%250D%250A%2520%2520tft.setCursor%2528SMETER_X%2520%252B%25207%252C%2520%2520%2520SMETER_Y%2520-%252025%2529%253B%250D%250A%2520%2520tft.print%2528%25221%2522%2529%253B%250D%250A%2520%2520tft.setCursor%2528SMETER_X%2520%252B%252031%252C%2520%2520SMETER_Y%2520-%252025%2529%253B%2520%2520%2520%2520%252F%252F%2520was%252028%252C%252048%252C%252068%252C%252088%252C%2520120%2520and%2520-15%2520changed%2520to%2520-20%250D%250A%2520%2520tft.print%2528%25223%2522%2529%253B%250D%250A%2520%2520tft.setCursor%2528SMETER_X%2520%252B%252055%252C%2520%2520SMETER_Y%2520-%252025%2529%253B%250D%250A%2520%2520tft.print%2528%25225%2522%2529%253B%250D%250A%2520%2520tft.setCursor%2528SMETER_X%2520%252B%252079%252C%2520%2520SMETER_Y%2520-%252025%2529%253B%250D%250A%2520%2520tft.print%2528%25227%2522%2529%253B%250D%250A%2520%2520tft.setCursor%2528SMETER_X%2520%252B%2520103%252C%2520SMETER_Y%2520-%252025%2529%253B%250D%250A%2520%2520tft.print%2528%25229%2522%2529%253B%250D%250A%2520%2520tft.setCursor%2528SMETER_X%2520%252B%2520145%252C%2520SMETER_Y%2520-%252025%2529%253B%250D%250A%2520%2520tft.print%2528%2522%252B20dB%2522%2529%253B%250D%250A%250D%250A%2520%2520DrawFrequencyBarValue%2528%2529%253B%250D%250A%2520%2520ShowSpectrumdBScale%2528%2529%253B%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520ShowSpectrumdBScale%2528%2529%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520ShowSpectrumdBScale%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%250D%250A%2520%2520tft.fillRect%2528SPECTRUM_LEFT_X%252C%2520SPECTRUM_TOP_Y%2520%252B%252010%252C%252033%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520tft.setCursor%2528SPECTRUM_LEFT_X%2520%252B%25205%252C%2520SPECTRUM_TOP_Y%2520%252B%252010%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%2520%2520tft.print%2528displayScale%255BcurrentScale%255D.dbText%2529%253B%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520This%2520function%2520draws%2520spectrum%2520display%2520container%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%2520%2520%2520%2520%252F%252F%2520This%2520function%2520draws%2520the%2520frequency%2520bar%2520at%2520the%2520bottom%2520of%2520the%2520spectrum%2520scope%252C%2520putting%2520markers%2520at%2520every%2520graticule%2520and%2520the%2520full%2520frequency%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520DrawSpectrumDisplayContainer%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.drawRect%2528SPECTRUM_LEFT_X%2520-%25201%252C%2520SPECTRUM_TOP_Y%252C%2520MAX_WATERFALL_WIDTH%2520%252B%25202%252C%2520SPECTRUM_HEIGHT%252C%2520%2520RA8875_YELLOW%2529%253B%2520%2520%252F%252F%2520Spectrum%2520box%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520This%2520function%2520draws%2520the%2520frequency%2520bar%2520at%2520the%2520bottom%2520of%2520the%2520spectrum%2520scope%252C%2520putting%2520markers%2520at%2520every%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520graticule%2520and%2520the%2520full%2520frequency%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520DrawFrequencyBarValue%2528%2529%250D%250A%257B%250D%250A%2520%2520char%2520txt%255B16%255D%253B%250D%250A%250D%250A%2520%2520int%2520bignum%253B%250D%250A%2520%2520int%2520centerIdx%253B%250D%250A%2520%2520int%2520pos_help%253B%250D%250A%2520%2520float%2520disp_freq%253B%250D%250A%250D%250A%2520%2520float%2520freq_calc%253B%250D%250A%2520%2520float%2520grat%253B%250D%250A%2520%2520int%2520centerLine%2520%253D%2520%2520MAX_WATERFALL_WIDTH%2520%252F%25202%2520%252B%2520SPECTRUM_LEFT_X%253B%250D%250A%2520%2520%252F%252F%2520positions%2520for%2520graticules%253A%2520first%2520for%2520spectrum_zoom%2520%253C%25203%252C%2520then%2520for%2520spectrum_zoom%2520%253E%25202%250D%250A%2520%2520const%2520static%2520int%2520idx2pos%255B2%255D%255B9%255D%2520%253D%2520%257B%250D%250A%2520%2520%2520%2520%257B%2520-43%252C%252021%252C%252050%252C%2520250%252C%2520140%252C%2520250%252C%2520232%252C%2520250%252C%2520315%257D%252C%2520%252F%252FAFP%252010-30-22%250D%250A%2520%2520%2520%2520%257B%2520-43%252C%252021%252C%252050%252C%2520%252085%252C%2520200%252C%2520200%252C%2520232%252C%2520218%252C%2520315%257D%2520%2520%252F%252FAFP%252010-30-22%250D%250A%2520%2520%257D%253B%250D%250A%250D%250A%2520%2520grat%2520%253D%2520%2528float%2529%2528SR%255BSampleRate%255D.rate%2520%252F%25208000.0%2529%2520%252F%2520%2528float%2529%25281%2520%253C%253C%2520spectrum_zoom%2529%253B%2520%2520%2520%2520%2520%252F%252F%25201%252C%25202%252C%25204%252C%25208%252C%252016%252C%252032%252C%252064%2520.%2520.%2520.%25204096%250D%250A%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%2520%2520tft.fillRect%2528WATERFALL_LEFT_X%252C%2520WATERFALL_TOP_Y%252C%2520MAX_WATERFALL_WIDTH%2520%252B%25205%252C%2520tft.getFontHeight%2528%2529%2520%252B%25205%252C%2520RA8875_BLACK%2529%253B%2520%2520%252F%252F%25204-16-2022%2520JACK%250D%250A%250D%250A%2520%2520freq_calc%2520%253D%2520%2528float%2529%2528centerFreq%2520%252F%2520NEW_SI5351_FREQ_MULT%2529%253B%2520%2520%2520%2520%2520%2520%252F%252F%2520get%2520current%2520frequency%2520in%2520Hz%250D%250A%250D%250A%2520%2520if%2520%2528activeVFO%2520%253D%253D%2520VFO_A%2529%2520%257B%250D%250A%2520%2520%2520%2520currentFreqA%2520%253D%2520TxRxFreq%253B%250D%250A%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520currentFreqB%2520%253D%2520TxRxFreq%253B%250D%250A%2520%2520%257D%250D%250A%250D%250A%2520%2520if%2520%2528spectrum_zoom%2520%253D%253D%25200%2529%2520%257B%250D%250A%2520%2520%2520%2520freq_calc%2520%252B%253D%2520%2528float32_t%2529SR%255BSampleRate%255D.rate%2520%252F%25204.0%253B%250D%250A%2520%2520%257D%250D%250A%250D%250A%2520%2520if%2520%2528spectrum_zoom%2520%253C%25205%2529%2520%257B%250D%250A%2520%2520%2520%2520freq_calc%2520%253D%2520roundf%2528freq_calc%2520%252F%25201000%2529%253B%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520round%2520graticule%2520frequency%2520to%2520the%2520nearest%2520kHz%250D%250A%2520%2520%257D%2520else%2520if%2520%2528spectrum_zoom%2520%253C%25205%2529%2520%257B%250D%250A%2520%2520%2520%2520freq_calc%2520%253D%2520roundf%2528freq_calc%2520%252F%2520100%2529%2520%252F%252010%253B%2520%2520%2520%252F%252F%2520round%2520graticule%2520frequency%2520to%2520the%2520nearest%2520100Hz%250D%250A%2520%2520%2520%2520%252F%252F%2520%253D%253D%253D%2520AFP%252010-30-22%250D%250A%2520%252F%252F%2520%257D%2520else%2520if%2520%2528spectrum_zoom%2520%253D%253D%25205%2529%2520%257B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%252032x%250D%250A%2520%2520%252F%252F%2520%2520freq_calc%2520%253D%2520roundf%2528freq_calc%2520%252F%252050%2529%2520%252F%252020%253B%2520%2520%2520%2520%252F%252F%2520round%2520graticule%2520frequency%2520to%2520the%2520nearest%252050Hz%250D%250A%2520%2520%252F%252F%257D%2520else%2520if%2520%2528spectrum_zoom%2520%253C%25208%2529%2520%257B%250D%250A%2520%2520%252F%252F%2520%2520freq_calc%2520%253D%2520roundf%2528freq_calc%2520%252F%252010%2529%2520%252F%2520100%2520%253B%2520%2520%252F%252F%2520round%2520graticule%2520frequency%2520to%2520the%2520nearest%252010Hz%250D%250A%2520%252F%252F%2520%257D%2520else%2520%257B%250D%250A%2520%2520%252F%252F%2520%2520freq_calc%2520%253D%2520roundf%2528freq_calc%2529%2520%252F%25201000%253B%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520round%2520graticule%2520frequency%2520to%2520the%2520nearest%25201Hz%250D%250A%2520%2520%252F%252F%2520%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%250D%250A%2520%2520%257D%250D%250A%250D%250A%2520%2520if%2520%2528spectrum_zoom%2520%2521%253D%25200%2529%250D%250A%2520%2520%2520%2520centerIdx%2520%253D%25200%253B%250D%250A%2520%2520else%250D%250A%2520%2520%2520%2520centerIdx%2520%253D%2520-2%253B%250D%250A%250D%250A%2520%2520%252F%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%250D%250A%2520%2520%2520%2520CENTER%2520FREQUENCY%2520PRINT%250D%250A%2520%2520%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252F%250D%250A%2520%2520ultoa%2528%2528freq_calc%2520%252B%2520%2528centerIdx%2520%252A%2520grat%2529%2529%252C%2520txt%252C%2520DEC%2529%253B%250D%250A%2520%2520disp_freq%2520%253D%2520freq_calc%2520%252B%2520%2528centerIdx%2520%252A%2520grat%2529%253B%250D%250A%2520%2520bignum%2520%253D%2520%2528int%2529disp_freq%253B%250D%250A%2520%2520itoa%2528bignum%252C%2520txt%252C%2520DEC%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Make%2520into%2520a%2520string%250D%250A%2520%2520%252F%252F%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%2520AFP%252010-21-22%2520%253D%253D%253D%253D%253D%250D%250A%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%250D%250A%2520%2520%252F%252F%2520%2520%253D%253D%253D%253D%253D%253D%253D%253D%253D%2520AFP%25201-21-22%2520%253D%253D%253D%253D%253D%253D%250D%250A%2520%2520if%2520%2528spectrum_zoom%2520%253D%253D%25200%2529%2520%257B%250D%250A%2520%2520%2520%2520tft.setCursor%2528centerLine%2520-%2520140%252C%2520WATERFALL_TOP_Y%2520%2529%253B%2520%252F%252FAFP%252010-20-22%250D%250A%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520tft.setCursor%2528centerLine%2520-%252020%252C%2520WATERFALL_TOP_Y%2520%2529%253B%2520%2520%2520%252F%252FAFP%252010-20-22%250D%250A%2520%2520%257D%250D%250A%2520%2520%252F%252F%2520%2520%253D%253D%253D%253D%253D%253D%253D%253D%253D%2520AFP%25201-21-22%2520%253D%253D%253D%253D%250D%250A%2520%2520tft.print%2528txt%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%2520%2520%252F%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%250D%250A%2520%2520%2520%2520%2520PRINT%2520ALL%2520OTHER%2520FREQUENCIES%2520%2528NON-CENTER%2529%250D%250A%2520%2520%2520%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252A%252F%250D%250A%2520%2520%252F%252F%2520snprint%2528%2529%2520extremely%2520memory%2520inefficient.%2520replaced%2520with%2520simple%2520str%253F%253F%2520functions%2520JJP%250D%250A%2520%2520for%2520%2528int%2520idx%2520%253D%2520-4%253B%2520idx%2520%253C%25205%253B%2520idx%252B%252B%2529%2520%257B%250D%250A%2520%2520%2520%2520pos_help%2520%253D%2520idx2pos%255Bspectrum_zoom%2520%253C%25203%2520%253F%25200%2520%253A%25201%255D%255Bidx%2520%252B%25204%255D%253B%250D%250A%2520%2520%2520%2520if%2520%2528idx%2520%2521%253D%2520centerIdx%2529%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520ultoa%2528%2528freq_calc%2520%252B%2520%2528idx%2520%252A%2520grat%2529%2529%252C%2520txt%252C%2520DEC%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520%252F%252F%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%2520AFP%252010-21-22%2520%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%250D%250A%2520%2520%2520%2520%2520%2520if%2520%2528spectrum_zoom%2520%253D%253D%25200%2529%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520tft.setCursor%2528WATERFALL_LEFT_X%2520%252B%2520pos_help%2520%252A%2520xExpand%2520%252B%252040%252C%2520WATERFALL_TOP_Y%2520%2529%253B%2520%252F%252F%2520AFP%252010-20-22%250D%250A%2520%2520%2520%2520%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520tft.setCursor%2528WATERFALL_LEFT_X%2520%252B%2520pos_help%2520%252A%2520xExpand%2520%252B%252040%252C%2520WATERFALL_TOP_Y%2520%2529%253B%2520%2520%252F%252F%2520AFP%252010-20-22%250D%250A%2520%2520%2520%2520%2520%2520%257D%250D%250A%2520%2520%2520%2520%2520%2520%252F%252F%2520%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%2520%2520AFP%252010-21-22%250D%250A%2520%2520%2520%2520%2520%2520tft.print%2528txt%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520if%2520%2528idx%2520%253C%25204%2529%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520tft.drawFastVLine%2528%2528WATERFALL_LEFT_X%2520%252B%2520pos_help%2520%252A%2520xExpand%2520%252B%252060%2529%252C%2520WATERFALL_TOP_Y%2520-%25205%252C%25207%252C%2520RA8875_YELLOW%2529%253B%2520%2520%2520%2520%252F%252F%2520Tick%2520marks%2520depending%2520on%2520zoom%250D%250A%2520%2520%2520%2520%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520tft.drawFastVLine%2528%2528WATERFALL_LEFT_X%2520%252B%2520%2528pos_help%2520%252B%25209%2529%2520%252A%2520xExpand%2520%252B%252060%2529%252C%2520WATERFALL_TOP_Y%2520-%25205%252C%25207%252C%2520RA8875_YELLOW%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520%257D%250D%250A%2520%2520%2520%2520%257D%250D%250A%2520%2520%2520%2520if%2520%2528spectrum_zoom%2520%253E%25202%2520%257C%257C%2520freq_calc%2520%253E%25201000%2529%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520idx%252B%252B%253B%250D%250A%2520%2520%2520%2520%257D%250D%250A%2520%2520%257D%250D%250A%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25201%2529%253B%250D%250A%2520%2520ShowBandwidth%2528%2529%253B%250D%250A%2520%2520%250D%250A%257D%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520void%2520ShowAnalogGain%2528%2529%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%2520%2520%2520%2520%252F%252F%2520This%2520function%2520draws%2520the%2520frequency%2520bar%2520at%2520the%2520bottom%2520of%2520the%2520spectrum%2520scope%252C%2520putting%2520markers%2520at%2520every%2520graticule%2520and%2520the%2520full%2520frequency%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520ShowAnalogGain%2528%2529%250D%250A%257B%250D%250A%2520%2520static%2520uint8_t%2520RF_gain_old%2520%253D%25200%253B%250D%250A%2520%2520static%2520uint8_t%2520RF_att_old%2520%2520%253D%25200%253B%250D%250A%2520%2520const%2520uint16_t%2520col%2520%253D%2520RA8875_GREEN%253B%250D%250A%2520%2520if%2520%2528%2528%2528%2528bands%255BcurrentBand%255D.RFgain%2520%2521%253D%2520RF_gain_old%2529%2520%257C%257C%2520%2528attenuator%2520%2521%253D%2520RF_att_old%2529%2529%2520%2526%2526%2520twinpeaks_tested%2520%253D%253D%25201%2529%2520%257C%257C%2520write_analog_gain%2529%250D%250A%2520%2520%257B%250D%250A%2520%2520%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%2520%2520%2520%2520tft.setCursor%2528pos_x_time%2520-%252040%252C%2520pos_y_time%2520%252B%252026%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528%2528float%2529%2528RF_gain_old%2520%252A%25201.5%2529%2529%253B%250D%250A%2520%2520%2520%2520tft.setTextColor%2528col%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528%2522dB%2520-%2522%2529%253B%250D%250A%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_BLACK%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528%2522dB%2520-%2522%2529%253B%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_BLACK%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528%2522dB%2522%2529%253B%250D%250A%2520%2520%2520%2520tft.setTextColor%2528col%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528%2522dB%2520%253D%2520%2522%2529%253B%250D%250A%250D%250A%2520%2520%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_BLACK%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528%2522dB%2522%2529%253B%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528%2522dB%2522%2529%253B%250D%250A%2520%2520%2520%2520RF_gain_old%2520%253D%2520bands%255BcurrentBand%255D.RFgain%253B%250D%250A%2520%2520%2520%2520RF_att_old%2520%253D%2520attenuator%253B%250D%250A%2520%2520%2520%2520write_analog_gain%2520%253D%25200%253B%250D%250A%2520%2520%257D%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520To%2520display%2520the%2520current%2520transmission%2520frequency%252C%2520band%252C%2520mode%252C%2520and%2520sideband%2520above%2520the%2520spectrum%2520display%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520BandInformation%2528%2529%2520%252F%252F%2520SSB%2520or%2520CW%250D%250A%257B%250D%250A%2520%2520float%2520CWFilterPosition%2520%253D%25200.0%253B%250D%250A%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%250D%250A%2520%2520tft.setCursor%25285%252C%2520FREQUENCY_Y%2520%252B%252030%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%2520%2520tft.print%2528%2522Center%2520Freq%2522%2529%253B%250D%250A%2520%2520tft.fillRect%2528100%252C%2520FREQUENCY_Y%2520%252B%252030%252C%2520300%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Clear%2520old%2520freq%2520value%250D%250A%2520%2520tft.setCursor%2528100%252C%2520FREQUENCY_Y%2520%252B%252030%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_LIGHT_ORANGE%2529%253B%250D%250A%2520%2520if%2520%2528spectrum_zoom%2520%253D%253D%2520SPECTRUM_ZOOM_1%2529%2520%257B%2520%252F%252F%2520AFP%252011-02-22%250D%250A%2520%2520%2520%2520tft.print%2528centerFreq%2520%252B%252048000%2529%253B%250D%250A%2520%2520%257D%2520else%2520%257B%2520%2520%2520%2520%2520%250D%250A%2520%2520%2520%2520tft.print%2528centerFreq%2529%253B%250D%250A%2520%2520%257D%2520%2520%250D%250A%2520%2520%250D%250A%2520%2520tft.fillRect%2528OPERATION_STATS_X%2520%252B%252050%252C%2520FREQUENCY_Y%2520%252B%252030%252C%2520300%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%2520%252F%252F%2520Clear%2520band%2520field%250D%250A%2520%2520tft.setTextColor%2528RA8875_LIGHT_ORANGE%2529%253B%250D%250A%2520%2520tft.setCursor%2528OPERATION_STATS_X%2520%252B%252050%252C%2520FREQUENCY_Y%2520%252B%252030%2529%253B%250D%250A%2520%2520if%2520%2528activeVFO%2520%253D%253D%2520VFO_A%2529%2520%257B%250D%250A%2520%2520%2520%2520tft.print%2528bands%255BcurrentBandA%255D.name%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Show%2520band%2520--%252040M%250D%250A%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520tft.print%2528bands%255BcurrentBandB%255D.name%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Show%2520band%2520--%252040M%250D%250A%2520%2520%257D%250D%250A%250D%250A%2520%2520tft.fillRect%2528OPERATION_STATS_X%2520%252B%252090%252C%2520FREQUENCY_Y%2520%252B%252030%252C%252070%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%2520%252F%252FAFP%252010-18-22%250D%250A%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%2520%2520tft.setCursor%2528OPERATION_STATS_X%2520%252B%252090%252C%2520FREQUENCY_Y%2520%252B%252030%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252FAFP%252010-18-22%250D%250A%250D%250A%2520%2520%252F%252F%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%2520%2520AFP%252010-19-22%250D%250A%2520%2520if%2520%2528xmtMode%2520%253D%253D%2520CW_MODE%2520%2529%2520%257B%250D%250A%2520%2520%2520%2520tft.fillRect%2528OPERATION_STATS_X%2520%252B%252085%252C%2520FREQUENCY_Y%2520%252B%252030%252C%252070%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528%2522CW%2520%2522%2529%253B%250D%250A%2520%2520%2520%2520tft.setCursor%2528OPERATION_STATS_X%2520%252B%2520115%252C%2520FREQUENCY_Y%2520%252B%252030%2529%253B%2520%2520%252F%252FAFP%252010-18-22%250D%250A%2520%2520%2520%2520tft.print%2528CWFilter%255BCWFilterIndex%255D%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252FAFP%252010-18-22%250D%250A%2520%2520%2520%2520tft.writeTo%2528L2%2529%253B%250D%250A%2520%2520%2520%2520switch%2520%2528CWFilterIndex%2529%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520case%25200%253A%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520CWFilterPosition%2520%253D%252035.7%253B%2520%252F%252F%25200.84%2520%252A%252042.5%253B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520break%253B%250D%250A%2520%2520%2520%2520%2520%2520case%25201%253A%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520CWFilterPosition%2520%253D%252042.5%253B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520break%253B%250D%250A%2520%2520%2520%2520%2520%2520case%25202%253A%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520CWFilterPosition%2520%253D%252055.25%253B%2520%252F%252F%25201.3%2520%252A%252042.5%253B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520break%253B%250D%250A%2520%2520%2520%2520%2520%2520case%25203%253A%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520CWFilterPosition%2520%253D%252076.5%253B%2520%2520%252F%252F%25201.8%2520%252A%252042.5%253B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520break%253B%250D%250A%2520%2520%2520%2520%2520%2520case%25204%253A%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520CWFilterPosition%2520%253D%252085.0%253B%2520%2520%252F%252F%25202.0%2520%252A%252042.5%253B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520break%253B%250D%250A%2520%2520%2520%2520%2520%2520case%25205%253A%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520CWFilterPosition%2520%253D%25200.0%253B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520break%253B%250D%250A%2520%2520%2520%2520%257D%250D%250A%250D%250A%2520%2520%2520%2520tft.fillRect%2528BAND_INDICATOR_X%2520-%25208%252C%2520AUDIO_SPECTRUM_TOP%252C%2520CWFilterPosition%252C%2520120%252C%2520MAROON%2529%253B%250D%250A%2520%2520%2520%2520tft.drawFastVLine%2528BAND_INDICATOR_X%2520-%25208%2520%252B%2520CWFilterPosition%252C%2520AUDIO_SPECTRUM_BOTTOM%2520-%2520118%252C%2520118%252C%2520RA8875_LIGHT_GREY%2529%253B%250D%250A%250D%250A%2520%2520%2520%2520tft.writeTo%2528L1%2529%253B%250D%250A%2520%2520%2520%2520%252F%252F%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%2520%2520AFP%252010-19-22%2520%253D%253D%253D%253D%253D%253D%253D%253D%253D%250D%250A%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520tft.fillRect%2528OPERATION_STATS_X%2520%252B%252090%252C%2520FREQUENCY_Y%2520%252B%252030%252C%252070%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528%2522SSB%2522%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Which%2520mode%250D%250A%2520%2520%257D%250D%250A%250D%250A%2520%2520tft.fillRect%2528OPERATION_STATS_X%2520%252B%2520160%252C%2520FREQUENCY_Y%2520%252B%252030%252C%2520tft.getFontWidth%2528%2529%2520%252A%252011%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520AFP%252011-01-22%2520Clear%2520top-left%2520menu%2520area%250D%250A%2520%2520tft.setCursor%2528OPERATION_STATS_X%2520%252B%2520160%252C%2520FREQUENCY_Y%2520%252B%252030%2529%253B%2520%2520%2520%252F%252F%2520AFP%252011-01-22%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%250D%250A%250D%250A%2520%2520%2520%2520%2520%2520switch%2520%2528bands%255BcurrentBand%255D.mode%2529%2520%257B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Which%2520mode%2520AFP%252009-22-22%250D%250A%2520%2520%2520%2520%2520%2520case%2520DEMOD_LSB%2520%253A%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520if%2520%2528activeVFO%2520%253D%253D%2520VFO_A%2529%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520tft.print%2528DEMOD%255Bbands%255BcurrentBandA%255D.mode%255D.text%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520tft.print%2528DEMOD%255Bbands%255BcurrentBandB%255D.mode%255D.text%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520%257D%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520break%253B%250D%250A%2520%2520%2520%2520%2520%2520case%2520DEMOD_USB%2520%253A%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520if%2520%2528activeVFO%2520%253D%253D%2520VFO_A%2529%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520tft.print%2528DEMOD%255Bbands%255BcurrentBandA%255D.mode%255D.text%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520tft.print%2528DEMOD%255Bbands%255BcurrentBandB%255D.mode%255D.text%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520%257D%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520break%253B%250D%250A%2520%2520%2520%2520%2520%2520case%2520DEMOD_AM%253A%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520tft.print%2528%2522%2528AM%2529%2522%2529%253B%2520%2520%252F%252FAFP%252009-22-22%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520break%253B%250D%250A%2520%2520%2520%2520%2520%2520case%2520DEMOD_SAM%253A%2520%2520%252F%252FAFP%252011-01-22%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520tft.print%2528%2522%2528SAM%2529%2520%2522%2529%253B%2520%2520%252F%252FAFP%252011-01-22%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520break%253B%250D%250A%2520%2520%2520%250D%250A%2520%2520%257D%250D%250A%2520%2520tft.fillRect%2528OPERATION_STATS_X%2520%252B%2520275%252C%2520FREQUENCY_Y%2520%252B%252030%252C%2520tft.getFontWidth%2528%2529%2520%252A%25205%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Clear%2520top-left%2520menu%2520area%250D%250A%2520%2520tft.setCursor%2528OPERATION_STATS_X%2520%252B%2520275%252C%2520FREQUENCY_Y%2520%252B%252030%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_RED%2529%253B%250D%250A%2520%2520tft.print%2528transmitPowerLevel%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Power%2520output%250D%250A%2520%2520tft.print%2528%2522%2520Watts%2522%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Format%2520frequency%2520for%2520printing%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%2520%2520%2520%2520%252F%252F%2520show%2520frequency%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520FormatFrequency%2528long%2520freq%252C%2520char%2520%252AfreqBuffer%2529%250D%250A%257B%250D%250A%2520%2520char%2520outBuffer%255B15%255D%253B%250D%250A%2520%2520int%2520i%253B%250D%250A%2520%2520ltoa%2528%2528long%2529freq%252C%2520outBuffer%252C%252010%2529%253B%250D%250A%250D%250A%2520%2520if%2520%2528freq%2520%253C%252010000000%2529%2520%257B%250D%250A%2520%2520%2520%2520freqBuffer%255B0%255D%2520%253D%2520%2527%2520%2527%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Pad%2520frequency%2520display%2520if%2520less%2520than%252020M%250D%250A%2520%2520%2520%2520strcpy%2528%2526freqBuffer%255B1%255D%252C%2520outBuffer%2529%253B%250D%250A%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520strcpy%2528freqBuffer%252C%2520outBuffer%2529%253B%250D%250A%2520%2520%257D%250D%250A%250D%250A%2520%2520strcpy%2528outBuffer%252C%2520freqBuffer%2529%253B%250D%250A%2520%2520freqBuffer%255B2%255D%2520%253D%2520%2527.%2527%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Add%2520separation%2520charcter%250D%250A%2520%2520for%2520%2528i%2520%253D%25203%253B%2520i%2520%253C%25206%253B%2520i%252B%252B%2529%2520%257B%250D%250A%2520%2520%2520%2520freqBuffer%255Bi%255D%2520%253D%2520outBuffer%255Bi%2520-%25201%255D%253B%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Next%25203%2520digit%2520chars%250D%250A%2520%2520%257D%250D%250A%2520%2520freqBuffer%255B6%255D%2520%253D%2520%2527%2520%2527%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Add%2520separation%2520charcter%250D%250A%2520%2520for%2520%2528i%2520%253D%25207%253B%2520i%2520%253C%252010%253B%2520i%252B%252B%2529%2520%257B%250D%250A%2520%2520%2520%2520freqBuffer%255Bi%255D%2520%253D%2520outBuffer%255Bi%2520-%25202%255D%253B%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Last%25203%2520digit%2520chars%250D%250A%2520%2520%257D%250D%250A%2520%2520freqBuffer%255Bi%255D%2520%253D%2520%2527%255C0%2527%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Make%2520it%2520a%2520string%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520show%2520Main%2520frequency%2520display%2520at%2520top%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%2520%2520%2520%2520%252F%252F%2520show%2520frequency%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520ShowFrequency%2528%2529%250D%250A%257B%250D%250A%2520%2520char%2520freqBuffer%255B15%255D%253B%250D%250A%2520%2520if%2520%2528activeVFO%2520%253D%253D%2520VFO_A%2529%2520%257B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Needed%2520for%2520edge%2520checking%250D%250A%2520%2520%2520%2520currentBand%2520%253D%2520currentBandA%253B%250D%250A%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520currentBand%2520%253D%2520currentBandB%253B%250D%250A%2520%2520%257D%250D%250A%250D%250A%2520%2520if%2520%2528activeVFO%2520%253D%253D%2520VFO_A%2529%2520%257B%250D%250A%2520%2520%2520%2520FormatFrequency%2528TxRxFreq%252C%2520freqBuffer%2529%253B%250D%250A%2520%2520%2520%2520tft.setFont%2528%2526FreeMonoBold24pt7b%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Large%2520font%250D%250A%2520%2520%2520%2520if%2520%2528TxRxFreq%2520%253C%2520bands%255BcurrentBandA%255D.fBandLow%2520%257C%257C%2520TxRxFreq%2520%253E%2520bands%255BcurrentBandA%255D.fBandHigh%2529%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520tft.setTextColor%2528RA8875_RED%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Out%2520of%2520band%250D%250A%2520%2520%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520In%2520US%2520band%250D%250A%2520%2520%2520%2520%257D%250D%250A%2520%2520%2520%2520tft.fillRect%2528FREQUENCY_X%252C%2520FREQUENCY_Y%2520-%252012%252C%2520VFOA_PIXEL_LENGTH%252C%2520FREQUENCY_PIXEL_HI%252C%2520RA8875_BLACK%2529%253B%2520%252F%252F%2520delete%2520old%2520freq%250D%250A%2520%2520%2520%2520tft.setCursor%2528FREQUENCY_X%252C%2520FREQUENCY_Y%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528freqBuffer%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Show%2520VFO_A%250D%250A%250D%250A%2520%2520%2520%2520tft.setFont%2528%2526FreeMonoBold18pt7b%2529%253B%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_LIGHT_GREY%2529%253B%250D%250A%2520%2520%2520%2520tft.setCursor%2528FREQUENCY_X_SPLIT%2520%252B%252020%252C%2520FREQUENCY_Y%2520%252B%25206%2529%253B%250D%250A%2520%2520%2520%2520FormatFrequency%2528currentFreqB%252C%2520freqBuffer%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528freqBuffer%2529%253B%2520%2520%2520%2520%250D%250A%2520%2520%257D%2520else%2520%257B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Show%2520VFO_B%250D%250A%2520%2520%2520%2520FormatFrequency%2528TxRxFreq%252C%2520freqBuffer%2529%253B%250D%250A%2520%2520%2520%2520tft.fillRect%2528FREQUENCY_X_SPLIT%252C%2520FREQUENCY_Y%2520-%252012%252C%2520VFOB_PIXEL_LENGTH%252C%2520FREQUENCY_PIXEL_HI%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520%2520%2520tft.setCursor%2528FREQUENCY_X_SPLIT%252C%2520FREQUENCY_Y%2529%253B%250D%250A%2520%2520%2520%2520tft.setFont%2528%2526FreeMonoBold24pt7b%2529%253B%250D%250A%2520%2520%2520%2520if%2520%2528TxRxFreq%2520%253C%2520bands%255BcurrentBandB%255D.fBandLow%2520%257C%257C%2520TxRxFreq%2520%253E%2520bands%255BcurrentBandB%255D.fBandHigh%2529%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520tft.setTextColor%2528RA8875_RED%2529%253B%250D%250A%2520%2520%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%2520%2520%2520%2520%257D%250D%250A%2520%2520%2520%2520tft.print%2528freqBuffer%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Show%2520VFO_A%250D%250A%250D%250A%2520%2520%2520%2520tft.setFont%2528%2526FreeMonoBold18pt7b%2529%253B%250D%250A%2520%2520%2520%2520FormatFrequency%2528TxRxFreq%252C%2520freqBuffer%2529%253B%250D%250A%252F%252F%2520%2520%2520%2520tft.fillRect%2528FREQUENCY_X%252C%2520FREQUENCY_Y%2520-%252012%252C%2520VFOA_PIXEL_LENGTH%252C%2520FREQUENCY_PIXEL_HI%252C%2520RA8875_BLACK%2529%253B%2520%252F%252F%2520delete%2520old%2520freq%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_LIGHT_GREY%2529%253B%250D%250A%2520%2520%2520%2520tft.setCursor%2528FREQUENCY_X%252C%2520FREQUENCY_Y%2520%252B%25206%2529%253B%250D%250A%2520%2520%2520%2520FormatFrequency%2528currentFreqA%252C%2520freqBuffer%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528freqBuffer%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Show%2520VFO_A%2520%2520%2520%2520%250D%250A%2520%2520%257D%250D%250A%250D%250A%2520%2520tft.setFontDefault%2528%2529%253B%250D%250A%257D%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Display%2520dBm%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520DisplaydbM%2528%2529%250D%250A%257B%250D%250A%2520%2520char%2520buff%255B10%255D%253B%250D%250A%2520%2520const%2520char%252A%2520unit_label%253B%250D%250A%2520%2520int16_t%2520smeterPad%253B%250D%250A%2520%2520float32_t%2520audioLogAveSq%253B%250D%250A%2520%2520float32_t%2520slope%2520%2520%2520%2520%2520%2520%2520%2520%2520%253D%252010.0%253B%250D%250A%2520%2520float32_t%2520cons%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%253D%2520-92%253B%250D%250A%250D%250A%2520%2520audioLogAveSq%2520%253D%252010%2520%252A%2520log10f_fast%2528audioMaxSquaredAve%2529%2520%252B%252010%253B%2520%252F%252FAFP%252009-18-22%250D%250A%2520%2520smeterPad%2520%253D%2520map%2528audioLogAveSq%252C%25205%252C%252035%252C%2520575%252C%2520635%2529%253B%2520%2520%2520%252F%252FAFP%252009-18-22%250D%250A%2520%2520tft.fillRect%2528SMETER_X%2520%252B%25201%252C%2520SMETER_Y%2520%252B%25201%252C%2520SMETER_BAR_LENGTH%252C%2520%2520%2520%2520SMETER_BAR_HEIGHT%252C%2520RA8875_BLACK%2529%253B%252F%252FAFP%252009-18-22%2520%2520Erase%2520old%2520bar%250D%250A%2520%2520tft.fillRect%2528SMETER_X%2520%252B%25201%252C%2520SMETER_Y%2520%252B%25201%252C%2520smeterPad%2520-%2520SMETER_X%252C%2520SMETER_BAR_HEIGHT%252C%2520RA8875_RED%2529%253B%2520%2520%252F%252FAFP%252009-18-22%250D%250A%2520%2520dbm%2520%253D%2520dbm_calibration%2520%252B%2520bands%255BcurrentBand%255D.gainCorrection%2520%252B%2520%2528float32_t%2529attenuator%2520%252B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520slope%2520%252A%2520log10f_fast%2528audioMaxSquaredAve%2529%2520%252B%2520cons%2520-%2520%2528float32_t%2529bands%255BcurrentBand%255D.RFgain%2520%252A%25201.5%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%250D%250A%2520%2520unit_label%2520%2520%2520%2520%2520%2520%2520%2520%253D%2520%2522dBm%2522%253B%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%250D%250A%2520%2520tft.fillRect%2528SMETER_X%2520%252B%2520185%252C%2520SMETER_Y%252C%252080%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%2520%2520%252F%252F%2520The%2520dB%2520figure%2520at%2520end%2520of%2520S%2520meter%250D%250A%2520%2520MyDrawFloat%2528dbm%252C%25201%252C%2520SMETER_X%2520%252B%2520184%252C%2520SMETER_Y%252C%2520buff%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%2520%2520tft.print%2528unit_label%2529%253B%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Display%2520the%2520current%2520temperature%2520and%2520load%2520figures%2520for%2520T4.1%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520int%2520notchF%2520%2520%2520%2520%2520%2520%2520%2520the%2520notch%2520to%2520use%250D%250A%2520%2520%2520%2520int%2520MODE%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520the%2520current%2520MODE%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520ShowTempAndLoad%2528%2529%250D%250A%257B%250D%250A%2520%2520char%2520buff%255B10%255D%253B%250D%250A%2520%2520int%2520valueColor%2520%253D%2520RA8875_GREEN%253B%250D%250A%2520%2520double%2520block_time%253B%250D%250A%2520%2520double%2520processor_load%253B%250D%250A%2520%2520elapsed_micros_mean%2520%253D%2520elapsed_micros_sum%2520%252F%2520elapsed_micros_idx_t%253B%250D%250A%250D%250A%2520%2520block_time%2520%253D%2520128.0%2520%252F%2520%2528double%2529SR%255BSampleRate%255D.rate%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520one%2520audio%2520block%2520is%2520128%2520samples%2520and%2520uses%2520this%2520in%2520seconds%250D%250A%2520%2520block_time%2520%253D%2520block_time%2520%252A%2520N_BLOCKS%253B%250D%250A%250D%250A%2520%2520block_time%2520%252A%253D%25201000000.0%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520now%2520in%2520%25C2%25B5seconds%250D%250A%2520%2520processor_load%2520%253D%2520elapsed_micros_mean%2520%252F%2520block_time%2520%252A%2520100%253B%2520%2520%2520%2520%252F%252F%2520take%2520audio%2520processing%2520time%2520divide%2520by%2520block_time%252C%2520convert%2520to%2520%2525%250D%250A%250D%250A%2520%2520if%2520%2528processor_load%2520%253E%253D%2520100.0%2529%2520%257B%250D%250A%2520%2520%2520%2520processor_load%2520%253D%2520100.0%253B%250D%250A%2520%2520%2520%2520valueColor%2520%253D%2520RA8875_RED%253B%250D%250A%2520%2520%257D%250D%250A%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%250D%250A%2520%2520CPU_temperature%2520%253D%2520TGetTemp%2528%2529%253B%250D%250A%250D%250A%2520%2520tft.fillRect%2528TEMP_X_OFFSET%252C%2520TEMP_Y_OFFSET%252C%2520MAX_WATERFALL_WIDTH%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%2520%2520%2520%2520%252F%252F%2520Erase%2520current%2520data%250D%250A%2520%2520tft.setCursor%2528TEMP_X_OFFSET%252C%2520TEMP_Y_OFFSET%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%2520%2520tft.print%2528%2522Temp%253A%2522%2529%253B%250D%250A%2520%2520tft.setCursor%2528TEMP_X_OFFSET%2520%252B%2520120%252C%2520TEMP_Y_OFFSET%2529%253B%250D%250A%2520%2520tft.print%2528%2522Load%253A%2522%2529%253B%250D%250A%250D%250A%2520%2520tft.setTextColor%2528valueColor%2529%253B%250D%250A%2520%2520MyDrawFloat%2528CPU_temperature%252C%25201%252C%2520TEMP_X_OFFSET%2520%252B%2520tft.getFontWidth%2528%2529%2520%252A%25203%252C%2520TEMP_Y_OFFSET%252C%2520buff%2529%253B%250D%250A%250D%250A%2520%2520tft.drawCircle%2528TEMP_X_OFFSET%2520%252B%252080%252C%2520TEMP_Y_OFFSET%2520%252B%25205%252C%25203%252C%2520RA8875_GREEN%2529%253B%250D%250A%2520%2520MyDrawFloat%2528processor_load%252C%25201%252C%2520TEMP_X_OFFSET%2520%252B%2520150%252C%2520TEMP_Y_OFFSET%252C%2520buff%2529%253B%250D%250A%2520%2520tft.print%2528%2522%2525%2522%2529%253B%250D%250A%2520%2520elapsed_micros_idx_t%2520%253D%25200%253B%250D%250A%2520%2520elapsed_micros_sum%2520%253D%25200%253B%250D%250A%2520%2520elapsed_micros_mean%2520%253D%25200%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520format%2520a%2520floating%2520point%2520number%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520float%2520val%2520%2520%2520%2520%2520%2520%2520%2520%2520the%2520value%2520to%2520format%250D%250A%2520%2520%2520%2520int%2520decimals%2520%2520%2520%2520%2520%2520the%2520number%2520of%2520decimal%2520places%250D%250A%2520%2520%2520%2520int%2520x%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520the%2520x%2520coordinate%2520for%2520display%250D%250A%2520%2520%2520%2520int%2520y%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520y%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2522%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520MyDrawFloat%2528float%2520val%252C%2520int%2520decimals%252C%2520int%2520x%252C%2520int%2520y%252C%2520char%2520%252Abuff%2529%250D%250A%257B%250D%250A%2520%2520dtostrf%2528val%252C%2520FLOAT_PRECISION%252C%2520decimals%252C%2520buff%2529%253B%2520%2520%252F%252F%2520Use%25208%2520as%2520that%2520is%2520the%2520max%2520prevision%2520on%2520a%2520float%250D%250A%250D%250A%2520%2520tft.fillRect%2528x%2520%252B%252015%252C%2520y%252C%252012%2520%252A%2520sizeof%2528buff%2529%252C%252015%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520tft.setCursor%2528x%252C%2520y%2529%253B%250D%250A%250D%250A%2520%2520tft.print%2528buff%2529%253B%250D%250A%257D%250D%250A%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Shows%2520the%2520startup%2520settings%2520for%2520the%2520information%2520displayed%2520int%2520he%2520lower-right%2520box.%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520UpdateInfoWindow%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.fillRect%2528INFORMATION_WINDOW_X%2520-%25208%252C%2520INFORMATION_WINDOW_Y%252C%2520250%252C%2520170%252C%2520RA8875_BLACK%2529%253B%2520%2520%252F%252F%2520Clear%2520fields%250D%250A%2520%2520tft.drawRect%2528BAND_INDICATOR_X%2520-%252010%252C%2520%2520%2520%2520BAND_INDICATOR_Y%2520-%25202%252C%2520260%252C%2520200%252C%2520RA8875_LIGHT_GREY%2529%253B%2520%252F%252F%2520Redraw%2520Info%2520Window%2520Box%250D%250A%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25201%2529%253B%250D%250A%2520%2520UpdateVolumeField%2528%2529%253B%250D%250A%2520%2520UpdateAGCField%2528%2529%253B%250D%250A%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%2520%2520UpdateIncrementField%2528%2529%253B%250D%250A%2520%2520UpdateNotchField%2528%2529%253B%250D%250A%2520%2520UpdateNoiseField%2528%2529%253B%250D%250A%2520%2520UpdateZoomField%2528%2529%253B%250D%250A%2520%2520UpdateCompressionField%2528%2529%253B%250D%250A%2520%2520UpdateWPMField%2528%2529%253B%250D%250A%2520%2520UpdateDecoderField%2528%2529%253B%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Updates%2520the%2520Volume%2520setting%2520on%2520the%2520display%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520UpdateVolumeField%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25201%2529%253B%250D%250A%250D%250A%2520%2520tft.setCursor%2528BAND_INDICATOR_X%2520%252B%252020%252C%2520BAND_INDICATOR_Y%2529%253B%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Volume%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%2520%2520tft.print%2528%2522Vol%253A%2522%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%2520%2520tft.fillRect%2528BAND_INDICATOR_X%2520%252B%252090%252C%2520BAND_INDICATOR_Y%252C%2520tft.getFontWidth%2528%2529%2520%252A%25203%2520%252B%25202%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520tft.setCursor%2528FIELD_OFFSET_X%252C%2520BAND_INDICATOR_Y%2529%253B%250D%250A%2520%2520tft.print%2528audioVolume%2529%253B%250D%250A%257D%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Updates%2520the%2520AGC%2520on%2520the%2520display%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520UpdateAGCField%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.fillRect%2528AGC_X_OFFSET%252C%2520AGC_Y_OFFSET%252C%2520100%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25201%2529%253B%250D%250A%2520%2520tft.setCursor%2528BAND_INDICATOR_X%2520%252B%2520150%252C%2520BAND_INDICATOR_Y%2529%253B%250D%250A%2520%2520switch%2520%2528AGCMode%2529%2520%257B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520The%2520opted%2520for%2520AGC%250D%250A%2520%2520%2520%2520case%25200%253A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Off%250D%250A%2520%2520%2520%2520%2520%2520tft.setTextColor%2528DARKGREY%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520tft.print%2528%2522AGC%2522%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520tft.setCursor%2528BAND_INDICATOR_X%2520%252B%2520200%252C%2520BAND_INDICATOR_Y%2520%252B%252015%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520tft.print%2528%2522%2520off%2522%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25201%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520break%253B%250D%250A%2520%2520%2520%2520case%25201%253A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Slow%250D%250A%2520%2520%2520%2520%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520tft.print%2528%2522AGC%2520S%2522%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520break%253B%250D%250A%250D%250A%2520%2520%2520%2520case%25202%253A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Medium%250D%250A%2520%2520%2520%2520%2520%2520tft.setTextColor%2528ORANGE%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520tft.print%2528%2522AGC%2520M%2522%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520break%253B%250D%250A%250D%250A%2520%2520%2520%2520case%25203%253A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Fast%250D%250A%2520%2520%2520%2520%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520tft.print%2528%2522AGC%2520F%2522%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520break%253B%250D%250A%250D%250A%2520%2520%2520%2520default%253A%250D%250A%2520%2520%2520%2520%2520%2520break%253B%250D%250A%2520%2520%257D%250D%250A%2520%2520%252F%252Ftft.setCursor%2528BAND_INDICATOR_X%2520%252B%2520180%252C%2520BAND_INDICATOR_Y%2529%253B%250D%250A%2520%2520%252F%252Ftft.print%2528%2522AGC%2522%2529%253B%250D%250A%257D%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Updates%2520the%2520increment%2520setting%2520on%2520the%2520display%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520UpdateIncrementField%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Frequency%2520increment%250D%250A%2520%2520tft.setCursor%2528INCREMENT_X%252C%2520INCREMENT_Y%2529%253B%250D%250A%2520%2520tft.print%2528%2522Increment%253A%2520%2522%2529%253B%250D%250A%2520%2520tft.setCursor%2528INCREMENT_X%2520%252B%2520148%252C%2520INCREMENT_Y%2529%253B%250D%250A%2520%2520tft.print%2528%2522FT%2520Inc%253A%2520%2522%2529%253B%250D%250A%250D%250A%2520%2520tft.fillRect%2528INCREMENT_X%2520%252B%252090%252C%2520INCREMENT_Y%252C%2520tft.getFontWidth%2528%2529%2520%252A%25207%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520tft.setCursor%2528FIELD_OFFSET_X%2520-%25203%252C%2520INCREMENT_Y%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%2520%2520tft.print%2528freqIncrement%2529%253B%250D%250A%250D%250A%2520%2520tft.fillRect%2528INCREMENT_X%2520%252B%2520210%252C%2520INCREMENT_Y%252C%2520tft.getFontWidth%2528%2529%2520%252A%25204%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520tft.setCursor%2528FIELD_OFFSET_X%2520%252B%2520120%252C%2520INCREMENT_Y%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%2520%2520tft.print%2528stepFT%2529%253B%250D%250A%257D%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Updates%2520the%2520notch%2520value%2520on%2520the%2520display%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520UpdateNotchField%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%250D%250A%2520%2520if%2520%2528NR_first_time%2520%253D%253D%25200%2529%2520%257B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Notch%2520setting%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_LIGHT_GREY%2529%253B%250D%250A%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%2520%2520%257D%250D%250A%2520%2520tft.fillRect%2528NOTCH_X%2520%252B%252060%252C%2520NOTCH_Y%252C%2520150%252C%2520tft.getFontHeight%2528%2529%2520%252B%25205%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520tft.setCursor%2528NOTCH_X%2520-%252032%252C%2520NOTCH_Y%2529%253B%250D%250A%2520%2520tft.print%2528%2522AutoNotch%253A%2522%2529%253B%250D%250A%2520%2520tft.setCursor%2528FIELD_OFFSET_X%252C%2520NOTCH_Y%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%2520%2520if%2520%2528ANR_notchOn%2520%253D%253D%25200%2529%2520%257B%250D%250A%2520%2520%2520%2520tft.print%2528%2522Off%2522%2529%253B%250D%250A%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520tft.print%2528%2522On%2522%2529%253B%250D%250A%2520%2520%2520%2520ANR_notchOn%2520%253D%25201%253B%2520%252F%252FAFP%252010-21-22%250D%250A%2520%2520%257D%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Updates%2520the%2520zoom%2520setting%2520on%2520the%2520display%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520UpdateZoomField%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%250D%250A%2520%2520tft.fillRect%2528ZOOM_X%252C%2520ZOOM_Y%252C%2520100%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Display%2520zoom%2520factor%250D%250A%2520%2520tft.setCursor%2528ZOOM_X%252C%2520ZOOM_Y%2529%253B%250D%250A%2520%2520tft.print%2528%2522Zoom%253A%2522%2529%253B%250D%250A%2520%2520tft.setCursor%2528FIELD_OFFSET_X%252C%2520ZOOM_Y%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%2520%2520tft.print%2528zoomOptions%255BzoomIndex%255D%2529%253B%250D%250A%257D%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Updates%2520the%2520compression%2520setting%2520in%2520Info%2520Window%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520UpdateCompressionField%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.fillRect%2528COMPRESSION_X%252C%2520COMPRESSION_Y%252C%2520200%252C%25208%252C%2520RA8875_BLACK%2529%253B%250D%250A%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Display%2520zoom%2520factor%250D%250A%2520%2520tft.setCursor%2528COMPRESSION_X%252C%2520COMPRESSION_Y%2529%253B%250D%250A%2520%2520tft.print%2528%2522Compress%253A%2520%2522%2529%253B%250D%250A%2520%2520tft.setCursor%2528FIELD_OFFSET_X%252C%2520COMPRESSION_Y%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%2520%2520tft.print%2528currentMicThreshold%2529%253B%250D%250A%257D%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Updates%2520whether%2520the%2520decoder%2520is%2520on%2520or%2520off%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520UpdateDecoderField%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Display%2520zoom%2520factor%250D%250A%2520%2520tft.setCursor%2528DECODER_X%252C%2520DECODER_Y%2529%253B%250D%250A%2520%2520tft.print%2528%2522Decoder%253A%2522%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%2520%2520tft.fillRect%2528DECODER_X%2520%252B%252060%252C%2520DECODER_Y%252C%2520tft.getFontWidth%2528%2529%2520%252A%252020%252C%2520tft.getFontHeight%2528%2529%2520%252B%25205%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520tft.setCursor%2528FIELD_OFFSET_X%252C%2520DECODER_Y%2529%253B%250D%250A%2520%2520if%2520%2528decoderFlag%2520%253D%253D%2520DECODE_ON%2529%2520%257B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520AFP%252009-27-22%250D%250A%2520%2520%2520%2520tft.print%2528%2522On%2520%2522%2529%253B%250D%250A%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520tft.print%2528%2522Off%2522%2529%253B%250D%250A%2520%2520%257D%250D%250A%2520%2520if%2520%2528xmtMode%2520%253D%253D%2520CW_MODE%2520%2526%2526%2520decoderFlag%2520%253D%253D%2520DECODE_ON%2529%2520%257B%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520In%2520CW%2520mode%2520with%2520decoder%2520on%253F%2520AFP%252009-27-22%250D%250A%2520%2520%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_LIGHT_GREY%2529%253B%250D%250A%2520%2520%2520%2520tft.setCursor%2528FIELD_OFFSET_X%252C%2520DECODER_Y%2520%252B%252015%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528%2522CW%2520Fine%2520Adjust%2522%2529%253B%250D%250A%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520tft.fillRect%2528FIELD_OFFSET_X%252C%2520DECODER_Y%2520%252B%252015%252C%2520tft.getFontWidth%2528%2529%2520%252A%252015%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520%257D%250D%250A%257D%250D%250A%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Updates%2520the%2520WPM%2520setting%2520on%2520the%2520display%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520UpdateWPMField%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Display%2520zoom%2520factor%250D%250A%2520%2520tft.setCursor%2528WPM_X%252C%2520WPM_Y%2529%253B%250D%250A%2520%2520tft.print%2528%2522Keyer%253A%2522%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%2520%2520tft.fillRect%2528WPM_X%2520%252B%252060%252C%2520WPM_Y%252C%2520tft.getFontWidth%2528%2529%2520%252A%252015%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520tft.setCursor%2528FIELD_OFFSET_X%252C%2520WPM_Y%2529%253B%250D%250A%2520%2520EEPROMData.currentWPM%2520%253D%2520currentWPM%253B%250D%250A%2520%2520if%2520%2528EEPROMData.keyType%2520%253D%253D%2520KEYER%2529%2520%257B%250D%250A%2520%2520%2520%2520tft.print%2528%2522Paddles%2520--%2520%2522%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528EEPROMData.currentWPM%2529%253B%250D%250A%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520tft.print%2528%2522Straight%2520Key%2522%2529%253B%250D%250A%2520%2520%257D%250D%250A%257D%250D%250A%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Updates%2520the%2520noise%2520field%2520on%2520the%2520display%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520UpdateNoiseField%2528%2529%250D%250A%257B%250D%250A%2520%2520const%2520char%2520%252Afilter%255B%255D%2520%253D%2520%257B%2522Off%2522%252C%2520%2522Kim%2522%252C%2520%2522Spectral%2522%252C%2520%2522LMS%2522%257D%253B%2520%252F%252FAFP%252009-19-22%250D%250A%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%250D%250A%2520%2520tft.fillRect%2528FIELD_OFFSET_X%252C%2520NOISE_REDUCE_Y%252C%252080%252C%2520tft.getFontHeight%2528%2529%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Noise%2520reduction%250D%250A%2520%2520tft.setCursor%2528NOISE_REDUCE_X%252C%2520NOISE_REDUCE_Y%2529%253B%250D%250A%2520%2520tft.print%2528%2522Noise%253A%2522%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%2520%2520tft.setCursor%2528FIELD_OFFSET_X%252C%2520NOISE_REDUCE_Y%2529%253B%250D%250A%2520%2520tft.print%2528filter%255BnrOptionSelect%255D%2529%253B%250D%250A%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Used%2520to%2520save%2520a%2520favortie%2520frequency%2520to%2520EEPROM%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520SetFavoriteFrequencies%2528%2529%250D%250A%257B%250D%250A%2520%2520int%2520index%253B%250D%250A%2520%2520int%2520offset%253B%250D%250A%2520%2520unsigned%2520long%2520currentFreqs%255BMAX_FAVORITES%255D%253B%250D%250A%250D%250A%2520%2520EEPROMStuffFavorites%2528currentFreqs%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Read%2520current%2520values%250D%250A%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25200%2529%253B%250D%250A%250D%250A%2520%2520offset%2520%253D%2520tft.getFontHeight%2528%2529%253B%250D%250A%250D%250A%2520%2520tft.fillRect%2528BAND_INDICATOR_X%2520-%252010%252C%2520BAND_INDICATOR_Y%2520-%25202%252C%2520260%252C%2520200%252C%2520RA8875_BLACK%2529%253B%2520%2520%252F%252F%2520Clear%2520volume%2520field%250D%250A%2520%2520for%2520%2528index%2520%253D%25200%253B%2520index%2520%253C%2520MAX_FAVORITES%253B%2520index%252B%252B%2529%2520%257B%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%2520%2520%2520%2520tft.setCursor%2528BAND_INDICATOR_X%2520-%25205%252C%2520BAND_INDICATOR_Y%2520%252B%2520%2528offset%2520%252A%2520index%2529%2520%252B%25205%2529%253B%250D%250A%2520%2520%2520%2520if%2520%2528index%2520%253C%25209%2529%250D%250A%2520%2520%2520%2520%2520%2520tft.print%2528%2522%2520%2522%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528index%2520%252B%25201%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528%2522.%2520%2522%2529%253B%250D%250A%2520%2520%2520%2520if%2520%2528currentFreqs%255Bindex%255D%2520%253C%252010000000UL%2529%250D%250A%2520%2520%2520%2520%2520%2520tft.print%2528%2522%2520%2522%2529%253B%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528currentFreqs%255Bindex%255D%2529%253B%250D%250A%2520%2520%257D%250D%250A%2520%2520%252F%252F%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%250D%250A%250D%250A%2520%2520int%2520startValue%2520%253D%25200%253B%250D%250A%2520%2520int%2520currentValue%252C%2520lastValue%252C%2520oldIndex%253B%250D%250A%250D%250A%2520%2520lastValue%2520%253D%2520startValue%253B%250D%250A%2520%2520currentValue%2520%253D%2520-1%253B%250D%250A%250D%250A%2520%2520index%2520%253D%25200%253B%250D%250A%2520%2520oldIndex%2520%253D%2520-1%253B%250D%250A%2520%2520tft.fillRect%2528BAND_INDICATOR_X%2520%252B%252030%252C%2520BAND_INDICATOR_Y%2520%252B%2520%2528offset%2520%252A%2520index%2529%2520%252B%25205%252C%252070%252C%252015%252C%2520RA8875_MAGENTA%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%2520%2520while%2520%2528true%2529%2520%257B%250D%250A%2520%2520%2520%2520%252F%252FMyDelay%2528ENCODER_DELAY%2529%253B%250D%250A%2520%2520%2520%2520if%2520%2528currentValue%2520%2521%253D%2520lastValue%2529%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520oldIndex%2520%253D%2520index%253B%250D%250A%2520%2520%2520%2520%2520%2520if%2520%2528currentValue%2520%253E%2520lastValue%2529%2520%257B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Adjust%2520frequency%2520index%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520index%252B%252B%253B%250D%250A%2520%2520%2520%2520%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520index--%253B%250D%250A%2520%2520%2520%2520%2520%2520%257D%250D%250A%2520%2520%2520%2520%2520%2520if%2520%2528index%2520%253C%25200%2529%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Check%2520for%2520over%252Funderflow%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520index%2520%253D%25200%253B%250D%250A%2520%2520%2520%2520%2520%2520if%2520%2528index%2520%253D%253D%2520MAX_FAVORITES%2529%250D%250A%2520%2520%2520%2520%2520%2520%2520%2520index%2520%253D%2520MAX_FAVORITES%2520-%25201%253B%250D%250A%250D%250A%2520%2520%2520%2520%2520%2520lastValue%2520%253D%2520currentValue%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Reset%2520for%2520another%2520pass%253F%250D%250A%250D%250A%2520%2520%2520%2520%2520%2520tft.fillRect%2528BAND_INDICATOR_X%2520%252B%252030%252C%2520BAND_INDICATOR_Y%2520%252B%2520%2528offset%2520%252A%2520oldIndex%2529%2520%252B%25205%252C%252070%252C%252015%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520tft.setCursor%2528BAND_INDICATOR_X%2520%252B%252030%252C%2520BAND_INDICATOR_Y%2520%252B%2520%2528offset%2520%252A%2520oldIndex%2529%2520%252B%25205%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520tft.print%2528currentFreqs%255BoldIndex%255D%2529%253B%250D%250A%250D%250A%2520%2520%2520%2520%2520%2520tft.fillRect%2528BAND_INDICATOR_X%2520%252B%252030%252C%2520BAND_INDICATOR_Y%2520%252B%2520%2528offset%2520%252A%2520index%2529%2520%252B%25205%252C%252070%252C%252015%252C%2520RA8875_MAGENTA%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520tft.setCursor%2528BAND_INDICATOR_X%2520%252B%252030%252C%2520BAND_INDICATOR_Y%2520%252B%2520%2528offset%2520%252A%2520index%2529%2520%252B%25205%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520tft.print%2528currentFreq%2529%253B%250D%250A%2520%2520%2520%2520%257D%250D%250A%2520%2520%2520%2520selectExitMenues.update%2528%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Exit%2520submenu%2520button%250D%250A%2520%2520%2520%2520if%2520%2528selectExitMenues.fallingEdge%2528%2529%2529%2520%257B%250D%250A%2520%2520%2520%2520%2520%2520EEPROMData.favoriteFreqs%255Bindex%255D%2520%253D%2520currentFreq%253B%2520%2520%2520%2520%2520%2520%252F%252F%2520Update%2520the%2520EEPROM%2520value%250D%250A%252F%252F%252F%2520%2520%2520%2520%2520%2520EEPROMWrite%2528%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Save%2520it%250D%250A%2520%2520%2520%2520%2520%2520break%253B%250D%250A%2520%2520%2520%2520%257D%250D%250A%2520%2520%257D%250D%250A%2520%2520tft.drawRect%2528BAND_INDICATOR_X%2520-%252010%252C%2520BAND_INDICATOR_Y%2520-%25201%252C%2520260%252C%2520185%252C%2520RA8875_LIGHT_GREY%2529%253B%250D%250A%250D%250A%2520%2520tft.fillRect%2528BAND_INDICATOR_X%2520-%25209%252C%2520BAND_INDICATOR_Y%2520%252B%25201%252C%2520180%252C%2520178%252C%2520RA8875_BLACK%2529%253B%2520%2520%252F%252F%2520Clear%2520volume%2520field%250D%250A%2520%2520DrawAudioSpectContainer%2528%2529%253B%250D%250A%2520%2520UpdateInfoWindow%2528%2529%253B%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Implement%2520the%2520notch%2520filter%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520int%2520notchF%2520%2520%2520%2520%2520%2520%2520%2520the%2520notch%2520to%2520use%250D%250A%2520%2520%2520%2520int%2520MODE%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520the%2520current%2520MODE%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520ShowNotch%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.fillRect%2528NOTCH_X%252C%2520NOTCH_Y%2520%252B%252030%252C%2520150%252C%2520tft.getFontHeight%2528%2529%2520%252B%25205%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520if%2520%2528NR_first_time%2520%253D%253D%25200%2529%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_LIGHT_GREY%2529%253B%250D%250A%2520%2520else%250D%250A%2520%2520%2520%2520tft.setTextColor%2528RA8875_WHITE%2529%253B%250D%250A%2520%2520tft.setCursor%2528NOTCH_X%2520-%25206%252C%2520NOTCH_Y%2529%253B%250D%250A%2520%2520tft.print%2528%2522Auto%2520Notch%253A%2522%2529%253B%250D%250A%2520%2520tft.setCursor%2528NOTCH_X%2520%252B%252090%252C%2520NOTCH_Y%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_GREEN%2529%253B%250D%250A%250D%250A%2520%2520if%2520%2528ANR_notchOn%2529%2520%257B%250D%250A%2520%2520%2520%2520tft.print%2528%2522On%2522%2529%253B%250D%250A%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520tft.print%2528%2522Off%2522%2529%253B%250D%250A%2520%2520%257D%250D%250A%250D%250A%257D%2520%252F%252F%2520end%2520void%2520show_notch%250D%250A%250D%250A%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520This%2520function%2520draws%2520the%2520Info%2520Window%2520frame%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520DrawInfoWindowFrame%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.drawRect%2528BAND_INDICATOR_X%2520-%252010%252C%2520BAND_INDICATOR_Y%2520-%25202%252C%2520260%252C%2520200%252C%2520RA8875_LIGHT_GREY%2529%253B%250D%250A%2520%2520tft.fillRect%2528TEMP_X_OFFSET%252C%2520TEMP_Y_OFFSET%2520%252B%252080%252C%252080%252C%2520tft.getFontHeight%2528%2529%2520%252B%252010%252C%2520RA8875_BLACK%2529%253B%2520%2520%252F%252F%2520Clear%2520volume%2520field%250D%250A%257D%250D%250A%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520This%2520function%2520redraws%2520the%2520entire%2520display%2520screen%2520where%2520the%2520equalizers%2520appeared%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520RedrawDisplayScreen%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.fillWindow%2528%2529%253B%250D%250A%2520%2520UpdateIncrementField%2528%2529%253B%250D%250A%2520%2520AGCPrep%2528%2529%253B%250D%250A%2520%2520UpdateAGCField%2528%2529%253B%250D%250A%2520%2520EncoderVolume%2528%2529%253B%250D%250A%2520%2520SetBand%2528%2529%253B%250D%250A%2520%2520%252F%252FControlFilterF%2528%2529%253B%250D%250A%2520%2520BandInformation%2528%2529%253B%250D%250A%2520%2520%252F%252FFilterBandwidth%2528%2529%253B%250D%250A%2520%2520ShowFrequency%2528%2529%253B%250D%250A%2520%2520SetFreq%2528%2529%253B%250D%250A%2520%2520SetBandRelay%2528HIGH%2529%253B%250D%250A%2520%2520SpectralNoiseReductionInit%2528%2529%253B%250D%250A%2520%2520UpdateNoiseField%2528%2529%253B%250D%250A%2520%2520SetI2SFreq%2528SR%255BSampleRate%255D.rate%2529%253B%250D%250A%2520%2520DrawBandWidthIndicatorBar%2528%2529%253B%250D%250A%2520%2520ShowName%2528%2529%253B%250D%250A%2520%2520ShowSpectrumdBScale%2528%2529%253B%250D%250A%2520%2520ShowTransmitReceiveStatus%2528%2529%253B%250D%250A%2520%2520DrawSMeterContainer%2528%2529%253B%250D%250A%2520%2520DrawAudioSpectContainer%2528%2529%253B%250D%250A%2520%2520DrawSpectrumDisplayContainer%2528%2529%253B%250D%250A%2520%2520DrawFrequencyBarValue%2528%2529%253B%250D%250A%252F%252F%2520%2520DrawInfoWindowFrame%2528%2529%253B%250D%250A%2520%2520UpdateInfoWindow%2528%2529%253B%250D%250A%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Draw%2520Tuned%2520Bandwidth%2520on%2520Spectrum%2520Plot%2520%252F%252F%2520AFP%252003-27-22%2520Layers%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520DrawBandWidthIndicatorBar%2528%2529%2520%2520%252F%252F%2520AFP%252010-30-22%250D%250A%257B%250D%250A%2520%2520float%2520zoomMultFactor%2520%253D%25200.0%253B%250D%250A%2520%2520float%2520Zoom1Offset%2520%2520%2520%2520%253D%25200.0%253B%250D%250A%250D%250A%2520%2520switch%2520%2528zoomIndex%2529%2520%257B%250D%250A%2520%2520%2520%2520case%25200%2520%253A%250D%250A%2520%2520%2520%2520%2520%2520zoomMultFactor%2520%253D%25200.5%253B%250D%250A%2520%2520%2520%2520%2520%2520Zoom1Offset%2520%253D%252024000%2520%252A%25200.0053333%253B%250D%250A%2520%2520%2520%2520%2520%2520break%253B%250D%250A%250D%250A%2520%2520%2520%2520case%25201%2520%253A%250D%250A%2520%2520%2520%2520%2520%2520zoomMultFactor%2520%253D%25201.0%253B%250D%250A%2520%2520%2520%2520%2520%2520Zoom1Offset%2520%253D%25200%253B%250D%250A%2520%2520%2520%2520%2520%2520break%253B%250D%250A%250D%250A%2520%2520%2520%2520case%25202%2520%253A%250D%250A%2520%2520%2520%2520%2520%2520zoomMultFactor%2520%253D%25202.0%253B%250D%250A%2520%2520%2520%2520%2520%2520Zoom1Offset%2520%253D%25200%253B%250D%250A%2520%2520%2520%2520%2520%2520break%253B%250D%250A%250D%250A%2520%2520%2520%2520case%25203%2520%253A%250D%250A%2520%2520%2520%2520%2520%2520zoomMultFactor%2520%253D%25204.0%253B%250D%250A%2520%2520%2520%2520%2520%2520Zoom1Offset%2520%253D%25200%253B%250D%250A%2520%2520%2520%2520%2520%2520break%253B%250D%250A%250D%250A%2520%2520%2520%2520case%25204%2520%253A%250D%250A%2520%2520%2520%2520%2520%2520zoomMultFactor%2520%253D%25208.0%253B%250D%250A%2520%2520%2520%2520%2520%2520Zoom1Offset%2520%253D%25200%253B%250D%250A%2520%2520%2520%2520%2520%2520break%253B%250D%250A%2520%2520%257D%250D%250A%2520%2520newCursorPosition%2520%253D%2520%2528int%2529%2520%2528NCOFreq%2520%252A%25200.0053333%2529%2520%252A%2520zoomMultFactor%2520-%2520Zoom1Offset%253B%2520%252F%252F%2520AFP%252010-28-22%250D%250A%250D%250A%2520%2520tft.writeTo%2528L2%2529%253B%250D%250A%2520%2520tft.clearMemory%2528%2529%253B%250D%250A%2520%2520pixel_per_khz%2520%253D%2520%2528%25281%2520%253C%253C%2520spectrum_zoom%2529%2520%252A%2520SPECTRUM_RES%2520%252A%25201000.0%2520%252F%2520SR%255BSampleRate%255D.rate%2529%2520%253B%250D%250A%2520%2520filterWidth%2520%253D%2520%2528int%2529%2528%2528%2528bands%255BcurrentBand%255D.FHiCut%2520-%2520bands%255BcurrentBand%255D.FLoCut%2529%2520%252F%25201000.0%2529%2520%252A%2520pixel_per_khz%252A1.06%2529%2520%253B%2520%252F%252F%2520AFP%252010-30-22%250D%250A%2520%2520%252F%252F%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%253D%2520AFP%252009-22-22%250D%250A%250D%250A%2520%2520switch%2520%2528bands%255BcurrentBand%255D.mode%2529%2520%257B%250D%250A%2520%2520%2520%2520case%2520DEMOD_LSB%2520%253A%250D%250A%2520%2520%2520%2520%2520%2520tft.fillRect%2528centerLine%2520-%2520filterWidth%2520%252B%2520oldCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520filterWidth%252A0.96%252C%2520SPECTRUM_HEIGHT%2520-%252020%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520tft.fillRect%2528centerLine%2520-%2520filterWidth%2520%252B%2520newCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520filterWidth%252C%2520SPECTRUM_HEIGHT%2520-%252020%252C%2520FILTER_WIN%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520tft.drawFastVLine%2528centerLine%2520%252B%2520oldCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520h%2520-%252010%252C%2520RA8875_BLACK%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Yep.%2520Erase%2520old%252C%2520draw%2520new...%250D%250A%2520%2520%2520%2520%2520%2520tft.drawFastVLine%2528centerLine%2520%252B%2520newCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520h%2520-%252010%252C%2520RA8875_CYAN%2529%253B%2520%252F%252FAFP%252010-20-22%250D%250A%2520%2520%2520%2520%2520%2520BandInformation%2528%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520break%253B%250D%250A%250D%250A%2520%2520%2520%2520case%2520DEMOD_USB%2520%253A%250D%250A%2520%2520%2520%2520%2520%2520tft.fillRect%2528centerLine%2520%252B%2520oldCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520filterWidth%252C%2520SPECTRUM_HEIGHT%2520-%252020%252C%2520RA8875_BLACK%2529%253B%2520%252F%252FAFP%252003-27-22%2520Layers%250D%250A%2520%2520%2520%2520%2520%2520tft.fillRect%2528centerLine%2520%252B%2520newCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520filterWidth%252C%2520SPECTRUM_HEIGHT%2520-%252020%252C%2520FILTER_WIN%2529%253B%2520%252F%252FAFP%252003-27-22%2520Layers%250D%250A%2520%2520%2520%2520%2520%2520tft.drawFastVLine%2528centerLine%2520%252B%2520oldCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520h%2520-%252010%252C%2520RA8875_BLACK%2529%253B%2520%252F%252F%2520Yep.%2520Erase%2520old%252C%2520draw%2520new...%252F%252FAFP%252003-27-22%2520Layers%250D%250A%2520%2520%2520%2520%2520%2520tft.drawFastVLine%2528centerLine%2520%252B%2520newCursorPosition%2520%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520h%2520-%252010%252C%2520RA8875_CYAN%2529%253B%2520%252F%252FAFP%252003-27-22%2520Layers%250D%250A%2520%2520%2520%2520%2520%2520BandInformation%2528%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520break%253B%250D%250A%250D%250A%2520%2520%2520%2520case%2520DEMOD_AM%2520%253A%250D%250A%2520%2520%2520%2520%2520%2520tft.fillRect%2528centerLine%2520-%2520filterWidth%2520%252F%25202%2520%252B%2520oldCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520filterWidth%2520%252C%2520SPECTRUM_HEIGHT%2520-%252020%252C%2520RA8875_BLACK%2529%253B%2520%252F%252FAFP%252010-30-22%250D%250A%2520%2520%2520%2520%2520%2520tft.fillRect%2528centerLine%2520-%2520%2528filterWidth%2520%252F%25202%2529%252A0.93%2520%252B%2520newCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520filterWidth%252A0.95%2520%252C%2520SPECTRUM_HEIGHT%2520-%252020%252C%2520FILTER_WIN%2529%253B%2520%252F%252FAFP%252010-30-22%250D%250A%2520%2520%2520%2520%2520%2520tft.drawFastVLine%2528centerLine%2520%252B%2520oldCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520h%2520-%252010%252C%2520RA8875_BLACK%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520AFP%252010-30-22%250D%250A%2520%2520%2520%2520%2520%2520tft.drawFastVLine%2528centerLine%2520%252B%2520newCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520h%2520-%252010%252C%2520RA8875_CYAN%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252FAFP%252010-30-22%252A%252F%250D%250A%2520%2520%2520%2520%2520%2520BandInformation%2528%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520break%253B%250D%250A%2520%2520%2520%2520%2520%2520case%2520DEMOD_SAM%2520%253A%250D%250A%2520%2520%2520%2520%2520%2520tft.fillRect%2528centerLine%2520-%2520filterWidth%2520%252F%25202%2520%252B%2520oldCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520filterWidth%2520%252C%2520SPECTRUM_HEIGHT%2520-%252020%252C%2520RA8875_BLACK%2529%253B%2520%252F%252FAFP%252010-30-22%250D%250A%2520%2520%2520%2520%2520%2520tft.fillRect%2528centerLine%2520-%2520%2528filterWidth%2520%252F%25202%2529%252A0.93%2520%252B%2520newCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520filterWidth%252A0.95%2520%252C%2520SPECTRUM_HEIGHT%2520-%252020%252C%2520FILTER_WIN%2529%253B%2520%252F%252FAFP%252010-30-22%250D%250A%2520%2520%2520%2520%2520%2520tft.drawFastVLine%2528centerLine%2520%252B%2520oldCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520h%2520-%252010%252C%2520RA8875_BLACK%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520AFP%252010-30-22%250D%250A%2520%2520%2520%2520%2520%2520tft.drawFastVLine%2528centerLine%2520%252B%2520newCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520h%2520-%252010%252C%2520RA8875_CYAN%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252FAFP%252010-30-22%252A%252F%250D%250A%2520%2520%2520%2520%2520%2520BandInformation%2528%2529%253B%250D%250A%2520%2520%2520%2520%2520%2520break%253B%250D%250A%2520%2520%257D%250D%250A%250D%250A%2520%2520oldCursorPosition%2520%253D%2520newCursorPosition%253B%250D%250A%250D%250A%2520%2520tft.writeTo%2528L1%2529%253B%2520%252F%252FAFP%252003-27-22%2520Layers%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520To%2520reset%2520the%2520filter%2520overlay%2520window%2520back%2520to%2520MyPutEEPROM%2528%2529%253B%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250A%252F%252Avoid%2520FilterOverlay%2528%2529%250D%250A%2520%2520%257B%250D%250A%2520%2520int%2520whichSideband%2520%253D%2520bands%255BcurrentBand%255D.mode%253B%250D%250A%250D%250A%2520%2520newCursorPosition%2520%253D%2520%2528int%2529%2520%2528NCOFreq%2520%252A%25200.0053333%2529%253B%2520%2520%252F%252Fneeds%2520definition%2520sym%2520const%253F%2520%253D%2520512%252F96000%250D%250A%2520%2520tft.writeTo%2528L2%2529%253B%250D%250A%2520%2520tft.clearMemory%2528%2529%253B%250D%250A%2520%2520filterWidth%2520%253D%2520%2528int%2529%2528%2528bands%255BcurrentBand%255D.FHiCut%2520-%2520bands%255BcurrentBand%255D.FLoCut%2529%2520%252F%25201000.0%2520%252A%2520pixel_per_khz%2529%253B%250D%250A%250D%250A%2520%2520if%2520%2528whichSideband%2520%253D%253D%2520DEMOD_LSB%2529%2520%257B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Erase%2520old%2520overlay%2520and%2520redraw%2520new%2520overlay%2520centered%2520in%2520Spectrum%2520window%250D%250A%2520%2520%2520%2520tft.fillRect%2528centerLine%2520-%2520filterWidth%2520%252B%2520oldCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520filterWidth%252C%2520SPECTRUM_HEIGHT%2520-%252020%252C%2520RA8875_BLACK%2529%253B%250D%250A%2520%2520%2520%2520tft.drawFastVLine%2528centerLine%2520%252B%2520oldCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520h%2520-%252020%252C%2520RA8875_BLACK%2529%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Yep.%2520Erase%2520old%252C%2520draw%2520new...%250D%250A%2520%2520%2520%2520tft.fillRect%2528centerLine%2520%252B%2520newCursorPosition%2520-%2520filterWidth%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520filterWidth%252C%2520SPECTRUM_HEIGHT%2520-%252020%252C%2520FILTER_WIN%2529%253B%250D%250A%2520%2520%2520%2520tft.drawFastVLine%2528centerLine%2520%252B%2520newCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520h%2520-%252020%252C%2520RA8875_CYAN%2529%253B%250D%250A%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520tft.fillRect%2528centerLine%2520%252B%2520oldCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252017%252C%2520filterWidth%252C%2520SPECTRUM_HEIGHT%2520-%252020%252C%2520RA8875_BLACK%2529%253B%2520%252F%252FAFP%252003-27-22%2520Layers%250D%250A%2520%2520%2520%2520tft.drawFastVLine%2528centerLine%2520%252B%2520oldCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520h%2520-%252010%252C%2520RA8875_BLACK%2529%253B%2520%252F%252F%2520Yep.%2520Erase%2520old%252C%2520draw%2520new...%252F%252FAFP%252003-27-22%2520Layers%250D%250A%2520%2520%2520%2520tft.fillRect%2528centerLine%2520%252B%2520newCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252017%252C%2520filterWidth%252C%2520SPECTRUM_HEIGHT%2520-%252020%252C%2520FILTER_WIN%2529%253B%2520%252F%252FAFP%252003-27-22%2520Layers%250D%250A%2520%2520%2520%2520tft.drawFastVLine%2528centerLine%2520%252B%2520newCursorPosition%252C%2520SPECTRUM_TOP_Y%2520%252B%252020%252C%2520h%2520-%252010%252C%2520RA8875_CYAN%2529%253B%2520%252F%252FAFP%252003-27-22%2520Layers%250D%250A%2520%2520%257D%250D%250A%2520%2520oldCursorPosition%2520%253D%2520newCursorPosition%253B%250D%250A%2520%2520tft.writeTo%2528L1%2529%253B%2520%252F%252FAFP%252003-27-22%2520Layers%250D%250A%2520%2520%257D%2520%252A%252F%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520This%2520function%2520removes%2520the%2520spectrum%2520display%2520container%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%2520%2520%2520%2520void%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520EraseSpectrumDisplayContainer%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.fillRect%2528SPECTRUM_LEFT_X%2520-%25202%252C%2520SPECTRUM_TOP_Y%2520-%25201%252C%2520MAX_WATERFALL_WIDTH%2520%252B%25206%252C%2520SPECTRUM_HEIGHT%2520%252B%25208%252C%2520%2520RA8875_BLACK%2529%253B%2520%252F%252F%2520Spectrum%2520box%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520To%2520erase%2520both%2520primary%2520and%2520secondary%2520menus%2520from%2520display%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520EraseMenus%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.fillRect%2528PRIMARY_MENU_X%252C%2520MENUS_Y%252C%2520BOTH_MENU_WIDTHS%252C%2520CHAR_HEIGHT%2520%252B%25201%252C%2520RA8875_BLACK%2529%253B%2520%2520%2520%2520%252F%252F%2520Erase%2520menu%2520choices%250D%250A%2520%2520menuStatus%2520%253D%2520NO_MENUS_ACTIVE%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Change%2520menu%2520state%250D%250A%257D%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520To%2520erase%2520primary%2520menu%2520from%2520display%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520ErasePrimaryMenu%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.fillRect%2528PRIMARY_MENU_X%252C%2520MENUS_Y%252C%2520EACH_MENU_WIDTH%252C%2520CHAR_HEIGHT%2520%252B%25201%252C%2520RA8875_BLACK%2529%253B%2520%2520%2520%2520%252F%252F%2520Erase%2520menu%2520choices%250D%250A%2520%2520menuStatus%2520%253D%2520NO_MENUS_ACTIVE%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Change%2520menu%2520state%250D%250A%257D%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520To%2520erase%2520secondary%2520menu%2520from%2520display%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520EraseSecondaryMenu%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.fillRect%2528SECONDARY_MENU_X%252C%2520MENUS_Y%252C%2520EACH_MENU_WIDTH%252C%2520CHAR_HEIGHT%2520%252B%25201%252C%2520RA8875_BLACK%2529%253B%2520%2520%2520%2520%252F%252F%2520Erase%2520menu%2520choices%250D%250A%2520%2520menuStatus%2520%253D%2520NO_MENUS_ACTIVE%253B%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%252F%252F%2520Change%2520menu%2520state%250D%250A%257D%250D%250A%250D%250A%252F%252A%252A%252A%252A%252A%250D%250A%2520%2520Purpose%253A%2520Shows%2520transmit%2520%2528red%2529%2520and%2520receive%2520%2528green%2529%2520mode%250D%250A%250D%250A%2520%2520Parameter%2520list%253A%250D%250A%250D%250A%2520%2520Return%2520value%253B%250D%250A%2520%2520%2520%2520void%250D%250A%252A%252A%252A%252A%252A%252F%250D%250Avoid%2520ShowTransmitReceiveStatus%2528%2529%250D%250A%257B%250D%250A%2520%2520tft.setFontScale%2528%2520%2528enum%2520RA8875tsize%2529%25201%2529%253B%250D%250A%2520%2520tft.setTextColor%2528RA8875_BLACK%2529%253B%250D%250A%2520%2520if%2520%2528xrState%2520%253D%253D%2520TRANSMIT_STATE%2529%2520%257B%250D%250A%2520%2520%2520%2520tft.fillRect%2528X_R_STATUS_X%252C%2520X_R_STATUS_Y%252C%252055%252C%252025%252C%2520RA8875_RED%2529%253B%250D%250A%2520%2520%2520%2520tft.setCursor%2528X_R_STATUS_X%2520%252B%25204%252C%2520X_R_STATUS_Y%2520-%25205%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528%2522XMT%2522%2529%253B%250D%250A%2520%2520%257D%2520else%2520%257B%250D%250A%2520%2520%2520%2520tft.fillRect%2528X_R_STATUS_X%252C%2520X_R_STATUS_Y%252C%252055%252C%252025%252C%2520RA8875_GREEN%2529%253B%250D%250A%2520%2520%2520%2520tft.setCursor%2528X_R_STATUS_X%2520%252B%25204%252C%2520X_R_STATUS_Y%2520-%25205%2529%253B%250D%250A%2520%2520%2520%2520tft.print%2528%2522REC%2522%2529%253B%250D%250A%2520%2520%257D%250D%250A%257D%250D%250A%22%5D"}},"innerWidgetState":"{\"cursorState\":[{\"inSelectionMode\":false,\"selectionStart\":{\"lineNumber\":1386,\"column\":7},\"position\":{\"lineNumber\":1386,\"column\":7}}],\"viewState\":{\"scrollLeft\":0,\"firstPosition\":{\"lineNumber\":1375,\"column\":1},\"firstPositionDeltaTop\":-2},\"contributionsState\":{\"editor.contrib.folding\":{},\"editor.contrib.wordHighlighter\":false}}"}],"currentIndex":38}},"mainPanelPinned":[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false],"bottomPanel":{"config":{"main":{"type":"tab-area","widgets":[{"constructionOptions":{"factoryId":"outputView"},"innerWidgetState":"{\"locked\":false}"},{"constructionOptions":{"factoryId":"serial-monitor"}}],"currentIndex":1}},"pinned":[false,false],"size":166,"expanded":true},"leftPanel":{"type":"sidepanel","items":[{"widget":{"constructionOptions":{"factoryId":"arduino-sketchbook-widget"}},"rank":1,"expanded":false,"pinned":false},{"widget":{"constructionOptions":{"factoryId":"boards-list-widget"}},"rank":2,"expanded":false,"pinned":false},{"widget":{"constructionOptions":{"factoryId":"library-list-widget"}},"rank":3,"expanded":false,"pinned":false},{"widget":{"constructionOptions":{"factoryId":"debug"},"innerWidgetState":"{\"parts\":[{\"partId\":\"debug:threads:-1\",\"collapsed\":false,\"hidden\":false,\"originalContainerId\":\"debug:view-container:-1\",\"originalContainerTitle\":{\"label\":\"debug\",\"iconClass\":\"codicon codicon-debug-alt\",\"closeable\":true},\"widget\":{\"constructionOptions\":{\"factoryId\":\"debug:threads\"},\"innerWidgetState\":\"{}\"}},{\"partId\":\"debug:frames:-1\",\"collapsed\":false,\"hidden\":false,\"originalContainerId\":\"debug:view-container:-1\",\"originalContainerTitle\":{\"label\":\"debug\",\"iconClass\":\"codicon codicon-debug-alt\",\"closeable\":true},\"widget\":{\"constructionOptions\":{\"factoryId\":\"debug:frames\"},\"innerWidgetState\":\"{}\"}},{\"partId\":\"debug:variables:-1\",\"collapsed\":false,\"hidden\":false,\"originalContainerId\":\"debug:view-container:-1\",\"originalContainerTitle\":{\"label\":\"debug\",\"iconClass\":\"codicon codicon-debug-alt\",\"closeable\":true},\"widget\":{\"constructionOptions\":{\"factoryId\":\"debug:variables\"},\"innerWidgetState\":\"{}\"}},{\"partId\":\"debug:watch:-1\",\"collapsed\":false,\"hidden\":false,\"originalContainerId\":\"debug:view-container:-1\",\"originalContainerTitle\":{\"label\":\"debug\",\"iconClass\":\"codicon codicon-debug-alt\",\"closeable\":true},\"widget\":{\"constructionOptions\":{\"factoryId\":\"debug:watch\"},\"innerWidgetState\":\"{}\"}},{\"partId\":\"debug:breakpoints:-1\",\"collapsed\":false,\"hidden\":false,\"originalContainerId\":\"debug:view-container:-1\",\"originalContainerTitle\":{\"label\":\"debug\",\"iconClass\":\"codicon codicon-debug-alt\",\"closeable\":true},\"widget\":{\"constructionOptions\":{\"factoryId\":\"debug:breakpoints\"},\"innerWidgetState\":\"{}\"}},{\"partId\":\"plugin-view:cortex-debug.peripherals\",\"collapsed\":true,\"hidden\":true,\"originalContainerId\":\"debug:view-container:-1\",\"originalContainerTitle\":{\"label\":\"debug\",\"iconClass\":\"codicon codicon-debug-alt\",\"closeable\":true},\"widget\":{\"constructionOptions\":{\"factoryId\":\"plugin-view\",\"options\":{\"id\":\"plugin-view:cortex-debug.peripherals\",\"viewId\":\"cortex-debug.peripherals\"}},\"innerWidgetState\":\"{\\\"label\\\":\\\"Cortex Peripherals\\\",\\\"widgets\\\":[],\\\"suppressUpdateViewVisibility\\\":false,\\\"currentViewContainerId\\\":\\\"debug\\\"}\"}},{\"partId\":\"plugin-view:cortex-debug.registers\",\"collapsed\":true,\"hidden\":true,\"originalContainerId\":\"debug:view-container:-1\",\"originalContainerTitle\":{\"label\":\"debug\",\"iconClass\":\"codicon codicon-debug-alt\",\"closeable\":true},\"widget\":{\"constructionOptions\":{\"factoryId\":\"plugin-view\",\"options\":{\"id\":\"plugin-view:cortex-debug.registers\",\"viewId\":\"cortex-debug.registers\"}},\"innerWidgetState\":\"{\\\"label\\\":\\\"Cortex Registers\\\",\\\"widgets\\\":[],\\\"suppressUpdateViewVisibility\\\":false,\\\"currentViewContainerId\\\":\\\"debug\\\"}\"}}],\"title\":{\"label\":\"debug\",\"iconClass\":\"codicon codicon-debug-alt\",\"closeable\":true}}"},"rank":4,"expanded":false,"pinned":false},{"widget":{"constructionOptions":{"factoryId":"search-view-container"},"innerWidgetState":"{\"parts\":[{\"widget\":{\"constructionOptions\":{\"factoryId\":\"search-in-workspace\"},\"innerWidgetState\":\"{\\\"matchCaseState\\\":{\\\"className\\\":\\\"codicon codicon-case-sensitive\\\",\\\"enabled\\\":false,\\\"title\\\":\\\"Match Case\\\"},\\\"wholeWordState\\\":{\\\"className\\\":\\\"codicon codicon-whole-word\\\",\\\"enabled\\\":false,\\\"title\\\":\\\"Match Whole Word\\\"},\\\"regExpState\\\":{\\\"className\\\":\\\"codicon codicon-regex\\\",\\\"enabled\\\":false,\\\"title\\\":\\\"Use Regular Expression\\\"},\\\"includeIgnoredState\\\":{\\\"className\\\":\\\"codicon codicon-eye\\\",\\\"enabled\\\":false,\\\"title\\\":\\\"Include Ignored Files\\\"},\\\"showSearchDetails\\\":false,\\\"searchInWorkspaceOptions\\\":{\\\"matchCase\\\":false,\\\"matchWholeWord\\\":false,\\\"useRegExp\\\":false,\\\"includeIgnored\\\":false,\\\"include\\\":[],\\\"exclude\\\":[],\\\"maxResults\\\":2000},\\\"searchTerm\\\":\\\"center of spectrum display\\\",\\\"replaceTerm\\\":\\\"MyPutEEPROM();\\\",\\\"showReplaceField\\\":true,\\\"searchHistoryState\\\":{\\\"history\\\":[\\\"Crash\\\",\\\"Crashre\\\",\\\"Crashreport\\\",\\\"EEPROM.write\\\",\\\"Whisper\\\",\\\"EEPROM.Write\\\",\\\"whisper\\\",\\\"EE\\\",\\\"sdCardPresent\\\",\\\"EEPROM.put\\\",\\\"EEPROM\\\",\\\"EEPROM.\\\",\\\"EEPROM.put(\\\",\\\"EEPROM.put(0, EEPROMData)\\\",\\\"EEPROM.put(0, EEPROMData);\\\",\\\"display\\\",\\\"displayBearing = \\\",\\\"displayBearing = 360\\\",\\\"FILTER_ENCODER_A\\\",\\\"filter\\\",\\\"filterencoder\\\",\\\"spacing\\\",\\\"incrementValues\\\",\\\"100, FREQUENCY_Y + 30\\\",\\\"BandInformation\\\",\\\"center of spectrum display\\\"],\\\"index\\\":25},\\\"replaceHistoryState\\\":{\\\"history\\\":[\\\"My\\\",\\\"MyPut\\\",\\\"MyPutEEPROM\\\",\\\"MyPutEEPROM()\\\",\\\"MyPutEEPROM();\\\"],\\\"index\\\":4},\\\"includeHistoryState\\\":{\\\"history\\\":[],\\\"index\\\":0},\\\"excludeHistoryState\\\":{\\\"history\\\":[],\\\"index\\\":0}}\"},\"partId\":\"search-in-workspace\",\"collapsed\":false,\"hidden\":false,\"relativeSize\":1,\"originalContainerId\":\"search-view-container\",\"originalContainerTitle\":{\"label\":\"Search\",\"iconClass\":\"codicon codicon-search\",\"closeable\":true}}],\"title\":{\"label\":\"Search\",\"iconClass\":\"fa fa-arduino-search\",\"closeable\":true}}"},"rank":5,"expanded":false,"pinned":false}],"size":367},"rightPanel":{"type":"sidepanel","items":[]},"activeWidgetId":"code-editor-opener:diff:?%5B%22mem-txt%3A
2023-04-18T17:53:50.765Z root INFO ------- END SERIALIZED LAYOUT DATA -------
2023-04-18T17:53:50.766Z root INFO [f15d6145-c7d6-4140-b717-24a528522bbd] Waiting for backend deployment: 115.4 ms [Finished 5.149 s after frontend start]
2023-04-18T17:53:51.182Z root INFO [f15d6145-c7d6-4140-b717-24a528522bbd] Sync of 21 plugins: 16420.0 ms [Finished 21.569 s after frontend start]
[1184:0418/135524.768:ERROR:gpu_init.cc(453)] Passthrough is not supported, GL is disabled, ANGLE is

I probably should mention that your command did launch the IDE along the way to generating the output above. I also should mention that I had 2.0.4 working about a month ago, but went to the github site and saw that some files were newer than that, which is why I uninstalled and then installed it again. BTW, when I tried to post it, I was told it was too long, so I trimmed some of the output starting with what looked like a closing paragraph on the C code.

Thanks for trying to help me...it's sincerely appreciated!

I see. That is very odd. If it is not a secret, would you mind sharing that sketch? I would like to see whether I can reproduce that bug so that I could investigate further and submit a formal bug report.

Workaround

My hypothesis is that there is something about this specific sketch that breaks the IDE, since we never expect to see the sketch code in the terminal output.

By default, Arduino IDE attempts to open all the sketches you had open at the time you exited the previous IDE session. So the cause of the incomplete startup you experienced could be that it is trying to open this problematic sketch. If so, the workaround would be to pass the path to a benign sketch via the command line invocation argument. That will cause the IDE to open that sketch on startup instead of restoring the previously opened sketch.

I'll provide instructions for doing that:

  1. Close all Arduino IDE windows if the IDE is already running.
  2. Start Windows "File Explorer".
  3. Open the Arduino IDE installation folder.
    (usually C:\Program Files\Arduino IDE or C:\Users\<username>\AppData\Local\Programs\Arduino IDE).
  4. In the folder listing of the Arduino IDE installation folder, hold the Shift key while clicking the right hand button on the mouse.
  5. From the context menu, click "Open PowerShell window here".
    Windows PowerShell will now open with the current directory set to the Arduino IDE installation folder.
  6. Type the following command:
    & '.\Arduino IDE.exe' ".\resources\app\node_modules\arduino-ide-extension\Examples\01.Basics\BareMinimum\BareMinimum.ino"
    
  7. Press the Enter key.
  8. Wait for Arduino IDE to finish starting.
  9. Select File > Quit from the Arduino IDE menus.

Hopefully the IDE will now start up correctly. This will clear the data about which sketch to restore on startup so after doing this once, you should be able to go back to starting Arduino IDE normally so long as the problematic sketch was not open at the time you quit the IDE session.

Thanks. That is the expected result.

When that happens, you can save the output to a text file and add it as an attachment:

  1. Open any text editor program.
  2. Paste the copied output into the text editor.
  3. Save the file in .txt format.
  4. Open a forum reply here by clicking the Reply button.
  5. Click the "Upload" icon (Upload icon) on the post composer toolbar:
    Upload icon on toolbar
  6. Select the .txt file you saved.
  7. Click the Open button.
  8. Click the Reply button to publish the post.

Alternatively, instead of using the "Upload" icon on the post composer toolbar as described in steps (5) - (7) above, you can simply drag and drop the .txt file onto the post composer field to attach it.

The sketch is an Open Source project for a Software Defined Radio I'm writing. It's quite large (about 13000 lines of C code), and it is not what I was working on at the time, but the block definitely has some of its lines present. If you go to my web site, Log In, and look in the Files section, the code is near the top of the list (AAA T41 Version 033). That code uses the Teensy 4.1 microcontroller and I do have Paul's Teensyduino patch installed. However, I did not get far enough to use any code on the new download. It never let me open a file. However, the last time I had 2.0.4 running, I may have been working on the Teensy code. As I said earlier, I had it running but saw the github file dates with some that had been updated within the last two days, so I uninstalled it, then reinstalled. Perhaps that's where I messed things up. I'll try your new set of instructions and report back.

Again, thanks!

Well, I followed your instructions to the T and HOLY CRAP, it works! I could have tried everything I knew and would never have figured that out. Clearly, I have a lot to learn.

In any event, thank you so much for your help. If you check your records, you'll see that I do make a donation each time I download a new version, going all the way back to pre-1.05. I encourage my readers to do the same. Hopefully, it makes a difference and you'll continue your improve the IDE. Indeed, I like Ver 2.0 enough to revise the screen shots in my book to show it off. Great job!

Again, thanks!

You are welcome. I'm glad it is working now. I'll do some experiments with the sketch you shared and circle back here if I have anything to report.

Thanks! That is much appreciated, as are the contributions you make to the Arduino project in other ways.

Regards,
Per

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.