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

1568101114

Comments

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    TeensyMaestro V1.028 is now available on GitHub:

    ***************************** V 1.029 ***************************
     Fixed bug where cleared RIT and XIT retained their old value under certain conditions
     Added support for TSC2007 touch controller (STMPE-610 went unobtanium but is still supported)
     Removed long touch to turn off TX on a slice. Short touch will now toggle TX on/off.
     Expanded Splash touch screen area to include filter graphic area
     Added grayed out Slice letter for unused slice (provides touch target to create a slice)
    

    The big news is that the TSC2007 touch controller from Adafruit is now available. The Bill Of Materials was updated to show that the STMPE610 is no longer available and that the TSC2007 replaces it. The same executable (.hex file) will operate with either touch controller.

    @TimothyDilks - How is your build going? Last post your TM looked really good and just needed some of that tedious wiring for the encoders and switches. If you are stuck on anything, let me know and I can do a Skype session with you to help sort it out. If you have an actual life and just haven't had time to work on it, I am probably not that much help... 😁

    @David Okay Patton - Yes, it was great seeing you! All that rain slowing your tower build would be welcome here...

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

    Nice work guys! Very impressed.


    Dave wo2x

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    A couple of people have recently asked me about the Teensy vs Arduino decision that I made when I created the TeensyMaestro. Here is a chart of relative performance across a bunch of boards from the PJRC.com site:

    I started the project with the Arduino Due and ended up with the Teensy 4.1. The Teensy was way cheaper, way faster and has built in ethernet. I used it with the Arduino IDE (development platform) by adding the Teensyduino add-in. It lets you program the Teensy just as if it was an Arduino.

    I initially chose the Arduino Due because that is what Enzo, IW7DMH used. He wrote an entire library around the Arduino for the Flex API. Adapting the library from the Arduino to the Teensy was trivial. Even though the Due is fast enough to run the Flex API, the Teensy is so much cheaper and does not burn precious I/O pins with an outboard ethernet adapter that it is a much better choice for this application.

    That is it in a nutshell. No big feasibility study - just me saying "Huh... that looks like an interesting gizmo to try...". If you are interested in doing anything like this, you might want to look at the Teensy boards from PJRC.com. You can even use Node Red to code it. I don't know how mature the Teensy and Arduino support is for Node Red, but it is out there and available.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    TeensyMaestro V1.030 is now available on GitHub:

    ***************************** V 1.030 ***************************
     Removed radio query throttling that was added in 1.027. It didn't help, and kills remote CW.
     Added 5 us delay after reading paddles and straight key to let input values settle.
     Fixed bug where keying over ethernet without a radio connection, breakin on or TX slice in  
      CW mode caused a reset (Thanks Stefan, VA3AR for finding this!).
    

    For anyone who is using the cw key command in the Flex API, you may want to be sure that Breakin is ON and that there is a CW slice open with TX ON. In my case, it caused my TeensyMaestro to crash and reset. I am not sure what was going on exactly, but it felt like commands were stacking up until something overflowed. In any event, I simply don't issue the cw key commands to key or unkey the radio unless the above conditions are met.

    A big thanks to Stefan, VA3AR for finding this bug and bringing it to my attention!

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

    Len,

    It’s really cool what you and others have done with the Teensy.

    Having access to the API is great as it helps keep my grey cells challenged ;-)

    73

    Dave wo2x

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Thanks Dave, I appreciate that. It has been a really fun and rewarding project.

    Yes the API allows for a whole new level of home brewing. It has certainly kept me entertained and challenged!

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    TeensyMaestro V1.031 is now available on GitHub:

    ***************************** V 1.031 ***************************
     Fixed bug where the red TX indicator circle was always shown on Slice 0 when in MultiFlex
    

    Tiny fix, but I hadn't released it in so long, I thought it was time.

    There was interest a while back in creating a PC board for this project. If anyone is interested in creating one, I would be very supportive of the effort. If anyone wanted to be really ambitious and create (and distribute) a parts kit, I would be REALLY supportive! I don't think that a kit would be practical without the PC board.

    Is anyone in the process of building one right now? I would love to see pics of any completed or in-progress TeensyMaestros.

      

  • Leo de Blaauw
    Leo de Blaauw Member
    edited August 2022
    Hi all,
    I Just stumbled across this project and would love to build it for my 6500. Seems though that a teensy 4.1, at least here in europe, is allmost impossible to order. Is there allready someone who ventured to get this project running on a different platform?
    Regards,
    Leo de Blaauw - PA1LDB
  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Leo,

    Thanks for your interest in the project! The Teensy 4.1 with the ethernet function has recently come back to being available in the US at the PJRC.com site. I believe that they are now starting to show up again in Europe, but I don’t know which vendors have them or what the lead times are.

    The project could probably be ported to a different platform, but it would not be a trivial exercise. I rely heavily on the libraries that are optimized for the Teensy (especially the Ethernet routines), so all of that would need to be worked out.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Phil, VK4KW let me know that PJRC are currently out of stock. They are projecting that the Teensy 4.1 with the Ethernet option will be back in stock by Aug 22.

    If you are planning on building a TeensyMaestro, it is imperative that you get the Ethernet version. I have often been asked if a USB port could be used instead of the Ethernet connection.

    The answer is no. The CAT commands, which can be accessed using USB, are very limited in what they can do and are there to provide compatibility with some third-party applications like loggers.

    The Flex API, which the TeensyMaestro uses, is TCP/IP based (hence the Ethernet connectivity) and gives access to all functions of the radio. Literally all functions; this is the same interface that SmartSDR uses.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    The Teensy 4.1 with Ethernet just came available from PJRC.com. They are limiting 2 per customer.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    From an e-mail conversation with Phil, VK4KW/VK4BAA:

    Len,

    Following on from this, the BOM lists the need for 9 encoders – but the schematic appears to show more than 9? I count 11?


    Have I ordered too few?


    73,

    Phil



    Hi Phil,

    You need 9 mechanical encoders and 2 optical encoders. The optical units are the VFO controls and are listed separately on the BOM as "Rotary Encoder". I used the 600 pulse per revolution units listed in the BOM, but the 300 ppr units should work just as well if that is all you can find. There is a parameter in the config file that lets you set the sensitivity of the VFO knobs.

     

    I am glad that your parts are on the way; in some ways, that is the hardest part of the project.

     

    I never did write the builder's guide, but there is a great deal of information in the first few pages of the TeensyMaestro thread on the Flex Community forum.  

     

    The published schematic does not show the latest innovation. I added a mic switch that automagically changes mic profiles. The schematic and wiring info is in the Forum thread. If you are interested in this feature, I can help you through it. It is better to add the wire to the Teensy board first to make it easier to deal with. I use this feature a LOT!

     

    Mistakes that I made:

    I used Dupont jumpers for all connections (was great for prototyping). This left me with a flakey display and poor encoder performance. Some wires fell off when transporting the unit in my camper (caravan for you VK folks...). I went back and soldered everything to the protoboard which made the whole thing completely stable.

     

    I used very cheap buttons. They were hit or miss whenever I pushed one, so I replaced them with better quality units and get a good contact every time now.

     

    I ran two ribbon cables, one to each multiplexer. Seven of the eight connections are in common between the two multiplexers, so I should have run short wires to the second mult and just one ribbon cable to the proto board (thanks to Dave, W4WKU for that suggestion).

     

    I ran individual ground wires to each encoder. It would have been better to run one ribbon cable for each set of four encoder/switch sets with one ground wire for each set. Would have reduced the rat's nest of wiring somewhat.

     

    To get to the programming button on the Teensy board, I reach my little finger in and hope to find it. Kind of works, but in retrospect, I should have brought that button out to the back panel. The schematic does show that.

     

    Things that I did that worked well:

    I socketed the Teensy board to the proto board. If you ever have a problem, you can pull the Teensy out and run it separately to see if your issue is wiring related or a problem with the Teensy itself.

     

    I prototyped my front panel using cardboard (see my QRZ.com page for pics). This allowed me to get the layout that worked best for me. I went through a few different layouts before landing on this one. I highly recommend this, as my idea of good ergonomics may not be the same as yours.

     

    I mounted the protoboard so that I can easily get to the SD card without taking anything apart. This lets me easily change operating parameters, especially CW message memories.

     

    I used a slope-front box that has enough room so that the controls are not too crowded. This also gave me the freedom to add additional features. If desk space is at a premium, smaller knobs and closer spacing could be used with a smaller enclosure. You can even leave off any controls that you seldom use.

     

    If you haven't already, you might want to spend some time with the user manual while you wait for the parts to arrive. Hopefully you will find some value there.

     

    I will post this on the forum so that others can benefit from the discussion. Don't hesitate to post any questions, suggestions, pictures, progress reports, etc there.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Here is a beta version of the TeensyMaestro firmware with the functionality that Phil, VK4KW requested.

    ***************************** V 1.032 ***************************
     Added functionality to make the Encoder 9 (CW Speed/Menu Select) control user assignable to 
    any of the following functions:
      CW Speed, Mic Gain, RF Power, Tune Power, WNB Level, Mon Level, VOX Level, VOX Delay, Band 
    

    Config file with new option set. This gets unzipped and placed on the SD Card. Edit the entry Menu Encoder: to have the functionality desired. For Example:

    Menu Encoder: RF Power ; CW Speed, Mic Gain, RF Power, Tune Power, WNB Level, Mon Level, VOX Level, VOX Delay, Band

    If you already have a MMConfig.ini file customized for your use, just copy in the Menu Encoder: line and edit it for your preference.


    Unzip this file and load it to the Teensy board using Teensy.exe from the GitHub site. The user manual has instructions on how to do this.

    Once this has been out for a while, I will release it to GitHub. For anyone who has built a TeensyMaestro and doesn't use CW much, this will give you several more options to use the CW Speed control for something else.

    If you try this beta version, please let me know how it goes. If I can find the energy, I may add a menu item that will let you select one of these nine functions on the fly. I haven't thought that through yet, but off the top of my head, it seems like it will be reasonably straightforward (famous last words... :- ) ).

  • Phil VK4KW
    Phil VK4KW Member ✭✭

    Thanks Len.

    I plan to get the project up to the point where I can start to play with some of this functionality, this coming weekend. I now have all of the parts except for the MUX chips - heaven knows why they're taking so long to get here. With my new soldering iron (the old one gave up!) I'm hoping to be able to assemble the majority of the essential hardware.

    73,

    Phil

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Sounds good Phil. I have yet another version ready with a menu item that lets you select the function of the control. The config line sets the default and the menu item lets you override that.

    I am up in Wyoming on a fishing trip right now, so I won't be able to post it until later next week. In the meantime the version in my previous post should get you by.

    Post a pic of your progress when you get a chance, I would love to see how you are getting on!

  • Len

    You mentioned that we should let you know when we are going to start putting a unit together. Well, I received the last part that I was waiting on and I hope to get started next week. Very exciting. Thanks for all of your work

    AJ8B => Bill
  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Bill, sounds good! Let me know if you have any questions or issues. Pictures of progress are always appreciated.

  • Phil VK4KW
    Phil VK4KW Member ✭✭

    I have a quick question which I'm hoping someone will be able to answer please.

    I've started to assemble the Teensy and breadboard etc, starting with the headers to form a socket arrangement for the Teensy itself, along with mounting the myriad of capacitors and additional headers for ultimately connecting the encoders.

    The little 'Welcome' card from PJRC shows a 'Vin' connection for 3.6 to 5.5 volts, adjacent to the USB socket. I'm assuming that this voltage would be supplied from the USB connection to the PC but can't find an existing connection from the 'Vin' pin to the 'USB Host +5V' connection on the Teensy board.

    Is a wire needed to join these two together (possibly on the Teensy board itself to save having an additional header/socket arrangement on the Teensy 'USB Host') or am I over-thinking this and this connection is not actually needed?

    73,

    Phil

  • Lasse SM5GLC
    Lasse SM5GLC Member ✭✭✭
    edited September 2022

    If you read on the PJRC webpage, you will see this:

    VIN Pin:

    When USB power is not used, 5V power may be applied to the VIN pin. Because VIN & VUSB are connected, power should not be applied to VIN while a USB cable is used, to prevent the possibility of power flowing back into your computer. Alternately, a pair of pads on the bottom side may be cut apart, to separate VUSB from VIN, allowing power to be safely applied while USB is in use.

    Indeed, I verified there is a pair of pads next to the Vin pins and there is a tiny tiny brigdge between these pads.

    So bottom line: do not power the board using VIN when having USB cable attached to computer. UNLESS you have done the modification, cutting the pad bridge.

    I hope I make sense :)

    73 Lasse SM5GLC

  • Lasse SM5GLC
    Lasse SM5GLC Member ✭✭✭
    edited September 2022

    Phil,

    Reading on the PJRC webpage you will see:

    VIN Pin:

    When USB power is not used, 5V power may be applied to the VIN pin. Because VIN & VUSB are connected, power should not be applied to VIN while a USB cable is used, to prevent the possibility of power flowing back into your computer. Alternately, a pair of pads on the bottom side may be cut apart, to separate VUSB from VIN, allowing power to be safely applied while USB is in use.

    And I did verify that there is a tiny brigde between the two pads next to the VIN pin (bottom side). So do not use VIN when having a USB-cable attached, unless you have the bridge cut.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Phil, Lasse is correct, you only want one power connection or the other, not both. I designed the TeensyMaestro to be powered from the USB cable that is used to program it. No additional connection is needed.

    The 5 V Vin connection is used in designs that are powered from a source other than the USB cable. Usage requires cutting a trace on the board to prevent backfeeding 5 V to your computer. None of this is necessary with the TeensyMaestro.

  • Phil VK4KW
    Phil VK4KW Member ✭✭

    Thanks Lasse and Len.

    All understood.

    I powered the Teensy this morning and got it happily onto the Ethernet network in the shack. SDR reported seeing it as a new IP address, showing a small black box at the lower right of the PC screen. An LED on the Teensy burst into life. I planned on using an SD card that I already had in stock, but the Teensy actually needs a micro SD card and not the 'full sized' one that I've got, so it's off to the shops again.......

    Today, I'll be looking at how the touch screen wires into the Teensy, and thinking about how to mount the little PCB for the screen controller.

    Making some progress at last!

    73,

    Phil

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Excellent! The little black pop up lets you know that the firmware is loaded and successfully connected to your Flex. The LED on the Teensy board is connected to pin 13 which is one of the display lines, so it is always flickering but doesn't give you much information.

    You don't need to buy a big SD Card. The MMConfig.ini file is quite small.

    I'm glad you are making progress!

  • Phil VK4KW
    Phil VK4KW Member ✭✭

    Made a bit more progress today - but I have (yet!) another question. 😔

    The schematic shows pin 13 as being connected to the 'SCK' pin on the display. My display doesn't have that pin.

    The display does however have a 'CLK' pin however, which doesn't show on the schematic as being connected - but surely it connects somewhere else the 'Clock' input is not being activated?

    Maybe there's a typo on the schematic? Maybe I'm missing something more than the usual absent marbles.

    My display is currently illuminated white with no other features appearing. The touchscreen aspect appears to be working however, judging by the LED on the controller board as there is activity when the screen in touched. Nothing reacts on the SDR software as a result though.

    Phil

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Phil, the SCK and CLK are the same. That is the SPI clock signal. Connect them together and you should be in business.

  • Phil VK4KW
    Phil VK4KW Member ✭✭

    Thanks Len.

    I've connected them, but still have the same symptoms.

    I've also checked all +Vin DC connections, 0V DC connections, 3.3v DC feed to the display board.

    Is a 'white screen' part of the normal boot-up display - even if only for a short time? I ask, as maybe the micro SD card is not being read so the Teensy doesn't know what to display....? If I remover the micro SD card, the symptoms are the same.

  • Phil VK4KW
    Phil VK4KW Member ✭✭

    Maybe, there's a library that I need to load before the display will function correctly....?

    Phil

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Phil, yes, the display will show a white screen for a few seconds as it goes through its startup sequence. Then it should go to a blue background with yellow lettering as it populates the splash screen.

    On the Adafruit display, did you solder the little SPI jumper? If not, that is the likely problem. I am up in Wyoming fishing, but will be home later today. If you don't find the SPI jumper, I will send you a picture of it when I get back.

    Everything has a default, so it will work with or without the SD card.

    When you loaded the .hex file, did you use the one that I sent, or did you compile it yourself? If you used the one that I sent, there are no libraries or anything else to load anywhere.

    If the SPI jumper isn't the issue, let me know and we can do a Zoom or Skype meeting. One other ham had a problem with his, and we solved it right away with Zoom. I am retired, so working out the time difference between QLD and CO should be doable.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Phil, I just thought of another common issue. When wiring anything to the Teensy board, you need to pay attention to the pin identifiers printed on the board. The schematic has physical pin numbers that are not referenced anywhere. Very confusing... I wish that I had a better schematic component, but that was all I could find.

  • Phil VK4KW
    Phil VK4KW Member ✭✭

    Hello Len.

    I have soldered the SPI pads on the rear of the display, to enable SPI. I wish that was the issue....

    The HEX file is the one downloaded from the website. I've not looked into doing anything with the software as yet, as I wanted to get a 'base level' from the proven software (lots of people have had no problem at all with it so it should work fine for me) and then take it from there.

    I used the pin numbers shown on the Teensy board itself.

    This is my first venture using the Teensy and I have a nagging feeling that there's something I'm overlooking that isn't 'needed' to be documented as such, as "everybody knows to do that". It could be as simple as a wire link missing for a voltage somewhere - that type of thing. For instance, I've wired all GND to the 0v line, but the 3.3v pins are not connected to anything. One pin appears to be a 3.3v output (rated at 250mA, adjacent to pin 23) so should this pin be connected to the other 3.3v pin located between pins 12 and 24?

    I'll try reloading the HEX file today too - just in case. The Teensy is allocated an IP address and the SDR software displays this, so that part of the equation looks good. The touch screen appears to be responding to activation - judging by the LED activity.

    I'll also re-check today for any solder splashes on the underside of the Teensy board. You never know!73,

    Phil

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.