Icom CI-V Decoder/Control head Update

6 views
Skip to first unread message

Mike Lewis

unread,
Jul 23, 2024, 3:44:25 PM (4 days ago) Jul 23
to PNW VHF Society Email List
I have been making major changes near daily cleaning up code, restructuring data, converted to a command lookup table approach, and add several APIs that interface the IC-905 to my Teensy SDR.  It is highly functional as a remote control head now with almost no CI-V bus errors seen anymore.  

The most used radio functions and status are now working for the IC-905. It is pretty slick. The UI and/or controls are completely optional, I test it periodically on a small bare Teensy 4.0 module watching just the serial debug.

AGC, FILTER, PREAMP, ATTN, MODE, VFO Tuning, VFO step size, Band Select, UTC or LOCAL time and data.  I have the Lat and Long data now to calculate grid square and display it.

A lot of work was done the last few days to find and avoid CI-V bus message conflicts and errors.  The errors are sometimes collisions, some require a delay, most are from sending commands for invalid features on a given band.  Not all filters, AGC, Attenuator or preamp features are available on every combo of band and mode.

At startup I read the radio state for many controls and on band changes.  Some controls like MODE and FILTER the radio announces on change from the radio side.  Some things you have to poll for like ATTN and PREAMP and AGC.  You poll on a MODE change message to get extended MODE info and get DATA mode on or off.

With the switch to reading for the radio its config (it is the master source) where possible, I now support the proper tracking of the MODE, AGC, FILTER, PREAMP, ATTN, BAND combos.  All the MODE and DATA combos are in a single mode list accessed from the touch or hardware button, or an encoder.  A quick twist selects any combo.  The FILTER, PREAMP, AGC, ATTN all change with the selected mode/data combo as allowed by band and mode. 

A #define UTC setting in the RadioConfig.h file chooses time display in UTC or LOCAL using offset and time data in the radio.

With this UI control work now in good working order I plan to start working on the IO control config scheme and make it easy to switch radio models.  One of the larger uses of this project is to be a transverter control interface for several Icom radios used as IFs.  The IC-705 is probably the most in demand but IC-9700, 9100, 7300 and other models should be supportable.   I will have to borrow some radios for this work. The IC-705 is first up. The serial is USB today but can be BT or hardware with a small bit of code work, the BT parts are already there, just have to make it easy to change over by config.

Again, if you happen to have built a K7MDL Teensy SDR, you can use that hardware today.  If not, you can use just a bare Teensy module and watch the debug messages.  You can add IO pin operations or wait for me to do that soon enough.

Always on the list is code cleanup, refactoring, and UI reconfiguring.  Right now I am leveraging the existing Teensy SDR layout, not making any layout changes.  It will work on both 4.3" and 7" with a simple config change, I plan to remove the RS-HFIQ SDR board from my compact 4.3" Teensy SDR box and hook it up to the 905 and verify things work as it should.

Code is at https://github.com/K7MDL2/ICOM_IC-905_CIV. Requires my CIV lib at https://github.com/K7MDL2/CIVmasterLib.

Mike
K7MDL CN87xs

Reply all
Reply to author
Forward
0 new messages