Up until now, Flex radio users that wanted to run a CTR2-Flex WiFi controller for local radio control and have a CTR2-Dial MIDI controller to work with SmartSDR for iOS/MacOS on road trips had to either reflash their CTR2 controller with the firmware they needed at the time, or purchase a separate controller.

Not anymore!

CTR2-Flex v2 incorporates both CTR2-Flex and CTR2-Dial firmware in the same file. Once you’re flashed CTR2-Flex v2 onto your CTR2-Dial or CTR2-Flex controller you’ll enjoy the advantage of switching between the two controller firmwares with the touch of a button.

The firmware runs on either CTR2-Flex or CTR2-Dial hardware.


Latest CTR2-Flex Firmware

v2.03.03 – September 16, 2025

  • Added a new Touch Delay option to the Settings menus in both CTR2-Flex and CTR2-Dial. This option allows you to enable or disable the 120 millisecond touch delay that was added in v2.03.02. Enable it if your M5Dial randomly generates touch events.
  • Added the Pdl: Normal/Reverse option to CTR2-Dial’s Settings menu. This option allows you to roll the wiring on you CW paddle. This option has always been in CTR2-Flex.

Download the Firmware

Download the latest firmware using the link below. The zip file ships with the operation manuals for both CTR2-Flex and CTR2-Dial. Installation instructions are included in the Appendixes of each manual.

Do not erase the flash memory when you flash the new firmware. Doing so will require you to re-enter your call, registration key, WiFi credentials, radio address, and macros into CTR2-Flex and all mapping and labeling in CTR2-Dial.


It will automatically start in CTR2-Dial firmware when installed on CTR2-Dial hardware and in CTR2-Flex firmware when installed on CTR2-Flex hardware. You can switch firmware by going to the Settings menu and selecting either Run CTR2-Dial or Run CTR2-Flex, depending on the firmware that’s running.

When it’s installed on hardware that has previously run CTR2-Dial firmware it will convert the maps and settings from the old firmware to the new data structures used in CTR2-Flex so the new instance of CTR2-Dial should look and work exactly like the old instance.

NOTE: This firmware is not compatible with exported settings file from previous version 1 firmware. You should export the settings on the new firmware after you’ve set it up.


There are a few of trade-offs when running CTR2-Flex firmware on CTR2-Dial hardware:

  • CTR2-Dial hardware doesn’t have encoder switches so you can’t press and turn Knob A to change the frequency step or assign button functions to the encoder switch
  • CTR2-Dial dual-encoder hardware doesn’t support the CW paddle input jack while CTR2-Flex hardware does
  • The M5Dial’s speaker is used for sidetone on CTR2-Dial hardware – it’s pretty quiet

The last two trade-offs can be mitigated by connecting your paddles directly to the radio and using the radio’s sidetone for CW operation.


Revision History

v2.03.02 – September 10, 2025 – Minor update

This is a minor update to v2.03.00. It includes a 120 millisecond debounce timer on touch events to prevent random touch events that are generated by some M5Dials.

NOTE: v2.03.01 was released on September 9 and then removed to improved the debounce code.

Previous versions of CTR2-Flex v2.xx firmware are available here in case you need to roll back to an earlier version.

v2.03.00 – September 4, 2025 – MAJOR BUG FIX

This version fixes a major bug in CTR2-Flex that caused the radio to reset when disconnecting CTR2-Flex from WiFi. This affected SmartSDR v3.9 and v3.10.

Additional changes:

  • CTR2-Flex: You can now choose to have one favorite frequency list for all bands, or have a separate list for each band in CTR2-Flex. Use the Fav: option on page 6 of the Settings menu to change this option.
  • CTR2-Flex and CTR2-Dial: You can now enter your call sign and registration key using the onscreen editor when the program is running in demo mode. Choose the Edit Call & Key option in the Settings menu.

v2.02.00 – August 18, 2025

  • Added a new label editor to CTR2-Dial. You can now edit the control labels within the program. No need to connect a terminal for most editing tasks.
  • Added the ability to assign any of the dial controls to the gray ring encoder on the M5Dial, giving you another physical control.
  • Added VFO/Tuning Lock. Long-press the tuning control in CTR2-Dial, or the frequency digits in CTR2-Flex to toggle the lock on and off.
  • Removed the Mono Level control in CTR2-Flex and replace it with LnO-Lv (Lineout Level). This control adjusts the lineout level that usually drives an external powered speaker on your radio.

v2.01.01 – August 11, 2025

  • You can now choose if you want to reset your call and registration key when you run the Reset to Factory option in the Settings menu.
  • Updated the default dial and button labels in CTR2-Dial Map 1 to match the current release of SmartSDR for iOS/MacOS
    NOTE: You will need to reset your unit to Factory Settings in order to load the default settings. Choose the option to keep you call and registration key so you don’t have to re-enter them with a terminal program.

v2.01.00 – August 9, 2025

  • Added the ability to assign button functions to the encoder (knob) switches in both CTR2-Flex and CTR2-Dial firmware.
  • You must run the CTR2-Dial firmware on CTR2-Flex hardware to use this feature in CTR2-Dial
  • The link for Tera Term has been replaced with a valid link.

7/25/2025: v2.00.00

This is the initial release of CTR2-Flex v2 firmware. It includes both CTR2-Flex and CTR2-Dial firmware. You can switch between the two firmwares in the Settings menu.