Teensy Qt

Yes active.
'Clear on reset' is set because i like a fresh monitor after restart/upload so i don't have to do it manually every time.
Will test serial on/off next time.

Another question: is installing Teensyduino needed for TyQt?
TyQt is so nice i wonder it's not standard in Teensyduino.
 
HI!

Seems a beautiful project for managing working together with multiple teensy MCU-s. Is it possible that this could work one day properly also with atmel studio+visual micro?

Right now still sometimes it tries to upload to the wrong MCU
 
I've found that when you start an instance of the IDE and TyQt for each board connected to the PC and assign the correct comport number, the uploads go to the right location.

I've also found that Teensyduino needs to be installed first then TyQt without the IDE running.
 
Thanks for the report, it should work correctly in the latest build TyQt-0.8.0-4-g5be2fe1.

The Teensy Loader uses the information in the ELF file to check the model a firmware is compiled for, which is more reliable than what TyQt does (or should I say, did) but it cannot be used if the ELF is not also there. If you delete the ELF file in the Arduino build folder, you can use the Teensy Loader to upload the HEX file to an incompatible board and it will not stop you.

Since I wanted TyQt to work the same with or without the ELF file I found another way, kind of a hack really but it did work until now. But I've just found a way better trick, way less fragile and it still does not need the ELF file. I'm quite happy about that actually :)

Good fix Koromix - Just to confirm I updated my TYQT to the latest 0.8.0-52 and it can now upload to a T_3.0 where the prior version as noted failed.
I saved this link to get the latest TYQT :: bintray.com/package/files/koromix/ty/ty
 
Yup, that fixes a "check model" issue i had.
Thanks.

Can you add a "check for updates" to the menu ?
And... a VT100 emulation ? Please ? :)
 
First, this whole project is being renamed TyTools because it is a collection of three tools at this point, and TyQt is just one of them (though it is the biggest as of now). The name "ty" was just ugly. The TyQt GUI has been renamed to TyCommander, and the command-line "tyc" tool is now called "tycmd". Since new tools may eventually show up and they will not use Qt I want to drop the Qt part now.

Just found out about TyQt two days ago.
I don't know if that is a TyQt problem, but often it happens that after uploading the serial monitor is cleared but nothing shows up.
I have to disconnect the power supply from my circuit and the USB from the Teensy.
After plugin in again the serial monitor works and is printing what it should.

Teensy 3.5 on Windows 8.1...

That should not happen but there are many possible causes. I can suggest a few tests to help find what the issue is:
- Is it a USB 3 port and if it is, does this bug also happen on USB 2 ports?
- Do you plug the Teensy in a USB hub and if you do, can you reproduce by plugging it directly on the computer?
- If you disable the Serial button in TyQt's toolbar and the re-enable it (what defragster proposed), does it fix the issue?
- Do you use Serial USB type or one of the HID types? If you're not sure you can find out "in Tools > USB Type" in the Arduino IDE.

Can you reproduce this issue with this simple sketch? If not it may indicate a problem with your code.

Code:
void setup() {
  while (!Serial && millis() < 3000);
}

void loop() {
  static unsigned int count = 0;
  Serial.print("count = ");
  Serial.println(count++);
  delay(100);
}

Another question: is installing Teensyduino needed for TyQt?

You don't need Teensyduino installed. TyCommander (formerly TyQt) is a single executable, you can take TyCommander.exe from the release archive and move it to another computer without any problem.

HI!

Seems a beautiful project for managing working together with multiple teensy MCU-s. Is it possible that this could work one day properly also with atmel studio+visual micro?

Right now still sometimes it tries to upload to the wrong MCU

Well TyCommander (TyQt) does not even try to respect the IDE setting, because it is useless and confusing in the Arduino IDE.

The first time you upload a sketch TyCommander should ask you where you want to upload it (if there are at least two boards plugged in), and after that it picks the Teensy (or Teensies) that the current sketch was uploaded to. You can right click on a board in TyCommander and click "Drop association to '<sketch>.hex'" to get the selection dialog on the next upload.

Perhaps I will look into Visual Micro to see if I could do better.

Yup, that fixes a "check model" issue i had.
Thanks.

Can you add a "check for updates" to the menu ?
And... a VT100 emulation ? Please ? :)

Well that's on the TODO list. I just don't have much time to work on it these days. I'm also working on another feature that I hope to demo soon enough.
 
Last edited:
Awesome to hear you are still working on Teensy Commander, it is a great tool that makes Teensy so much better to work with.

The only oddity I've noticed is that sometimes the UI is left with no active Teensy selection - perhaps when one or more went away leaving none online - but then the first returns. Especially in HIDDEN view - it is hard to find obvious signs of a connected Teensy: I'd suggest any time a Teensy comes online - if there is no 'selected' Teensy - the new arrival be 'Selected' in the main pane. { I see a new version # on Teensy Commander - and just tried this and it doesn't repro with a single Teensy }

Is it really wrong of me to suggest - as an abbreviation for casual reference - TeeCo or perhaps TeeCom as a more searchable or type-able name for forum use?

Would it be outside the scope of Teensy Commander to identify other online USB Serial type devices - say an FTDI adapter - to populate a Serial Monitor only window? That would allow a Teensy device not normally on USB to be connected via the FTDI adapter for debug or monitoring purposes - without programming a second Teensy as Proxy.

BTW: I'm using the current 1.8.1 IDE and Teensy Commander still does great with 'Integrate to Arduino' - and installing Teensy Commander saw it as already integrated - though the IDE pulled up the old EXE - so I closed the IDE and did a Teensy Commander Restore and Integrate no problem.
 
I've just switched to "TyCommander" for the main GUI and TyTools for the whole project. Hopefully it's easier to type :)

The UI thing sounds like a bug, I'll look into it tomorrow.

Actually, it's pretty easy to add a way to monitor all kinds of serial devices. I remember trying it in the early TyQt days but that was before the "Enable Serial" button, and at the time the core code could not avoid to connect to a supported device. I'll work on that this weekend. Unlike for Teensy boards, the serial will be disabled by default in that case and you will have to click "Enable Serial". I don't want TyCommander to start reading from all serial devices connected, this behavior might feel a bit invasive.
 
I guess my problem that nothing shows up in the serial monitor is hardware related.
It seems like that the code hangs because the i2c and SPI devices need a reset.
I have now a LC and 3.5 connected and the electronics connected to them get the power from the same supply.
Both show that behavior and if it happens on one i have to unplug both and the supply.
 
Thanks Koromix!

Quick question: Suppose I have a program (lets call it Well Monitor), that I will be updating two T3.6s with the same program. They know which is master and which is slave, by a jumper wire I put on the slave. So I do an upload and (TyQt 0.8.0), updates to the processor that I have been doing most of the work. Now I want to test the two of them, so I plug in the 2nd T3.6, which shows up in TyQt. I also change the Serial port in Arduino IDE to be the port of the 2nd T3.6 and click upload. It continues to upload to the first Teensy.

Is there an easy way to tell it which of the two I wish to update?

Thanks
Kurt

Edit: What I have done was to open up a 2nd Arduino IDE process with same sketch folder and did update...
 
Last edited:
Assume you did integrate
Once a named sketch in a session goes to a device, it returns there. Until right click drop association.
If both same device the same sketch you can select both and they update in parallel

That do it?
 
Thanks Koromix!

Quick question: Suppose I have a program (lets call it Well Monitor), that I will be updating two T3.6s with the same program. They know which is master and which is slave, by a jumper wire I put on the slave. So I do an upload and (TyQt 0.8.0), updates to the processor that I have been doing most of the work. Now I want to test the two of them, so I plug in the 2nd T3.6, which shows up in TyQt. I also change the Serial port in Arduino IDE to be the port of the 2nd T3.6 and click upload. It continues to upload to the first Teensy.

Is there an easy way to tell it which of the two I wish to update?

Thanks
Kurt

Edit: What I have done was to open up a 2nd Arduino IDE process with same sketch folder and did update...

The serial setting in the IDE is ignored because it poses more problems than it solves. First, in non-Serial modes you could not select the board you want. This is especially bad if you happen to have another Serial device plugged in, because then it will probably be selected in the IDE even though you don't want to target it. I tried to ignore the selection when a non-Serial USB type is selected but then the behavior becomes even more confusing when you switch USB type. Also, this cannot deal with one sketch -> multiple boards upload.

Instead, TyQt associates one or more boards with a sketch binary file. You can see this by right clicking on a board, the "Drop association to '<sketch>.hex'" menu item. If you click on it this association is dropped, and the next upload will ask you where you want to send it.

You can associate a sketch with multiple boards. Three ways to do that:
  1. Select those boards when you get the selection prompt on upload. Drop the currently associated board(s) to get it on the next upload.
  2. Copy-paste the firmware path under the Options tab ("Firmware:") to all the boards you want to link to this firmware. Click Upload in the IDE.
  3. After associating your boards (as in 2), click Verify in the IDE and then click Upload on the board you want in TyQt. Note that you can select multiple boards in TyQt too, and then click Upload.

tycommander-multi-upload.jpg

If you have used TyQt before 0.8.0 the multi-selection in 1 will not work if you have done the "Integrate to Arduino" before 0.8.0. You need to do a "Restore" and then "Integrate" cycle in the integration tool. And then restart the IDE.
 
Thanks guys!

Tried #1 and it works great. I almost did #3 yesterday, did no do the paste in... Instead I did option #4 which was to open 2nd instance of Arduino IDE to same program and then did upload, which associated it with 2nd board, then I had to do upload command in each of the Arduino IDEs to update both...

Thanks again - Nice program!
 
Newest version fixes an issue in recent builds and with the pending TD Tools change:
TyTools-0.8.0-100... - or newer

<edit>: EXE was renamed - so if "Integrated to Arduino" it requires 'Restore' and 'Integrate' to point to the renamed program.
 
Last edited:
Been using TyQt GUI for a couple of months now, and it's becoming routine. But only the GUI and mainly for the ability to do soft resets, and the superior upload mechanism.

I haven't felt a need to try the command line version yet ... I'm not adverse to command line tools, but I'm wondering what the benefit is? Perhaps it's only for those working with multiple teensy's ?

A few minor issues with the GUI:

1) Serial gets randomly disabled. Seems to happen when I click into the TyQt GUI window from another window. Easy enough to Enable again, but what could be the cause?

2) I'm still hoping new release provides ability to set tab sizes, or at least match them with the Arduino IDE setting.

3) Doesn't handle high-dpi displays well (like 3000 x 2000 on my Surface Book). This snippet show some of the issues like: crowded lines of text on teensy symbol, can't read the whole pull down in charset menu options.
And tabs spacings are not same as my desktop with its 'typical' Dell 1920 x 1080 monitor:
(& its not solved by dragging the window wider)
TyQt options.JPG

Here's the same view, on my other desktop computer:
TyQt GUI Desktop.JPG

Lastly, regarding links to TyTools, why both GitHub and BinTray? Not familiar with the latter but seems to be duplication?
 
Last edited:
@ninja2 - that vertical separator bar can drag right to show the 'Teensy Device' tab - or drag left to go away ( Ctrl+H )and hide.
BinTray is a good binary file download repository - versus the sources on Github.
I've not seen the Serial Disconnect on a Teensy - maybe it is the click to focus - do you see it with "Alt+Tab" to change active app?
If you see issues - post them on Github if you haven't Koromix has been back being active.
 
Pinging this thread - For TyCommander issues post here:

I've let Koromix know about two things I found:
> Recent Toolchain mod breaks his detection of what MCU the binary is built for - I've only seen this affect a recent HEX I got for the T_3.6. It won't upload it, a fix will hopefully be out in days
> Recent version TyTools-0.8.6-5-g88935fc-win64 I installed was giving "I/O error while reading from '\\.\HID" during upload to T_3.1. I sent email today.

For the second HID issue I returned to my prior build TyTools-0.8.5-win64 and it works fine. Anyone else seeing this note the error - and try a prior version { click FILES here
 
> Recent Toolchain mod breaks his detection of what MCU the binary is built for - I've only seen this affect a recent HEX I got for the T_3.6. It won't upload it, a fix will hopefully be out in days

Just for reference I had the same experience with a T3.5.
 
Koromix saw it as likely the addition of this compile flag: (__PURE_CODE__) - if it was another change he'll come to that after parsing a few more bits to get this test to work. Just to show how committed to having this work well and right ...

When the HEX file is read - he interprets it as indicated here : class_teensy.c#L286-L338

Where a valid HEX file for the Identified Teensy will pass this test - if not then it refuses to upload:
/* Try ARM models first. We use a few facts to recognize these models:
- The interrupt vector table (_VectorsFlash[]) is located at 0x0 (at least initially)
- _VectorsFlash[] has a different length for each model
- ResetHandler() comes right after _VectorsFlash (this is enforced by the LD script)
- _VectorsFlash[1] contains the address of ResetHandler

Knowing all that, we can read the ResetHandler address 4 bytes in, and recognize the model
from this address.
To make sure it's really a Teensy firmware, we then check for a magic signature value
in the .startup section, which is the value assigned to SIM_SCGC5 in ResetHandler(). */
 
Let you know, on a designed board with MK64FX512VDM12 and bootloader MKL04Z32_TQFP32, the software reports it as 3.1 and not 3.5.
Thus, Teensy QT will not flash the software. Teensy Loader works fine.
Thought I pass this info to you.
 
Odd - does it report a serial#?

I'm running TyCommander 0.8.8-11, not sure if a newer has posted. Useful info for Koromix if posted a Text copy of :: View / Show Application Log. It will give some indication of how that came about.

I see the latest version is now 0.8.8-16 ::
 
Last edited:
Back
Top