kk4das / IC746CAT

ICOM IC-746 Computer Aided Transceiver (CAT) control emulation for Arduino
GNU General Public License v3.0
14 stars 3 forks source link

Incompatibility with UNO (and even Nano). Any ideas? #6

Closed bob04609 closed 1 year ago

bob04609 commented 1 year ago

Has anyone ever compiles this for an Arduino UNO? It crashes every time for me with a "Error compiling for board Arduino Uno" message, even on the included example program. Even a a program that does nothing other than include the library. The introduction here says..."It has been demonstrated to work with an Arduino Nano and Arduino Nano Every although it should work with any MCU with a serial port..."

I tried it with an Arduino Nano and I get "Error compiling for board Arduino Nano", so that's not helping either.

I'm using Arduino IDE v1.8.15 if that makes a difference.

Same system, same cables, same port, same boars and same MPU with any other Arduino sketch sketch has no problems on UNO or Nano. I've tried all the usual things, restarting IDE, unpluging and reconnecting USB, different USB port etc, but still no joy when using this library. Any idea what's going on?

kk4das commented 1 year ago

Hi –

It compiles fine for both Nano and Uno on 1.8.19 but I don’t think the version should matter.

I’ll help if I can. What platform are you compiling on? How did you install the library? What are you using for the main sketch?

Thanks,

Dean

From: bob04609 @.> Sent: Saturday, January 7, 2023 10:46 PM To: kk4das/IC746CAT @.> Cc: Subscribed @.***> Subject: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Has anyone ever compiles this for an Arduino UNO? It crashes every time for me with a "Error compiling for board Arduino Uno" message, even on the included example program. Even a a program that does nothing other than include the library. The introduction here says..."It has been demonstrated to work with an Arduino Nano and Arduino Nano Every although it should work with any MCU with a serial port..."

I tried it with an Arduino Nano and I get "Error compiling for board Arduino Nano", so that's not helping either.

I'm using Arduino IDE v1.8.15 if that makes a difference.

Same system, same cables, same port, same boars and same MPU with any other Arduino sketch sketch has no problems on UNO or Nano. I've tried all the usual things, restarting IDE, unpluging and reconnecting USB, different USB port etc, but still no joy when using this library. Any idea what's going on?

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTUMC7V3IUFXJOQX373WRI2A3ANCNFSM6AAAAAATUKUSWU . You are receiving this because you are subscribed to this thread. https://github.com/notifications/beacon/APZHUTW4MA6YBYDDGKL7GLLWRI2A3A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHFVWYTLY.gif Message ID: @. @.> >

bob04609 commented 1 year ago

Hi Dean

Many thanks for the reply. I may be missing some critical step in the setup which is obvious to you, but not to me!

My system is Windows 7 pro. I installed the library in the usual way. Down load the zip file from Github, then use the Arduino IDE (1.8.15) to install the zip file. I've done this many times with many libraries with no problems.

Then I navigate to the example file in the library, open it in the IDE, check that it compiles then try to upload it to an Arduino (first checking that I have the correct Arduino model and correct serial port selected). At this point the compiler and loader do their things and the compiled code gets loaded into the Arduino and runs.

Although I don't actually have the Adafruit ILI9341 tft, the compiler doesn't know that, so it should compile and even load (but of course it would not run). If I can get to the point of a successful compile and upload, then I'll change the TFT code to code that drives an OLED display.

However. with the example sketch (or indeed when I make any reference to the IC746 library even in an otherwise empty sketch) I get complaints from the compiler about aspects of the code and the IDE complains about compiling for the Arduino UNO (or Nano). The complaint about the UNO/Nano may be spillover from the earlier compiler compilates about the code and not in fact be complains about the board. Errors can cascade of course.

BTW I have gotten the C07WT Yaesu FT-857D library to work OK on an Arduino and I think your library is somewhat based on that. However the 857D is limited to 10Hz steps and in fact that library truncates frequencies to the nearest 100Hz. I'd like 1Hz steps and the actual IC746 does support 1Hz steps via CAT (not sure if your library does).

I've attached the verbose compiler output messages (most of which I don't understand) in case that gives you any clues. I'm not much of a C++ programmer.

My assumption was that I should be able to load the library, load the example sketch in the IDE and it should compile without me needing to do anything else, just like pretty much any other library and example sketch. Am I missing something here?

I may try installing the latest IDE on another PC running WIndows 10 (the most recent v2 IDE only lists full compatibility with Windows 10 and up) and see if that makes any difference. However, the fact that it works for you on the Arduino with the v1 IDE suggests that it should work for me too.

If I'm making some stupid error, please feel free to point it out. It wouldn't be the first time!

Thanks and 73 Bob, KA1GT


From: kk4das @.> Sent: Sunday, January 8, 2023 12:41 PM To: kk4das/IC746CAT @.> Cc: bob04609 @.>; Author @.> Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi –

It compiles fine for both Nano and Uno on 1.8.19 but I don’t think the version should matter.

I’ll help if I can. What platform are you compiling on? How did you install the library? What are you using for the main sketch?

Thanks,

Dean

From: bob04609 @.> Sent: Saturday, January 7, 2023 10:46 PM To: kk4das/IC746CAT @.> Cc: Subscribed @.***> Subject: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Has anyone ever compiles this for an Arduino UNO? It crashes every time for me with a "Error compiling for board Arduino Uno" message, even on the included example program. Even a a program that does nothing other than include the library. The introduction here says..."It has been demonstrated to work with an Arduino Nano and Arduino Nano Every although it should work with any MCU with a serial port..."

I tried it with an Arduino Nano and I get "Error compiling for board Arduino Nano", so that's not helping either.

I'm using Arduino IDE v1.8.15 if that makes a difference.

Same system, same cables, same port, same boars and same MPU with any other Arduino sketch sketch has no problems on UNO or Nano. I've tried all the usual things, restarting IDE, unpluging and reconnecting USB, different USB port etc, but still no joy when using this library. Any idea what's going on?

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTUMC7V3IUFXJOQX373WRI2A3ANCNFSM6AAAAAATUKUSWU . You are receiving this because you are subscribed to this thread. https://github.com/notifications/beacon/APZHUTW4MA6YBYDDGKL7GLLWRI2A3A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHFVWYTLY.gif Message ID: @. @.> >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1374889054, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWW5CDD3ZMOIXTR6R6TWRL33JANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @.***>

Arduino: 1.8.15 (Windows 7), Board: "Arduino Uno"

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Bob\Documents\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=1A86_7523 -ide-version=10815 -build-path C:\Users\Bob\AppData\Local\Temp\arduino_build_403063 -warnings=none -build-cache C:\Users\Bob\AppData\Local\Temp\arduino_cache_37279 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\examples\IC746-Example\IC746-Example.ino

C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Bob\Documents\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=1A86_7523 -ide-version=10815 -build-path C:\Users\Bob\AppData\Local\Temp\arduino_build_403063 -warnings=none -build-cache C:\Users\Bob\AppData\Local\Temp\arduino_cache_37279 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\examples\IC746-Example\IC746-Example.ino

Using board 'uno' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr

Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr

Detecting libraries used...

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "C:\Users\Bob\AppData\Local\Temp\arduino_build_403063\sketch\IC746-Example.ino.cpp" -o nul

Alternatives for IC746.h: @.***

ResolveLibrary(IC746.h)

-> candidates: @.***

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "C:\Users\Bob\AppData\Local\Temp\arduino_build_403063\sketch\IC746-Example.ino.cpp" -o nul

Alternatives for SPI.h: @.***

ResolveLibrary(SPI.h)

-> candidates: @.***

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "C:\Users\Bob\AppData\Local\Temp\arduino_build_403063\sketch\IC746-Example.ino.cpp" -o nul

Alternatives for Adafruit_GFX.h: @.***

ResolveLibrary(Adafruit_GFX.h)

-> candidates: @.***

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "C:\Users\Bob\AppData\Local\Temp\arduino_build_403063\sketch\IC746-Example.ino.cpp" -o nul

Alternatives for Adafruit_ILI9341.h: @.***

ResolveLibrary(Adafruit_ILI9341.h)

-> candidates: @.***

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "C:\Users\Bob\AppData\Local\Temp\arduino_build_403063\sketch\IC746-Example.ino.cpp" -o nul

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp" -o nul

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src\SPI.cpp" -o nul

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "C:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library\Adafruit_GFX.cpp" -o nul

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "C:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library\Adafruit_GrayOLED.cpp" -o nul

Alternatives for Adafruit_I2CDevice.h: @.***

ResolveLibrary(Adafruit_I2CDevice.h)

-> candidates: @.***

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_BusIO" "C:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library\Adafruit_GrayOLED.cpp" -o nul

Alternatives for Wire.h: @.***

ResolveLibrary(Wire.h)

-> candidates: @.***

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_BusIO" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library\Adafruit_GrayOLED.cpp" -o nul

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_BusIO" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library\Adafruit_SPITFT.cpp" -o nul

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_BusIO" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library\glcdfont.c" -o nul

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_BusIO" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master\Adafruit_ILI9341.cpp" -o nul

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_BusIO" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\Bob\Documents\Arduino\libraries\Adafruit_BusIO\Adafruit_BusIO_Register.cpp" -o nul

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_BusIO" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\Bob\Documents\Arduino\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp" -o nul

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_BusIO" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\Bob\Documents\Arduino\libraries\Adafruit_BusIO\Adafruit_SPIDevice.cpp" -o nul

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_BusIO" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp" -o nul

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_BusIO" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\utility\twi.c" -o nul

Generating function prototypes...

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_BusIO" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\Bob\AppData\Local\Temp\arduino_build_403063\sketch\IC746-Example.ino.cpp" -o "C:\Users\Bob\AppData\Local\Temp\arduino_build_403063\preproc\ctags_target_for_gcc_minus_e.cpp"

"C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\Bob\AppData\Local\Temp\arduino_build_403063\preproc\ctags_target_for_gcc_minus_e.cpp"

Compiling sketch...

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_BusIO" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\Bob\AppData\Local\Temp\arduino_build_403063\sketch\IC746-Example.ino.cpp" -o "C:\Users\Bob\AppData\Local\Temp\arduino_build_403063\sketch\IC746-Example.ino.cpp.o"

Compiling libraries...

Compiling library "ICOM_746_CAT_Control-1.0.2"

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master" "-IC:\Users\Bob\Documents\Arduino\libraries\Adafruit_BusIO" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp" -o "C:\Users\Bob\AppData\Local\Temp\arduino_build_403063\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp.o"

C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:3:6: error: too many decimal points in number

V1.0.2 12/17/2021

  ^~~~

C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:6:6: error: too many decimal points in number

V1.0.1 2/3/2021

  ^~~~

C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:12:70: error: stray '@' in program

Inspired by:  ft857d CAT Library, by Pavel Milanes, CO7WT, ***@***.***

                                                                  ^

C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:2:10: error: expected constructor, destructor, or type conversion before 'CAT'

IC746 CAT Library, by KK4DAS, Dean Souleles

      ^~~

C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:22:30: error: 'without' does not name a type; did you mean 'stdout'?

but WITHOUT ANY WARRANTY; without even the implied warranty of

                          ^~~~~~~

                          stdout

In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:23:0,

             from C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:31:

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdlib.h:153:61: error: 'size_t' has not been declared

extern void bsearch(const void key, const void *base, size_t __nmemb,

                                                         ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdlib.h:154:8: error: 'size_t' has not been declared

    size_t __size, int (*__compar)(const void *, const void *));

    ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdlib.h:185:33: error: 'size_t' has not been declared

extern void qsort(void *base, size_t __nmemb, size_t size,

                             ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdlib.h:185:49: error: 'size_t' has not been declared

extern void qsort(void *base, size_t __nmemb, size_t size,

                                             ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdlib.h:300:21: error: 'size_t' was not declared in this scope

extern void *malloc(size_t size) ATTR_MALLOC__;

                 ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdlib.h:300:21: note: suggested alternative: '__size_t'

extern void *malloc(size_t size) ATTR_MALLOC__;

                 ^~~~~~

                 __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdlib.h:312:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t __malloc_margin;

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdlib.h:329:21: error: 'size_t' was not declared in this scope

extern void *calloc(size_t nele, size_t size) ATTR_MALLOC;

                 ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdlib.h:329:21: note: suggested alternative: '__size_t'

extern void *calloc(size_t nele, size_t size) ATTR_MALLOC;

                 ^~~~~~

                 __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdlib.h:329:36: error: 'size_t' was not declared in this scope

extern void *calloc(size_t nele, size_t size) ATTR_MALLOC;

                                ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdlib.h:329:36: note: suggested alternative: '__size_t'

extern void *calloc(size_t nele, size_t size) ATTR_MALLOC;

                                ^~~~~~

                                __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdlib.h:348:35: error: 'size_t' has not been declared

extern void realloc(void ptr, size_t size) ATTR_MALLOC;

                               ^~~~~~

In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:25:0,

             from C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:31:

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:150:49: error: 'size_t' has not been declared

extern void memccpy(void , const void *, int, size_t);

                                             ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:162:40: error: 'size_t' has not been declared

extern void memchr(const void , int, size_t) __ATTR_PURE__;

                                    ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:180:47: error: 'size_t' has not been declared

extern int memcmp(const void , const void , size_t) __ATTR_PURE__;

                                           ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:191:43: error: 'size_t' has not been declared

extern void memcpy(void , const void *, size_t);

                                       ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:203:35: error: 'size_t' has not been declared

extern void memmem(const void , size_t, const void *, size_t) __ATTR_PURE__;

                               ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:203:57: error: 'size_t' has not been declared

extern void memmem(const void , size_t, const void *, size_t) __ATTR_PURE__;

                                                     ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:213:44: error: 'size_t' has not been declared

extern void memmove(void , const void *, size_t);

                                        ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:225:41: error: 'size_t' has not been declared

extern void memrchr(const void , int, size_t) __ATTR_PURE__;

                                     ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:235:34: error: 'size_t' has not been declared

extern void memset(void , int, size_t);

                              ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:344:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strcspn(const char __s, const char reject) ATTR_PURE__;

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:377:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strlcat(char , const char , size_t);

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:388:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strlcpy(char , const char , size_t);

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:399:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strlen(const char *) __ATTR_PURE__;

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:422:44: error: 'size_t' has not been declared

extern char strncat(char , const char *, size_t);

                                        ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:434:48: error: 'size_t' has not been declared

extern int strncmp(const char , const char , size_t) __ATTR_PURE__;

                                            ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:449:44: error: 'size_t' has not been declared

extern char strncpy(char , const char *, size_t);

                                        ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:464:52: error: 'size_t' has not been declared

extern int strncasecmp(const char , const char , size_t) __ATTR_PURE__;

                                                ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:478:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strnlen(const char *, size_t) __ATTR_PURE__;

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:544:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strspn(const char __s, const char accept) ATTR_PURE__;

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\string.h:612:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strxfrm(char dest, const char src, size_t n);

    ^~~~~~

    __size_t

In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,

             from C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:31:

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1158:55: error: 'size_t' has not been declared

extern const void memchr_P(const void , int val, size_t len) ATTR_CONST;

                                                   ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1172:49: error: 'size_t' has not been declared

extern int memcmp_P(const void , const void , size_t) __ATTR_PURE__;

                                             ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1179:57: error: 'size_t' has not been declared

extern void memccpy_P(void , const void *, int __val, size_t);

                                                     ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1188:45: error: 'size_t' has not been declared

extern void memcpy_P(void , const void *, size_t);

                                         ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1195:37: error: 'size_t' has not been declared

extern void memmem_P(const void , size_t, const void *, size_t) __ATTR_PURE__;

                                 ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1195:59: error: 'size_t' has not been declared

extern void memmem_P(const void , size_t, const void *, size_t) __ATTR_PURE__;

                                                       ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1207:56: error: 'size_t' has not been declared

extern const void memrchr_P(const void , int val, size_t len) ATTR_CONST;

                                                    ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1305:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strcspn_P(const char __s, const char reject) ATTR_PURE__;

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1321:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strlcat_P (char , const char , size_t );

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1334:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strlcpy_P (char , const char , size_t );

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1346:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strnlen_P(const char , size_t) __ATTR_CONST__; / program memory can't change */

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1357:50: error: 'size_t' has not been declared

extern int strncmp_P(const char , const char , size_t) __ATTR_PURE__;

                                              ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1376:54: error: 'size_t' has not been declared

extern int strncasecmp_P(const char , const char , size_t) __ATTR_PURE__;

                                                  ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1387:46: error: 'size_t' has not been declared

extern char strncat_P(char , const char *, size_t);

                                          ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1401:46: error: 'size_t' has not been declared

extern char strncpy_P(char , const char *, size_t);

                                          ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1460:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strspn_P(const char __s, const char accept) ATTR_PURE__;

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1529:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strlen_PF(uint_farptr_t src) __ATTR_CONST__; / program memory can't change /

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1545:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strnlen_PF(uint_farptr_t src, size_t len) __ATTR_CONST__; / program memory can't change /

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1560:55: error: 'size_t' has not been declared

extern void memcpy_PF(void dest, uint_farptr_t src, size_t len);

                                                   ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1595:56: error: 'size_t' has not been declared

extern char strncpy_PF(char dest, uint_farptr_t src, size_t len);

                                                    ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1632:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strlcat_PF(char *dst, uint_farptr_t src, size_t siz);

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1649:56: error: 'size_t' has not been declared

extern char strncat_PF(char dest, uint_farptr_t src, size_t len);

                                                    ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1682:57: error: 'size_t' has not been declared

extern int strncmp_PF(const char *s1, uint_farptr_t s2, size_t n) __ATTR_PURE__;

                                                     ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1716:61: error: 'size_t' has not been declared

extern int strncasecmp_PF(const char *s1, uint_farptr_t s2, size_t n) __ATTR_PURE__;

                                                         ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1744:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strlcpy_PF(char *dst, uint_farptr_t src, size_t siz);

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1760:51: error: 'size_t' has not been declared

extern int memcmp_PF(const void *, uint_farptr_t, size_t) __ATTR_PURE__;

                                               ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1779:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t strlen_P(const char *) __ATTR_CONST; / internal helper function /

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1780:54: error: 'size_t' does not name a type; did you mean '__size_t'?

attribute((__always_inline)) static inline__ size_t strlen_P(const char * s);

                                                  ^~~~~~

                                                  __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1781:19: error: 'size_t' does not name a type; did you mean '__size_t'?

static inline size_t strlen_P(const char *s) {

               ^~~~~~

               __size_t

In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:24:0,

             from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:26,

             from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:29,

             from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:233,

             from C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:31:

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdio.h:687:32: error: 'size_t' has not been declared

extern int snprintf(char __s, size_t __n, const char __fmt, ...);

                            ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdio.h:693:34: error: 'size_t' has not been declared

extern int snprintf_P(char __s, size_t __n, const char __fmt, ...);

                              ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdio.h:715:33: error: 'size_t' has not been declared

extern int vsnprintf(char __s, size_t __n, const char __fmt, va_list ap);

                             ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdio.h:721:35: error: 'size_t' has not been declared

extern int vsnprintf_P(char __s, size_t __n, const char __fmt, va_list ap);

                               ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdio.h:764:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t fwrite(const void *ptr, size_t __size, size_t nmemb,

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdio.h:842:8: error: 'size_t' does not name a type; did you mean '__size_t'?

extern size_t fread(void *ptr, size_t __size, size_t nmemb,

    ^~~~~~

    __size_t

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdio.h:964:55: error: 'size_t' has not been declared

extern int setvbuf(FILE stream, char buf, int mode, size_t size);

                                                   ^~~~~~

In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:27:0,

             from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:26,

             from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:29,

             from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:233,

             from C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:31:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Printable.h:36:13: error: 'size_t' does not name a type; did you mean '__size_t'?

 virtual size_t printTo(Print& p) const = 0;

         ^~~~~~

         __size_t

In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:26:0,

             from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:29,

             from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:233,

             from C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:31:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:41:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t printNumber(unsigned long, uint8_t);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:42:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t printFloat(double, uint8_t);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:51:13: error: 'size_t' does not name a type; did you mean '__size_t'?

 virtual size_t write(uint8_t) = 0;

         ^~~~~~

         __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:52:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t write(const char *str) {

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:56:13: error: 'size_t' does not name a type; did you mean '__size_t'?

 virtual size_t write(const uint8_t *buffer, size_t size);

         ^~~~~~

         __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:57:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t write(const char *buffer, size_t size) {

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:65:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t print(const __FlashStringHelper *);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:66:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t print(const String &);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:67:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t print(const char[]);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:68:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t print(char);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:69:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t print(unsigned char, int = DEC);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:70:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t print(int, int = DEC);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:71:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t print(unsigned int, int = DEC);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:72:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t print(long, int = DEC);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:73:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t print(unsigned long, int = DEC);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:74:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t print(double, int = 2);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:75:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t print(const Printable&);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:77:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t println(const __FlashStringHelper *);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:78:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t println(const String &s);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:79:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t println(const char[]);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:80:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t println(char);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:81:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t println(unsigned char, int = DEC);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:82:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t println(int, int = DEC);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:83:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t println(unsigned int, int = DEC);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:84:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t println(long, int = DEC);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:85:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t println(unsigned long, int = DEC);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:86:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t println(double, int = 2);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:87:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t println(const Printable&);

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:88:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t println(void);

 ^~~~~~

 __size_t

In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:29:0,

             from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:233,

             from C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:31:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:74:27: error: 'size_t' has not been declared

bool find(char *target, size_t length); // reads data from the stream until the target string of given length is found

                       ^~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:75:30: error: 'size_t' has not been declared

bool find(uint8_t target, size_t length) { return find ((char )target, length); }

                          ^~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:83:32: error: 'size_t' has not been declared

bool findUntil(char target, size_t targetLen, char terminate, size_t termLen); // as above but search ends if the terminate string is found

                            ^~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:83:67: error: 'size_t' has not been declared

bool findUntil(char target, size_t targetLen, char terminate, size_t termLen); // as above but search ends if the terminate string is found

                                                               ^~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:84:35: error: 'size_t' has not been declared

bool findUntil(uint8_t target, size_t targetLen, char terminate, size_t termLen) {return findUntil((char *)target, targetLen, terminate, termLen); }

                               ^~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:84:70: error: 'size_t' has not been declared

bool findUntil(uint8_t target, size_t targetLen, char terminate, size_t termLen) {return findUntil((char *)target, targetLen, terminate, termLen); }

                                                                  ^~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:96:3: error: 'size_t' does not name a type; did you mean '__size_t'?

size_t readBytes( char *buffer, size_t length); // read chars from stream into buffer

^~

__size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:97:3: error: 'size_t' does not name a type; did you mean '__size_t'?

size_t readBytes( uint8_t buffer, size_t length) { return readBytes((char )buffer, length); }

^~

__size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:101:3: error: 'size_t' does not name a type; did you mean '__size_t'?

size_t readBytesUntil( char terminator, char *buffer, size_t length); // as readBytes with terminator character

^~

__size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:102:3: error: 'size_t' does not name a type; did you mean '__size_t'?

size_t readBytesUntil( char terminator, uint8_t buffer, size_t length) { return readBytesUntil(terminator, (char )buffer, length); }

^~

__size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:119:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t len;       // length of string you're searching for

 ^~~~~~

 __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:120:5: error: 'size_t' does not name a type; did you mean '__size_t'?

 size_t index;     // index used by the search routine.

 ^~~~~~

 __size_t

In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:233:0,

             from C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:31:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:129:13: error: 'size_t' does not name a type; did you mean '__size_t'?

 virtual size_t write(uint8_t);

         ^~~~~~

         __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:130:12: error: 'size_t' does not name a type; did you mean '__size_t'?

 inline size_t write(unsigned long n) { return write((uint8_t)n); }

        ^~~~~~

        __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:131:12: error: 'size_t' does not name a type; did you mean '__size_t'?

 inline size_t write(long n) { return write((uint8_t)n); }

        ^~~~~~

        __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:132:12: error: 'size_t' does not name a type; did you mean '__size_t'?

 inline size_t write(unsigned int n) { return write((uint8_t)n); }

        ^~~~~~

        __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:133:12: error: 'size_t' does not name a type; did you mean '__size_t'?

 inline size_t write(int n) { return write((uint8_t)n); }

        ^~~~~~

        __size_t

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:134:18: error: no members matching 'Print::write' in 'class Print'

 using Print::write; // pull in write(str) and write(buf, size) from Print

              ^~~~~

In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/USBAPI.h:25:0,

             from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:234,

             from C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:31:

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\eeprom.h:160:57: error: 'size_t' has not been declared

void eeprom_read_block (void __dst, const void __src, size_t __n);

                                                     ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\eeprom.h:187:58: error: 'size_t' has not been declared

void eeprom_write_block (const void __src, void __dst, size_t __n);

                                                      ^~~~~~

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\eeprom.h:214:59: error: 'size_t' has not been declared

void eeprom_update_block (const void __src, void __dst, size_t __n);

                                                       ^~~~~~

C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp: In member function 'void IC746::send(byte*, int)':

C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:209:10: error: 'class HardwareSerial' has no member named 'write'; did you mean '_written'?

Serial.write(CAT_PREAMBLE);

      ^~~~~

      _written

C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:210:10: error: 'class HardwareSerial' has no member named 'write'; did you mean '_written'?

Serial.write(CAT_PREAMBLE);

      ^~~~~

      _written

C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:213:12: error: 'class HardwareSerial' has no member named 'write'; did you mean '_written'?

 Serial.write(buf[i]);

        ^~~~~

        _written

C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2\IC746.cpp:215:10: error: 'class HardwareSerial' has no member named 'write'; did you mean '_written'?

Serial.write(CAT_EOM);

      ^~~~~

      _written

Using library ICOM_746_CAT_Control-1.0.2 at version 1.0.2 in folder: C:\Users\Bob\Documents\Arduino\libraries\ICOM_746_CAT_Control-1.0.2

Using library SPI at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI

Using library Adafruit_GFX_Library at version 1.11.1 in folder: C:\Users\Bob\Documents\Arduino\libraries\Adafruit_GFX_Library

Using library Adafruit_ILI9341-master at version 1.5.12 in folder: C:\Users\Bob\Documents\Arduino\libraries\Adafruit_ILI9341-master

Using library Adafruit_BusIO at version 1.11.6 in folder: C:\Users\Bob\Documents\Ardui

bob04609 commented 1 year ago

Hi Dean

An update here. I installed the Arduino IDE v 2.0.3 on a Windows 10 machine, and with that setup your library code compiles OK. I have not yet figured out what is happening with v1.8.15 on the Windows 7 machine. Obviously, something is wrong and it seems to be a compiler error of some sort, possibly in some intrinsic functions . Maybe something is out of date or there is a conflict somewhere.

I did find a small issue with the compiled code on the Windows 10 machine however. It seems to be fine up to 99Mhz, but at 100MHz and up it seems to be dropping the leading digit (100's of MHz). This gives errors when trying to use it at 144MHz. On my IC-7100, I think it's a 5 byte BCD coding for the frequency and the 5th byte has the high 4 bits as GHz (so it's always zero) and the now 4 bytes as the 100Mhz multiplier, so for the 746 it has to be 1 or 0 since the VHF/UHF frequency coverage is limited to the 2m band (on the IC-7100 it can be 0-4).

I have not yet tried looking at the .cpp file in your library, but I suspect there's an issue with the BCC to decimal and/or the decimal to BCD conversion routines which may only be looking at the lower 4 bytes of the frequency information. If I get a chance, I'll take a look at that tomorrow. I also have to get things running with the OLED display. I'm currently using WSJTX to check on how it's working (all seems OK there except for the frequency error above 99.999999 MHz). That's probably using the latest HamLib library. Omnirig also seems to find an IC746 just fine, though I have not tried using it to sending any commands.

73 Bob, KA1GT.


From: Bob Atkins @.> Sent: Sunday, January 8, 2023 6:40 PM To: kk4das/IC746CAT @.>; kk4das/IC746CAT @.> Cc: Author @.> Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

Many thanks for the reply. I may be missing some critical step in the setup which is obvious to you, but not to me!

My system is Windows 7 pro. I installed the library in the usual way. Down load the zip file from Github, then use the Arduino IDE (1.8.15) to install the zip file. I've done this many times with many libraries with no problems.

Then I navigate to the example file in the library, open it in the IDE, check that it compiles then try to upload it to an Arduino (first checking that I have the correct Arduino model and correct serial port selected). At this point the compiler and loader do their things and the compiled code gets loaded into the Arduino and runs.

Although I don't actually have the Adafruit ILI9341 tft, the compiler doesn't know that, so it should compile and even load (but of course it would not run). If I can get to the point of a successful compile and upload, then I'll change the TFT code to code that drives an OLED display.

However. with the example sketch (or indeed when I make any reference to the IC746 library even in an otherwise empty sketch) I get complaints from the compiler about aspects of the code and the IDE complains about compiling for the Arduino UNO (or Nano). The complaint about the UNO/Nano may be spillover from the earlier compiler compilates about the code and not in fact be complains about the board. Errors can cascade of course.

BTW I have gotten the C07WT Yaesu FT-857D library to work OK on an Arduino and I think your library is somewhat based on that. However the 857D is limited to 10Hz steps and in fact that library truncates frequencies to the nearest 100Hz. I'd like 1Hz steps and the actual IC746 does support 1Hz steps via CAT (not sure if your library does).

I've attached the verbose compiler output messages (most of which I don't understand) in case that gives you any clues. I'm not much of a C++ programmer.

My assumption was that I should be able to load the library, load the example sketch in the IDE and it should compile without me needing to do anything else, just like pretty much any other library and example sketch. Am I missing something here?

I may try installing the latest IDE on another PC running WIndows 10 (the most recent v2 IDE only lists full compatibility with Windows 10 and up) and see if that makes any difference. However, the fact that it works for you on the Arduino with the v1 IDE suggests that it should work for me too.

If I'm making some stupid error, please feel free to point it out. It wouldn't be the first time!

Thanks and 73 Bob, KA1GT


From: kk4das @.> Sent: Sunday, January 8, 2023 12:41 PM To: kk4das/IC746CAT @.> Cc: bob04609 @.>; Author @.> Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi –

It compiles fine for both Nano and Uno on 1.8.19 but I don’t think the version should matter.

I’ll help if I can. What platform are you compiling on? How did you install the library? What are you using for the main sketch?

Thanks,

Dean

From: bob04609 @.> Sent: Saturday, January 7, 2023 10:46 PM To: kk4das/IC746CAT @.> Cc: Subscribed @.***> Subject: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Has anyone ever compiles this for an Arduino UNO? It crashes every time for me with a "Error compiling for board Arduino Uno" message, even on the included example program. Even a a program that does nothing other than include the library. The introduction here says..."It has been demonstrated to work with an Arduino Nano and Arduino Nano Every although it should work with any MCU with a serial port..."

I tried it with an Arduino Nano and I get "Error compiling for board Arduino Nano", so that's not helping either.

I'm using Arduino IDE v1.8.15 if that makes a difference.

Same system, same cables, same port, same boars and same MPU with any other Arduino sketch sketch has no problems on UNO or Nano. I've tried all the usual things, restarting IDE, unpluging and reconnecting USB, different USB port etc, but still no joy when using this library. Any idea what's going on?

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTUMC7V3IUFXJOQX373WRI2A3ANCNFSM6AAAAAATUKUSWU . You are receiving this because you are subscribed to this thread. https://github.com/notifications/beacon/APZHUTW4MA6YBYDDGKL7GLLWRI2A3A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHFVWYTLY.gif Message ID: @. @.> >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1374889054, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWW5CDD3ZMOIXTR6R6TWRL33JANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @.***>

kk4das commented 1 year ago

Bob,

Glad to hear it is working under Win 10. I no longer have a Win 7 environment. I’m sure you are right about the BCD conversion code. It’s a dumb byte by byte routine and I am certain I never thought about frequencies at 100MHz and up. Should be a pretty easy fix – you’ll need to look at both directions.

Another ham has made some changes to additional modes – CWU and CWL – those aren’t working quite right yet – but when they are I’ll push out a new version. Let me know if your test works ok and I’ll merge your changes as well.,

Glad to hear WSJTX is working. I’ve been away from this code for a while – there was an issue with CIV routines that I worked with them on about a year and half ago. I think I am still using a temporary hamlib I built to work around the issue.

73,

Dean

KK4DAS

From: bob04609 @.> Sent: Monday, January 9, 2023 1:54 AM To: kk4das/IC746CAT @.> Cc: kk4das @.>; Comment @.> Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

An update here. I installed the Arduino IDE v 2.0.3 on a Windows 10 machine, and with that setup your library code compiles OK. I have not yet figured out what is happening with v1.8.15 on the Windows 7 machine. Obviously, something is wrong and it seems to be a compiler error of some sort, possibly in some intrinsic functions . Maybe something is out of date or there is a conflict somewhere.

I did find a small issue with the compiled code on the Windows 10 machine however. It seems to be fine up to 99Mhz, but at 100MHz and up it seems to be dropping the leading digit (100's of MHz). This gives errors when trying to use it at 144MHz. On my IC-7100, I think it's a 5 byte BCD coding for the frequency and the 5th byte has the high 4 bits as GHz (so it's always zero) and the now 4 bytes as the 100Mhz multiplier, so for the 746 it has to be 1 or 0 since the VHF/UHF frequency coverage is limited to the 2m band (on the IC-7100 it can be 0-4).

I have not yet tried looking at the .cpp file in your library, but I suspect there's an issue with the BCC to decimal and/or the decimal to BCD conversion routines which may only be looking at the lower 4 bytes of the frequency information. If I get a chance, I'll take a look at that tomorrow. I also have to get things running with the OLED display. I'm currently using WSJTX to check on how it's working (all seems OK there except for the frequency error above 99.999999 MHz). That's probably using the latest HamLib library. Omnirig also seems to find an IC746 just fine, though I have not tried using it to sending any commands.

73 Bob, KA1GT.


From: Bob Atkins @. <mailto:@.> > Sent: Sunday, January 8, 2023 6:40 PM To: kk4das/IC746CAT @. <mailto:@.> >; kk4das/IC746CAT @. <mailto:@.> > Cc: Author @. <mailto:@.> > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

Many thanks for the reply. I may be missing some critical step in the setup which is obvious to you, but not to me!

My system is Windows 7 pro. I installed the library in the usual way. Down load the zip file from Github, then use the Arduino IDE (1.8.15) to install the zip file. I've done this many times with many libraries with no problems.

Then I navigate to the example file in the library, open it in the IDE, check that it compiles then try to upload it to an Arduino (first checking that I have the correct Arduino model and correct serial port selected). At this point the compiler and loader do their things and the compiled code gets loaded into the Arduino and runs.

Although I don't actually have the Adafruit ILI9341 tft, the compiler doesn't know that, so it should compile and even load (but of course it would not run). If I can get to the point of a successful compile and upload, then I'll change the TFT code to code that drives an OLED display.

However. with the example sketch (or indeed when I make any reference to the IC746 library even in an otherwise empty sketch) I get complaints from the compiler about aspects of the code and the IDE complains about compiling for the Arduino UNO (or Nano). The complaint about the UNO/Nano may be spillover from the earlier compiler compilates about the code and not in fact be complains about the board. Errors can cascade of course.

BTW I have gotten the C07WT Yaesu FT-857D library to work OK on an Arduino and I think your library is somewhat based on that. However the 857D is limited to 10Hz steps and in fact that library truncates frequencies to the nearest 100Hz. I'd like 1Hz steps and the actual IC746 does support 1Hz steps via CAT (not sure if your library does).

I've attached the verbose compiler output messages (most of which I don't understand) in case that gives you any clues. I'm not much of a C++ programmer.

My assumption was that I should be able to load the library, load the example sketch in the IDE and it should compile without me needing to do anything else, just like pretty much any other library and example sketch. Am I missing something here?

I may try installing the latest IDE on another PC running WIndows 10 (the most recent v2 IDE only lists full compatibility with Windows 10 and up) and see if that makes any difference. However, the fact that it works for you on the Arduino with the v1 IDE suggests that it should work for me too.

If I'm making some stupid error, please feel free to point it out. It wouldn't be the first time!

Thanks and 73 Bob, KA1GT


From: kk4das @. <mailto:@.> > Sent: Sunday, January 8, 2023 12:41 PM To: kk4das/IC746CAT @. <mailto:@.> > Cc: bob04609 @. <mailto:@.> >; Author @. <mailto:@.> > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi –

It compiles fine for both Nano and Uno on 1.8.19 but I don’t think the version should matter.

I’ll help if I can. What platform are you compiling on? How did you install the library? What are you using for the main sketch?

Thanks,

Dean

From: bob04609 @. <mailto:@.> > Sent: Saturday, January 7, 2023 10:46 PM To: kk4das/IC746CAT @. <mailto:@.> > Cc: Subscribed @. <mailto:@.> > Subject: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Has anyone ever compiles this for an Arduino UNO? It crashes every time for me with a "Error compiling for board Arduino Uno" message, even on the included example program. Even a a program that does nothing other than include the library. The introduction here says..."It has been demonstrated to work with an Arduino Nano and Arduino Nano Every although it should work with any MCU with a serial port..."

I tried it with an Arduino Nano and I get "Error compiling for board Arduino Nano", so that's not helping either.

I'm using Arduino IDE v1.8.15 if that makes a difference.

Same system, same cables, same port, same boars and same MPU with any other Arduino sketch sketch has no problems on UNO or Nano. I've tried all the usual things, restarting IDE, unpluging and reconnecting USB, different USB port etc, but still no joy when using this library. Any idea what's going on?

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTUMC7V3IUFXJOQX373WRI2A3ANCNFSM6AAAAAATUKUSWU . You are receiving this because you are subscribed to this thread. https://github.com/notifications/beacon/APZHUTW4MA6YBYDDGKL7GLLWRI2A3A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHFVWYTLY.gif Message ID: @. <mailto:@.> @. <mailto:@.> > >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1374889054, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWW5CDD3ZMOIXTR6R6TWRL33JANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> >

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1375176458 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTX3JU4JJAHIPUJZMBDWROY2LANCNFSM6AAAAAATUKUSWU . You are receiving this because you commented. https://github.com/notifications/beacon/APZHUTRV2RX7NGMQ5Q7HB7LWROY2LA5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSR66DQU.gif Message ID: @. @.> >

bob04609 commented 1 year ago

Hi Dean

Well so far I seem to be missing something. I think the BCD/decimal changer I made are correct. For BCD to decimal I think you simply ignore what's in the 5th byte of the cmdBuf array, so I added in what I think is the correct code the read them and add then to the frequency (freq(.

long IC746::BCDtoFreq() { long freq;

freq = cmdBuf[CAT_IX_FREQ] & 0xf; // lower 4 bits freq += 10L (cmdBuf[CAT_IX_FREQ] >> 4); // upper 4 bits freq += 100L (cmdBuf[CAT_IX_FREQ + 1] & 0xf); freq += 1000L (cmdBuf[CAT_IX_FREQ + 1] >> 4); freq += 10000L (cmdBuf[CAT_IX_FREQ + 2] & 0xf); freq += 100000L (cmdBuf[CAT_IX_FREQ + 2] >> 4); freq += 1000000L (cmdBuf[CAT_IX_FREQ + 3] & 0xf); freq += 10000000L (cmdBuf[CAT_IX_FREQ + 3] >> 4); // add in 100Mhz and 1000Mhz byte freq += 100000000L (cmdBuf[CAT_IX_FREQ + 4] & 0xf); freq += 1000000000L * (cmdBuf[CAT_IX_FREQ + 4] >> 4);

return freq; }

When you write the frequency you simply put 0 in the 5th byte of the buffer. I defined two new variables, hund_mil and thou_mil to handle the 100MHz and 1000MHz data.

byte ones, tens, hund, thou, ten_thou, hund_thou, mil, ten_mil, hund_mil, thou_mil;

ones = byte(freq % 10); tens = byte((freq / 10L) % 10); cmdBuf[CAT_IX_FREQ] = byte((tens << 4)) | ones;

hund = byte((freq / 100L) % 10); thou = byte((freq / 1000L) % 10); cmdBuf[CAT_IX_FREQ + 1] = byte((thou << 4)) | hund;

ten_thou = byte((freq / 10000L) % 10); hund_thou = byte((freq / 100000L) % 10); cmdBuf[CAT_IX_FREQ + 2] = byte((hund_thou << 4)) | ten_thou;

mil = byte((freq / 1000000L) % 10); ten_mil = byte(freq / 10000000L); cmdBuf[CAT_IX_FREQ + 3] = byte((ten_mil << 4)) | mil;

//cmdBuf[CAT_IX_FREQ + 4] = 0; // fixed //ORIGINAL

//add in 100MHz and 1000Mhz values hund_mil = byte((freq / 100000000L) % 10); thou_mil = byte(freq / 1000000000L); cmdBuf[CAT_IX_FREQ + 4] = byte((thou_mil << 4)) | hund_mil;

}

I was hoping that this would be all that was required, but unfortunately it didn't fix the problem. When using WSJTX and entering a frequency below 100 MHZ (e.g. 70, 50 or 28MHz), everything is file and Doppler tracking for EME works as it should. However, when any frequency over 100MHz (e.g. 144MHz) is used, the frequency changes in an unpredictable way, 144 may go to 288 then 325 etc. I assume it's writing the wrong frequency above 100MHz. I don't yet have a display capable of printing out the debug commands in any legible manner.

I know it's very hard to remember what you did in code you wrote years ago, but do you remember if there is anywhere else you are just using 4 bytes of data in place of the 5 bytes that are allocated for frequency in the CI-V commands for the IC746? Right now I don't see it.

Enabling the debug commands probably means I will have to modify the .ino file to output the data to a second serial port and I don't have the hardware for that on hand (serial->USB) and maybe I will need to run it on a Mega board (which has additional serial lines), assuming it will compile for it. If you still have your original hardware around, maybe you could take a look and see if the Debug functions give any clues to what's happening here. Is it writing the wrong frequency of reading the wrong frequency (or both?)?

I will persist, but I'm currently a bit lost in the library code. You do seem to be allocating 5 bytes for the frequency along with the addresses for the frequency read command.

define CAT_SZ_FREQ 8 // 8 bytes - E0 56 03 ff ff ff ff ff (frequency in little endian BCD)

I have not yet figured out how (or where) you are setting the frequency.

So right now I'm stuck unless you have any ideas!

73 Bob, KA1GT


From: kk4das @.> Sent: Monday, January 9, 2023 7:50 AM To: kk4das/IC746CAT @.> Cc: bob04609 @.>; Author @.> Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Bob,

Glad to hear it is working under Win 10. I no longer have a Win 7 environment. I’m sure you are right about the BCD conversion code. It’s a dumb byte by byte routine and I am certain I never thought about frequencies at 100MHz and up. Should be a pretty easy fix – you’ll need to look at both directions.

Another ham has made some changes to additional modes – CWU and CWL – those aren’t working quite right yet – but when they are I’ll push out a new version. Let me know if your test works ok and I’ll merge your changes as well.,

Glad to hear WSJTX is working. I’ve been away from this code for a while – there was an issue with CIV routines that I worked with them on about a year and half ago. I think I am still using a temporary hamlib I built to work around the issue.

73,

Dean

KK4DAS

From: bob04609 @.> Sent: Monday, January 9, 2023 1:54 AM To: kk4das/IC746CAT @.> Cc: kk4das @.>; Comment @.> Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

An update here. I installed the Arduino IDE v 2.0.3 on a Windows 10 machine, and with that setup your library code compiles OK. I have not yet figured out what is happening with v1.8.15 on the Windows 7 machine. Obviously, something is wrong and it seems to be a compiler error of some sort, possibly in some intrinsic functions . Maybe something is out of date or there is a conflict somewhere.

I did find a small issue with the compiled code on the Windows 10 machine however. It seems to be fine up to 99Mhz, but at 100MHz and up it seems to be dropping the leading digit (100's of MHz). This gives errors when trying to use it at 144MHz. On my IC-7100, I think it's a 5 byte BCD coding for the frequency and the 5th byte has the high 4 bits as GHz (so it's always zero) and the now 4 bytes as the 100Mhz multiplier, so for the 746 it has to be 1 or 0 since the VHF/UHF frequency coverage is limited to the 2m band (on the IC-7100 it can be 0-4).

I have not yet tried looking at the .cpp file in your library, but I suspect there's an issue with the BCC to decimal and/or the decimal to BCD conversion routines which may only be looking at the lower 4 bytes of the frequency information. If I get a chance, I'll take a look at that tomorrow. I also have to get things running with the OLED display. I'm currently using WSJTX to check on how it's working (all seems OK there except for the frequency error above 99.999999 MHz). That's probably using the latest HamLib library. Omnirig also seems to find an IC746 just fine, though I have not tried using it to sending any commands.

73 Bob, KA1GT.


From: Bob Atkins @. <mailto:@.> > Sent: Sunday, January 8, 2023 6:40 PM To: kk4das/IC746CAT @. <mailto:@.> >; kk4das/IC746CAT @. <mailto:@.> > Cc: Author @. <mailto:@.> > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

Many thanks for the reply. I may be missing some critical step in the setup which is obvious to you, but not to me!

My system is Windows 7 pro. I installed the library in the usual way. Down load the zip file from Github, then use the Arduino IDE (1.8.15) to install the zip file. I've done this many times with many libraries with no problems.

Then I navigate to the example file in the library, open it in the IDE, check that it compiles then try to upload it to an Arduino (first checking that I have the correct Arduino model and correct serial port selected). At this point the compiler and loader do their things and the compiled code gets loaded into the Arduino and runs.

Although I don't actually have the Adafruit ILI9341 tft, the compiler doesn't know that, so it should compile and even load (but of course it would not run). If I can get to the point of a successful compile and upload, then I'll change the TFT code to code that drives an OLED display.

However. with the example sketch (or indeed when I make any reference to the IC746 library even in an otherwise empty sketch) I get complaints from the compiler about aspects of the code and the IDE complains about compiling for the Arduino UNO (or Nano). The complaint about the UNO/Nano may be spillover from the earlier compiler compilates about the code and not in fact be complains about the board. Errors can cascade of course.

BTW I have gotten the C07WT Yaesu FT-857D library to work OK on an Arduino and I think your library is somewhat based on that. However the 857D is limited to 10Hz steps and in fact that library truncates frequencies to the nearest 100Hz. I'd like 1Hz steps and the actual IC746 does support 1Hz steps via CAT (not sure if your library does).

I've attached the verbose compiler output messages (most of which I don't understand) in case that gives you any clues. I'm not much of a C++ programmer.

My assumption was that I should be able to load the library, load the example sketch in the IDE and it should compile without me needing to do anything else, just like pretty much any other library and example sketch. Am I missing something here?

I may try installing the latest IDE on another PC running WIndows 10 (the most recent v2 IDE only lists full compatibility with Windows 10 and up) and see if that makes any difference. However, the fact that it works for you on the Arduino with the v1 IDE suggests that it should work for me too.

If I'm making some stupid error, please feel free to point it out. It wouldn't be the first time!

Thanks and 73 Bob, KA1GT


From: kk4das @. <mailto:@.> > Sent: Sunday, January 8, 2023 12:41 PM To: kk4das/IC746CAT @. <mailto:@.> > Cc: bob04609 @. <mailto:@.> >; Author @. <mailto:@.> > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi –

It compiles fine for both Nano and Uno on 1.8.19 but I don’t think the version should matter.

I’ll help if I can. What platform are you compiling on? How did you install the library? What are you using for the main sketch?

Thanks,

Dean

From: bob04609 @. <mailto:@.> > Sent: Saturday, January 7, 2023 10:46 PM To: kk4das/IC746CAT @. <mailto:@.> > Cc: Subscribed @. <mailto:@.> > Subject: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Has anyone ever compiles this for an Arduino UNO? It crashes every time for me with a "Error compiling for board Arduino Uno" message, even on the included example program. Even a a program that does nothing other than include the library. The introduction here says..."It has been demonstrated to work with an Arduino Nano and Arduino Nano Every although it should work with any MCU with a serial port..."

I tried it with an Arduino Nano and I get "Error compiling for board Arduino Nano", so that's not helping either.

I'm using Arduino IDE v1.8.15 if that makes a difference.

Same system, same cables, same port, same boars and same MPU with any other Arduino sketch sketch has no problems on UNO or Nano. I've tried all the usual things, restarting IDE, unpluging and reconnecting USB, different USB port etc, but still no joy when using this library. Any idea what's going on?

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTUMC7V3IUFXJOQX373WRI2A3ANCNFSM6AAAAAATUKUSWU . You are receiving this because you are subscribed to this thread. https://github.com/notifications/beacon/APZHUTW4MA6YBYDDGKL7GLLWRI2A3A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHFVWYTLY.gif Message ID: @. <mailto:@.> @. <mailto:@.> > >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1374889054, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWW5CDD3ZMOIXTR6R6TWRL33JANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> >

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1375176458 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTX3JU4JJAHIPUJZMBDWROY2LANCNFSM6AAAAAATUKUSWU . You are receiving this because you commented. https://github.com/notifications/beacon/APZHUTRV2RX7NGMQ5Q7HB7LWROY2LA5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSR66DQU.gif Message ID: @. @.> >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1375578416, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWTZGH4726VO7ECNW73WRQCQTANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @.***>

kk4das commented 1 year ago

I’ll try to look at it in the next day or two. The basic fix looks right. I’d check the size of CmdBuf to make sure we are not overwriting memory. And then there is the length of the command we send to the radio. A second serial port is definitely helpful. Or some kind of display for debug messages.

73,

Dean

From: bob04609 @.> Sent: Monday, January 9, 2023 7:56 PM To: kk4das/IC746CAT @.> Cc: kk4das @.>; Comment @.> Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

Well so far I seem to be missing something. I think the BCD/decimal changer I made are correct. For BCD to decimal I think you simply ignore what's in the 5th byte of the cmdBuf array, so I added in what I think is the correct code the read them and add then to the frequency (freq(.

long IC746::BCDtoFreq() { long freq;

freq = cmdBuf[CAT_IX_FREQ] & 0xf; // lower 4 bits freq += 10L (cmdBuf[CAT_IX_FREQ] >> 4); // upper 4 bits freq += 100L (cmdBuf[CAT_IX_FREQ + 1] & 0xf); freq += 1000L (cmdBuf[CAT_IX_FREQ + 1] >> 4); freq += 10000L (cmdBuf[CAT_IX_FREQ + 2] & 0xf); freq += 100000L (cmdBuf[CAT_IX_FREQ + 2] >> 4); freq += 1000000L (cmdBuf[CAT_IX_FREQ + 3] & 0xf); freq += 10000000L (cmdBuf[CAT_IX_FREQ + 3] >> 4); // add in 100Mhz and 1000Mhz byte freq += 100000000L (cmdBuf[CAT_IX_FREQ + 4] & 0xf); freq += 1000000000L * (cmdBuf[CAT_IX_FREQ + 4] >> 4);

return freq; }

When you write the frequency you simply put 0 in the 5th byte of the buffer. I defined two new variables, hund_mil and thou_mil to handle the 100MHz and 1000MHz data.

byte ones, tens, hund, thou, ten_thou, hund_thou, mil, ten_mil, hund_mil, thou_mil;

ones = byte(freq % 10); tens = byte((freq / 10L) % 10); cmdBuf[CAT_IX_FREQ] = byte((tens << 4)) | ones;

hund = byte((freq / 100L) % 10); thou = byte((freq / 1000L) % 10); cmdBuf[CAT_IX_FREQ + 1] = byte((thou << 4)) | hund;

ten_thou = byte((freq / 10000L) % 10); hund_thou = byte((freq / 100000L) % 10); cmdBuf[CAT_IX_FREQ + 2] = byte((hund_thou << 4)) | ten_thou;

mil = byte((freq / 1000000L) % 10); ten_mil = byte(freq / 10000000L); cmdBuf[CAT_IX_FREQ + 3] = byte((ten_mil << 4)) | mil;

//cmdBuf[CAT_IX_FREQ + 4] = 0; // fixed //ORIGINAL

//add in 100MHz and 1000Mhz values hund_mil = byte((freq / 100000000L) % 10); thou_mil = byte(freq / 1000000000L); cmdBuf[CAT_IX_FREQ + 4] = byte((thou_mil << 4)) | hund_mil;

}

I was hoping that this would be all that was required, but unfortunately it didn't fix the problem. When using WSJTX and entering a frequency below 100 MHZ (e.g. 70, 50 or 28MHz), everything is file and Doppler tracking for EME works as it should. However, when any frequency over 100MHz (e.g. 144MHz) is used, the frequency changes in an unpredictable way, 144 may go to 288 then 325 etc. I assume it's writing the wrong frequency above 100MHz. I don't yet have a display capable of printing out the debug commands in any legible manner.

I know it's very hard to remember what you did in code you wrote years ago, but do you remember if there is anywhere else you are just using 4 bytes of data in place of the 5 bytes that are allocated for frequency in the CI-V commands for the IC746? Right now I don't see it.

Enabling the debug commands probably means I will have to modify the .ino file to output the data to a second serial port and I don't have the hardware for that on hand (serial->USB) and maybe I will need to run it on a Mega board (which has additional serial lines), assuming it will compile for it. If you still have your original hardware around, maybe you could take a look and see if the Debug functions give any clues to what's happening here. Is it writing the wrong frequency of reading the wrong frequency (or both?)?

I will persist, but I'm currently a bit lost in the library code. You do seem to be allocating 5 bytes for the frequency along with the addresses for the frequency read command.

define CAT_SZ_FREQ 8 // 8 bytes - E0 56 03 ff ff ff ff ff (frequency in little endian BCD)

I have not yet figured out how (or where) you are setting the frequency.

So right now I'm stuck unless you have any ideas!

73 Bob, KA1GT


From: kk4das @. <mailto:@.> > Sent: Monday, January 9, 2023 7:50 AM To: kk4das/IC746CAT @. <mailto:@.> > Cc: bob04609 @. <mailto:@.> >; Author @. <mailto:@.> > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Bob,

Glad to hear it is working under Win 10. I no longer have a Win 7 environment. I’m sure you are right about the BCD conversion code. It’s a dumb byte by byte routine and I am certain I never thought about frequencies at 100MHz and up. Should be a pretty easy fix – you’ll need to look at both directions.

Another ham has made some changes to additional modes – CWU and CWL – those aren’t working quite right yet – but when they are I’ll push out a new version. Let me know if your test works ok and I’ll merge your changes as well.,

Glad to hear WSJTX is working. I’ve been away from this code for a while – there was an issue with CIV routines that I worked with them on about a year and half ago. I think I am still using a temporary hamlib I built to work around the issue.

73,

Dean

KK4DAS

From: bob04609 @. <mailto:@.> > Sent: Monday, January 9, 2023 1:54 AM To: kk4das/IC746CAT @. <mailto:@.> > Cc: kk4das @. <mailto:@.> >; Comment @. <mailto:@.> > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

An update here. I installed the Arduino IDE v 2.0.3 on a Windows 10 machine, and with that setup your library code compiles OK. I have not yet figured out what is happening with v1.8.15 on the Windows 7 machine. Obviously, something is wrong and it seems to be a compiler error of some sort, possibly in some intrinsic functions . Maybe something is out of date or there is a conflict somewhere.

I did find a small issue with the compiled code on the Windows 10 machine however. It seems to be fine up to 99Mhz, but at 100MHz and up it seems to be dropping the leading digit (100's of MHz). This gives errors when trying to use it at 144MHz. On my IC-7100, I think it's a 5 byte BCD coding for the frequency and the 5th byte has the high 4 bits as GHz (so it's always zero) and the now 4 bytes as the 100Mhz multiplier, so for the 746 it has to be 1 or 0 since the VHF/UHF frequency coverage is limited to the 2m band (on the IC-7100 it can be 0-4).

I have not yet tried looking at the .cpp file in your library, but I suspect there's an issue with the BCC to decimal and/or the decimal to BCD conversion routines which may only be looking at the lower 4 bytes of the frequency information. If I get a chance, I'll take a look at that tomorrow. I also have to get things running with the OLED display. I'm currently using WSJTX to check on how it's working (all seems OK there except for the frequency error above 99.999999 MHz). That's probably using the latest HamLib library. Omnirig also seems to find an IC746 just fine, though I have not tried using it to sending any commands.

73 Bob, KA1GT.


From: Bob Atkins @. <mailto:@.> mailto:***@***.*** > Sent: Sunday, January 8, 2023 6:40 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** >; kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** > Cc: Author @. <mailto:@.> mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

Many thanks for the reply. I may be missing some critical step in the setup which is obvious to you, but not to me!

My system is Windows 7 pro. I installed the library in the usual way. Down load the zip file from Github, then use the Arduino IDE (1.8.15) to install the zip file. I've done this many times with many libraries with no problems.

Then I navigate to the example file in the library, open it in the IDE, check that it compiles then try to upload it to an Arduino (first checking that I have the correct Arduino model and correct serial port selected). At this point the compiler and loader do their things and the compiled code gets loaded into the Arduino and runs.

Although I don't actually have the Adafruit ILI9341 tft, the compiler doesn't know that, so it should compile and even load (but of course it would not run). If I can get to the point of a successful compile and upload, then I'll change the TFT code to code that drives an OLED display.

However. with the example sketch (or indeed when I make any reference to the IC746 library even in an otherwise empty sketch) I get complaints from the compiler about aspects of the code and the IDE complains about compiling for the Arduino UNO (or Nano). The complaint about the UNO/Nano may be spillover from the earlier compiler compilates about the code and not in fact be complains about the board. Errors can cascade of course.

BTW I have gotten the C07WT Yaesu FT-857D library to work OK on an Arduino and I think your library is somewhat based on that. However the 857D is limited to 10Hz steps and in fact that library truncates frequencies to the nearest 100Hz. I'd like 1Hz steps and the actual IC746 does support 1Hz steps via CAT (not sure if your library does).

I've attached the verbose compiler output messages (most of which I don't understand) in case that gives you any clues. I'm not much of a C++ programmer.

My assumption was that I should be able to load the library, load the example sketch in the IDE and it should compile without me needing to do anything else, just like pretty much any other library and example sketch. Am I missing something here?

I may try installing the latest IDE on another PC running WIndows 10 (the most recent v2 IDE only lists full compatibility with Windows 10 and up) and see if that makes any difference. However, the fact that it works for you on the Arduino with the v1 IDE suggests that it should work for me too.

If I'm making some stupid error, please feel free to point it out. It wouldn't be the first time!

Thanks and 73 Bob, KA1GT


From: kk4das @. <mailto:@.> mailto:***@***.*** > Sent: Sunday, January 8, 2023 12:41 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** > Cc: bob04609 @. <mailto:@.> mailto:***@***.*** >; Author @. <mailto:@.> mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi –

It compiles fine for both Nano and Uno on 1.8.19 but I don’t think the version should matter.

I’ll help if I can. What platform are you compiling on? How did you install the library? What are you using for the main sketch?

Thanks,

Dean

From: bob04609 @. <mailto:@.> mailto:***@***.*** > Sent: Saturday, January 7, 2023 10:46 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** > Cc: Subscribed @. <mailto:@.> mailto:***@***.*** > Subject: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Has anyone ever compiles this for an Arduino UNO? It crashes every time for me with a "Error compiling for board Arduino Uno" message, even on the included example program. Even a a program that does nothing other than include the library. The introduction here says..."It has been demonstrated to work with an Arduino Nano and Arduino Nano Every although it should work with any MCU with a serial port..."

I tried it with an Arduino Nano and I get "Error compiling for board Arduino Nano", so that's not helping either.

I'm using Arduino IDE v1.8.15 if that makes a difference.

Same system, same cables, same port, same boars and same MPU with any other Arduino sketch sketch has no problems on UNO or Nano. I've tried all the usual things, restarting IDE, unpluging and reconnecting USB, different USB port etc, but still no joy when using this library. Any idea what's going on?

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTUMC7V3IUFXJOQX373WRI2A3ANCNFSM6AAAAAATUKUSWU . You are receiving this because you are subscribed to this thread. https://github.com/notifications/beacon/APZHUTW4MA6YBYDDGKL7GLLWRI2A3A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHFVWYTLY.gif Message ID: @. <mailto:@.> mailto:***@***.*** @. <mailto:@.> mailto:***@***.*** > >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1374889054, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWW5CDD3ZMOIXTR6R6TWRL33JANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> mailto:***@***.*** >

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1375176458 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTX3JU4JJAHIPUJZMBDWROY2LANCNFSM6AAAAAATUKUSWU . You are receiving this because you commented. https://github.com/notifications/beacon/APZHUTRV2RX7NGMQ5Q7HB7LWROY2LA5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSR66DQU.gif Message ID: @. <mailto:@.> @. <mailto:@.> > >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1375578416, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWTZGH4726VO7ECNW73WRQCQTANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> >

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1376567391 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTUFK2VU5LJ6U35S2L3WRSXR7ANCNFSM6AAAAAATUKUSWU . You are receiving this because you commented. https://github.com/notifications/beacon/APZHUTSPU6NY6YOOACVDRDDWRSXR7A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSSBTAF6.gif Message ID: @. @.> >

bob04609 commented 1 year ago

Hi Dean

Thanks. I checked operation with Flrig and it shows similar problems to WSJTX when the frequency goes over 99.999999MHz. I do have the debug operating on a tiny OLED now, just showing frequency sent and frequency received. It seems to be sending the right frequency (expressed as an integer) but somehow it's not getting back rig correctly.

It's tough to explain what I see happening, but I'll give it a try. Using the arduino and FLrig I the 3 readouts. There's an Arduino debug readout of the GetFreq and SetFreq and there's the FLrig display of where it thinks the rig is tuned

GetFreq SetFreq Flrig 99.999999 99.999999 99.999999 - all is good increade frequency by 1Hz in FLrig 100.000000 100.000000 200.000000 Increase frequency by 1Hz in Flrig 200.000001 200.000001 240.000001 Increase Frequency by 1Hz n FLrig 240.000002 240.000002 280.000002

So when adding 1Hz (in FLrig), it's adding 1Hz to the FLrig frequency and sending a request to move to that frequency. So it thinks it's at 200MHz, when 100MHz should have been sent, then when it adds 1Hz it now asks for 200.000001 MHz to be set on the rig (i.e. the emulator).

I don't know why it adds an extra 100MHZ the first time, then 40MHz after that. If you keep adding 1Hz, it stars to jump around, from 240 MHz to 280 MHz to 320MHz, then back to 300MHz then up to 440Mhz, 520, 540, 560, 580 etc. It's clearly not getting the right BCD in the 5th frequency byte.

It seems as though the emulator has the correct frequency in it, but when it gets over 100MHz, the decimal number it sends back is either not converted correctly BCD (though the code for that looks good), or the BCD is not sent back to the control program in the correct format data stream. Something is happening to that 5th BCD byte.

That's about the limit of my analysis. I start to go out of my depth beyond this point. I hope you can make some sense of it!

Thanks again and 73 Bob, KA1GT


From: kk4das @.> Sent: Monday, January 9, 2023 9:24 PM To: kk4das/IC746CAT @.> Cc: bob04609 @.>; Author @.> Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

I’ll try to look at it in the next day or two. The basic fix looks right. I’d check the size of CmdBuf to make sure we are not overwriting memory. And then there is the length of the command we send to the radio. A second serial port is definitely helpful. Or some kind of display for debug messages.

73,

Dean

From: bob04609 @.> Sent: Monday, January 9, 2023 7:56 PM To: kk4das/IC746CAT @.> Cc: kk4das @.>; Comment @.> Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

Well so far I seem to be missing something. I think the BCD/decimal changer I made are correct. For BCD to decimal I think you simply ignore what's in the 5th byte of the cmdBuf array, so I added in what I think is the correct code the read them and add then to the frequency (freq(.

long IC746::BCDtoFreq() { long freq;

freq = cmdBuf[CAT_IX_FREQ] & 0xf; // lower 4 bits freq += 10L (cmdBuf[CAT_IX_FREQ] >> 4); // upper 4 bits freq += 100L (cmdBuf[CAT_IX_FREQ + 1] & 0xf); freq += 1000L (cmdBuf[CAT_IX_FREQ + 1] >> 4); freq += 10000L (cmdBuf[CAT_IX_FREQ + 2] & 0xf); freq += 100000L (cmdBuf[CAT_IX_FREQ + 2] >> 4); freq += 1000000L (cmdBuf[CAT_IX_FREQ + 3] & 0xf); freq += 10000000L (cmdBuf[CAT_IX_FREQ + 3] >> 4); // add in 100Mhz and 1000Mhz byte freq += 100000000L (cmdBuf[CAT_IX_FREQ + 4] & 0xf); freq += 1000000000L * (cmdBuf[CAT_IX_FREQ + 4] >> 4);

return freq; }

When you write the frequency you simply put 0 in the 5th byte of the buffer. I defined two new variables, hund_mil and thou_mil to handle the 100MHz and 1000MHz data.

byte ones, tens, hund, thou, ten_thou, hund_thou, mil, ten_mil, hund_mil, thou_mil;

ones = byte(freq % 10); tens = byte((freq / 10L) % 10); cmdBuf[CAT_IX_FREQ] = byte((tens << 4)) | ones;

hund = byte((freq / 100L) % 10); thou = byte((freq / 1000L) % 10); cmdBuf[CAT_IX_FREQ + 1] = byte((thou << 4)) | hund;

ten_thou = byte((freq / 10000L) % 10); hund_thou = byte((freq / 100000L) % 10); cmdBuf[CAT_IX_FREQ + 2] = byte((hund_thou << 4)) | ten_thou;

mil = byte((freq / 1000000L) % 10); ten_mil = byte(freq / 10000000L); cmdBuf[CAT_IX_FREQ + 3] = byte((ten_mil << 4)) | mil;

//cmdBuf[CAT_IX_FREQ + 4] = 0; // fixed //ORIGINAL

//add in 100MHz and 1000Mhz values hund_mil = byte((freq / 100000000L) % 10); thou_mil = byte(freq / 1000000000L); cmdBuf[CAT_IX_FREQ + 4] = byte((thou_mil << 4)) | hund_mil;

}

I was hoping that this would be all that was required, but unfortunately it didn't fix the problem. When using WSJTX and entering a frequency below 100 MHZ (e.g. 70, 50 or 28MHz), everything is file and Doppler tracking for EME works as it should. However, when any frequency over 100MHz (e.g. 144MHz) is used, the frequency changes in an unpredictable way, 144 may go to 288 then 325 etc. I assume it's writing the wrong frequency above 100MHz. I don't yet have a display capable of printing out the debug commands in any legible manner.

I know it's very hard to remember what you did in code you wrote years ago, but do you remember if there is anywhere else you are just using 4 bytes of data in place of the 5 bytes that are allocated for frequency in the CI-V commands for the IC746? Right now I don't see it.

Enabling the debug commands probably means I will have to modify the .ino file to output the data to a second serial port and I don't have the hardware for that on hand (serial->USB) and maybe I will need to run it on a Mega board (which has additional serial lines), assuming it will compile for it. If you still have your original hardware around, maybe you could take a look and see if the Debug functions give any clues to what's happening here. Is it writing the wrong frequency of reading the wrong frequency (or both?)?

I will persist, but I'm currently a bit lost in the library code. You do seem to be allocating 5 bytes for the frequency along with the addresses for the frequency read command.

define CAT_SZ_FREQ 8 // 8 bytes - E0 56 03 ff ff ff ff ff (frequency in little endian BCD)

I have not yet figured out how (or where) you are setting the frequency.

So right now I'm stuck unless you have any ideas!

73 Bob, KA1GT


From: kk4das @. <mailto:@.> > Sent: Monday, January 9, 2023 7:50 AM To: kk4das/IC746CAT @. <mailto:@.> > Cc: bob04609 @. <mailto:@.> >; Author @. <mailto:@.> > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Bob,

Glad to hear it is working under Win 10. I no longer have a Win 7 environment. I’m sure you are right about the BCD conversion code. It’s a dumb byte by byte routine and I am certain I never thought about frequencies at 100MHz and up. Should be a pretty easy fix – you’ll need to look at both directions.

Another ham has made some changes to additional modes – CWU and CWL – those aren’t working quite right yet – but when they are I’ll push out a new version. Let me know if your test works ok and I’ll merge your changes as well.,

Glad to hear WSJTX is working. I’ve been away from this code for a while – there was an issue with CIV routines that I worked with them on about a year and half ago. I think I am still using a temporary hamlib I built to work around the issue.

73,

Dean

KK4DAS

From: bob04609 @. <mailto:@.> > Sent: Monday, January 9, 2023 1:54 AM To: kk4das/IC746CAT @. <mailto:@.> > Cc: kk4das @. <mailto:@.> >; Comment @. <mailto:@.> > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

An update here. I installed the Arduino IDE v 2.0.3 on a Windows 10 machine, and with that setup your library code compiles OK. I have not yet figured out what is happening with v1.8.15 on the Windows 7 machine. Obviously, something is wrong and it seems to be a compiler error of some sort, possibly in some intrinsic functions . Maybe something is out of date or there is a conflict somewhere.

I did find a small issue with the compiled code on the Windows 10 machine however. It seems to be fine up to 99Mhz, but at 100MHz and up it seems to be dropping the leading digit (100's of MHz). This gives errors when trying to use it at 144MHz. On my IC-7100, I think it's a 5 byte BCD coding for the frequency and the 5th byte has the high 4 bits as GHz (so it's always zero) and the now 4 bytes as the 100Mhz multiplier, so for the 746 it has to be 1 or 0 since the VHF/UHF frequency coverage is limited to the 2m band (on the IC-7100 it can be 0-4).

I have not yet tried looking at the .cpp file in your library, but I suspect there's an issue with the BCC to decimal and/or the decimal to BCD conversion routines which may only be looking at the lower 4 bytes of the frequency information. If I get a chance, I'll take a look at that tomorrow. I also have to get things running with the OLED display. I'm currently using WSJTX to check on how it's working (all seems OK there except for the frequency error above 99.999999 MHz). That's probably using the latest HamLib library. Omnirig also seems to find an IC746 just fine, though I have not tried using it to sending any commands.

73 Bob, KA1GT.


From: Bob Atkins @. <mailto:@.> mailto:***@***.*** > Sent: Sunday, January 8, 2023 6:40 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** >; kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** > Cc: Author @. <mailto:@.> mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

Many thanks for the reply. I may be missing some critical step in the setup which is obvious to you, but not to me!

My system is Windows 7 pro. I installed the library in the usual way. Down load the zip file from Github, then use the Arduino IDE (1.8.15) to install the zip file. I've done this many times with many libraries with no problems.

Then I navigate to the example file in the library, open it in the IDE, check that it compiles then try to upload it to an Arduino (first checking that I have the correct Arduino model and correct serial port selected). At this point the compiler and loader do their things and the compiled code gets loaded into the Arduino and runs.

Although I don't actually have the Adafruit ILI9341 tft, the compiler doesn't know that, so it should compile and even load (but of course it would not run). If I can get to the point of a successful compile and upload, then I'll change the TFT code to code that drives an OLED display.

However. with the example sketch (or indeed when I make any reference to the IC746 library even in an otherwise empty sketch) I get complaints from the compiler about aspects of the code and the IDE complains about compiling for the Arduino UNO (or Nano). The complaint about the UNO/Nano may be spillover from the earlier compiler compilates about the code and not in fact be complains about the board. Errors can cascade of course.

BTW I have gotten the C07WT Yaesu FT-857D library to work OK on an Arduino and I think your library is somewhat based on that. However the 857D is limited to 10Hz steps and in fact that library truncates frequencies to the nearest 100Hz. I'd like 1Hz steps and the actual IC746 does support 1Hz steps via CAT (not sure if your library does).

I've attached the verbose compiler output messages (most of which I don't understand) in case that gives you any clues. I'm not much of a C++ programmer.

My assumption was that I should be able to load the library, load the example sketch in the IDE and it should compile without me needing to do anything else, just like pretty much any other library and example sketch. Am I missing something here?

I may try installing the latest IDE on another PC running WIndows 10 (the most recent v2 IDE only lists full compatibility with Windows 10 and up) and see if that makes any difference. However, the fact that it works for you on the Arduino with the v1 IDE suggests that it should work for me too.

If I'm making some stupid error, please feel free to point it out. It wouldn't be the first time!

Thanks and 73 Bob, KA1GT


From: kk4das @. <mailto:@.> mailto:***@***.*** > Sent: Sunday, January 8, 2023 12:41 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** > Cc: bob04609 @. <mailto:@.> mailto:***@***.*** >; Author @. <mailto:@.> mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi –

It compiles fine for both Nano and Uno on 1.8.19 but I don’t think the version should matter.

I’ll help if I can. What platform are you compiling on? How did you install the library? What are you using for the main sketch?

Thanks,

Dean

From: bob04609 @. <mailto:@.> mailto:***@***.*** > Sent: Saturday, January 7, 2023 10:46 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** > Cc: Subscribed @. <mailto:@.> mailto:***@***.*** > Subject: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Has anyone ever compiles this for an Arduino UNO? It crashes every time for me with a "Error compiling for board Arduino Uno" message, even on the included example program. Even a a program that does nothing other than include the library. The introduction here says..."It has been demonstrated to work with an Arduino Nano and Arduino Nano Every although it should work with any MCU with a serial port..."

I tried it with an Arduino Nano and I get "Error compiling for board Arduino Nano", so that's not helping either.

I'm using Arduino IDE v1.8.15 if that makes a difference.

Same system, same cables, same port, same boars and same MPU with any other Arduino sketch sketch has no problems on UNO or Nano. I've tried all the usual things, restarting IDE, unpluging and reconnecting USB, different USB port etc, but still no joy when using this library. Any idea what's going on?

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTUMC7V3IUFXJOQX373WRI2A3ANCNFSM6AAAAAATUKUSWU . You are receiving this because you are subscribed to this thread. https://github.com/notifications/beacon/APZHUTW4MA6YBYDDGKL7GLLWRI2A3A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHFVWYTLY.gif Message ID: @. <mailto:@.> mailto:***@***.*** @. <mailto:@.> mailto:***@***.*** > >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1374889054, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWW5CDD3ZMOIXTR6R6TWRL33JANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> mailto:***@***.*** >

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1375176458 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTX3JU4JJAHIPUJZMBDWROY2LANCNFSM6AAAAAATUKUSWU . You are receiving this because you commented. https://github.com/notifications/beacon/APZHUTRV2RX7NGMQ5Q7HB7LWROY2LA5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSR66DQU.gif Message ID: @. <mailto:@.> @. <mailto:@.> > >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1375578416, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWTZGH4726VO7ECNW73WRQCQTANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> >

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1376567391 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTUFK2VU5LJ6U35S2L3WRSXR7ANCNFSM6AAAAAATUKUSWU . You are receiving this because you commented. https://github.com/notifications/beacon/APZHUTSPU6NY6YOOACVDRDDWRSXR7A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSSBTAF6.gif Message ID: @. @.> >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1376637047, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWWACYVNW72SR6RMW7TWRTB7NANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @.***>

bob04609 commented 1 year ago

Hi Dean. Not much luck sorting things out with the IC746 library and CAT control over 100MHz. I wonder if you had any time to look at it? I think my modifications to your library to add BCD/Decimal conversions which include the 5th Byte (100MHz and 1000MHz) are OK, and I think they work to pass frequencies back and forth to the Arduino emulator using OmniRig (OmniRig Client.exe program) on the PC end. I seem to be able to set VFOA and VFOB by toggling A and B and uploading a frequency to the active VFO. Seems to work OK at 144MHz.

However, things don't work with WSJTX (presumably using HamLib). I tried WSJTX with OmniRig (there's a Rig setting for OmniRig in the rig menu), but it didn't work. I'm not surprised since I suspect that the OmniRig interface is not used by anyone and may not work for anything! I'll have to see if it works with a real radio attached.

Though I've worked with OmniRig in the past (don't really understand it all, but I can get by using it), but I've never even looked at what goes in inside the HamLib "black box".

If you have had a chance to look at it, or have any thoughts what might be going on with Hamlib, I'd be interested to hear from you.

73 Bob, KA1GT


From: kk4das @.> Sent: Monday, January 9, 2023 9:24 PM To: kk4das/IC746CAT @.> Cc: bob04609 @.>; Author @.> Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

I’ll try to look at it in the next day or two. The basic fix looks right. I’d check the size of CmdBuf to make sure we are not overwriting memory. And then there is the length of the command we send to the radio. A second serial port is definitely helpful. Or some kind of display for debug messages.

73,

Dean

From: bob04609 @.> Sent: Monday, January 9, 2023 7:56 PM To: kk4das/IC746CAT @.> Cc: kk4das @.>; Comment @.> Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

Well so far I seem to be missing something. I think the BCD/decimal changer I made are correct. For BCD to decimal I think you simply ignore what's in the 5th byte of the cmdBuf array, so I added in what I think is the correct code the read them and add then to the frequency (freq(.

long IC746::BCDtoFreq() { long freq;

freq = cmdBuf[CAT_IX_FREQ] & 0xf; // lower 4 bits freq += 10L (cmdBuf[CAT_IX_FREQ] >> 4); // upper 4 bits freq += 100L (cmdBuf[CAT_IX_FREQ + 1] & 0xf); freq += 1000L (cmdBuf[CAT_IX_FREQ + 1] >> 4); freq += 10000L (cmdBuf[CAT_IX_FREQ + 2] & 0xf); freq += 100000L (cmdBuf[CAT_IX_FREQ + 2] >> 4); freq += 1000000L (cmdBuf[CAT_IX_FREQ + 3] & 0xf); freq += 10000000L (cmdBuf[CAT_IX_FREQ + 3] >> 4); // add in 100Mhz and 1000Mhz byte freq += 100000000L (cmdBuf[CAT_IX_FREQ + 4] & 0xf); freq += 1000000000L * (cmdBuf[CAT_IX_FREQ + 4] >> 4);

return freq; }

When you write the frequency you simply put 0 in the 5th byte of the buffer. I defined two new variables, hund_mil and thou_mil to handle the 100MHz and 1000MHz data.

byte ones, tens, hund, thou, ten_thou, hund_thou, mil, ten_mil, hund_mil, thou_mil;

ones = byte(freq % 10); tens = byte((freq / 10L) % 10); cmdBuf[CAT_IX_FREQ] = byte((tens << 4)) | ones;

hund = byte((freq / 100L) % 10); thou = byte((freq / 1000L) % 10); cmdBuf[CAT_IX_FREQ + 1] = byte((thou << 4)) | hund;

ten_thou = byte((freq / 10000L) % 10); hund_thou = byte((freq / 100000L) % 10); cmdBuf[CAT_IX_FREQ + 2] = byte((hund_thou << 4)) | ten_thou;

mil = byte((freq / 1000000L) % 10); ten_mil = byte(freq / 10000000L); cmdBuf[CAT_IX_FREQ + 3] = byte((ten_mil << 4)) | mil;

//cmdBuf[CAT_IX_FREQ + 4] = 0; // fixed //ORIGINAL

//add in 100MHz and 1000Mhz values hund_mil = byte((freq / 100000000L) % 10); thou_mil = byte(freq / 1000000000L); cmdBuf[CAT_IX_FREQ + 4] = byte((thou_mil << 4)) | hund_mil;

}

I was hoping that this would be all that was required, but unfortunately it didn't fix the problem. When using WSJTX and entering a frequency below 100 MHZ (e.g. 70, 50 or 28MHz), everything is file and Doppler tracking for EME works as it should. However, when any frequency over 100MHz (e.g. 144MHz) is used, the frequency changes in an unpredictable way, 144 may go to 288 then 325 etc. I assume it's writing the wrong frequency above 100MHz. I don't yet have a display capable of printing out the debug commands in any legible manner.

I know it's very hard to remember what you did in code you wrote years ago, but do you remember if there is anywhere else you are just using 4 bytes of data in place of the 5 bytes that are allocated for frequency in the CI-V commands for the IC746? Right now I don't see it.

Enabling the debug commands probably means I will have to modify the .ino file to output the data to a second serial port and I don't have the hardware for that on hand (serial->USB) and maybe I will need to run it on a Mega board (which has additional serial lines), assuming it will compile for it. If you still have your original hardware around, maybe you could take a look and see if the Debug functions give any clues to what's happening here. Is it writing the wrong frequency of reading the wrong frequency (or both?)?

I will persist, but I'm currently a bit lost in the library code. You do seem to be allocating 5 bytes for the frequency along with the addresses for the frequency read command.

define CAT_SZ_FREQ 8 // 8 bytes - E0 56 03 ff ff ff ff ff (frequency in little endian BCD)

I have not yet figured out how (or where) you are setting the frequency.

So right now I'm stuck unless you have any ideas!

73 Bob, KA1GT


From: kk4das @. <mailto:@.> > Sent: Monday, January 9, 2023 7:50 AM To: kk4das/IC746CAT @. <mailto:@.> > Cc: bob04609 @. <mailto:@.> >; Author @. <mailto:@.> > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Bob,

Glad to hear it is working under Win 10. I no longer have a Win 7 environment. I’m sure you are right about the BCD conversion code. It’s a dumb byte by byte routine and I am certain I never thought about frequencies at 100MHz and up. Should be a pretty easy fix – you’ll need to look at both directions.

Another ham has made some changes to additional modes – CWU and CWL – those aren’t working quite right yet – but when they are I’ll push out a new version. Let me know if your test works ok and I’ll merge your changes as well.,

Glad to hear WSJTX is working. I’ve been away from this code for a while – there was an issue with CIV routines that I worked with them on about a year and half ago. I think I am still using a temporary hamlib I built to work around the issue.

73,

Dean

KK4DAS

From: bob04609 @. <mailto:@.> > Sent: Monday, January 9, 2023 1:54 AM To: kk4das/IC746CAT @. <mailto:@.> > Cc: kk4das @. <mailto:@.> >; Comment @. <mailto:@.> > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

An update here. I installed the Arduino IDE v 2.0.3 on a Windows 10 machine, and with that setup your library code compiles OK. I have not yet figured out what is happening with v1.8.15 on the Windows 7 machine. Obviously, something is wrong and it seems to be a compiler error of some sort, possibly in some intrinsic functions . Maybe something is out of date or there is a conflict somewhere.

I did find a small issue with the compiled code on the Windows 10 machine however. It seems to be fine up to 99Mhz, but at 100MHz and up it seems to be dropping the leading digit (100's of MHz). This gives errors when trying to use it at 144MHz. On my IC-7100, I think it's a 5 byte BCD coding for the frequency and the 5th byte has the high 4 bits as GHz (so it's always zero) and the now 4 bytes as the 100Mhz multiplier, so for the 746 it has to be 1 or 0 since the VHF/UHF frequency coverage is limited to the 2m band (on the IC-7100 it can be 0-4).

I have not yet tried looking at the .cpp file in your library, but I suspect there's an issue with the BCC to decimal and/or the decimal to BCD conversion routines which may only be looking at the lower 4 bytes of the frequency information. If I get a chance, I'll take a look at that tomorrow. I also have to get things running with the OLED display. I'm currently using WSJTX to check on how it's working (all seems OK there except for the frequency error above 99.999999 MHz). That's probably using the latest HamLib library. Omnirig also seems to find an IC746 just fine, though I have not tried using it to sending any commands.

73 Bob, KA1GT.


From: Bob Atkins @. <mailto:@.> mailto:***@***.*** > Sent: Sunday, January 8, 2023 6:40 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** >; kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** > Cc: Author @. <mailto:@.> mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

Many thanks for the reply. I may be missing some critical step in the setup which is obvious to you, but not to me!

My system is Windows 7 pro. I installed the library in the usual way. Down load the zip file from Github, then use the Arduino IDE (1.8.15) to install the zip file. I've done this many times with many libraries with no problems.

Then I navigate to the example file in the library, open it in the IDE, check that it compiles then try to upload it to an Arduino (first checking that I have the correct Arduino model and correct serial port selected). At this point the compiler and loader do their things and the compiled code gets loaded into the Arduino and runs.

Although I don't actually have the Adafruit ILI9341 tft, the compiler doesn't know that, so it should compile and even load (but of course it would not run). If I can get to the point of a successful compile and upload, then I'll change the TFT code to code that drives an OLED display.

However. with the example sketch (or indeed when I make any reference to the IC746 library even in an otherwise empty sketch) I get complaints from the compiler about aspects of the code and the IDE complains about compiling for the Arduino UNO (or Nano). The complaint about the UNO/Nano may be spillover from the earlier compiler compilates about the code and not in fact be complains about the board. Errors can cascade of course.

BTW I have gotten the C07WT Yaesu FT-857D library to work OK on an Arduino and I think your library is somewhat based on that. However the 857D is limited to 10Hz steps and in fact that library truncates frequencies to the nearest 100Hz. I'd like 1Hz steps and the actual IC746 does support 1Hz steps via CAT (not sure if your library does).

I've attached the verbose compiler output messages (most of which I don't understand) in case that gives you any clues. I'm not much of a C++ programmer.

My assumption was that I should be able to load the library, load the example sketch in the IDE and it should compile without me needing to do anything else, just like pretty much any other library and example sketch. Am I missing something here?

I may try installing the latest IDE on another PC running WIndows 10 (the most recent v2 IDE only lists full compatibility with Windows 10 and up) and see if that makes any difference. However, the fact that it works for you on the Arduino with the v1 IDE suggests that it should work for me too.

If I'm making some stupid error, please feel free to point it out. It wouldn't be the first time!

Thanks and 73 Bob, KA1GT


From: kk4das @. <mailto:@.> mailto:***@***.*** > Sent: Sunday, January 8, 2023 12:41 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** > Cc: bob04609 @. <mailto:@.> mailto:***@***.*** >; Author @. <mailto:@.> mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi –

It compiles fine for both Nano and Uno on 1.8.19 but I don’t think the version should matter.

I’ll help if I can. What platform are you compiling on? How did you install the library? What are you using for the main sketch?

Thanks,

Dean

From: bob04609 @. <mailto:@.> mailto:***@***.*** > Sent: Saturday, January 7, 2023 10:46 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** > Cc: Subscribed @. <mailto:@.> mailto:***@***.*** > Subject: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Has anyone ever compiles this for an Arduino UNO? It crashes every time for me with a "Error compiling for board Arduino Uno" message, even on the included example program. Even a a program that does nothing other than include the library. The introduction here says..."It has been demonstrated to work with an Arduino Nano and Arduino Nano Every although it should work with any MCU with a serial port..."

I tried it with an Arduino Nano and I get "Error compiling for board Arduino Nano", so that's not helping either.

I'm using Arduino IDE v1.8.15 if that makes a difference.

Same system, same cables, same port, same boars and same MPU with any other Arduino sketch sketch has no problems on UNO or Nano. I've tried all the usual things, restarting IDE, unpluging and reconnecting USB, different USB port etc, but still no joy when using this library. Any idea what's going on?

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTUMC7V3IUFXJOQX373WRI2A3ANCNFSM6AAAAAATUKUSWU . You are receiving this because you are subscribed to this thread. https://github.com/notifications/beacon/APZHUTW4MA6YBYDDGKL7GLLWRI2A3A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHFVWYTLY.gif Message ID: @. <mailto:@.> mailto:***@***.*** @. <mailto:@.> mailto:***@***.*** > >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1374889054, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWW5CDD3ZMOIXTR6R6TWRL33JANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> mailto:***@***.*** >

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1375176458 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTX3JU4JJAHIPUJZMBDWROY2LANCNFSM6AAAAAATUKUSWU . You are receiving this because you commented. https://github.com/notifications/beacon/APZHUTRV2RX7NGMQ5Q7HB7LWROY2LA5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSR66DQU.gif Message ID: @. <mailto:@.> @. <mailto:@.> > >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1375578416, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWTZGH4726VO7ECNW73WRQCQTANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> >

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1376567391 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTUFK2VU5LJ6U35S2L3WRSXR7ANCNFSM6AAAAAATUKUSWU . You are receiving this because you commented. https://github.com/notifications/beacon/APZHUTSPU6NY6YOOACVDRDDWRSXR7A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSSBTAF6.gif Message ID: @. @.> >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1376637047, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWWACYVNW72SR6RMW7TWRTB7NANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @.***>

kk4das commented 1 year ago

HI Bob –

I looked at it this morning and the changes look right to me. I don’t’ see anything obvious. If it works with OmniRig that is a good sign. You might try some other software like FLDIGI and FLRIG. If I recall FLRIG has a trace mode that lets you see the packets. I also used program called CatBkt https://www.maniaradio.it/en/catbkt.html for testing. If it works with all of these then it points to a Hamlib issue. I didn’t find the hamlib team particularly responsive when I had other issues with WSJTX – it took the WSJTX developers weighing in to get them to fix the code. They were sending unimplemented commands to the IC-746 that were messing things up. You could try posting a question / bug report on the WSJTX groups.io and see. The lead developer passed away last year, and I don’t know who has stepped in.

73,

Dean

KK4DAS

From: bob04609 @.> Sent: Tuesday, January 17, 2023 1:20 AM To: kk4das/IC746CAT @.> Cc: kk4das @.>; Comment @.> Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean. Not much luck sorting things out with the IC746 library and CAT control over 100MHz. I wonder if you had any time to look at it? I think my modifications to your library to add BCD/Decimal conversions which include the 5th Byte (100MHz and 1000MHz) are OK, and I think they work to pass frequencies back and forth to the Arduino emulator using OmniRig (OmniRig Client.exe program) on the PC end. I seem to be able to set VFOA and VFOB by toggling A and B and uploading a frequency to the active VFO. Seems to work OK at 144MHz.

However, things don't work with WSJTX (presumably using HamLib). I tried WSJTX with OmniRig (there's a Rig setting for OmniRig in the rig menu), but it didn't work. I'm not surprised since I suspect that the OmniRig interface is not used by anyone and may not work for anything! I'll have to see if it works with a real radio attached.

Though I've worked with OmniRig in the past (don't really understand it all, but I can get by using it), but I've never even looked at what goes in inside the HamLib "black box".

If you have had a chance to look at it, or have any thoughts what might be going on with Hamlib, I'd be interested to hear from you.

73 Bob, KA1GT


From: kk4das @. <mailto:@.> > Sent: Monday, January 9, 2023 9:24 PM To: kk4das/IC746CAT @. <mailto:@.> > Cc: bob04609 @. <mailto:@.> >; Author @. <mailto:@.> > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

I’ll try to look at it in the next day or two. The basic fix looks right. I’d check the size of CmdBuf to make sure we are not overwriting memory. And then there is the length of the command we send to the radio. A second serial port is definitely helpful. Or some kind of display for debug messages.

73,

Dean

From: bob04609 @. <mailto:@.> > Sent: Monday, January 9, 2023 7:56 PM To: kk4das/IC746CAT @. <mailto:@.> > Cc: kk4das @. <mailto:@.> >; Comment @. <mailto:@.> > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

Well so far I seem to be missing something. I think the BCD/decimal changer I made are correct. For BCD to decimal I think you simply ignore what's in the 5th byte of the cmdBuf array, so I added in what I think is the correct code the read them and add then to the frequency (freq(.

long IC746::BCDtoFreq() { long freq;

freq = cmdBuf[CAT_IX_FREQ] & 0xf; // lower 4 bits freq += 10L (cmdBuf[CAT_IX_FREQ] >> 4); // upper 4 bits freq += 100L (cmdBuf[CAT_IX_FREQ + 1] & 0xf); freq += 1000L (cmdBuf[CAT_IX_FREQ + 1] >> 4); freq += 10000L (cmdBuf[CAT_IX_FREQ + 2] & 0xf); freq += 100000L (cmdBuf[CAT_IX_FREQ + 2] >> 4); freq += 1000000L (cmdBuf[CAT_IX_FREQ + 3] & 0xf); freq += 10000000L (cmdBuf[CAT_IX_FREQ + 3] >> 4); // add in 100Mhz and 1000Mhz byte freq += 100000000L (cmdBuf[CAT_IX_FREQ + 4] & 0xf); freq += 1000000000L * (cmdBuf[CAT_IX_FREQ + 4] >> 4);

return freq; }

When you write the frequency you simply put 0 in the 5th byte of the buffer. I defined two new variables, hund_mil and thou_mil to handle the 100MHz and 1000MHz data.

byte ones, tens, hund, thou, ten_thou, hund_thou, mil, ten_mil, hund_mil, thou_mil;

ones = byte(freq % 10); tens = byte((freq / 10L) % 10); cmdBuf[CAT_IX_FREQ] = byte((tens << 4)) | ones;

hund = byte((freq / 100L) % 10); thou = byte((freq / 1000L) % 10); cmdBuf[CAT_IX_FREQ + 1] = byte((thou << 4)) | hund;

ten_thou = byte((freq / 10000L) % 10); hund_thou = byte((freq / 100000L) % 10); cmdBuf[CAT_IX_FREQ + 2] = byte((hund_thou << 4)) | ten_thou;

mil = byte((freq / 1000000L) % 10); ten_mil = byte(freq / 10000000L); cmdBuf[CAT_IX_FREQ + 3] = byte((ten_mil << 4)) | mil;

//cmdBuf[CAT_IX_FREQ + 4] = 0; // fixed //ORIGINAL

//add in 100MHz and 1000Mhz values hund_mil = byte((freq / 100000000L) % 10); thou_mil = byte(freq / 1000000000L); cmdBuf[CAT_IX_FREQ + 4] = byte((thou_mil << 4)) | hund_mil;

}

I was hoping that this would be all that was required, but unfortunately it didn't fix the problem. When using WSJTX and entering a frequency below 100 MHZ (e.g. 70, 50 or 28MHz), everything is file and Doppler tracking for EME works as it should. However, when any frequency over 100MHz (e.g. 144MHz) is used, the frequency changes in an unpredictable way, 144 may go to 288 then 325 etc. I assume it's writing the wrong frequency above 100MHz. I don't yet have a display capable of printing out the debug commands in any legible manner.

I know it's very hard to remember what you did in code you wrote years ago, but do you remember if there is anywhere else you are just using 4 bytes of data in place of the 5 bytes that are allocated for frequency in the CI-V commands for the IC746? Right now I don't see it.

Enabling the debug commands probably means I will have to modify the .ino file to output the data to a second serial port and I don't have the hardware for that on hand (serial->USB) and maybe I will need to run it on a Mega board (which has additional serial lines), assuming it will compile for it. If you still have your original hardware around, maybe you could take a look and see if the Debug functions give any clues to what's happening here. Is it writing the wrong frequency of reading the wrong frequency (or both?)?

I will persist, but I'm currently a bit lost in the library code. You do seem to be allocating 5 bytes for the frequency along with the addresses for the frequency read command.

define CAT_SZ_FREQ 8 // 8 bytes - E0 56 03 ff ff ff ff ff (frequency in little endian BCD)

I have not yet figured out how (or where) you are setting the frequency.

So right now I'm stuck unless you have any ideas!

73 Bob, KA1GT


From: kk4das @. <mailto:@.> mailto:***@***.*** > Sent: Monday, January 9, 2023 7:50 AM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** > Cc: bob04609 @. <mailto:@.> mailto:***@***.*** >; Author @. <mailto:@.> mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Bob,

Glad to hear it is working under Win 10. I no longer have a Win 7 environment. I’m sure you are right about the BCD conversion code. It’s a dumb byte by byte routine and I am certain I never thought about frequencies at 100MHz and up. Should be a pretty easy fix – you’ll need to look at both directions.

Another ham has made some changes to additional modes – CWU and CWL – those aren’t working quite right yet – but when they are I’ll push out a new version. Let me know if your test works ok and I’ll merge your changes as well.,

Glad to hear WSJTX is working. I’ve been away from this code for a while – there was an issue with CIV routines that I worked with them on about a year and half ago. I think I am still using a temporary hamlib I built to work around the issue.

73,

Dean

KK4DAS

From: bob04609 @. <mailto:@.> mailto:***@***.*** > Sent: Monday, January 9, 2023 1:54 AM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** > Cc: kk4das @. <mailto:@.> mailto:***@***.*** >; Comment @. <mailto:@.> mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

An update here. I installed the Arduino IDE v 2.0.3 on a Windows 10 machine, and with that setup your library code compiles OK. I have not yet figured out what is happening with v1.8.15 on the Windows 7 machine. Obviously, something is wrong and it seems to be a compiler error of some sort, possibly in some intrinsic functions . Maybe something is out of date or there is a conflict somewhere.

I did find a small issue with the compiled code on the Windows 10 machine however. It seems to be fine up to 99Mhz, but at 100MHz and up it seems to be dropping the leading digit (100's of MHz). This gives errors when trying to use it at 144MHz. On my IC-7100, I think it's a 5 byte BCD coding for the frequency and the 5th byte has the high 4 bits as GHz (so it's always zero) and the now 4 bytes as the 100Mhz multiplier, so for the 746 it has to be 1 or 0 since the VHF/UHF frequency coverage is limited to the 2m band (on the IC-7100 it can be 0-4).

I have not yet tried looking at the .cpp file in your library, but I suspect there's an issue with the BCC to decimal and/or the decimal to BCD conversion routines which may only be looking at the lower 4 bytes of the frequency information. If I get a chance, I'll take a look at that tomorrow. I also have to get things running with the OLED display. I'm currently using WSJTX to check on how it's working (all seems OK there except for the frequency error above 99.999999 MHz). That's probably using the latest HamLib library. Omnirig also seems to find an IC746 just fine, though I have not tried using it to sending any commands.

73 Bob, KA1GT.


From: Bob Atkins @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Sent: Sunday, January 8, 2023 6:40 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** >; kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Cc: Author @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

Many thanks for the reply. I may be missing some critical step in the setup which is obvious to you, but not to me!

My system is Windows 7 pro. I installed the library in the usual way. Down load the zip file from Github, then use the Arduino IDE (1.8.15) to install the zip file. I've done this many times with many libraries with no problems.

Then I navigate to the example file in the library, open it in the IDE, check that it compiles then try to upload it to an Arduino (first checking that I have the correct Arduino model and correct serial port selected). At this point the compiler and loader do their things and the compiled code gets loaded into the Arduino and runs.

Although I don't actually have the Adafruit ILI9341 tft, the compiler doesn't know that, so it should compile and even load (but of course it would not run). If I can get to the point of a successful compile and upload, then I'll change the TFT code to code that drives an OLED display.

However. with the example sketch (or indeed when I make any reference to the IC746 library even in an otherwise empty sketch) I get complaints from the compiler about aspects of the code and the IDE complains about compiling for the Arduino UNO (or Nano). The complaint about the UNO/Nano may be spillover from the earlier compiler compilates about the code and not in fact be complains about the board. Errors can cascade of course.

BTW I have gotten the C07WT Yaesu FT-857D library to work OK on an Arduino and I think your library is somewhat based on that. However the 857D is limited to 10Hz steps and in fact that library truncates frequencies to the nearest 100Hz. I'd like 1Hz steps and the actual IC746 does support 1Hz steps via CAT (not sure if your library does).

I've attached the verbose compiler output messages (most of which I don't understand) in case that gives you any clues. I'm not much of a C++ programmer.

My assumption was that I should be able to load the library, load the example sketch in the IDE and it should compile without me needing to do anything else, just like pretty much any other library and example sketch. Am I missing something here?

I may try installing the latest IDE on another PC running WIndows 10 (the most recent v2 IDE only lists full compatibility with Windows 10 and up) and see if that makes any difference. However, the fact that it works for you on the Arduino with the v1 IDE suggests that it should work for me too.

If I'm making some stupid error, please feel free to point it out. It wouldn't be the first time!

Thanks and 73 Bob, KA1GT


From: kk4das @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Sent: Sunday, January 8, 2023 12:41 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Cc: bob04609 @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** >; Author @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi –

It compiles fine for both Nano and Uno on 1.8.19 but I don’t think the version should matter.

I’ll help if I can. What platform are you compiling on? How did you install the library? What are you using for the main sketch?

Thanks,

Dean

From: bob04609 @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Sent: Saturday, January 7, 2023 10:46 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Cc: Subscribed @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Subject: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Has anyone ever compiles this for an Arduino UNO? It crashes every time for me with a "Error compiling for board Arduino Uno" message, even on the included example program. Even a a program that does nothing other than include the library. The introduction here says..."It has been demonstrated to work with an Arduino Nano and Arduino Nano Every although it should work with any MCU with a serial port..."

I tried it with an Arduino Nano and I get "Error compiling for board Arduino Nano", so that's not helping either.

I'm using Arduino IDE v1.8.15 if that makes a difference.

Same system, same cables, same port, same boars and same MPU with any other Arduino sketch sketch has no problems on UNO or Nano. I've tried all the usual things, restarting IDE, unpluging and reconnecting USB, different USB port etc, but still no joy when using this library. Any idea what's going on?

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTUMC7V3IUFXJOQX373WRI2A3ANCNFSM6AAAAAATUKUSWU . You are receiving this because you are subscribed to this thread. https://github.com/notifications/beacon/APZHUTW4MA6YBYDDGKL7GLLWRI2A3A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHFVWYTLY.gif Message ID: @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1374889054, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWW5CDD3ZMOIXTR6R6TWRL33JANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** >

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1375176458 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTX3JU4JJAHIPUJZMBDWROY2LANCNFSM6AAAAAATUKUSWU . You are receiving this because you commented. https://github.com/notifications/beacon/APZHUTRV2RX7NGMQ5Q7HB7LWROY2LA5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSR66DQU.gif Message ID: @. <mailto:@.> mailto:***@***.*** @. <mailto:@.> mailto:***@***.*** > >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1375578416, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWTZGH4726VO7ECNW73WRQCQTANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> mailto:***@***.*** >

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1376567391 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTUFK2VU5LJ6U35S2L3WRSXR7ANCNFSM6AAAAAATUKUSWU . You are receiving this because you commented. https://github.com/notifications/beacon/APZHUTSPU6NY6YOOACVDRDDWRSXR7A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSSBTAF6.gif Message ID: @. <mailto:@.> @. <mailto:@.> > >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1376637047, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWWACYVNW72SR6RMW7TWRTB7NANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> >

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1384887614 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTTW7KWMKHETUFMORS3WSY2XFANCNFSM6AAAAAATUKUSWU . You are receiving this because you commented. https://github.com/notifications/beacon/APZHUTWUAE5RJUYQUKTGMV3WSY2XFA5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSSRO2T4.gif Message ID: @. @.> >

bob04609 commented 1 year ago

Thanks Dean

I will try a few more programs with the emulator, maybe even try to do some more testing with OmniRig. I would not be surprised at HamLib issues. They happen all the time with WSJTX. I knew Bill Somerville quite well, and he was certainly the "go to" guy for any deep technical, PC related questions about WSJTX. It has been very difficult fining anyone else who knows what's going on as thoroughly as Bill did. I think HamLib questions are now being bounced back to the HamLib team for resolution, which has significantly slowed things down. If they don't get complaints from IC746 users, I suspect it's unlikely they want to spend time looking at emulator issues. Things seem to work OK as long as you are under 100MHz, so I don't quite know what that's pointing to. I might try contacting them if all else fails. At least they might understand the Hamlib failure message that appears when WSJTX fails the CAT test!

I'll take a look at CatBkt and a second look at OmniRig. If I can't figure out what's going on, I'll try a few questions in relevant groups to see if anyone else has run into this issue.

I'll certainly let you know what I find out.

73 Bob, KA1GT


From: kk4das @.> Sent: Tuesday, January 17, 2023 8:54 AM To: kk4das/IC746CAT @.> Cc: bob04609 @.>; Author @.> Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

HI Bob –

I looked at it this morning and the changes look right to me. I don’t’ see anything obvious. If it works with OmniRig that is a good sign. You might try some other software like FLDIGI and FLRIG. If I recall FLRIG has a trace mode that lets you see the packets. I also used program called CatBkt https://www.maniaradio.it/en/catbkt.html for testing. If it works with all of these then it points to a Hamlib issue. I didn’t find the hamlib team particularly responsive when I had other issues with WSJTX – it took the WSJTX developers weighing in to get them to fix the code. They were sending unimplemented commands to the IC-746 that were messing things up. You could try posting a question / bug report on the WSJTX groups.io and see. The lead developer passed away last year, and I don’t know who has stepped in.

73,

Dean

KK4DAS

From: bob04609 @.> Sent: Tuesday, January 17, 2023 1:20 AM To: kk4das/IC746CAT @.> Cc: kk4das @.>; Comment @.> Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean. Not much luck sorting things out with the IC746 library and CAT control over 100MHz. I wonder if you had any time to look at it? I think my modifications to your library to add BCD/Decimal conversions which include the 5th Byte (100MHz and 1000MHz) are OK, and I think they work to pass frequencies back and forth to the Arduino emulator using OmniRig (OmniRig Client.exe program) on the PC end. I seem to be able to set VFOA and VFOB by toggling A and B and uploading a frequency to the active VFO. Seems to work OK at 144MHz.

However, things don't work with WSJTX (presumably using HamLib). I tried WSJTX with OmniRig (there's a Rig setting for OmniRig in the rig menu), but it didn't work. I'm not surprised since I suspect that the OmniRig interface is not used by anyone and may not work for anything! I'll have to see if it works with a real radio attached.

Though I've worked with OmniRig in the past (don't really understand it all, but I can get by using it), but I've never even looked at what goes in inside the HamLib "black box".

If you have had a chance to look at it, or have any thoughts what might be going on with Hamlib, I'd be interested to hear from you.

73 Bob, KA1GT


From: kk4das @. <mailto:@.> > Sent: Monday, January 9, 2023 9:24 PM To: kk4das/IC746CAT @. <mailto:@.> > Cc: bob04609 @. <mailto:@.> >; Author @. <mailto:@.> > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

I’ll try to look at it in the next day or two. The basic fix looks right. I’d check the size of CmdBuf to make sure we are not overwriting memory. And then there is the length of the command we send to the radio. A second serial port is definitely helpful. Or some kind of display for debug messages.

73,

Dean

From: bob04609 @. <mailto:@.> > Sent: Monday, January 9, 2023 7:56 PM To: kk4das/IC746CAT @. <mailto:@.> > Cc: kk4das @. <mailto:@.> >; Comment @. <mailto:@.> > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

Well so far I seem to be missing something. I think the BCD/decimal changer I made are correct. For BCD to decimal I think you simply ignore what's in the 5th byte of the cmdBuf array, so I added in what I think is the correct code the read them and add then to the frequency (freq(.

long IC746::BCDtoFreq() { long freq;

freq = cmdBuf[CAT_IX_FREQ] & 0xf; // lower 4 bits freq += 10L (cmdBuf[CAT_IX_FREQ] >> 4); // upper 4 bits freq += 100L (cmdBuf[CAT_IX_FREQ + 1] & 0xf); freq += 1000L (cmdBuf[CAT_IX_FREQ + 1] >> 4); freq += 10000L (cmdBuf[CAT_IX_FREQ + 2] & 0xf); freq += 100000L (cmdBuf[CAT_IX_FREQ + 2] >> 4); freq += 1000000L (cmdBuf[CAT_IX_FREQ + 3] & 0xf); freq += 10000000L (cmdBuf[CAT_IX_FREQ + 3] >> 4); // add in 100Mhz and 1000Mhz byte freq += 100000000L (cmdBuf[CAT_IX_FREQ + 4] & 0xf); freq += 1000000000L * (cmdBuf[CAT_IX_FREQ + 4] >> 4);

return freq; }

When you write the frequency you simply put 0 in the 5th byte of the buffer. I defined two new variables, hund_mil and thou_mil to handle the 100MHz and 1000MHz data.

byte ones, tens, hund, thou, ten_thou, hund_thou, mil, ten_mil, hund_mil, thou_mil;

ones = byte(freq % 10); tens = byte((freq / 10L) % 10); cmdBuf[CAT_IX_FREQ] = byte((tens << 4)) | ones;

hund = byte((freq / 100L) % 10); thou = byte((freq / 1000L) % 10); cmdBuf[CAT_IX_FREQ + 1] = byte((thou << 4)) | hund;

ten_thou = byte((freq / 10000L) % 10); hund_thou = byte((freq / 100000L) % 10); cmdBuf[CAT_IX_FREQ + 2] = byte((hund_thou << 4)) | ten_thou;

mil = byte((freq / 1000000L) % 10); ten_mil = byte(freq / 10000000L); cmdBuf[CAT_IX_FREQ + 3] = byte((ten_mil << 4)) | mil;

//cmdBuf[CAT_IX_FREQ + 4] = 0; // fixed //ORIGINAL

//add in 100MHz and 1000Mhz values hund_mil = byte((freq / 100000000L) % 10); thou_mil = byte(freq / 1000000000L); cmdBuf[CAT_IX_FREQ + 4] = byte((thou_mil << 4)) | hund_mil;

}

I was hoping that this would be all that was required, but unfortunately it didn't fix the problem. When using WSJTX and entering a frequency below 100 MHZ (e.g. 70, 50 or 28MHz), everything is file and Doppler tracking for EME works as it should. However, when any frequency over 100MHz (e.g. 144MHz) is used, the frequency changes in an unpredictable way, 144 may go to 288 then 325 etc. I assume it's writing the wrong frequency above 100MHz. I don't yet have a display capable of printing out the debug commands in any legible manner.

I know it's very hard to remember what you did in code you wrote years ago, but do you remember if there is anywhere else you are just using 4 bytes of data in place of the 5 bytes that are allocated for frequency in the CI-V commands for the IC746? Right now I don't see it.

Enabling the debug commands probably means I will have to modify the .ino file to output the data to a second serial port and I don't have the hardware for that on hand (serial->USB) and maybe I will need to run it on a Mega board (which has additional serial lines), assuming it will compile for it. If you still have your original hardware around, maybe you could take a look and see if the Debug functions give any clues to what's happening here. Is it writing the wrong frequency of reading the wrong frequency (or both?)?

I will persist, but I'm currently a bit lost in the library code. You do seem to be allocating 5 bytes for the frequency along with the addresses for the frequency read command.

define CAT_SZ_FREQ 8 // 8 bytes - E0 56 03 ff ff ff ff ff (frequency in little endian BCD)

I have not yet figured out how (or where) you are setting the frequency.

So right now I'm stuck unless you have any ideas!

73 Bob, KA1GT


From: kk4das @. <mailto:@.> mailto:***@***.*** > Sent: Monday, January 9, 2023 7:50 AM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** > Cc: bob04609 @. <mailto:@.> mailto:***@***.*** >; Author @. <mailto:@.> mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Bob,

Glad to hear it is working under Win 10. I no longer have a Win 7 environment. I’m sure you are right about the BCD conversion code. It’s a dumb byte by byte routine and I am certain I never thought about frequencies at 100MHz and up. Should be a pretty easy fix – you’ll need to look at both directions.

Another ham has made some changes to additional modes – CWU and CWL – those aren’t working quite right yet – but when they are I’ll push out a new version. Let me know if your test works ok and I’ll merge your changes as well.,

Glad to hear WSJTX is working. I’ve been away from this code for a while – there was an issue with CIV routines that I worked with them on about a year and half ago. I think I am still using a temporary hamlib I built to work around the issue.

73,

Dean

KK4DAS

From: bob04609 @. <mailto:@.> mailto:***@***.*** > Sent: Monday, January 9, 2023 1:54 AM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** > Cc: kk4das @. <mailto:@.> mailto:***@***.*** >; Comment @. <mailto:@.> mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

An update here. I installed the Arduino IDE v 2.0.3 on a Windows 10 machine, and with that setup your library code compiles OK. I have not yet figured out what is happening with v1.8.15 on the Windows 7 machine. Obviously, something is wrong and it seems to be a compiler error of some sort, possibly in some intrinsic functions . Maybe something is out of date or there is a conflict somewhere.

I did find a small issue with the compiled code on the Windows 10 machine however. It seems to be fine up to 99Mhz, but at 100MHz and up it seems to be dropping the leading digit (100's of MHz). This gives errors when trying to use it at 144MHz. On my IC-7100, I think it's a 5 byte BCD coding for the frequency and the 5th byte has the high 4 bits as GHz (so it's always zero) and the now 4 bytes as the 100Mhz multiplier, so for the 746 it has to be 1 or 0 since the VHF/UHF frequency coverage is limited to the 2m band (on the IC-7100 it can be 0-4).

I have not yet tried looking at the .cpp file in your library, but I suspect there's an issue with the BCC to decimal and/or the decimal to BCD conversion routines which may only be looking at the lower 4 bytes of the frequency information. If I get a chance, I'll take a look at that tomorrow. I also have to get things running with the OLED display. I'm currently using WSJTX to check on how it's working (all seems OK there except for the frequency error above 99.999999 MHz). That's probably using the latest HamLib library. Omnirig also seems to find an IC746 just fine, though I have not tried using it to sending any commands.

73 Bob, KA1GT.


From: Bob Atkins @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Sent: Sunday, January 8, 2023 6:40 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** >; kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Cc: Author @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

Many thanks for the reply. I may be missing some critical step in the setup which is obvious to you, but not to me!

My system is Windows 7 pro. I installed the library in the usual way. Down load the zip file from Github, then use the Arduino IDE (1.8.15) to install the zip file. I've done this many times with many libraries with no problems.

Then I navigate to the example file in the library, open it in the IDE, check that it compiles then try to upload it to an Arduino (first checking that I have the correct Arduino model and correct serial port selected). At this point the compiler and loader do their things and the compiled code gets loaded into the Arduino and runs.

Although I don't actually have the Adafruit ILI9341 tft, the compiler doesn't know that, so it should compile and even load (but of course it would not run). If I can get to the point of a successful compile and upload, then I'll change the TFT code to code that drives an OLED display.

However. with the example sketch (or indeed when I make any reference to the IC746 library even in an otherwise empty sketch) I get complaints from the compiler about aspects of the code and the IDE complains about compiling for the Arduino UNO (or Nano). The complaint about the UNO/Nano may be spillover from the earlier compiler compilates about the code and not in fact be complains about the board. Errors can cascade of course.

BTW I have gotten the C07WT Yaesu FT-857D library to work OK on an Arduino and I think your library is somewhat based on that. However the 857D is limited to 10Hz steps and in fact that library truncates frequencies to the nearest 100Hz. I'd like 1Hz steps and the actual IC746 does support 1Hz steps via CAT (not sure if your library does).

I've attached the verbose compiler output messages (most of which I don't understand) in case that gives you any clues. I'm not much of a C++ programmer.

My assumption was that I should be able to load the library, load the example sketch in the IDE and it should compile without me needing to do anything else, just like pretty much any other library and example sketch. Am I missing something here?

I may try installing the latest IDE on another PC running WIndows 10 (the most recent v2 IDE only lists full compatibility with Windows 10 and up) and see if that makes any difference. However, the fact that it works for you on the Arduino with the v1 IDE suggests that it should work for me too.

If I'm making some stupid error, please feel free to point it out. It wouldn't be the first time!

Thanks and 73 Bob, KA1GT


From: kk4das @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Sent: Sunday, January 8, 2023 12:41 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Cc: bob04609 @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** >; Author @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi –

It compiles fine for both Nano and Uno on 1.8.19 but I don’t think the version should matter.

I’ll help if I can. What platform are you compiling on? How did you install the library? What are you using for the main sketch?

Thanks,

Dean

From: bob04609 @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Sent: Saturday, January 7, 2023 10:46 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Cc: Subscribed @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Subject: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Has anyone ever compiles this for an Arduino UNO? It crashes every time for me with a "Error compiling for board Arduino Uno" message, even on the included example program. Even a a program that does nothing other than include the library. The introduction here says..."It has been demonstrated to work with an Arduino Nano and Arduino Nano Every although it should work with any MCU with a serial port..."

I tried it with an Arduino Nano and I get "Error compiling for board Arduino Nano", so that's not helping either.

I'm using Arduino IDE v1.8.15 if that makes a difference.

Same system, same cables, same port, same boars and same MPU with any other Arduino sketch sketch has no problems on UNO or Nano. I've tried all the usual things, restarting IDE, unpluging and reconnecting USB, different USB port etc, but still no joy when using this library. Any idea what's going on?

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTUMC7V3IUFXJOQX373WRI2A3ANCNFSM6AAAAAATUKUSWU . You are receiving this because you are subscribed to this thread. https://github.com/notifications/beacon/APZHUTW4MA6YBYDDGKL7GLLWRI2A3A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHFVWYTLY.gif Message ID: @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1374889054, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWW5CDD3ZMOIXTR6R6TWRL33JANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** >

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1375176458 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTX3JU4JJAHIPUJZMBDWROY2LANCNFSM6AAAAAATUKUSWU . You are receiving this because you commented. https://github.com/notifications/beacon/APZHUTRV2RX7NGMQ5Q7HB7LWROY2LA5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSR66DQU.gif Message ID: @. <mailto:@.> mailto:***@***.*** @. <mailto:@.> mailto:***@***.*** > >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1375578416, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWTZGH4726VO7ECNW73WRQCQTANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> mailto:***@***.*** >

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1376567391 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTUFK2VU5LJ6U35S2L3WRSXR7ANCNFSM6AAAAAATUKUSWU . You are receiving this because you commented. https://github.com/notifications/beacon/APZHUTSPU6NY6YOOACVDRDDWRSXR7A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSSBTAF6.gif Message ID: @. <mailto:@.> @. <mailto:@.> > >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1376637047, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWWACYVNW72SR6RMW7TWRTB7NANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> >

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1384887614 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTTW7KWMKHETUFMORS3WSY2XFANCNFSM6AAAAAATUKUSWU . You are receiving this because you commented. https://github.com/notifications/beacon/APZHUTWUAE5RJUYQUKTGMV3WSY2XFA5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSSRO2T4.gif Message ID: @. @.> >

— Reply to this email directly, view it on GitHubhttps://github.com/kk4das/IC746CAT/issues/6#issuecomment-1385459766, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWZKFWWYEVOY5L4QSVI7C63WS2QC3ANCNFSM6AAAAAATUKUSWU. You are receiving this because you authored the thread.Message ID: @.***>

kk4das commented 1 year ago

Bill was a great guy. If you search the WSJX groups.io you'll see he the one that got the Hamlib guys to make the last fix I needed.

Dean

On Thu, Jan 19, 2023, 10:55 PM bob04609 @.***> wrote:

Thanks Dean

I will try a few more programs with the emulator, maybe even try to do some more testing with OmniRig. I would not be surprised at HamLib issues. They happen all the time with WSJTX. I knew Bill Somerville quite well, and he was certainly the "go to" guy for any deep technical, PC related questions about WSJTX. It has been very difficult fining anyone else who knows what's going on as thoroughly as Bill did. I think HamLib questions are now being bounced back to the HamLib team for resolution, which has significantly slowed things down. If they don't get complaints from IC746 users, I suspect it's unlikely they want to spend time looking at emulator issues. Things seem to work OK as long as you are under 100MHz, so I don't quite know what that's pointing to. I might try contacting them if all else fails. At least they might understand the Hamlib failure message that appears when WSJTX fails the CAT test!

I'll take a look at CatBkt and a second look at OmniRig. If I can't figure out what's going on, I'll try a few questions in relevant groups to see if anyone else has run into this issue.

I'll certainly let you know what I find out.

73 Bob, KA1GT


From: kk4das @.> Sent: Tuesday, January 17, 2023 8:54 AM To: kk4das/IC746CAT @.> Cc: bob04609 @.>; Author @.> Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

HI Bob –

I looked at it this morning and the changes look right to me. I don’t’ see anything obvious. If it works with OmniRig that is a good sign. You might try some other software like FLDIGI and FLRIG. If I recall FLRIG has a trace mode that lets you see the packets. I also used program called CatBkt https://www.maniaradio.it/en/catbkt.html for testing. If it works with all of these then it points to a Hamlib issue. I didn’t find the hamlib team particularly responsive when I had other issues with WSJTX – it took the WSJTX developers weighing in to get them to fix the code. They were sending unimplemented commands to the IC-746 that were messing things up. You could try posting a question / bug report on the WSJTX groups.io and see. The lead developer passed away last year, and I don’t know who has stepped in.

73,

Dean

KK4DAS

From: bob04609 @.> Sent: Tuesday, January 17, 2023 1:20 AM To: kk4das/IC746CAT @.> Cc: kk4das @.>; Comment @.> Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean. Not much luck sorting things out with the IC746 library and CAT control over 100MHz. I wonder if you had any time to look at it? I think my modifications to your library to add BCD/Decimal conversions which include the 5th Byte (100MHz and 1000MHz) are OK, and I think they work to pass frequencies back and forth to the Arduino emulator using OmniRig (OmniRig Client.exe program) on the PC end. I seem to be able to set VFOA and VFOB by toggling A and B and uploading a frequency to the active VFO. Seems to work OK at 144MHz.

However, things don't work with WSJTX (presumably using HamLib). I tried WSJTX with OmniRig (there's a Rig setting for OmniRig in the rig menu), but it didn't work. I'm not surprised since I suspect that the OmniRig interface is not used by anyone and may not work for anything! I'll have to see if it works with a real radio attached.

Though I've worked with OmniRig in the past (don't really understand it all, but I can get by using it), but I've never even looked at what goes in inside the HamLib "black box".

If you have had a chance to look at it, or have any thoughts what might be going on with Hamlib, I'd be interested to hear from you.

73 Bob, KA1GT


From: kk4das @. <mailto:@.> > Sent: Monday, January 9, 2023 9:24 PM To: kk4das/IC746CAT @. <mailto:@.> > Cc: bob04609 @. <mailto:@.> >; Author @. <mailto:@.> > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

I’ll try to look at it in the next day or two. The basic fix looks right. I’d check the size of CmdBuf to make sure we are not overwriting memory. And then there is the length of the command we send to the radio. A second serial port is definitely helpful. Or some kind of display for debug messages.

73,

Dean

From: bob04609 @. <mailto:@.> > Sent: Monday, January 9, 2023 7:56 PM To: kk4das/IC746CAT @. <mailto:@.> > Cc: kk4das @. <mailto:@.> >; Comment @. <mailto:@.> > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

Well so far I seem to be missing something. I think the BCD/decimal changer I made are correct. For BCD to decimal I think you simply ignore what's in the 5th byte of the cmdBuf array, so I added in what I think is the correct code the read them and add then to the frequency (freq(.

long IC746::BCDtoFreq() { long freq;

freq = cmdBuf[CAT_IX_FREQ] & 0xf; // lower 4 bits freq += 10L (cmdBuf[CAT_IX_FREQ] >> 4); // upper 4 bits freq += 100L (cmdBuf[CAT_IX_FREQ + 1] & 0xf); freq += 1000L (cmdBuf[CAT_IX_FREQ + 1] >> 4); freq += 10000L (cmdBuf[CAT_IX_FREQ + 2] & 0xf); freq += 100000L (cmdBuf[CAT_IX_FREQ + 2] >> 4); freq += 1000000L (cmdBuf[CAT_IX_FREQ + 3] & 0xf); freq += 10000000L (cmdBuf[CAT_IX_FREQ + 3] >> 4); // add in 100Mhz and 1000Mhz byte freq += 100000000L (cmdBuf[CAT_IX_FREQ + 4] & 0xf); freq += 1000000000L * (cmdBuf[CAT_IX_FREQ + 4] >> 4);

return freq; }

When you write the frequency you simply put 0 in the 5th byte of the buffer. I defined two new variables, hund_mil and thou_mil to handle the 100MHz and 1000MHz data.

byte ones, tens, hund, thou, ten_thou, hund_thou, mil, ten_mil, hund_mil, thou_mil;

ones = byte(freq % 10); tens = byte((freq / 10L) % 10); cmdBuf[CAT_IX_FREQ] = byte((tens << 4)) | ones;

hund = byte((freq / 100L) % 10); thou = byte((freq / 1000L) % 10); cmdBuf[CAT_IX_FREQ + 1] = byte((thou << 4)) | hund;

ten_thou = byte((freq / 10000L) % 10); hund_thou = byte((freq / 100000L) % 10); cmdBuf[CAT_IX_FREQ + 2] = byte((hund_thou << 4)) | ten_thou;

mil = byte((freq / 1000000L) % 10); ten_mil = byte(freq / 10000000L); cmdBuf[CAT_IX_FREQ + 3] = byte((ten_mil << 4)) | mil;

//cmdBuf[CAT_IX_FREQ + 4] = 0; // fixed //ORIGINAL

//add in 100MHz and 1000Mhz values hund_mil = byte((freq / 100000000L) % 10); thou_mil = byte(freq / 1000000000L); cmdBuf[CAT_IX_FREQ + 4] = byte((thou_mil << 4)) | hund_mil;

}

I was hoping that this would be all that was required, but unfortunately it didn't fix the problem. When using WSJTX and entering a frequency below 100 MHZ (e.g. 70, 50 or 28MHz), everything is file and Doppler tracking for EME works as it should. However, when any frequency over 100MHz (e.g. 144MHz) is used, the frequency changes in an unpredictable way, 144 may go to 288 then 325 etc. I assume it's writing the wrong frequency above 100MHz. I don't yet have a display capable of printing out the debug commands in any legible manner.

I know it's very hard to remember what you did in code you wrote years ago, but do you remember if there is anywhere else you are just using 4 bytes of data in place of the 5 bytes that are allocated for frequency in the CI-V commands for the IC746? Right now I don't see it.

Enabling the debug commands probably means I will have to modify the .ino file to output the data to a second serial port and I don't have the hardware for that on hand (serial->USB) and maybe I will need to run it on a Mega board (which has additional serial lines), assuming it will compile for it. If you still have your original hardware around, maybe you could take a look and see if the Debug functions give any clues to what's happening here. Is it writing the wrong frequency of reading the wrong frequency (or both?)?

I will persist, but I'm currently a bit lost in the library code. You do seem to be allocating 5 bytes for the frequency along with the addresses for the frequency read command.

define CAT_SZ_FREQ 8 // 8 bytes - E0 56 03 ff ff ff ff ff (frequency in

little endian BCD)

I have not yet figured out how (or where) you are setting the frequency.

So right now I'm stuck unless you have any ideas!

73 Bob, KA1GT


From: kk4das @. <mailto:@.> mailto:***@***.*** > Sent: Monday, January 9, 2023 7:50 AM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.***

Cc: bob04609 @. <mailto:@.> mailto:***@***.*** >; Author @. <mailto:@.> mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Bob,

Glad to hear it is working under Win 10. I no longer have a Win 7 environment. I’m sure you are right about the BCD conversion code. It’s a dumb byte by byte routine and I am certain I never thought about frequencies at 100MHz and up. Should be a pretty easy fix – you’ll need to look at both directions.

Another ham has made some changes to additional modes – CWU and CWL – those aren’t working quite right yet – but when they are I’ll push out a new version. Let me know if your test works ok and I’ll merge your changes as well.,

Glad to hear WSJTX is working. I’ve been away from this code for a while – there was an issue with CIV routines that I worked with them on about a year and half ago. I think I am still using a temporary hamlib I built to work around the issue.

73,

Dean

KK4DAS

From: bob04609 @. <mailto:@.> mailto:***@***.*** > Sent: Monday, January 9, 2023 1:54 AM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.***

Cc: kk4das @. <mailto:@.> mailto:***@***.*** >; Comment @. <mailto:@.> mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

An update here. I installed the Arduino IDE v 2.0.3 on a Windows 10 machine, and with that setup your library code compiles OK. I have not yet figured out what is happening with v1.8.15 on the Windows 7 machine. Obviously, something is wrong and it seems to be a compiler error of some sort, possibly in some intrinsic functions . Maybe something is out of date or there is a conflict somewhere.

I did find a small issue with the compiled code on the Windows 10 machine however. It seems to be fine up to 99Mhz, but at 100MHz and up it seems to be dropping the leading digit (100's of MHz). This gives errors when trying to use it at 144MHz. On my IC-7100, I think it's a 5 byte BCD coding for the frequency and the 5th byte has the high 4 bits as GHz (so it's always zero) and the now 4 bytes as the 100Mhz multiplier, so for the 746 it has to be 1 or 0 since the VHF/UHF frequency coverage is limited to the 2m band (on the IC-7100 it can be 0-4).

I have not yet tried looking at the .cpp file in your library, but I suspect there's an issue with the BCC to decimal and/or the decimal to BCD conversion routines which may only be looking at the lower 4 bytes of the frequency information. If I get a chance, I'll take a look at that tomorrow. I also have to get things running with the OLED display. I'm currently using WSJTX to check on how it's working (all seems OK there except for the frequency error above 99.999999 MHz). That's probably using the latest HamLib library. Omnirig also seems to find an IC746 just fine, though I have not tried using it to sending any commands.

73 Bob, KA1GT.


From: Bob Atkins @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Sent: Sunday, January 8, 2023 6:40 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** >; kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Cc: Author @. <mailto:@.> mailto:***@***.*** mailto:***@***.***

Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi Dean

Many thanks for the reply. I may be missing some critical step in the setup which is obvious to you, but not to me!

My system is Windows 7 pro. I installed the library in the usual way. Down load the zip file from Github, then use the Arduino IDE (1.8.15) to install the zip file. I've done this many times with many libraries with no problems.

Then I navigate to the example file in the library, open it in the IDE, check that it compiles then try to upload it to an Arduino (first checking that I have the correct Arduino model and correct serial port selected). At this point the compiler and loader do their things and the compiled code gets loaded into the Arduino and runs.

Although I don't actually have the Adafruit ILI9341 tft, the compiler doesn't know that, so it should compile and even load (but of course it would not run). If I can get to the point of a successful compile and upload, then I'll change the TFT code to code that drives an OLED display.

However. with the example sketch (or indeed when I make any reference to the IC746 library even in an otherwise empty sketch) I get complaints from the compiler about aspects of the code and the IDE complains about compiling for the Arduino UNO (or Nano). The complaint about the UNO/Nano may be spillover from the earlier compiler compilates about the code and not in fact be complains about the board. Errors can cascade of course.

BTW I have gotten the C07WT Yaesu FT-857D library to work OK on an Arduino and I think your library is somewhat based on that. However the 857D is limited to 10Hz steps and in fact that library truncates frequencies to the nearest 100Hz. I'd like 1Hz steps and the actual IC746 does support 1Hz steps via CAT (not sure if your library does).

I've attached the verbose compiler output messages (most of which I don't understand) in case that gives you any clues. I'm not much of a C++ programmer.

My assumption was that I should be able to load the library, load the example sketch in the IDE and it should compile without me needing to do anything else, just like pretty much any other library and example sketch. Am I missing something here?

I may try installing the latest IDE on another PC running WIndows 10 (the most recent v2 IDE only lists full compatibility with Windows 10 and up) and see if that makes any difference. However, the fact that it works for you on the Arduino with the v1 IDE suggests that it should work for me too.

If I'm making some stupid error, please feel free to point it out. It wouldn't be the first time!

Thanks and 73 Bob, KA1GT


From: kk4das @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Sent: Sunday, January 8, 2023 12:41 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Cc: bob04609 @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** >; Author @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Subject: Re: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Hi –

It compiles fine for both Nano and Uno on 1.8.19 but I don’t think the version should matter.

I’ll help if I can. What platform are you compiling on? How did you install the library? What are you using for the main sketch?

Thanks,

Dean

From: bob04609 @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Sent: Saturday, January 7, 2023 10:46 PM To: kk4das/IC746CAT @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Cc: Subscribed @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** > Subject: [kk4das/IC746CAT] Incompatibility with UNO (and even Nano). Any ideas? (Issue #6)

Has anyone ever compiles this for an Arduino UNO? It crashes every time for me with a "Error compiling for board Arduino Uno" message, even on the included example program. Even a a program that does nothing other than include the library. The introduction here says..."It has been demonstrated to work with an Arduino Nano and Arduino Nano Every although it should work with any MCU with a serial port..."

I tried it with an Arduino Nano and I get "Error compiling for board Arduino Nano", so that's not helping either.

I'm using Arduino IDE v1.8.15 if that makes a difference.

Same system, same cables, same port, same boars and same MPU with any other Arduino sketch sketch has no problems on UNO or Nano. I've tried all the usual things, restarting IDE, unpluging and reconnecting USB, different USB port etc, but still no joy when using this library. Any idea what's going on?

— Reply to this email directly, view it on GitHub < https://github.com/kk4das/IC746CAT/issues/6> , or unsubscribe < https://github.com/notifications/unsubscribe-auth/APZHUTUMC7V3IUFXJOQX373WRI2A3ANCNFSM6AAAAAATUKUSWU> . You are receiving this because you are subscribed to this thread. < https://github.com/notifications/beacon/APZHUTW4MA6YBYDDGKL7GLLWRI2A3A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHFVWYTLY.gif> Message ID: @. <mailto:@.> mailto:***@***.*** mailto:***@***.*** @. <mailto:@.> mailto:***@***.*** mailto:***@***.***

— Reply to this email directly, view it on GitHub< https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1374889054>, or unsubscribe< https://github.com/notifications/unsubscribe-auth/AWZKFWW5CDD3ZMOIXTR6R6TWRL33JANCNFSM6AAAAAATUKUSWU

. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> mailto:***@***.*** mailto:***@***.***

— Reply to this email directly, view it on GitHub < https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1375176458> , or unsubscribe < https://github.com/notifications/unsubscribe-auth/APZHUTX3JU4JJAHIPUJZMBDWROY2LANCNFSM6AAAAAATUKUSWU> . You are receiving this because you commented. < https://github.com/notifications/beacon/APZHUTRV2RX7NGMQ5Q7HB7LWROY2LA5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSR66DQU.gif> Message ID: @. <mailto:@.> mailto:***@***.*** @. <mailto:@.> mailto:***@***.*** > >

— Reply to this email directly, view it on GitHub< https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1375578416>, or unsubscribe< https://github.com/notifications/unsubscribe-auth/AWZKFWTZGH4726VO7ECNW73WRQCQTANCNFSM6AAAAAATUKUSWU

. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> mailto:***@***.*** >

— Reply to this email directly, view it on GitHub < https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1376567391> , or unsubscribe < https://github.com/notifications/unsubscribe-auth/APZHUTUFK2VU5LJ6U35S2L3WRSXR7ANCNFSM6AAAAAATUKUSWU> . You are receiving this because you commented. < https://github.com/notifications/beacon/APZHUTSPU6NY6YOOACVDRDDWRSXR7A5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSSBTAF6.gif> Message ID: @. <mailto:@.> @. <mailto:@.>

— Reply to this email directly, view it on GitHub< https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1376637047>, or unsubscribe< https://github.com/notifications/unsubscribe-auth/AWZKFWWACYVNW72SR6RMW7TWRTB7NANCNFSM6AAAAAATUKUSWU

. You are receiving this because you authored the thread.Message ID: @. <mailto:@.> >

— Reply to this email directly, view it on GitHub < https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1384887614> , or unsubscribe < https://github.com/notifications/unsubscribe-auth/APZHUTTW7KWMKHETUFMORS3WSY2XFANCNFSM6AAAAAATUKUSWU> . You are receiving this because you commented. < https://github.com/notifications/beacon/APZHUTWUAE5RJUYQUKTGMV3WSY2XFA5CNFSM6AAAAAATUKUSWWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSSRO2T4.gif> Message ID: @. @.> >

— Reply to this email directly, view it on GitHub< https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1385459766>, or unsubscribe< https://github.com/notifications/unsubscribe-auth/AWZKFWWYEVOY5L4QSVI7C63WS2QC3ANCNFSM6AAAAAATUKUSWU

. You are receiving this because you authored the thread.Message ID: @.***>

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1397892464, or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTRE3IBNJ7Y4A26QIO3WTIEDXANCNFSM6AAAAAATUKUSWU . You are receiving this because you commented.Message ID: @.***>

bob04609 commented 1 year ago

Hi Dean

I found the problem! After putting a serial line monitor on the connection between the application and the emmulator and analyzing the CI-V trafic, it was clear that the problem was in the decimal to BCD conversion. It was missing a mod 10 (% 10) in the final conversion line of your original code. This is absolutely fine for frequences <100 Mhz, but not for frequencies >=100MHz. Even for frequences <100Mhz, the mod 10 does no harm, it's just not needed. At and above 100Mhz it is needed, a fact that I had missed when adding the BCD Code for the hundreds of MHz digit as shown below:

void IC746::FreqtoBCD(long freq) { // byte ones, tens, hund, thou, ten_thou, hund_thou, mil, ten_mil;

byte ones, tens, hund, thou, ten_thou, hund_thou, mil, ten_mil, hund_mil, thou_mil;

ones = byte(freq % 10); tens = byte((freq / 10L) % 10); cmdBuf[CAT_IX_FREQ] = byte((tens << 4)) | ones;

hund = byte((freq / 100L) % 10); thou = byte((freq / 1000L) % 10); cmdBuf[CAT_IX_FREQ + 1] = byte((thou << 4)) | hund;

ten_thou = byte((freq / 10000L) % 10); hund_thou = byte((freq / 100000L) % 10); cmdBuf[CAT_IX_FREQ + 2] = byte((hund_thou << 4)) | ten_thou;

mil = byte((freq / 1000000L) % 10); //ten_mil = byte(freq / 10000000L); <- This is your original line, which is fine only if the result of this integer division is <10 ten_mil = byte(freq / 10000000L) % 10; <- This is the revised line which is good whether the resuly is <10 or >10 cmdBuf[CAT_IX_FREQ + 3] = byte((ten_mil << 4)) | mil;

//cmdBuf[CAT_IX_FREQ + 4] = 0; // fixed //ORIGINAL

//add in 100MHz and 1000Mhz values hund_mil = byte((freq / 100000000L) % 10); thou_mil = byte(freq / 1000000000L); <- Note that like the above, this is only good when the result is <10 (which is always the case for the IC-746) //thou_mil = byte(freq / 1000000000L % 10); <- This would be the more general case and allow frequencies up to 9999.999999 MHz to be enterd The code could then be used for the IC-9100 for example

cmdBuf[CAT_IX_FREQ + 4] = byte((thou_mil << 4)) | hund_mil;

}

Since the library does not use the default received address code (56 for the IC-746), and only basic CI-V codes are supported, the library will almosr certainly emulate the IC-9100 (which has 23cm coverage) with the line shown in blue used.

As far as I can tell, it's now working fine at 144MHz (and indeed 432MHz, which the IC-746 doesn't cover!). If it passes any tests you make, feel free to use it to modify the Arduino library if you wish to.

I think this solves all the problems. I've learrned a little about CI-V, arduino librariers and BCD coversion in the process of figuring it out, so it's been a valuable learning experience.

Thanks and 73 Bob, KA1GT

Message ID: @.***>

kk4das commented 1 year ago

Bob,

That's a good catch and a very satisfying fix. I will definitely include it in the next update. I'm integrating another hams changes to add CWU and CWL modes. I'll put those together and make a new release. I suspect you are correct that the existing code will work with other ICOMs. I tried to make the responses to unsupported commands at least reasonable. But I can't say for sure that the existing code will work for any command that might get sent from a model with an advanced CI-V. Split mode in WSJTX is one of the ones that can trip you up. As long as you use split mode emulated in WSJTX. It should work for any of them.

What did you use serial port monitoring? I mostly used the command line version of the Hamlib utility, but that had its limitations.

Our club has an IC-746 and I'm going to borrow it to characterize all of the command and response streams.

73, Dean

On Fri, Jan 20, 2023, 11:55 PM bob04609 @.***> wrote:

Hi Dean

I found the problem! After putting a serial line monitor on the connection between the application and the emmulator and analyzing the CI-V trafic, it was clear that the problem was in the decimal to BCD conversion. It was missing a mod 10 (% 10) in the final conversion line of your original code. This is absolutely fine for frequences <100 Mhz, but not for frequencies

=100MHz. Even for frequences <100Mhz, the mod 10 does no harm, it's just not needed. At and above 100Mhz it is needed, a fact that I had missed when adding the BCD Code for the hundreds of MHz digit as shown below:

void IC746::FreqtoBCD(long freq) { // byte ones, tens, hund, thou, ten_thou, hund_thou, mil, ten_mil;

byte ones, tens, hund, thou, ten_thou, hund_thou, mil, ten_mil, hund_mil, thou_mil;

ones = byte(freq % 10); tens = byte((freq / 10L) % 10); cmdBuf[CAT_IX_FREQ] = byte((tens << 4)) | ones;

hund = byte((freq / 100L) % 10); thou = byte((freq / 1000L) % 10); cmdBuf[CAT_IX_FREQ + 1] = byte((thou << 4)) | hund;

ten_thou = byte((freq / 10000L) % 10); hund_thou = byte((freq / 100000L) % 10); cmdBuf[CAT_IX_FREQ + 2] = byte((hund_thou << 4)) | ten_thou;

mil = byte((freq / 1000000L) % 10); //ten_mil = byte(freq / 10000000L); <- This is your original line, which is fine only if the result of this integer division is <10 ten_mil = byte(freq / 10000000L) % 10; <- This is the revised line which is good whether the resuly is <10 or >10 cmdBuf[CAT_IX_FREQ + 3] = byte((ten_mil << 4)) | mil;

//cmdBuf[CAT_IX_FREQ + 4] = 0; // fixed //ORIGINAL

//add in 100MHz and 1000Mhz values hund_mil = byte((freq / 100000000L) % 10); thou_mil = byte(freq / 1000000000L); <- Note that like the above, this is only good when the result is <10 (which is always the case for the IC-746) //thou_mil = byte(freq / 1000000000L % 10); <- This would be the more general case and allow frequencies up to 9999.999999 MHz to be enterd The code could then be used for the IC-9100 for example

cmdBuf[CAT_IX_FREQ + 4] = byte((thou_mil << 4)) | hund_mil;

}

Since the library does not use the default received address code (56 for the IC-746), and only basic CI-V codes are supported, the library will almosr certainly emulate the IC-9100 (which has 23cm coverage) with the line shown in blue used.

As far as I can tell, it's now working fine at 144MHz (and indeed 432MHz, which the IC-746 doesn't cover!). If it passes any tests you make, feel free to use it to modify the Arduino library if you wish to.

I think this solves all the problems. I've learrned a little about CI-V, arduino librariers and BCD coversion in the process of figuring it out, so it's been a valuable learning experience.

Thanks and 73 Bob, KA1GT

Message ID: @.***>

— Reply to this email directly, view it on GitHub https://github.com/kk4das/IC746CAT/issues/6#issuecomment-1399178892, or unsubscribe https://github.com/notifications/unsubscribe-auth/APZHUTU7EAMTDZCPDSZFLGLWTNT4HANCNFSM6AAAAAATUKUSWU . You are receiving this because you commented.Message ID: @.***>

kk4das commented 1 year ago

Bob,

The library has been updated with your changes to the BCD routines. I have also added support for all IC-746 defined operating modes.

Thanks for everything.

73, Dean KK4DAS

kk4das commented 1 year ago

Issue resolved in release 1.0.3