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

1246714

Comments

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    As promised, I (finally...) loaded the Teensy version of the IW7DMH Flex Arduino (and now Teensy) library out to GitHub.

    KD0RC/Teensy-Maestro-for-Flex-6000-radios: TeensyMaestro - a Teensy-based set of controls for Flex 6000 series radios. (github.com)

    I adjusted the example, FlexSignatureTeensy to work with the Teensy 4.1 board connected to the Adafruit HX8357 touch display. This example is the work of @IW7DMH, Enzo with minor modifications by me to make it work with the Teensy and Flex 3.x. The example provides a framework within which you can use a Teensy 4.1 to communicate with and control Flex 6000 series radios.

    @Kor - The version that I sent you will not be too useful. Sorry for the confusion - I just realized that the example code was all set up around an Arduino Due and did not make use of the updated library. Please go to the GitHub site and grab the new version. If you have any problems compiling, let me know and I will give you a hand.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Version 1.013 of the TeensyMaestro firmware is now available on GitHub. It contains V1.012 which I did not do as a separate release on GitHub. So far I know of three TeensyMaestros in existence. Has anyone else built one, started one or planning on building one?

    KD0RC/Teensy-Maestro-for-Flex-6000-radios: TeensyMaestro - a Teensy-based set of controls for Flex 6000 series radios. (github.com)

    ***************************** V 1.013 ***************************

    Added Misc menu option to cause VFO A and B to track. Tune one VFO and the other follows by the same amount.

    Added Misc menu items A > B and B > A

    Fixed S-Meter problem when TX is off

    Fixed to run with STMPE610 touch controller disconnected

    Fixed so that in keyer only mode (i.e. no rig connected), touching the screen does not crash the processor


    ***************************** V 1.012 ***************************

    Locking or unlocking a slice will now reset screen saver

    Added "Created By" line to splash screen

    Added code to make MUX 0, I/O pin C13 a push to talk switch

  • KF5DEY
    KF5DEY Member ✭✭
    I am following this, and am building one. I assembled the minimum just to start (Teensy, display, touch controller) uploaded the .hex code and it boots up just fine.

    I have thought about changing the screen, so I wanted to compile my own. I have written and installed some basic arduino code...so I understand the basics of libraries etc.

    I am having a hard time deciphering what is in your source file...ie, what libraries were used, and which version is the one that has been compiled to the available .hex file?

    You have a source (src) folder, then below that you have three example folders inside that folder (those are all full of the arduino .ino files)

    It may be obvious to the advanced coders, however, I am not one. Whenever I have viewed code before, you had your standard arduino .ino files, with any additional libraries (at least documented) then the 'src' is a subfolder of that.

    So if you could just point me to whichever folder (src or examples) that is the actual one the hex was compiled from, that would sure help me. I think I located all the extra libraries (so far).

    Thanks,
    Mike
    KF5DEY
  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Mike, Very cool! Glad you got that much working right out of the gate. Have you wired in any encoders or buttons yet? You need at least one MUX for the buttons to work. If you aren't interested in the keyer, you don't need the second MUX.

    I have not released the Teensy code, except for the libraries that IW7DMH wrote and I adjusted slightly. To roll your own, start with FlexSignatureTeensy.ino in the examples folder. It should compile and connect to your rig and display info about your connection on the TFT display. It also has a bunch of Serial.print statements so that you can follow along in the serial monitor in the Arduino IDE. If your computer is slow, you may need to back the 115200 serial baud rate back to 9600, but everything else should compile as is (let me know if it doesn't, and I will see what I can do to help fix it).

    FlexSignatureTeensy.ino will give you a pretty complete framework to work with, but you will see that it is quite complicated. Without it, I would have never gotten my project off the ground. Enzo, IW7DMH wrote the original FlexSignature.ino, and I adjusted it to work with the Teensy and renamed it accordingly.

    Currently, there is north of 7,300 lines of code in this thing (my code plus Enzo's framework), not counting any libraries so it is not a trivial project. I will say that it has been a great experience building and coding this thing and I really enjoy using it.

  • KF5DEY
    KF5DEY Member ✭✭
    Thanks for the reply...as of this post I am just getting around to adding the mux and encoders. (I was out of town...then when I got back we didn't have power for a day). I had thought that FlexSignatureTeensy.ino was the correct file, but didn't want to get too deep with the wrong one.

    I do understand the concept of long complex code...I am working on a music synth project based on the Teensy, a audio adapter, 4 MUX and a bunch of potentiometers...organizing the code to make it 'easier' to keep track of what input goes where is very challenging. (the only way to have enough inputs is to stack the MUX)

    Mike
    KF5DEY
  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Very cool! That audio board is really great. I have played with it some and can see real potential.

    Keep in mind that 7 of the 8 MUX control lines are in common. I made the mistake of running two ribbon cables instead of just one. Only the Ena line is different on the two MUX boards. Dave, W4WKU separated the boards with 1/4 in spacers and that simplified his setup.

  • kd5rxt_mark
    kd5rxt_mark Member
    edited February 2021
    Len (KD0RC):

    Our club now has a FLEX radio left to us by one of our members who recently went SK. I have built several ham-related projects using the Arduino, & have recently started playing with the Teensy. I am really interested in building a copy of your TeensyMaestro to use with our FLEX. I downloaded the ZIP from your github & I would like to be able to (re)build whatever is necessary to create the TeensyMaestro in my existing Arduino environment. So far (based upon the initial errors that I saw when attempting to compile different things), I have added the T4_powerswitch & the HX8357_t3n libraries, but I cannot get either the FlexRigTeensy-2.0.19 or the FlexSignatureTeensy source collection to build without errors. I would appreciate it if you would comment on my description of what I've tried so far & maybe give me a nudge in the right direction. I can provide details of the compile errors that I am now seeing if that would help.

    Thanks for your work on this & I'm looking forward to reproducing your project for our use !!

    Mark J Culross
    KD5RXT

    P.S. I am still collecting the additional hardware required, so in the meantime, I am playing with the build process to become familiar with how the software is built & a little of how it might work.
  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Mark, I originally built this for the Arduino Due and Ethernet Shield. I ran out of pins and never got good reliability from the Due. I suspect that I did something to damage the Due on a project prior to the TeensyMaestro. So before I got too far along, I switched to the Teensy and incorporated the SparkFun MUX boards to use the pins more economically. The smaller footprint of the Teensy made it much easier to fit into the box, and its faster processor, while not really necessary, took away any worries about running short on CPU cycles.

    I recently checked FlexSignatureTeensy.ino and it compiles and runs on the Teensy 4.1. I have not checked FlexSignature.ino for quite a while, and am not 100% sure that it will run on the Due without some tweaking. I also just realized that FlexSignature.ino won't compile because it needs the original IW7DMH library. If you want it, let me know and I will send it to you via e-mail. I incorporated a very small change to get it working with V3.x of Flex.

    Note that the FlexSignature.ino and FlexSignatureTeensy.ino files are only the framework provided by Enzo, IW7DMH with a few mods by me. You can use these files to create your own, but without additional code (lots of it...) they are not the TeensyMaestro.

    Are you planning on writing your own code (therefore needing FlexSignature (Arduino Due) or FlexSignatureTeensy) or are you planning on duplicating the project using my compiled .hex file?

    Building this from near-scratch using the FlexSignature files is a huge undertaking. Re-creating the project using the Teensy 4.1 and my .hex file is a fun project, but not out of reach for most hams (tedious to solder all the controls in, but nothing complicated). Even if you plan on rolling your own code at some point, I recommend building it "as is" first, to get an idea of its capabilities. It will also let you know that you have wired it up correctly.

    Let me know what you decide to do, and post some pics here of your progress.

  • kd5rxt_mark
    kd5rxt_mark Member
    edited February 2021
    Len (KD0RC):

    I am using the Teensy 4.x, so my desire to is reproduce exactly what you have done & to learn something about the FLEX control protocol in the process. As I mentioned, since I am waiting on the additional hardware, for right now, I'm just trying to (re)build exactly what you have already done. Only after I have mastered that, I may look into code modifications and/or additions, & I really am not wanting to re-invent the wheel . . . you've made the results of the work that you put into this available for the rest of us & I really appreciate that. I won't be making any changes until I've gotten my copy working just like yours !! As an initial step, I can load your provided hex file to verify my hardware (when I have it all), but I really want to verify that I can (re)build from source as well, if possible. I would like to take you up on your offer to send me a copy of the IW7DMH library with your updates: to mycall@arrl.net. Thanks again for your help & for anything/everything else !!

    Mark J Culross

    KD5RXT
  • KD0RC
    KD0RC Member, Super Elmer Moderator

    @kd5rxt_mark , @youbecha , @Jens SM6AFV

    Mark, Mike, and Jens I am just checking in to see how your TeensyMaestro builds are going. Any issues or build problems? I am happy to help if you are having any issues.

    I would love to see any pics of build progress if you care to share them. Version 1.013 is up on GitHub if you need the latest version.

  • KF5DEY
    KF5DEY Member ✭✭
    I finally got it to compile...for some reason (maybe an update) I had to re-include the hx8357_t3n library. To test at home, I need the capability to use SmartLink...so until then< I will assemble and drag it to the radio to test.

    Mike
  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Mike, the source code on GitHub is just a shell, not the TeensyMaestro code itself. If you are planning on writing your own code, then you are on the right path. If you are expecting a working TeensyMaestro, then you do not have to compile anything, just load the .hex file from GitHub into the Teensy board.

    I don't have anything working with SmartLink. I got some info about it, but did not understand it. I may have another go at it sometime, but for now I am not beating my head on that particular wall...

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Version 1.014 of the TeensyMaestro is out on GitHub (see link below). If you have built a TeensyMaestro, I would be interested to know how it is working, especially with V 3.2.31. So far the only known TeensyMaestros in the wild are built by Steve WW1SS, Dave W4WKU and me. If you have built one or are in the process of building one, drop a note or post a pic - it is fun to see what folks are doing.

    Still to come: I am working on adding an Adafruit TPA2016 I2C audio amp and a low pass filter to the sidetone. Not sure how well this will work, but that is next on my "let's try and see what happens" list...

    KD0RC/Teensy-Maestro-for-Flex-6000-radios: TeensyMaestro - a Teensy-based set of controls for Flex 6000 series radios. (github.com)

    ***************************** V 1.014 ***************************

    Fixed stand-alone screen message (was overwriting splash text)

    Fixed Ser Num menu item to properly use encoder steps

    Fixed to work with V 3.2.31. The create_slice function of the

      Arduino library does not work properly, so it was bypassed with

      fRig.Send using the documented parameters for creating a slice.

      This also fixed the StandAlone Mode problem in V 3.2.31.

    Fixed NickName display to work properly with V 3.2.31. V 3.1 down 

      functionality retained.

    Added band/license data for 2 M - 33 cm (internal and config file)

    Added crude (square wave) side tone to pin 34

    Added Side Tone on/off to menu and config

    Added Side Tone freq to menu and config


    ***************************** V 1.013 ***************************

    Added Misc menu option to cause VFO A and B to track. Tune one 

     VFO and the other follows by the same amount.

    Added Misc menu items A > B and B > A

    Fixed S-Meter problem when TX is off

    Fixed to run with STMPE610 touch controller disconnected

    Fixed so that in keyer only mode (i.e. no rig connected), 

     touching the screen does not crash the processor


    ***************************** V 1.012 ***************************

    Locking or unlocking a slice will now reset screen saver

    Added "Created By" line to splash screen

    Added code to make MUX 0, I/O pin C13 a push to talk switch


    ***************************** V 1.011 ***************************

    Added Snap to Tune Step menu option

    Added Snap to Tune Step to config

    Added Flex API client ID for standalone operation

    Added TeensyMaestroID to config

    Changed so that keyer paddle or straight key closure resets screen saver 

  • aa3ssradio
    aa3ssradio Member ✭✭

    Im traveling in the RV now. I’ll be stationary in a few weeks for the summer so Ill update it and let you know.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Great, thanks Steve. I will be de-winterizing my 5th wheel camper any day now. We went from 70 deg F during the day to snow overnight - typical Colorado spring...

  • aa3ssradio
    aa3ssradio Member ✭✭

    Im in Texas now on the Gulf Coast in Palacios having a 2500sf Rv garage built. Finished cement today.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Wow, that is huge!

  • Tjerk
    Tjerk Member ✭✭
    @ Len & Lou
    I am following the project with great interest. I am not afraid of doing a bit of wiring but software scares me to death but you guys have made this project a reality for me.
    The PCBs with the ready-mounted SMD caps are a great way to go as they will not only make the finished product that much neater but also easier to build. Please count me in for a set of boards.
    Now, if we foreigners could find a one-shot supplier for the components...
    Tjerk ZS1J
  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi @Tjerk , Glad to see that you are interested in the project! I don't know if @Lou KI5FTY finished the boards, he was busy with other projects last time we communicated. Lou, any updates for the group?

    It would be nice if someone wanted to kit up the parts, but that is a lot of work... On the positive side, there are only a handful of suppliers to reach out to for the components and the BOM has links to them. Do be careful of counterfeit Teensy boards. They can be found on eBay and are hard to detect until they fail when you try to use them. I recommend only going through the PJRC.com site for them. At USD $30 for the board and ethernet connection, there is not much incentive to try the fake boards.

    I now have side tone working and have successfully experimented with an I2C audio amplifier. Now I just need to incorporate a low pass filter to make that raspy square wave more pleasant to listen to. I am at the point with my TeensyMaestro that I hate to take it apart for hardware upgrades - I rely on it too much!

  • Tjerk
    Tjerk Member ✭✭
    Hi Len
    The problem is that our and many other countries postal services are at a standstill and a courier is the only way and with many suppliers that adds up.
    Fortunately, I do have a friend in Atlanta that can do the gathering for me and when complete can send it all together in one parcel.
    73
    Tjerk ZS1J
  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Ah, I understand. I hope that you get the parts soon. I did notice that Adafruit was out of stock on the TFT touch displays but it looks like DigiKey has them available.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    TeensyMaestro V 1.015 is now available on GitHub (see link below).

    Ben, VR2VIY is in the process of building one. He is able to connect to his Flex and has the display and some encoders wired up and working. Is anyone else working on one (or contemplating building one)? I would love to hear about it if you are.

    I am still working on the audio amp, and so far it is working. I have not taken the HW out of the breadboard phase yet, so I thought it would be good to release the SW changes that I have, then release again when I finalize the build and add the amp control to the CW menu.

    Release TeensyMaestro V1.015 · KD0RC/Teensy-Maestro-for-Flex-6000-radios (github.com)

    ***************************** V 1.015 ***************************

    Fixed Flex Version Number to properly show all 4 digits of the fourth part (3.2.31.2837)

    Fixed bug where Keyer Only Mode crashes the TeensyMaestro when there is no ethernet connection

    Changed to only display CW relevant menu items when in keyer only mode (and CW menus are ON)

    Changed display to better show Keyer Only Mode

    Added Config File options to suppress any menu except for Misc Menu

  • Lasse SM5GLC
    Lasse SM5GLC Member ✭✭✭

    Have been collecting parts for something like this... began looking at IW7DMH and his project and then was close to try what John G3WVG had going (http://g3wgvflex.blogspot.com/p/blog-page_30.html) but this might be an easy start! Do your code work with older SSDR versions?

    /Lasse SM5GLC

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Lasse, yes it works with V2 or V3. I am pretty sure that it will not work with V1. I have not yet tried it on V2.7.5, but it did work fine on 2.7.3. I will test it later today to be sure it has no problems on the latest V2 SW/FW.

    You will need a genuine Teensy 4.1 board and ethernet kit from PJRC.com (do not buy a counterfeit one from e-bay). IW7DMH built his from an Arduino Due, but mine is based on the Teensy 4.1, and the Due will not work with my code.

    The encoders are not critical and may be freely substituted. They do need to be the incremental, not absolute type.

    There is a pretty complete user manual on GitHub as well as a Bill Of Materials. The Teensy 4.1 and the Adafruit display should not be substituted - the code expects these specific devices.

    Let me know if you have any questions or need any help. If you decide to build it, post pictures of your progress here. I am always interested in what others are doing with it!

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    I just did a quick downgrade to 2.7.5 and everything works normally. Working with Dave, W4WKU, I found and corrected a couple of bugs in the message keyer portion of the TeensyMaestro. If anyone is planning on using it during the CQ WW WPX CW contest this weekend, let me know and I will send you a beta version (1.016 Beta) with the bugs fixed. I am not going to officially release 1.016 until I get a couple of new menus completed and tested. One will be band, where you can set the freq you want each band to go to based on mode. The other will be the ability to set mode.

    I never really intended this thing to be used without SmartSDR, but folks have asked for these standalone features, and I can see the value in case your computer goes belly-up. In any event, it will never be a real Maestro...

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Another TeensyMaestro is on the air... Ben, VR2VIY has one nearly completed and is planning on using it during the WPX contest this weekend. He is still waiting for some parts, but in its mostly completed form, it should still work great for the contest. This picture is from a week ago.

    Congratulations on TeensyMaestro # 4 Ben!

  • David Okay Patton
    David Okay Patton Member ✭✭

    I'm looking forward to using the TeensyMaestro this weekend for the CQ WW WPX contest as well. Ability to track two VFOs is a great new feature! VFO A on a fast tuning step and displaying the entire CW sub-band; VFO B on 10 Hz step size and displaying 2kHz. Course tune with VFO A and fine Tune with VFO B. Perfect!

  • David Decoons, wo2x
    David Decoons, wo2x Member, Super Elmer Moderator

    Really nice work guys!

    I have been following this thread with interest.

    Dave wo2x

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Thanks Dave! I have been following your excellent adventures with Node Red as well. These two different avenues we have followed (Node Red vs Arduino/Teensy) really highlight the versatility of the Flex API.

  • David Decoons, wo2x
    David Decoons, wo2x Member, Super Elmer Moderator

    Absolutely! And it is not difficult for people to dabble, Now if we could get a talented Android programmer on board....

    I use an iPhone 12 Pro Max and iPad Pro so it won't help me but there are many that would LOVE an Android client. The biggest hurdle with Android is there are a lot of flavors and different manufacturers that load their own **** on top.

    Your TeensyMaestro following a client is just like the Maestro running in SmartControl mode :-)

    Dave wo2x

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.