Welcome to the new FlexRadio Community! Please review the new Community Rules and other important new Community information on the Message Board.
If you are having a problem, please refer to the product documentation or check the Help Center for known solutions.
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.

TeensyMaestro

1810121314

Comments

  • Hi Mike,

    I think you'll really enjoy the TeensyMaestro - I can't imagine using my 6400 without it! Len is always ready to help out if you run into any problems. The only problem I had with mine was buying cheap parts on Amazon: use good-quality jumpers and pushbuttons, not the junk from Amazon, and you'll avoid the headaches I had!

    73,

    David W4WKU

  • Hi Mike,

    I think you'll really enjoy the TeensyMaestro - I can't imagine using my 6400 without it! Len is always ready to help out if you run into any problems. The only problem I had with mine was buying cheap parts on Amazon: use good-quality jumpers and pushbuttons, not the junk from Amazon, and you'll avoid the headaches I had!

    73,

    David W4WKU

  • M0MDS
    M0MDS Member ✭✭

    So far so good.

    As you can see, it is hearing the flex. The encoders seem to work, but I can't get the multiplexer to see any button presses. Any help gratefully received.


    I'm guessing it is the wiring between the Multiplexer and the Teensy, but I haven't managed to iron it out yet.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    HI Mike, it is nice to see the progress!

    Whoever created the schematic components for the Teensy and multiplexer boards did not use the same identifiers as used on the boards in some cases. I have no idea why they would do that as it makes it a bit confusing for us non-engineers... You have it right in the description that you sent via email.

    To test the buttons, did you short C0 (shown as I0 in the schematic) to GND? That should mute/un-mute slice A. If not, the first thing to check is to see if the EN line (marked as E in the schematic) goes to pin 41 (as printed on the Teensy board) of the Teensy. A common mistake is to connect MUX 0 to pin 35 which is for MUX 1.  Mux 0 controls the main buttons and MUX 1 controls the CW Message buttons. Another common mistake is to connect it to pin 19 because of the red 41 listed on the schematic.

    If that is not it, then make sure that the other MUX 0 control lines are connected properly. Be sure to use the numbering shown in gray on the inside, for example 41_A17 is Teensy pin 41, which is printed in white on the physical board. The red numbers are not referenced anywhere and are apparently there to confuse and confound...

    If all that does not help, let me know and we can chat further. If needed, we can get on Skype or Zoom or something and debug things that way.

  • M0MDS
    M0MDS Member ✭✭

    I just wanted to post that Len emailed me within minutes, and we are making progress.

    I have most of the encoders working, The VFO wasn't happy connected to the 3.3v source, but connected to the 5v source and removing the 2 x 1k resistors and it works very smoothly indeed.

    I seem to have some issue with the multiplexers still, but I'm sure we will get there.


    73 M0MDS

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    I am finally adding a few things that I have been meaning to do for quite a while. Once I finish the last of the clean-up and get a chance to test a little more thoroughly, I will post the code to GitHub. In the meantime, here is the current beta version (V 1.034 Beta 2).

    Please feel free to give it a try and let me know of any errors. I will probably post to GitHub this weekend or early next week.

    ***************************** V 1.034 ***************************
     Code clean up. Changed a bunch of numeric literals to numeric constants to make future changes easier.
     Fixed initial splash screen (had double info at bottom).
     Updated Out Of Band indicator to take into account TX bandwidth.
     Updated to give immediate feedback when using the Restart TeensyMaestro menu item in Misc Menu.
    

    From the revised User Manual:

    As of TeensyMaestro V 1.034, the Out Of Band Indicator takes TX signal width into account. For all modes except RTTY and CW, the TX Filter High Cut is used. For CW and RTTY, 100 Hz is used. On USB, if the TX Filter High Cut is 3000 Hz, the Out Of Band spot will appear when you are within 3000 Hz of the upper band edge. Conversely, on LSB, if the TX Filter High Cut is 3000 Hz, the Out Of Band spot will appear when you are within 3000 Hz of the lower band edge. On CW the Out Of Band spot will appear when within 100 Hz of the upper or lower band edge. On RTTY, the spot will appear when the Mark frequency is within 100 Hz of the upper band edge or the Space frequency is within 100 Hz of the lower band edge.

    Phil, VK4KW is nearly done with his TeensyMaestro and is planning on making some customizations. To make that (hopefully) much easier, the menu item numbers and menu functionality numbers have all been changed from numeric literals (magic numbers...) to numeric constants with meaningful names. I am still in the process of doing the same thing for the X and Y coordinates of the screen elements. This should make it easier to move things around on the screen.

    Please let me know if you load this version and how it is working (or not) for you.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    TeensyMaestro V1.034 is now available on GitHub:

    ***************************** V 1.034 ***************************
     Code clean up. Changed a bunch of numeric literals to numeric constants to make future changes easier.
     Fixed initial splash screen (had double info at bottom).
     Updated Out Of Band indicator to take into account TX bandwidth.
     Updated to give immediate feedback when using the Restart TeensyMaestro menu item in Misc Menu.
    

    I got rid of quite a few "magic numbers" (literal constants), especially as they relate to X and Y coordinates of screen elements. I replaced them with proper numeric constants and meaningful names. Hopefully, this will make it easier to adjust the screen to your personal preference.

    I also (finally) changed the out of band (OOB) indicator to take into account TX bandwidth. I use the TX Filter High Cut value for all modes but CW and RTTY which use 100 Hz. Note that the OOB indicator does not prevent transmission, it just places a warning on the SmartSDR screen in the form of a spot. OOB spots time out after 5 seconds so that the screen does not get cluttered.

    It sounds like Phil, VK4KW and Mike, M0MDS have their hardware issues sorted out, so there should be a couple more TeensyMaestros in operation soon!

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Mike, M0MDS is just about done with his TeensyMaestro and sent me these pics to post. He elected to only build in the Slice 0 controls and one of the MUX boards to reduce size, complexity and cost. It looks like he also left out the touch-screen controller. The software is set up so that you only need to build in the controls that you want. This is a really nice looking, compact unit.

    Well done, Mike!


  • NICE! Very compact set up; looks sharp and well built. Congratulations Mie!

  • M0MDS
    M0MDS Member ✭✭


    Thanks David,

    Firstly a huge thankyou to Len for getting this project over the line.

    As you can see, my TeensyMiniMaestro only works only on one slice - I only have one pair of ears, and they don't work as well as they did!

    Construction was very easy, I was particularly pleased how well the 3D printed labels and screen bezel worked. I will probably hardwire the encoders at some point.

    I have added an external SD card reader, so I can change the config file easily, and added connections on the rear for CW key and paddle. This way I can inflict my terrible CW on more of you than before. If K3Y/1 reads this, I apologise for last weeks QSO, which must have had Mr Morse turn in his grave.


    73's

    Mike M0MDS

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    TeensyMaestro V1.035 is now available on GitHub:

    ***************************** V 1.035 ***************************
    Fixed default button debounce from 10 ms to 30 ms. Thanks to Mike, M0MDS for finding this!
    Added MMConfig.ini option to allow changing default debounce value.
    Removed 500 us delay in VFO control read routine.
    Added code to wait for an existing Client GUI so that the 6500 connects properly (Thanks Mike, M0MDS for finding this!)
    Fixed PTT indicator circle so that it does not overwrite step size.
    Fixed initial splash screen to execute after all radio info is available.
    

    As seen in the previous few posts, Mike, M0MDS built a really nice version of the TeensyMaestro. Mike had one button that had an unfortunate bounce characteristic that caused it to double strike just outside the 10 ms debounce window. This caused the associated function to turn on and immediately off. It looked like that button was just not working at all. Fortunately, Mike was willing to do some debugging with me and we got to the bottom of it.

    A more insidious problem was that of the MUX board returning a keypress at power up. Once again, Mike was willing to help debug, and after a few kicks at the can, the problem was found to be that the MUX needed more time to settle after power on. I changed the 50 ms start delay to 250 ms to fix the problem. The symptom for this issue was that the TeensyMaestro started up in MultiFlex mode. If you hold any button during power up, you can force the TeensyMaestro to operate as a GUI Client (and therefore in MultiFlex mode if SmartSDR or a real Maestro is running).

    If anyone else has this problem and this version does not fix it, let me know and I can make the power on delay a configurable value - just let me know.

    Coming soon... I finally got started on the long-promised TeensyMaestro Builder's Guide. I have a few more sections to complete, but it should be done in a week or so.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Now that everyone who is ever going to build one of these things has already done so, I finally wrote the TeensyMaestro Builder's Guide...

    Here is the first draft. Please let me know if I have left anything out or if I am not clear on anything.


  • Lasse SM5GLC
    Lasse SM5GLC Member ✭✭✭

    Len, thanks a million for your work! I have been a bit busy so my Teensy is just half made, and the docs will be very handy. Hopefully I will have a bit more time now that I retired a few weeks ago :)

    Just d/l the new firmware and need to restart my project.

    I'll keep you posted on my progress!

    73

    Lasse SM5GLC

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Lasse, congratulations on your retirement! I retired in 2018 and have been loving it.

    Don't hesitate to post progress pics here, I am always interested to see what you and others are doing with the project.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    TeensyMaestro V1.036 is now available on GitHub:

    ***************************** V 1.036 ***************************
    Added MMConfig.ini option to allow changing default start up delay.
    Added MMConfig.ini option to allow disabling GUI Client on button press at power up.
    Added a 100 ms delay between posting Spots during setup to prevent flooding the network.
    Removed unnecessary FireEvents call in setup to prevent flooding the network.
    

    Mike, M0MDS uncovered a couple of lurking issues, and while I was in there, I discovered another. Occasionally, when operating remotely, connecting the TeensyMaestro will cause the entire SmartSDR connection to drop. I have a loop where I clear the pending queue of commands during start up and had an unnecessary "fireEvents()" call in there that flooded the network.

  • Phil VK4KW
    Phil VK4KW Member ✭✭

    Apologies for the lethargy in responding to 'stuff'.....

    Early retirement came, went, and a job arrived that was too fruitful to ignore. Apart from a slightly fatter piggy bank, the net result is that I've not had much time for doing 'stuff' that I had started.

    The Maestro is complete - apart from the awful panel finish which I've yet to do something about. Next step, is to modify a few aspects to personalise the facilities to suit my intended use. For example, some of the stuff displayed on the screen is not required and I don't need the Maestro to do CW for me. Also, I'd like access to some of the more buried facilities that the 6600M has, such as the APF etc.

    Using the USB linkage for powering the Maestro has also shown itself to be a pain at times due to wobbly PC issues, so I'm considering dropping it and tweaking things to run on a wall wart of some description. A bit of research is needed for that.

    73,

    Phil

    VK4KW

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Phil, Nice to hear from you! Now that I have been retired for a few years, I can't imagine going back to work...

    If you power the Teensy from a source other than the USB port, you will need to cut the Vin trace on the back of the board (see the PJRC.com site for more info). Use extreme caution, as this is a 4 layer board with a trace right under the one to be cut. I use more of a scraping action to prevent cutting too deep.

    Don't try to power it from the USB cable and an external source at the same time. I think that you risk damage to the PC.

    If you make this mod, you will still be able to program the Teensy with the USB cable, but the power will need to come from the external source.

    Changing the functions of the encoders should be fairly straightforward. Look in the .ino files that start with "G" to see how the data is returned from the radio.

    I tried to name the display routines in a meaningful way. They are all together in one .ino file. If you have trouble finding what you are looking for, I would be happy to help.

    Share your mods here - others might want to do the same thing.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    TeensyMaestro V1.037 is now available on GitHub:

    ***************************** V 1.037 ***************************
      Added MUX 0 pin 14 input to put Flex into Tune mode.  Designed for Mercury AT tuner.
    

    Dave, W4WKU (builder of TeensyMaestro #2) bought a new Mercury AT tuner and wanted a one button tuning solution. He wondered if there was a way to put his Flex 6400 into tune mode when he hit the tune button on the tuner. As we chatted about it, Dave said "Why not make it part of the TeensyMaestro?" to which I replied "Uhhh... Sure!". This release makes pin C14 of MUX0 an input pin that while grounded, puts the Flex radio into tune mode.

    The Mercury tuner grounds the ring terminal of the REM port when the Tune button is pressed. This stays low until tuner completes its tuning cycle. While the tuner is tuning, it suppresses the PTT signal from the Flex to the amp (by way of the tuner) so that the antenna is tuned at the power set in the Flex. This gives Dave the functionality he wanted - just push the tune button on the tuner and the rest happens automagically.

    If you make this minor mod to your TeensyMaestro, make very certain that the maximum voltage on the tuner output line to the Teensy is 3.3 V or less. Check this with a voltmeter before plugging it in to your TeensyMaestro.

    Note that if anyone wants this functionality for their tuner, but does not want to build the entire TeensyMaestro, just connect one MUX, the Ethernet cable and a USB power-source. It will fit in a pretty small box and not have any user controls or a display on it. As a bonus you would get out-of-band indication (pop-up spots on SmartSDR) and any desired "permanent" spots for repeaters, nets, beacons and that kind of thing.

    Is anyone else working on a TeensyMaestro? I would love to see pics of your creation!

  • ***Thank you Len*** for adding this function to the TeensyMaestro code! Auto-tuning is now truly automatic. It is also about as idiot-resistant (i.e., Dave-proof) as possible!  For anyone considering the MercuryAT, I am very impressed with the tuner performance, and again, with the one-touch auto-tune feature. 

    73,

    David W4WKU

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    TeensyMaestro V1.038 is now available on GitHub:

    *****************************V 1.038 * **************************
    Fixed issue with standalone mode when there is no GUI client already connected.
    Compiled under Teensyduino 1.58.1 (GCC 11.3 compiler).
    

    Not much of a release this time. I did (once again...) stick some code in the wrong place causing the standalone mode to hang up. Someday I will learn to do ALL the regression testing...

    While I was in there, I moved to the 2.1.0 version of the Arduino IDE and the 1.58.1 version of Teensyduino. 1.58 uses the 11.3 version of the GCC compiler. In 1.57 and earlier, it was the 5.4 version of the compiler. This is a HUGE jump all at once! I have been testing it for a week or so and all seems to be OK, so the compiler didn't close any loopholes that I was getting away with...

    So, is anyone in the process of building one?

  • AA1SS
    AA1SS Member ✭✭

    Mine has been sitting on the shelf for over a year . . . Time to get it out and update it. I think I was #3

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Steve, yep, you built the third one in existence!

  • AA1SS
    AA1SS Member ✭✭

    I had the Mercury AT and the Amp . . . Recently sold it all and upgraded to the Flex amp and tuner. The Mercury products are awesome for the price.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    I don't have any updates to the TeensyMaestro firmware this go-round. It has been very stable, and I haven't tripped over any self-inflicted bugs lately (probably shouldn't have said that...).

    I'm just checking in to see if anyone has built one recently or is in the process of building one. I would love to see any pics and hear about your build. I am also interested to see if anyone is interested in designing a PC board for the project. I think that the point-to-point wiring scares off quite a few potential builders. With an available PC board, I believe that others would more likely take on the project.

    There is a GitHub link a few posts back. There you will find the User Manual, Schematic, Builders Guide, BOM, firmware (ready to load), the Config file and the source code (along with the IW7DMH library).

    Here is a link to a presentation that I did to the Boulder Amateur Radio Club last year:


  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Wow... Hit 10,000 views on this thread!

    Is anyone else building one now? Here is a link to my GitHub page for anyone interested in the project.

    While this isn't really a beginner's project, it is not advanced either. It is all point-to-point wiring and no programming experience is needed. I do provide all the software and libraries if you want to poke around or make modifications using the Arduino IDE, but there is a load image (.hex file) on the GitHub site so that you can load it directly to the Teensy board without compiling.

    If you want to try it without much commitment, you can buy a Teensy 4.1 with Ethernet for under $35 USD and use some cheap encoders to see how it works. If that is a positive experience, you can go for the display and the rest of the controls and a multiplexer or two. It will work with as little as you want to build.

    If you do elect to build one, be sure to post your progress and pics here. I really enjoy seeing how others have packaged it all up. There is a user's manual and a builder's guide on the GitHub page. If you need more help, I am available here.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    The Adafruit 3.5" TFT touch display is temporarily unobtanium. If you plan on building a TeensyMaestro, I suggest getting everything else so that you are ready when the display comes available again (Adafruit has given no ETA yet). Adafruit has a "Notify Me" button that will send you an e-mail when the unit is back in stock.

    3.5 TFT 320x480 + Touchscreen Breakout Board w/MicroSD Socket [HXD8357D] : ID 2050 : $39.95 : Adafruit Industries, Unique & fun DIY electronics and kits

    There are several things that the TeensyMaestro can do with no input or output peripherals at all. It has an out of band indicator that puts up a 5 second spot on SmartSDR any time you stray out of band for your license class. You can also set up "permanent" spots to mark band edges, nets, W1AW practice sessions, repeater frequencies, etc. VFO tracking can be turned on so that slice 0 and 1 (usually A & B) will tune by the same amount when tuning in SmartSDR.

    All of this is optional based on config file settings.

    If the display goes permanently out of stock, I will find a suitable replacement and create a version of the software to support it. I doubt this will happen, but you never know...

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Thanks Lasse! Yes, this is the correct display.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    I just got an email from Adafruit indicating that the displays are back in stock, though in limited quantities.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    TeensyMaestro V1.039 is now available on GitHub:

    *****************************V 1.039 * **************************
      Fixed bug where second reload of CW messages causes a restart.
      Added 60 meter out of band indicator.
      Changed Misc Menu item from "Reload Config File" to "Reload CW Messages" to better reflect how this works.
    

    I finally added out of band indication for the 60 meter band. I also added "permanent" spots in the MMConfig.ini file to show where to set the VFO for each 60 meter channel. (Channels on Ham Radio - don't get me started...)

    Any mode that needs channel center can be selected by clicking on the CW spots and anything that needs the suppressed carrier frequency can be selected by clicking on the USB spots. You will need to set your TX Filter High Cut to 2800 or less. The TeensyMaestro doesn't prevent transmission, it just pops up a spot for 5 seconds warning that you are out of band. As of this release, the out of band indicator only works for USB and CW. I haven't yet studied how digital modes need to be implemented, and I hate the idea that I have to make a special case for 60 meters. Maybe someday I will do more with this...

    I see that Adafruit is out of display boards again, but chicagodist.com (see Lasse's link above) still has 12 available at the same cost.

Leave a Comment

Rich Text Editor. To edit a paragraph's style, hit tab to get to the paragraph menu. From there you will be able to pick one style. Nothing defaults to paragraph. An inline formatting menu will show up when you select text. Hit tab to get into that menu. Some elements, such as rich link embeds, images, loading indicators, and error messages may get inserted into the editor. You may navigate to these using the arrow keys inside of the editor and delete them with the delete or backspace key.