Here is the latest alpha (possibly buggy) version for the CMD Micro. This version has the following new features.
1. Improved Frequency control - no more floating point errors (.0001+.0001 no longer = 3 LOL)
2. New steps 1 -amber/10-blue/50- flashing
3. Jog wheels x5 step when spun fast, for quick movements
4. Vox key replaced with "Shift" button. If shift is lit, the functions listed above the button/dial are available. This opens up the possibility for more future functions.
Give it a test and report back! Much more work to clean this up and add new features. But before continuing, I would like this tested thoroughly.
https://www.dropbox.com/s/ln4hq84g663808c/CMDMicroFlex6k_v2_0.zip?dl=0

William
- 573 Posts
- 277 Reply Likes
Posted 3 years ago
Alex - DH2ID, Elmer
- 867 Posts
- 155 Reply Likes

Small, but works fine. Below are the TRX TS-2000X for V/U/SHF and HF digital modes and the IC-756Pro for CW and PACTOR/AMTOR and above the ID-5100 for D-Star
and the TM-D710 for APRS, the Flex-6500 and lots of TNCs... All controlled by
one notebook, a VAIO I7 QuadCore with 1 TB SSD and 16 gigs RAM.
73, Alex DH2ID
- 573 Posts
- 277 Reply Likes
William
Alex - DH2ID, Elmer
- 866 Posts
- 155 Reply Likes
William was also developing an Android app, but got stuck with audio stream problems.
I haven't heard from him for a long time and hope he is well.
73, Alex - DH2ID
- 791 Posts
- 91 Reply Likes
BTW, William , we are looking forward :-) any updates, improvements ?
- 36 Posts
- 4 Reply Likes
- 791 Posts
- 91 Reply Likes
from N4PU manual
PC to Radio Serial Connection
Connect a 9 pin serial port cable between the radio and an available COM port on your PC. ....etc
You know we are expecting connection through Ethernet API
- 36 Posts
- 4 Reply Likes
Alex - DH2ID, Elmer
- 867 Posts
- 155 Reply Likes
Do you think that it is possible to set a second function to the mode knob to change profiles or bands?
73,Alex DH2ID
KY6LA - Howard, Elmer
- 3403 Posts
- 1292 Reply Likes
- 20 Posts
- 1 Reply Like
- 831 Posts
- 181 Reply Likes
- 36 Posts
- 4 Reply Likes
Al K0VM, Elmer
- 559 Posts
- 93 Reply Likes
- 88 Posts
- 16 Reply Likes
Alex - DH2ID, Elmer
- 867 Posts
- 155 Reply Likes
The labels are very durable, stick to the buttons and look just great.
http://www.amazon.com/Brother-P-Touch-2430PC-Label-PT-2430/dp/B0096XTGOS
73,
Alex DH2ID
- 255 Posts
- 35 Reply Likes
It gets better and better. Thanks! Glad you're back on the Micro.
I do have a couple of items I'd like to get your thoughts on.
1. The switch back from 250 Hz. to 50 Hz.step size is very fast. I've tried to turn the knob fast enough to keep it in 250 Hz. mode but it reverts during each every revolution. If the revert delay time was just a bit longer it would probably remain in 250 Hz. mode during an entire trip from one part of the band to another.
2. I was wondering if you have had any thoughts on my earlier post regarding a swap of the two sides of the panel. I don't know if you are right or left handed but I'm a rightly. When I use my right hand to tune slice A on the left, my arm covers much of the panel. If I could swap the knobs, I could use my left hand on the volume, AGC, PTT, Etc. without moving my right hand, saving a lot of movement.
Thanks for your consideration & thanks again for the software. Great stuff.
Bob
- 573 Posts
- 277 Reply Likes
The delay is a good idea, and I will experiment with that. When you say switch sides I assume you mean swap vfo a/b/ the a/b buttons/ the vfo vol/ agct. Anything else?
I am a righty, but use my left hand to tune.
This is not too difficult and I may incorporate in a future release. Just let me know what buttons should swap with the dials.
William
- 573 Posts
- 277 Reply Likes
This version addresses the need to swap stuff around. I'm not sure if this is a permanent solution, but it address the immediate need.

The var.txt file located in the data directory can be edited to swap certain functions. However keep in mind, a jog wheel must be swapped with a jog wheel, a button for a button, and slider for a slider.
The current changeable functions are annotated by a number in the app window as seen above.
Here is the default settings in the vat.txt
vfoa=17;
vfob=33;
selecta=48;
selectb=49;
vola=18;
volb=34;
agca=16;
agcb=32;
If you would like to swap AGC and VOL
vfoa=17;
vfob=33;
selecta=48;
selectb=49;
vola=16;
volb=32;
agca=18;
agcb=34;
If you would like to completely swap Slice A controls to the right side.
vfoa=33;
vfob=17;
selecta=49;
selectb=48;
vola=34;
volb=18;
agca=32;
agcb=16;
When editing the var.txt file, do not add any spacing or reformat in any way. Just change the values and save.
Give it a try and let me know.
https://www.dropbox.com/s/fhy99o5d4o8r32y/CMDMicroFlex6k_v2_0b.zip?dl=0
and this version adds a delay in switching from 5x step back to 1x step. This allows you to maintain the 5x speed better. Try it out and report back if more delay is needed, or you just hate it. LOL
https://www.dropbox.com/s/rv08z9aaxo0ixlp/CMDMicroFlex6k_v2_0c.zip?dl=0
William
- 2 Posts
- 0 Reply Likes
- 25 Posts
- 4 Reply Likes
Originally I was thinking just the knobs but you've given me a chance to try all kind of arrangements. The way you've done this appears to be universal. I can't imagine anything better than everything.
Bob
Ken - NM9P, Elmer
- 3734 Posts
- 1132 Reply Likes
Commands end with a ";"
The curvy brackets { } enclose nested levels of commands.
Variables are defined and initialized at the beginning of the program. (are they integer, floating point, string, or Boolean variables?)
Variables are manipulated with simple statements....vfo=25; sets the VFO value to 25...
IF(VFO==25) {do this function....} ELSE {Do THIS function.....}
asks IF VFO is equal to 25. if so, do one function. If Not, do a different function.
(there is no THEN statement needed, as was used in older languages. it is assumed, and the Right Hand bracket ends the first conditional statement. The ELSE { begins the second conditional statement, or statements, which ends with another } )
VFO++; increments the VFO value by one
VFO--; decrements it by one.
VFO=VFO+Step; bumps the VFO value up by the amount in the variable STEP.
and on it goes...
Most of the software is to sense which command control or button is pressed, based upon the MIDI code the controller puts out.
IF ((Channel==0) && (Pitch==20))
Then using IF/THEN statements to determine what API command to associate with the button or control pressed or turned.
Throw in a little Boolean logic for command toggles, control flip-flops, etc.
Or use count-up/count-down stepping to index things like band, mode, filters, etc.
Then there are statements to send the API commands out to the rig, and to toggle the lights on/off on the controller.
If you programmed "back in the day" you already know the logic.
All that is left is to learn a new syntax.
THere is a nice tutorial on the "Processing" website at
https://processing.org/
and the syntax and command reference at
https://processing.org/reference/
Check it out. It is nice.
Ken - NM9P
- 25 Posts
- 4 Reply Likes
Thanks! You are probably right and I will look again for the umpteenth time.
The problem is that my brain has been wired in reverse from the 1970s and the days of the Intel 4040 and later the 8048 & 8085 when I was doing this stuff for money. I really didn't have the patience for software back then but I slogged through it as the projects were my responsibility. Now I'm retired for nearly twenty years and I'm into doing fun stuff and software doesn't seem to qualify. Therefore my attention span is very short.
Back in the day, bit manipulation took an eternity to write but, when broken down to 8-bits at a time maximum, it became simple for me. I was really a much better hardware designer.
Somehow, what you describe doesn't flow through my brain's "masked ROM" but I will try once more with your kind encouragement to change it out for a EEPROM.
Bob
Ken - NM9P, Elmer
- 3734 Posts
- 1132 Reply Likes
Import already-written processes (I used to call them subroutines);
define initialize variables;
open communications channel to the rig;
open communications channel to the MIDI Device;
Then the constant loop:
check MIDI Device for input...(Midi Channel, Pitch, Value);
use IF/Then/Else statements to see which button or control is activated;
send the proper command to the RIG;
(depending upon which button or control was activated);
Increment indexing counters as needed for band/mode/filter/etc.
set boolean toggles as needed for ON/OFF commands;
send command to MIDI Device to turn lights ON/OFF;
update frequency information on computer (superimposed on the picture);
go back and wait for another control to be activated and repeat.
It is actually a relatively simple program, once you get it....
(Simple boolean logic, simple count up/down indexing, sample a channel, compare values, send a command, etc.) It is simple, but with lots of commands, because there are a lot of functions. (But getting the VFO counters and all that to work correctly was a challenge, I'm sure.)
William has done excellent work, that I wish I had had the courage to begin two years ago. He has taken exactly the approach that I knew could be done, but didn't have the familiarity with either MIDI functions, or the Processing or C# languages to do....(i.e. import MIDI codes, look up a corresponding function, and send the command via the API to the Flex rig.)
This same approach can be used to build other programs to control the rig using on-screen functions, mouse clicks, buttons, etc. using the API, or even using the serial CAT command set on the 6000 series or the CAT commands for the other Flex rigs, or even other brands of rigs.
WIlliam has unlocked some effective tools that may get several of us into programming things for the 6000 series.
- 573 Posts
- 277 Reply Likes
I spent half the day figuring out how to communicate over TCP with native java! What a pain. Processing made that simple, But I figured it out.
Now I need to figure out how to receive in the radio variables.
Now to figure out what I want an android app to do hmmm!
William
- 236 Posts
- 30 Reply Likes
Bob
- 573 Posts
- 277 Reply Likes
1. Updated the delay count to make Stepx5 easier to maintain. Also lowered the speed required to engage Stepx5.
2. Added band switching. Center encoder dial is now band switching when shift off, mode when shift on. Also now it take 2 indent ticks to register a change, as I felt it was too touchy.
The graphic in the app window is becoming a hack job. I will update it at some point when I'm done adding functions.
https://www.dropbox.com/s/am5fx5j8i8qevgo/CMDMicroFlex6k_v2_0d.zip?dl=0
- 573 Posts
- 277 Reply Likes
Alex - DH2ID, Elmer
- 866 Posts
- 155 Reply Likes
- 573 Posts
- 277 Reply Likes
- 614 Posts
- 279 Reply Likes
Flex SDR: BYOB (Bring Your Own Buttons)
- 573 Posts
- 277 Reply Likes
Here is the version for you. Tune and RF power are non shift, HP vol and ATU are shift.
https://www.dropbox.com/s/9ohygvsxomllnvf/CMDMicroFlex6k_v2_0d_Extune.zip?dl=0
Alex - DH2ID, Elmer
- 867 Posts
- 155 Reply Likes
IN the radio...
73 and keep up the good works,
Alex DH2ID
- 189 Posts
- 105 Reply Likes
William, thanks for the idea. I had not thought of it being a problem that persists beyond a power-up cycle. I wonder what you think might be going on that causes this problem to a) persist, and b) only shows with your app running?
Also, should it matter if flex control is enabled or not in the SSDR?
73 de Steve G1XOW
- 268 Posts
- 111 Reply Likes
problem found and resolved: I tried doing the hard reset as suggested by William - no help. I then tired removing DDUTIL, SMETER etc all no help. I then checked version numbers of SSDR CAT (flexVSP) module, this was not in agreement with the other SSDR 1.4.16 modules.
So, I removed the entire package and then reinstalled after a reboot - problem solved. So looks like I had somehow managed to get an old version of CAT left over from previous install of SSDR.
Alex and William thanks for your help!
73 de Steve G1XOW
Ken - NM9P, Elmer
- 3823 Posts
- 1164 Reply Likes
Alex - DH2ID, Elmer
- 867 Posts
- 155 Reply Likes
- 4 Posts
- 0 Reply Likes
Fantastic piece of work. Just started using it on my 6500 and love it.
Thank you for all the hard work you are putting into this and your other projects.
73, Clive G4KCM
- 562 Posts
- 82 Reply Likes
- 562 Posts
- 82 Reply Likes
the tuning step choices are a little fine for me; how do I set it for 10hz, 100 hz, and 10k hz ( for am bcb swl'ing, eg )?
73, and 'you da man'!!
- 614 Posts
- 279 Reply Likes
http://www.amazon.com/Arkon-Folding-Tablet-Stand-Android/dp/B000CKVOOY/ref=sr_1_11?ie=UTF8&qid=1...
- 562 Posts
- 82 Reply Likes
- 614 Posts
- 279 Reply Likes

Yeah, but mine gets more girls. :)
- 562 Posts
- 82 Reply Likes
- 573 Posts
- 277 Reply Likes
10kh I have to ask WHY LOL
- 573 Posts
- 277 Reply Likes
c.write("C44|mixer lineout gain "+round(value*0.787)+"\r\n");
And change it with
c.write("C44|cwx wpm "+round((value*0.276)+5)+"\r\n");
This gives you a WPM of 5-100. However I think this is more realistic say 5-40?
c.write("C44|cwx wpm "+round((value*0.72)+5)+"\r\n");
I have not tested this, but it should work.
William
- 573 Posts
- 277 Reply Likes
So if we want a value of 5-100 (what flex expects for WPM) we need 95 increments. So we take 95/127=.72....So to get a starting value of zero we get 0x.72+5 = 5 and an end value 127x.72+5=100
William
- 573 Posts
- 277 Reply Likes
5-40 WPM
c.write("C44|cwx wpm "+round((value*0.276)+5)+"\r\n");
5-100 WPM
c.write("C44|cwx wpm "+round((value*0.72)+5)+"\r\n");
- 562 Posts
- 82 Reply Likes
your ARE da man, bro...
- 135 Posts
- 28 Reply Likes
Really want the 5X jog wheel....... THANKS!
Hard to find place to post that you will see..... hope it works.
- 255 Posts
- 35 Reply Likes
Have you tried Pocket rxtx, free in the Google Play Store? It's a work in progress but it works pretty well with my Kenwood TS-590 via the Internet. The tuning dial works quite well and it supports a number of rigs. Dan, the authors, hasn't had time to work on it in some time so some features are incomplete plus a few minor bugs but no deal breakers.
Bob
- 573 Posts
- 277 Reply Likes
My Android app will just be a few extra buttons and sliders. I do not intend or have the skills yet to make a complete android client. I just want an App that has a few commonly used functions at my fingertips. It will be used as a supplement for additional controls to the CMD Micro.
After using the Micro more, there are certain functions I don't like:
1. Band selection - I prefer selecting band vs cycling thru them
2. Mode selection - Same as above
3. Micro is missing adjustable filters
4. NR/NB/ANF levels missing
And a few other wish I hads!
So far I have a android app that does 1,3, and 4. This app is a just for me thing. I will happily share it to anyone who is interested when I'm done, But its really not intended to be universal. Maybe one day, but for now its just a personal project.
William
- 25 Posts
- 4 Reply Likes
I guess that skill is relative & you seem pretty good at getting quality results. Thanks again for the Micro. Your skill with that has made The Flex my "goto" rig where before it was just a fun experiment.
If you haven't tried Pocket rxtx on your Android device, I recommend it. I can't say that it will do what you mentioned but it's an app that is very useful for remoting a rig via the Internet or USB if you want.
Dan, YO3GGX hasn't included the Flex CAT commands but functions are configured in a text file. I modified one of his other Kenwood rig files for my TS-590 with relative ease. Doing the same for the Flex shouldn't be too hard.
His WEB site also features a free tcp to COM port interface for your PC or VSPE works as well.
The audio isn't implemented yet but I use a free SIP VOIP client or others are using Skype.
Bob
- 573 Posts
- 277 Reply Likes
So far I have band switching, xit, rit, mode, nr/nb/anf with level sliders, RX filter hi/lo.
I still have plenty or real estate left to add more. This is sized for a 1280x800 screen, and I will not be making this scalable for other resolutions.

Alex - DH2ID, Elmer
- 867 Posts
- 155 Reply Likes
73, Alex DH2ID
- 562 Posts
- 82 Reply Likes
what a great time to be alive, huh??
- 25 Posts
- 4 Reply Likes
On the CMD Micro, I've noticed that when I press the "Step" button it works as I'd expect and also changes the step dialog in SmartSDR to the corresponding value. Then, if I change SmartSDR to 500 Hz, your software remains at 50/250 Hz. steps.
This is great as it gives me three choices without pushing any buttons; 500 Hz. steps (or wherever I've left the SmartSDR setting) using the mouse wheel and 50/250 Hz. on the Micro using the touch sensitive knob.
I was wondering if there is a way to use the Micro's "Step" button selection without it also changing SmartSDR? Getting rid of the blinking button in 50/250 Hz. would be a plus if it were easy.
Thanks,
Bob
- 573 Posts
- 272 Reply Likes
I can easily remove the step sync with smart SDR, if thats what yall want. The Micro step sizes are totally independent, so there is no real need to sync them.
The blinking is just to know what step size the micro is in, Off for 1, on for 10, blink for 50. This can easily be removed, if SmartSDR step sync is off, how would you know what step size the micro is at?
I know the blinking is a bit annoying, but it gives visual feedback.
William
- 25 Posts
- 4 Reply Likes
The last thing I want to do is ask you to do any more one-off specials so I can wait to see what others think about these things. It certainly is not critical.
As far as the blinking light goes, If it has to blink, my preference would be to put it on the 1-Hz mode as I never use that. I suspect others would prefer it the way it is.
Regarding the blink, is the hardware capable of turning on both colors? Probably not or you might have done it that way. The two color mix could indicate the distinction.
Another thought is to use one of the two PTT buttons since you can only transmit on the active slice anyway.
Bob
- 25 Posts
- 4 Reply Likes
Here's the thought. Another piece of software I use, has a dual mode PTT button and it really works well. If you push the button quickly, it toggles and stays on until the next push (Toggle). If you hold it for more than 1/4 of a second it becomes a hold to talk, release to listen. NICE!
Again, I don't use the PTT and I don't need this, but I thought the idea was worth sharing with you.
Bob
- 573 Posts
- 272 Reply Likes
I'm not sure enough use the PTT to justify the coding of the complex routine. But if others would like this, I will look into it.
William
- 297 Posts
- 101 Reply Likes
- 573 Posts
- 277 Reply Likes
I got an email that you were having issues, but your question got deleted from the thread. Are you still having issues?
William
- 354 Posts
- 68 Reply Likes
I deleted that message because I realized it was just my firewall blocking it, thanks.
- 167 Posts
- 19 Reply Likes
- 573 Posts
- 277 Reply Likes
- 307 Posts
- 101 Reply Likes
- 528 Posts
- 121 Reply Likes
- 25 Posts
- 4 Reply Likes
- 167 Posts
- 19 Reply Likes
- 573 Posts
- 277 Reply Likes
processing.net
UDP
Just look at the top of the file for the import statements. And make sure you have all of those.
William
- 831 Posts
- 181 Reply Likes
Just to be sure things were working between the radio, SSDR and 3rd party apps, I ran a test program that I have been working on and it finds the radio just fine and changes in it, show up both in my app and SSDR. Not sure why the midi program is not discovering the controller. (probably pilot error!)
james
WD5GWY
- 831 Posts
- 181 Reply Likes
The CMD Micro DJ Midi Controller is bigger than I thought it would be! Still, it fits on my operating desk just fine. You have to be one of the most prolific programmers I have encountered. Writing software for several controllers and working on an Android app too! I just take small stabs at it on the weekends when my wife's "honey do" list is not too overwhelming!
james
WD5GWY
- 573 Posts
- 277 Reply Likes
William
- 32 Posts
- 4 Reply Likes
Just to let you know, I have been running Remote Operation from San Diego, CA since 14 April suucessfully, running CMDMicro6k, SSDR, WSJT-X through OpenVPN, hotel WiFi.
See https://picasaweb.google.com/118380903168306628106/Flex6300RemoteOperation?authuser=0&feat=direc...
Javier, KC2QII
- 315 Posts
- 30 Reply Likes
- 11 Posts
- 0 Reply Likes
Thanks!
Peter
- 11 Posts
- 0 Reply Likes
"You need the copy the /data directory from the zip file to the new location. And you must add the libraries. If I recall you need these (all which can auto install from the add libraries menu item)"
Which libraries? The files in the lib folder or ?
Do I need to download Processing 2.2.1 IDE?
Thanks
Peter
- 573 Posts
- 277 Reply Likes
That was information for people that wish to modify the program themselves. If you have no intention of learning programming. Then you don't need to do any of that,
So no you do not need anything but my program.
William
- 6 Posts
- 0 Reply Likes
I downloaded and am now running the 64 bit .exe file
After some time, the window comes up and shows it recognizes my FLEX 6700 at IP address 192.168.1.102.
However, nothing happens when I move knobs or click on the screen.
Am I missing something?
thanks
Peter
- 573 Posts
- 277 Reply Likes
The midi driver is most likely not loaded for some reason, check device manager. Others on here had the same issue, and it was related to virusscan/spyware software.
William
- 11 Posts
- 0 Reply Likes
Peter
- 25 Posts
- 4 Reply Likes
- 1660 Posts
- 565 Reply Likes
Here is something new.....to build your own customized control. Looks interesting.......
http://palettegear.com/
Regards, Al / NN4ZZ
al (at) nn4zz (dot) com


- 573 Posts
- 277 Reply Likes
William
- 1660 Posts
- 565 Reply Likes
Anyway seem like an interesting concept -- reconfigure modules at will.
Regards, Al / NN4ZZ
al (at) nn4zz (dot) com

This conversation is no longer open for comments or replies.
This conversation is no longer open for comments or replies.
Related Categories
-
Third Party Applications and Products
- 723 Conversations
- 187 Followers
EA4GLI - 8P9EH - Salvador
I have had an Icom IC-756 and IC-756Pro2, both great radios. I am looking into a ts-2000 for sat and VHF-UHF work. Add a massive 28 inch 4K 60Hz monitor in the middle, the new Expert 1.3k and I am set.
I like your taste in equipment.
Alex - DH2ID, Elmer
me gusta el TS-2000X porque esta muy bien por las ondas cortas tambien.
I especially like the possibility to use it for all digital modes from 160m to 23cm.
Saludos,
Alejandro
EA4GLI - 8P9EH - Salvador
I also think that I want to upgrade from the 6300 to the 6700 before I purchase the TS2000 or anything else radio wise....
Alex - DH2ID, Elmer