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

1356714

Comments

  • Lou KI5FTY
    Lou KI5FTY Member ✭✭

    Here is an updated version of the schematic, mostly complete. I have added additional headers for more switches (10 additional) if enabled in the software. AI also included a header for power switch and programming switch. I intend to add a 13.8 -> 5v regulator so I can power it from my batteries or shack 12v. I should be able to complete the schematic work this weekend but It is going to take a few weeks before I start pcb layout, too many other high priority projects to finish first. I hope the schematic helps you with your builds.



  • Lou KI5FTY
    Lou KI5FTY Member ✭✭

    Here is an updated schematic with a couple of changes.

    1) Basically complete

    2) Added additional headers and connected them to the CD74HC4067M96 for future upt o 10 more switches in the future if defined in the software

    3) added Power Switch and Program Switch to the headers

    4) I am adding a 12v to 5v regulator so I can power it up from my shack supply or battery - this should be done this weekend

    I am going to pause (except for bug fixes) for a couple of weeks while I get the parts ordered and finish some other pressing projects. Once I have some of the parts I will be able to think through a layout for a PCB and Panel that will hopefully sandwich together and fit the case that most seem to have adopted.

    LMK if there are any problems seen in the schematic.


  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Lou, looks pretty good. I think some of the controls are backwards. The A and B sides of the encoders are opposite on the left and right side of the Teensy board. I also wired one backwards accidentally and fixed it in software (sorry...), so there is one anomaly. I will go through my schematic and yours in detail this morning and will let you know which ones need to be flipped.

    If you plan on cutting the trace on the Teensy board to allow the 5 V external power, be very careful not to cut too deep. It is a four layer board with a trace right under the trace to cut. I would take more of a "scrape off the trace" approach. The Teensy forum has a pretty good thread about it.

    Yesterday, I did some experimenting with the on/off pin, and I can now use it as a reset or as a power button. I will add some code to let the builder configure the behavior they prefer.

    I am looking forward to seeing how your boards come out!

    73,

    Len

  • Lou KI5FTY
    Lou KI5FTY Member ✭✭

    Thanks for your great work - I am publishing the schematic so anyone can fork the great work you have done so far. The project is at: https://oshwlab.com/lscalpati/teensy-maestro-for-flex-6000-radios-master-zip

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Well Lou, I think I didn't draw the encoders the way I should have in the KiCAD schematic. I did all of this with wires, not a PC board in mind (guess you can tell that I am not an Engineer...). I think you will need to use clipleads to wire up the Teensy to the encoders to verify which way they need to be wired so that you get the A and B sides correct. I did label the green and white wires on the VFO encoders correctly, so there is that...

    The Teensy will work without the tft display, so if you use an encoder clipped in, it should work. Just watch the corresponding control in SmartSDR to verify correct control direction of rotation. I will put version 1.009 out later today so that you can run it without the SD card being present.

    I see the caps across the encoders, so that looks good. I think they should be across the switches as well to **** any stray RF. Let me know if there is a reason not to (I still haven't put them on my own unit...).

    VFO A and B show 12 V on Vcc. I would only use 3.3 so that they take power straight from the 3.3 v rail on the Teensy. If you look at an oscilloscope trace of the A and B lines, you will see very clean switching with 3.3 V, so even though the encoders are rated for more voltage, it is not necessary. The optical encoders show Clk and Data lines, but they are really just quadrature transistor switches like the mechanical encoders.

    Are M0 and M1 the Sparkfun boards or did you substitute the actual multiplexer chip? If the latter, then there are probably a couple of resistors or diodes or something missing. The Sparkfun board has two little components, one is a 10 K resistor (pin 15 to gnd??) and I think the other is a diode (Vcc to gnd).

    It looks like M_COM and M1_E are swapped on the Teensy (pins 27 & 28).

    The STMPE610 needs MODE to tie to Gnd to put it into the proper operating mode for I2C operation.

    I have not yet put a sidetone in for the keyer, but plan on using Teensy pin 26 (34_DAT1_MISO2) to generate the tone. I will probably use an I2C amplifier that would connect to pins 40 and 41 in parallel with the STMPE 610 SCL and SDA lines. These might be places to put headers so that they can be wired in later. I am not in a hurry to do this part, but will need to if I ever get this thing to work remotely. Would also need a place to put a low pass filter to smooth out the sidetone. I wish there was an I2C programmable tone generator available...

    So other than those couple of things, everything looks good to me. Hopefully, I haven't missed anything.

    73,

    Len

  • Lou KI5FTY
    Lou KI5FTY Member ✭✭

    LOU> Thanks for the through review. I am going to paste it below and comment in line IN CAPS - I'M NOT SHOUTING AT YOU but just want to differentiate you vs me:

    Well Lou, I think I didn't draw the encoders the way I should have in the KiCAD schematic. I did all of this with wires, not a PC board in mind (guess you can tell that I am not an Engineer...). I think you will need to use clipleads to wire up the Teensy to the encoders to verify which way they need to be wired so that you get the A and B sides correct. I did label the green and white wires on the VFO encoders correctly, so there is that...

    LOU> PRETTY GOOD FOR A NON ENGINEER! I AM A COMPUTER ENGINEER (EE WITH DIGITAL AND COMPUTER STUFF BUILT IN) BUT IN 37 YEARS IN PROFESSIONAL LIFE I HAVE NEVER BEEN ONE ALSO!

    I THINK I AM PRETTY GOOD WITH IDENTIFING THE RIGHT TERMINALS ON THE SMALLER ENCODERS FROM THE DATASHEET

    The Teensy will work without the tft display, so if you use an encoder clipped in, it should work. Just watch the corresponding control in SmartSDR to verify correct control direction of rotation. I will put version 1.009 out later today so that you can run it without the SD card being present.

    LOU> YEP THAT IS WHY IT WILL TAKE A WHILE TO GET TO PRODUCING A PCB. I WANTED TO TEST ALL THAT FIRST AND ALSO CHECK PART HEIGHT TO MAKE SURE I GET EVERYTHING THROUGH THE FACEPLATE AT THE RIGHT HEIGHT

    I see the caps across the encoders, so that looks good. I think they should be across the switches as well to **** any stray RF. Let me know if there is a reason not to (I still haven't put them on my own unit...).

    I WAS TOYING WITH THAT IDEA ALSO. I WANTED TO GET THE BASICS DONE AND CONTINUE WITH MODS. THAT IS AN EASY AND CHEAP THING TO DO. I PLAN ON THE BOARD BEING SMD AND HAVE THE PCB COMPANY MOUNT ALL THE SMDS.

    VFO A and B show 12 V on Vcc. I would only use 3.3 so that they take power straight from the 3.3 v rail on the Teensy. If you look at an oscilloscope trace of the A and B lines, you will see very clean switching with 3.3 V, so even though the encoders are rated for more voltage, it is not necessary. The optical encoders show Clk and Data lines, but they are really just quadrature transistor switches like the mechanical encoders.

    LOU> YEA - WAS DEBATING THIS. I HAVE READ SOME REVIEWS OF MISSING SOME OF THE PULSES AT THE LOWER VOLTAGE AND THE VFO ENCODERS ARE OPEN COLLECTOR SO YOU CAN POWER IT AT A DIFFERENT VOLTAGE THAN THE DATA LINES AND SINCE I AM GOING TO HAVE 12V AVAILABLE... BUT IT WOULD BE NICE TO BE ABLE TO POWER IT FROM 12V OR USB.

    Are M0 and M1 the Sparkfun boards or did you substitute the actual multiplexer chip? If the latter, then there are probably a couple of resistors or diodes or something missing. The Sparkfun board has two little components, one is a 10 K resistor (pin 15 to gnd??) and I think the other is a diode (Vcc to gnd).

    LOU> YES!!!! GOOD CATCH!!! I WAS INTENDING TO GO BACK AND DO THAT BUT FORGOT AT MIDNIGHT LAST NIGHT WHEN I "FINISHED" I ALSO WANT TO REPLACE SMTPE610 WITH SMD

    It looks like M_COM and M1_E are swapped on the Teensy (pins 27 & 28).

    LOU> YUP MISREAD YOUR ORIGONAL SCHEMATIC

    The STMPE610 needs MODE to tie to Gnd to put it into the proper operating mode for I2C operation.

    LOU> MISSED THAT TOO

    I have not yet put a sidetone in for the keyer, but plan on using Teensy pin 26 (34_DAT1_MISO2) to generate the tone. I will probably use an I2C amplifier that would connect to pins 40 and 41 in parallel with the STMPE 610 SCL and SDA lines. These might be places to put headers so that they can be wired in later. I am not in a hurry to do this part, but will need to if I ever get this thing to work remotely. Would also need a place to put a low pass filter to smooth out the sidetone. I wish there was an I2C programmable tone generator available...

    LOU> IVE SEEN PEOPLE MOVE TO SERIAL (USB) MIDI FOR ATTACHING A KEY AND THEN USE MIDI LIBRARY TO PRODUCE THE TONE. THIS ALSO ALLOWS IT TO WORK WITH A GROWING NUMBER OF SOFTWARE PACKAGES THAT SUPPORT IT. JUST A THOUGHT.

    So other than those couple of things, everything looks good to me. Hopefully, I haven't missed anything.

  • Lou KI5FTY
    Lou KI5FTY Member ✭✭

    Hey Len thanks again for all review on my schematic. I made the corrections you pointed out and then some:

    • added all switches to the schematic (RT + CW + 13 additional aux switches which I will put on the PCB
    • added caps to the switches
    • M_COM and M1_E are now correct
    • stmp610 mode is now tied to ground
    • encoder voltage set to 12v. I made this selectable by jumper allowing the user to use a different voltage for their encoder or if the encoder is unstable at the lower voltage
    • added 12v regulator
    • cleaned up schematic

    Still needs to be done

    • check encoder direction
    • add 12v dc connector

    Latest Version:

    And a link to the actual files:

    https://easyeda.com/account/project/detail?project=efc5999378744578a09d06ce177cf1c1

  • Lou KI5FTY
    Lou KI5FTY Member ✭✭

    @KD0RC Len is there a reason you went with the STPE610 instead of MCP23017 also available from Adafruit?

    I can't find the STMPE610 chip but the MCP23017 is readily available and would allow me to put this directly on the PCB like I did with the CDC74HC4067


    Thanks

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Lou, the STMPE610 is designed specifically to control the resistive touch screen and has a library of functions associated with it. It was very much plug and play for me. I would not have associated the port expander with this functionality.

    If all the pins on the STMPE 610 were soldered to the same side, sockets could be soldered to your board and the 610 could then plug right in. Just a thought...

    One note on the encoders, these are 600 pulse per revolution units. Even if a fair number pulses were dropped, you would never notice it in operation. I did a bit of poking around with an oscilloscope when I got them, and at 3.3 v, I could not detect dropped pulses or any anomalies at all. That is not to say there couldn't have been dropped pulses, but it certainly was not a problem.

    Great idea on the additional switches. I have the infrastructure in the code for all of them, so it is just a matter of adding code to the existing structure to enable their use.

    73,

    Len

  • Lou KI5FTY
    Lou KI5FTY Member ✭✭

    @KD0RC Len I hear you about the STMPE610. I have started to break the schematic into 2 for 2 boards - one the human interface board (HIB) and the second the control board. I am going to connect them by stacking header pins. This way I can order the control board and continue to play with parts sizes and layouts and not have to replace it if we want to change out the electronics part or more inevitably find HW bugs. The HIB is the expensive board with all the switches and encoders.

    The reason I am including the voltage option is that I am trying to squeeze down the price, and want a way to test cheap aliexpress encoders for the vfo. Currently all the parts including 9 encoder (excl vfo encoders), 23 switches, jacks, multiplexers etc is $25.00. That excludes:

    • VFO encoders
    • Display
    • STMP610
    • Teensy
  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Sounds good Lou. I don't know if this is feasible, but I was wondering if it is practical to put multiple encoder footprints on the same board. That way folks could pick their level of quality. I used the very expensive Leo Bodnar 1:1 encoders because that is what IW7DMH specified in his project. My buddy Dave, W4WKU went mid-level and chose the nice Bourns PEC-11 quadrature encoders. There are some much cheaper, much lower quality parts out there as well. Some are 2:1 some 4:1 and it is very hard to tell which is which when ordering. I accommodate for that in the config file, so they should all work.

    The VFO encoders are a different animal. I think they all come with pigtails, so headers and sockets are probably the way to go there. I think some are 300 pulse per revolution and some are 600. There are probably more choices than that as well. I chose the $18 Amazon parts and have not been disappointed with the quality. Other cheaper ones are likely plenty good for this application. The SW is very tolerant of dropped pulses, and there is a config parameter for the "sensitivity" of the VFO encoders. So if you have 150 pulses per rev, you can set the parameter to get the same approximate feel and tuning rate as the 600 Pulse units.

    Sounds like you have a way to do this very inexpensively!

    73,

    Len

  • Lou KI5FTY
    Lou KI5FTY Member ✭✭

    I am building my board around the Bournes PEC-15 or 11 (just height difference) depending on what fits the case. Im sure it is doable to do multi footprint, just above my skill level with the software. I am getting the Bournes for 1.28 each qty10!

    Don't let the fact they are in china deter you. I use them all the time - sister company jlcppcb where I have all my boards done. It seems they don't gouge on the smaller orders like digikey and mouser. The real McCoy on all other parts I have purchased. Major parts supplier.

  • Good find, Lou! I purchased Bourne encoders from Adafruit at $4.05 ea. You saved $23 over my cost for the same encoder.

  • Lou KI5FTY
    Lou KI5FTY Member ✭✭

    Glad to hear, Cheers!

  • Lou KI5FTY
    Lou KI5FTY Member ✭✭

    @KD0RC Len is there anyway to connect the encoders to a multiplexer, this would free up a bunch of gpio for future enhancements.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Lou, I would guess that could be done, but it would take a lot of research and experimentation. Would need to find a library that supports multiplexed encoders and that has the same good response as the lib that I used. The Teensy Encoder library uses interrupts to prevent loss of state transitions and is very fast and very stable. I have no idea how that kind of thing is done in a multiplexed environment.

    73,

    Len

  • aa3ssradio
    aa3ssradio Member ✭✭

    Trying to get my switches working. I do not see a COM connection on my spark fun board. I have on the left C0 to C15

    On the right is GND . . . VCC . . . EN . . . S0 . . . S1. . . S2 . . . S3 . . . SIG


    What is COM

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Steve, yes, whoever did the schematic symbols did not follow the naming convention on the board - very aggravating...

    The COM is SIG on the MUX board.

    73,

    Len, KD0RC

  • aa3ssradio
    aa3ssradio Member ✭✭

    Got it figured out

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Excellent!! Sounds like you are nearly done.

  • aa3ssradio
    aa3ssradio Member ✭✭

    That part of the schematic needs a little redo. All done and closed up. Rewired the whole thing last night. Used originally 24g ribbon cable but every time I moved something a wire broke. 22g works much better. . . . I did not add the CW messages buttons as I am not really a CW guy.

    Do it once in a while and that is it.


  • KD0RC
    KD0RC Member, Super Elmer Moderator

    YES! Glad to see it up and running (and looking really nice)! FB on the keyer. The nice thing about this setup is that you can pick and choose what to implement. You can leave off any buttons, encoders or even the display if you want. You are now in a club of three TeensyMaestro owners!

    73,

    Len

  • DL4RCE
    DL4RCE Member ✭✭✭

    Looks really great!

    Volker

  • aa3ssradio
    aa3ssradio Member ✭✭

    Lou . . . You might want to change your schematic a little to reflect the proper layout of the pins and signal names on the SPARKFUN multiplexer boards. It was very confusing with the incorrect naming on there

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    For those who want to duplicate this (before Lou puts out a PC board...), don't do what I did. I put ,1 inch header pins on the proto board and plugged everything in. This worked great while I was building and had everything spread out on my workbench, but not so good as a finished product. The problem is that whenever I open the case, I inevitably manage to knock a couple of connections loose, then I have to figure out what fell off and where it goes back.

    The better approach is to put sockets on the proto board for the Teensy, then solder almost everything else. Putting headers and sockets on the VFO encoders works great, as well using sockets for the display. If you wire up the power or programming buttons, headers are a good way to go so that the Teensy can be pulled without un-soldering these lines.

    Dave, W4WKU put the MUX boards together, separated by 1/4 inch spacers. Since 7 of the 8 control pins are in common. one cable for all 7 worked out great. I did it as two full length cables, congesting my enclosure space and proto board even more.

    In the meantime, I added three options for the power button:

    POWER - Five seconds hold time to power off, 50 mS hold to power on.

    POWER FAST - Close to 0 mS to power on or off.

    RESET - Instantly power off and back on, effectively turning the power switch into a reset button.

    There is now a power off function in the menu, so it can be turned off that way, then back on with the power button, regardless of the configuration.

    73,

    Len, KD0RC

  • aa3ssradio
    aa3ssradio Member ✭✭

    Oh sure . . . So now i gotta open it up AGAIN and update the software . . . 👍👍👍

  • aa3ssradio
    aa3ssradio Member ✭✭

    Dumb me. Just hook up usb cable and press program button

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    I just put version 1.011 of the TeensyMaestro out on GitHub.

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

    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

    Updated User Manual accordingly

    73,

    Len, KD0RC

  • Here is a photo of my TeensyMaestro in action during Winter Field Day. I operated from Pennyrile Forest State Park about 1.5 hrs from home. Also had a blast with a POTA activation before WFD started up.


  • KD0RC
    KD0RC Member, Super Elmer Moderator

    That was a killer pile-up you had going on 40 SSB on Saturday morning! Your HamVan setup looks really good - I am glad the Flex and TeensyMaestro played so nicely under contest conditions!

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.