PDA

View Full Version : Teensyduino 1.53 Beta #1



Paul
06-16-2020, 01:57 PM
Here is a first beta test for Teensyduino 1.53.


Linux 32 bit:
https://www.pjrc.com/teensy/td_153-beta1/TeensyduinoInstall.linux32

Linux 64 bit:
https://www.pjrc.com/teensy/td_153-beta1/TeensyduinoInstall.linux64

Linux ARM:
https://www.pjrc.com/teensy/td_153-beta1/TeensyduinoInstall.linuxarm

Linux ARM64:
https://www.pjrc.com/teensy/td_153-beta1/TeensyduinoInstall.linuxaarch64

MacOS 10.10 to 10.15:
https://www.pjrc.com/teensy/td_153-beta1/Teensyduino_MacOS_Catalina.zip

MacOS 10.8 to 10.14:
https://www.pjrc.com/teensy/td_153-beta1/TeensyduinoInstall.dmg

Windows:
https://www.pjrc.com/teensy/td_153-beta1/TeensyduinoInstall.exe


Changes since Teensyduino 1.52:

Support for Arduino 1.8.13
Reduce EventResponder and yield() overhead (KurtE)
Audio design tool checks I/O compatibility (thanks to Frank's JavaScript work)
Update audio design tool documentation
Speed up ILI9341_t3 and add setClock (Larry Bank)
USBHost_t36 add Keyboard attachRawPress & attachRawRelease (David "plugz")
Fix DmxSimple on Teensy 4.0 (Adam Demuri)
add pgmspace.h (not avr folder) compatability for Teensy 4.0
minor updates to SD and Wire examples

mjs513
06-16-2020, 02:21 PM
Ok - that was fast. :)

Just installed Arduino 1.8.13 and updated it with the latest TD, 1.53beta1. Install was free of issues on a Win10x64 desktop. Loaded up a USBHost_t36 joystick BT sketch and connected with no issues to a PS4 Controller using a T4.1.

Haven't had the issue with the IDE not loading for a few days since I first posted about the issue. Looks like the fix might have worked.

KurtE
06-16-2020, 03:49 PM
Ok I installed the latest and so far so good.

And I am glad they finally have a hierarchical board type menu. Sure is a lot nicer than scrolling through tons of different board types like all of the different ESP32 or ESP...

@Paul - My guess is you are wanting this to be a fast release cycle for the Teensyduino? Else there are current pending PRs that could be nice.

defragster
06-16-2020, 07:40 PM
Windows 10 ... Downloaded IDE 1.8.13 ... { new ISP downloads MUCH faster than it unzips! :) } and TD 1.53

Installs both worked: 1.8.13 and 1.53b1 - didn't open IDE - ran from SublimeText using Command Line execution w/TyCommander

Compile DualUSB both for T_4.0 and also T_4.1 { running now under new GDB with ftrias/TeensyDebug }

Seems to be working properly - just like prior IDE1.8.12 and TD1.52

PaulStoffregen
06-17-2020, 01:53 AM
My guess is you are wanting this to be a fast release cycle for the Teensyduino? Else there are current pending PRs that could be nice.

Let's merge stuff this week, with a cut-off for new features by Sunday morning. Then let's try to do as much testing with commits only to fix bugs next week, with a goal to wrap up 1.53 by June 28.

JasonH
06-17-2020, 03:23 AM
I tried the Catalina build and torture tested it on all of my displays, and it didn't crash once!

Marcus_DE
06-17-2020, 09:31 AM
I've just run a quick test with my ILI9341 display (ILI9341_t3 library) and noticed an issue where the background is not blanked properly in all cases (e.g. with the GUIslice driver text created with gslc_ElemSetTxtStr is just overwritten with transparent background instead of black background). An older version of the ILI9341_t3 library from February 2020 does not have this issue.

defragster
06-17-2020, 10:11 AM
I've just run a quick test with my ILI9341 display (ILI9341_t3 library) and noticed an issue where the background is not blanked properly in all cases (e.g. with the GUIslice driver text created with gslc_ElemSetTxtStr is just overwritten with transparent background instead of black background). An older version of the ILI9341_t3 library from February 2020 does not have this issue.

Good catch ... Can you post a simple example that shows the issue? An optimization change was made and likely to get pulled if not easily observed to be correctable.

Marcus_DE
06-17-2020, 11:12 AM
The simplest way to reproduce the error is to blank with fillRect, e.g.:
#include <SPI.h>
#include <ILI9341_t3.h>
#include <font_Arial.h>

#define TFT_CS 10 //TFT CS
#define TFT_DC 9 //TFT D/C

ILI9341_t3 tft = ILI9341_t3(TFT_CS, TFT_DC);


void setup() {
tft.begin();
tft.fillScreen(ILI9341_BLACK);
tft.setRotation(1);
tft.setTextWrap(false);
tft.setFont(Arial_14);
tft.setTextColor(ILI9341_YELLOW);
}

void loop() {
static uint16_t s=0;
tft.fillRect(1, 1, 100, 100, ILI9341_BLACK);
tft.setCursor(1, 1);
tft.print(s);
s++;
delay(100);
}

luni
06-17-2020, 11:39 AM
Let's merge stuff this week, with a cut-off for new features by Sunday morning. Then let's try to do as much testing with commits only to fix bugs next week, with a goal to wrap up 1.53 by June 28.

Any chance to get the STL stuff fixed in this version?

T3.x -> boards.txt
T4.x -> linker script

https://forum.pjrc.com/threads/59767-Starting-1-52-Beta-Soon?p=230936&viewfull=1#post230936

mjs513
06-17-2020, 11:54 AM
@Marcus_DE - @defragster

I can confirm the issue. I also downloaded the version prior to the latest PR as a double check and that worked without issue. With my display config i did change the example to:

#include <SPI.h>
#include <ILI9341_t3.h>
#include <font_Arial.h>

#define TFT_CS 10 //TFT CS
#define TFT_DC 9 //TFT D/C

ILI9341_t3 tft = ILI9341_t3(TFT_CS, TFT_DC,8);


void setup() {
tft.begin();
tft.fillScreen(ILI9341_BLACK);
tft.setRotation(1);
tft.setTextWrap(false);
tft.setFont(Arial_14);
tft.setTextColor(ILI9341_YELLOW);
}

uint16_t s=0;
void loop() {
tft.fillRect(1, 1, 100, 100, ILI9341_BLACK);
tft.setCursor(10, 10);
tft.print(s);
s++;
delay(100);
}

Did verify that if you use the default font the issue does not appear.

mjs513
06-17-2020, 11:55 AM
Any chance to get the STL stuff fixed in this version?

T3.x -> boards.txt
T4.x -> linker script

https://forum.pjrc.com/threads/59767-Starting-1-52-Beta-Soon?p=230936&viewfull=1#post230936

If possible it would be great - always seem to be running into this a few times a year on the forum. I have had to include it in a few of my sketches as well.

PaulStoffregen
06-17-2020, 12:20 PM
I merged a few contributions which speed up ILI9341_t3. Looks like one of them broke fillRect(). I was able to reproduce the problem here.

But the latest on github appears to be working. Please give the github version a try and let me know if it still has issues. Or give 1.53-beta2 a try in a few days....

mjs513
06-17-2020, 12:25 PM
I merged a few contributions which speed up ILI9341_t3. Looks like one of them broke fillRect(). I was able to reproduce the problem here.

But the latest on github appears to be working. Please give the github version a try and let me know if it still has issues. Or give 1.53-beta2 a try in a few days....

Just downloaded the latest version from GITHUB: https://github.com/PaulStoffregen/ILI9341_t3 and reloaded the test sketch. Looks like there is no problem with Github version as you stated.

PaulStoffregen
06-17-2020, 01:17 PM
Any chance to get the STL stuff fixed in this version?
T3.x -> boards.txt
T4.x -> linker script


Yes. I've updated Teensy 3.x in boards.txt which will be in beta2, and committed this for Teensy 4.x.

https://github.com/PaulStoffregen/cores/commit/2f8568659cb7553ca12e5ca2d0358df9d30427a6

luni
06-17-2020, 01:39 PM
Great, I'll give it a try this evening

KurtE
06-17-2020, 03:45 PM
@Paul,

Not sure which of the current Pull Requests you would like to pull in to this release. Some of my current pending ones include:

https://github.com/PaulStoffregen/cores/pull/477 - Adds in support to T4 for serialEventUSB1 and serialEventUSB2... When the multi Serial stuff was added these events were added to T3.x, and defined sort of in T4.x, but never implemented in T4...

https://github.com/PaulStoffregen/cores/pull/425 - T4 - Interval Timer, it checks to see if the user changed the clock configurations for the timers and then configures the IntervalTimer based off of that. This allows sketches to create IntervalTimers that are much faster than they can currently do with the T4.x

https://github.com/PaulStoffregen/cores/pull/426 - T4.x - HardwareSerial RX looks into FIFO. This was setup to have the methods, like available() and read(), when necessary look into the RX hardware FIFO to see if there are any pending characters. Otherwise the current code in sketches will only see the last character received after a full once character delay has happened.

----

Things I have not created a PR for, is the ability to have T4.1 sketch run that uses the bottom pins for something other than RAM, Flash, and not have the startup code touch those IO pins. I have mentioned two different ways.
a) Weak variable that sketch can overwrite.
b) Change when the external memory startup code to after early startup hook and add ability for hook to change something to have that startup not called.
Not sure if you like either approach?

mjs513
06-17-2020, 03:51 PM
@KurtE
Know we have been making changes to the RA8875, ST7735/ST7789, ILI9488 libraries as well that may need to checked for latest changes.

KurtE
06-17-2020, 03:59 PM
@Paul,

Another question as with all such releases, what about libraries, that are available from other Sources.

Example Adafruit libraries, which we may be very much out of date on:

Adafruit_GFX, I think we have version 1.5.6 and their current one is 1.8.4
Adafruit_RA8875 Us/1.0.3 - Current 1.4.0
...

Other libraries: Although hopefully owners will let you know if their current stuff should be picked up, like:
ADC

mjs513
06-17-2020, 05:33 PM
@KurtE
Maybe we should check that the new Adafruit_GFX library doesn't cause problems with existing display libs? Example for the font4 test in the ILI9341_t3n library:

In file included from F:\arduino-1.8.13\hardware\teensy\avr\libraries\Adafruit_GFX\ Adafruit_MonoOLED.cpp:20:0:
Multiple libraries were found for "font_Arial.h"
F:\arduino-1.8.13\hardware\teensy\avr\libraries\Adafruit_GFX\ Adafruit_MonoOLED.h:30:32: fatal error: Adafruit_I2CDevice.h: No such file or directory
Used: D:\Users\Merli\Documents\Arduino\libraries\ILI9341 _fonts-master
compilation terminated. It also looks like it also needs Adafruit Bus IO Library so looks like some trouble shooting is needed.

KurtE
06-17-2020, 06:55 PM
Hi @mjs513 - Which example did you hit this with?
Note: It looks like I have the Adafruit Bus IO library installed on my machine.

If my recollection is correct the last time the Arduino Library Manager told me my GFX was out of date (updateable) it then probably had some message saying, that it requires some other libraries and would I like to update or install those as well...

It is an interesting issue. Probably one of the real questions should be, can we (or should we) remove all of these libraries from being installed by Teensyduino?
Currently installed by Teensyduino, that require GFX...

Adafruit_RA8875
TFT_ILI9163C (Sumotoy - so probably no one maintaining it)

Artnet - has an example that uses it
Some of our displays have examples that include it(ili9341_t3, ILI9488_t3, ST7735_t3

Again it would be great if we could

mjs513
06-17-2020, 09:59 PM
@KurtE
Sorry for the delay in getting back - was working on other home projects :)

Anyway the example I tested was ILI_Ada_FontTest4.ino but probably any sketch that does a #include <Adafruit_GFX.h> would have the same issue.


It is an interesting issue. Probably one of the real questions should be, can we (or should we) remove all of these libraries from being installed by Teensyduino?
Currently installed by Teensyduino, that require GFX... Of two minds on this. If we don't include it then it can be installed via Arduino Library Manager which would automatically give you the Bus_IO library (probably). I we do then would have to include the Bus_IO library, The former does have the advantage that we wouldn't have to worry about updating those libraries when Adafruit updates them.


Some of our displays have examples that include it(ili9341_t3, ILI9488_t3, ST7735_t3 Probably they all do since we added the option to use Adafruit fonts.

KurtE
06-17-2020, 11:39 PM
@mjs513 - Not a problem, was also busy with out home projects...

Interesting thing is when I now compile the ILI_Ada_FontTest4 for some reason it is now using the Teensyduino installed one instead of the one in my libraries folder.


C:\\arduino-1.8.13\\hardware\\teensy/../tools/teensy_post_compile" -file=ILI_Ada_FontTest4.ino "-path=C:\\Users\\kurte\\AppData\\Local\\Temp\\ardui no_build_571476" "-tools=C:\\arduino-1.8.13\\hardware\\teensy/../tools/" -board=TEENSY41
Multiple libraries were found for "Adafruit_GFX.h"
Used: C:\arduino-1.8.13\hardware\teensy\avr\libraries\Adafruit_GFX
Not used: C:\Users\kurte\Documents\Arduino\libraries\Adafrui t_GFX_Library


Wonder why...

@Paul - I also put in PR for SPI, to put in a quick and dirty implemention for SPI.end() for T4.x
https://github.com/PaulStoffregen/SPI/pull/59

I turned off the MEN in the register and I set the three IO pins to INPUT_DISABLE. This was to hopefully help resolve some issues with snooze and SPI

alrj
06-18-2020, 04:06 PM
Hello, what are the minor updates to SD and Wire examples? will the SD changes help with playing audio from an SD?

KurtE
06-18-2020, 04:15 PM
Hello, what are the minor updates to SD and Wire examples? will the SD changes help with playing audio from an SD?

Sometimes the simplest way to answer this is to simply look up at github for the library you are interested in, especially if they come directly from Paul's github..

Example Wire: only one update recently and that was to update the I2C scanner sketch to show: Si7210 devices

And SD, looks like several examples had comment updated to add T4.1, like: // Teensy 3.5 & 3.6 & 4.1 on-board: BUILTIN_SDCARD
(Although I am surprised it does not include T4 as well).

alrj
06-18-2020, 04:29 PM
Thanks KurtE, sound advice. Looks like its just the examples that have been updated as you say.

tsenecal
06-18-2020, 05:41 PM
Here is a first beta test for Teensyduino 1.53.


Linux 64 bit:
https://www.pjrc.com/teensy/td_153-beta1/TeensyduinoInstall.linux64



what kind of file is this? when downloaded, ubuntu has no idea what to do with "TeensyduinoInstall.linux64".... what do i need to do to "install" this beta?

mjs513
06-18-2020, 06:34 PM
what kind of file is this? when downloaded, ubuntu has no idea what to do with "TeensyduinoInstall.linux64".... what do i need to do to "install" this beta?

Don't know much about linux installs but check this on installing on Linux machines: https://www.pjrc.com/teensy/td_download.html#linux_issues

KurtE
06-18-2020, 06:41 PM
what kind of file is this? when downloaded, ubuntu has no idea what to do with "TeensyduinoInstall.linux64".... what do i need to do to "install" this beta?
@Paul - Maybe you should add something to the Teensyduino download and Install page: https://www.pjrc.com/teensy/td_download.html

But I am assuming it is like all other linux releases. That once you download it, you need to mark the file as executable and then run it.

I usually do it one of two ways.
Command line: chmod +x TeensyduinoInstall.linux64

and then run it. Or I bring up a folders window on the download directory and then I do a properties on the file, and go to the permissions page, and again depending on which linux you are running,

Like my secondary test machine has Ubunutu 18.04, so on this one you go to permissions tab and click the Allow executing file as program.

Then double click on it.

EDIT: @mjs513 beat me to this, but I think maybe comments about file attributes should be mentioned probably in same location as talking about udev rules.

Which is another hint, if this is the first time you have run Teensyduino on a Linux machine, you need to download and install the udev rules.

tsenecal
06-18-2020, 07:36 PM
@Paul - Maybe you should add something to the Teensyduino download and Install page: https://www.pjrc.com/teensy/td_download.html

But I am assuming it is like all other linux releases. That once you download it, you need to mark the file as executable and then run it.

Command line: chmod +x TeensyduinoInstall.linux64

Which is another hint, if this is the first time you have run Teensyduino on a Linux machine, you need to download and install the udev rules.

thanks everyone for the help... got it all sorted.

Manu
06-18-2020, 07:43 PM
Hello,

I've just tried arduino 1.8.13, teensyduino 1.53b1 and TeensytimerTool v1.0.9. From an old project that work well with 1.8.12/1.5.2, with the new environment I have an error when I try to compile =>



D:\Mes documents\Arduino\libraries\TeensyTimerTool\src\Te ensy\TCK\TCK.cpp: In function 'void yield()':
D:\Mes documents\Arduino\libraries\TeensyTimerTool\src\Te ensy\TCK\TCK.cpp:72:67: error: 'processSerialEvents' is not a member of 'HardwareSerial'
if (HardwareSerial::serial_event_handlers_active) HardwareSerial::processSerialEvents();


This is with Teensy 4.0 board.

When using Teensy 3.2 all is OK.

Thank you,
Manu

Silverlock
06-18-2020, 07:47 PM
Using 1.53b1 with Raspbian Stretch and Arduino 1.8.13; no problems so far.

PaulStoffregen
06-18-2020, 08:14 PM
@KurtE
Know we have been making changes to the RA8875, ST7735/ST7789, ILI9488 libraries as well that may need to checked for latest changes.

I've updated ILI9488 to the latest. Looks like no changes or pull requests on ST7735_t3 since 1.52.

RA8875 has many branches. I don't know which we should be including with Teensyduino. Looks like we're using "0.70" right now, which hasn't changed since 1.52.

mjs513
06-18-2020, 08:18 PM
I've updated ILI9488 to the latest. Looks like no changes or pull requests on ST7735_t3 since 1.52.

RA8875 has many branches. I don't know which we should be including with Teensyduino. Looks like we're using "0.70" right now, which hasn't changed since 1.52.

Cool on the display updates. The RA8875 "0.70" is Sumotoy's base lib for the RA8875. The branch that we have been maintaining is the RA8875_t4: https://github.com/mjs513/RA8875/tree/RA8875_t4.

PaulStoffregen
06-18-2020, 08:24 PM
Probably one of the real questions should be, can we (or should we) remove all of these libraries from being installed by Teensyduino?

Yes, I want to remove Adafruit_GFX and all of Adafruit's libraries which require it. Those are all available from Arduino's Library Manager for anyone who needs them. We really shouldn't be bundling copies of Adafruit's libraries which only become out of date.

Is there any compelling reason to keep Adafruit_RA8875 when we have the faster RA8875 library? It's been years, but my recollection is early versions of Adafruit_RA8875 only worked on slow AVR boards with certain font settings, which is why we are bundling a Teensy specific copy...

PaulStoffregen
06-18-2020, 08:33 PM
The branch that we have been maintaining is the RA8875_t4

Ah, that explains a lot. ;)

I've switched to that branch, so 1.52-beta2 will have it.

I also dug out my RA8875 display. Going to run some tests and make sure Adafruit's library (their current copy) works. If so, I'm going to remove Adafruit_RA8875.

mjs513
06-18-2020, 08:33 PM
Yes, I want to remove Adafruit_GFX and all of Adafruit's libraries which require it. Those are all available from Arduino's Library Manager for anyone who needs them. We really shouldn't be bundling copies of Adafruit's libraries which only become out of date.

Is there any compelling reason to keep Adafruit_RA8875 when we have the faster RA8875 library? It's been years, but my recollection is early versions of Adafruit_RA8875 only worked on slow AVR boards with certain font settings, which is why we are bundling a Teensy specific copy...

Know this was Kurt’s question but don’t think we need it now that we our version. Again same rationale it can be downloaded if some one what’s i

KurtE
06-18-2020, 08:52 PM
I agree, also if issue with adafruit version we should fix and issue PR. They have been good at picking them up. Actually they would like it if we added some of our speed up code back to gfx/spitft code. Also should compare their canvas stuff versus our framebuffer stuff, but that is longer term.

Question also if we have our own version of ra8875 library,does it make sense to also include ra8876 codebase? Probably not for this release.

PaulStoffregen
06-18-2020, 10:00 PM
I'm also leaning towards removing the ST7565 library. Those displays are obsolete and seem to be long gone from the market.

Maybe OpenGLCD can go too?

mjs513
06-18-2020, 10:52 PM
@KurtE
Think the RA8876 library needs some clean up before adding it Teensyduino, so i agree it may be too soon for 1.53 release.

@PaulStoffregen
Just did a little search for ST7565 they are still out there, Adafruit and EastRising but didn't see anything on Amazon. Think 5years ago was the last time that Adafruit made a change to their library. As for OpenGLCD, never used it, last update to the library was in 2016 just for reference. I would say remove it from Teensyduino as long as theres no uniqueness for Teensies.

Does this make sense?

PaulStoffregen
06-18-2020, 11:08 PM
Could you give me commit access to RA8875? Or I could send some pull requests - just minor cleanup like compiler warnings and comments in examples...

mjs513
06-18-2020, 11:14 PM
Just sent the invitation to the RA8875 lib

KurtE
06-19-2020, 12:06 AM
I'm also leaning towards removing the ST7565 library. Those displays are obsolete and seem to be long gone from the market.

Maybe OpenGLCD can go too?

Likewise I don't think I have ever tried either of them.

There are times like this, it would be good to have a setup using the library manager, such that if anyone actually needs these libraries, they can simply download it independent of Teensyduino.

But my guess is it would not be bad to go ahead and prune some of these out of the basic install.

Manu
06-19-2020, 05:38 AM
Hello,

It's maybe the moment to update fastled. The Teensyduino version is 3.3.1 while the current release is 3.3.3
Also, including TeensyTimerTool from Luni could be a good choice since it's a really Teensy library.

Thank you,
Manu

luni
06-19-2020, 05:47 AM
There are times like this, it would be good to have a setup using the library manager
Actually it is quite simple to add libraries to the library manager: https://github.com/arduino/Arduino/wiki/Library-Manager-FAQ#how-can-i-add-my-library-to-library-manager
I have TeensyStep and the TeensyTimerTool listed there.

luni
06-19-2020, 07:14 AM
Yes. I've updated Teensy 3.x in boards.txt which will be in beta2, and committed this for Teensy 4.x.

https://github.com/PaulStoffregen/cores/commit/2f8568659cb7553ca12e5ca2d0358df9d30427a6

I tested std::string, some containers (std::map, std::vector) and std::function on T4.0 and T4.1. Everything works out of the box now.



#include <map>
#include <vector>
#include <string>
#include <functional>

using namespace std;

void setup()
{
while (!Serial);

Serial.println("Testing std::vector ------------");

vector<string> myVector;
myVector.push_back("First string");
myVector.push_back("Last string");
myVector.insert(myVector.begin() + 1, "Second string");

for (string s : myVector)
{
Serial.println(s.c_str());
}


Serial.println("\nTesting std::map--------------");

std::map<string, unsigned> myMap; // use fully qualified name otherwise it clashes with arduino map function

myMap["zero"] = 0;
myMap["answer"] = 42;

Serial.println(myMap["zero"]);
Serial.println(myMap["answer"]);


Serial.println("\nTesting std::function----------");

function<unsigned(string)> myFunction;

myFunction = testFunction;

string s = "some string";
Serial.printf("The string '%s' has %u characters\n", s.c_str(), myFunction(s));

}

void loop()
{
}

unsigned testFunction(string s)
{
return s.length();
}


Output:



Testing std::vector ------------
First string
Second string
Last string

Testing std::map--------------
0
42

Testing std::function----------
The string 'some string' has 11 characters

PaulStoffregen
06-19-2020, 04:17 PM
I updated MIDI and FastLED, and deleted some of the older libs like OpenGLCD.

I'm slowly going through the many remaining compiler errors and warnings in various examples....

ecurtz
06-19-2020, 05:31 PM
Is a potential change to an abstract base File still on the table for 1.53 as mentioned here? https://forum.pjrc.com/threads/60885-Removing-audio-tool-references-to-lt-SD-h-gt-and-lt-SerialFlash-h-gt?p=239345&viewfull=1#post239345
How do you deal with larger features like that? I'd be willing to help a bit if I can, but I don't see any branches in any of the GitHub repos and I'm guessing that's something you'd be doing the initial changes for to keep it all consistent?

Arrow_Raider
06-20-2020, 04:14 PM
what kind of file is this? when downloaded, ubuntu has no idea what to do with "TeensyduinoInstall.linux64".... what do i need to do to "install" this beta?

I saw you got it sorted out, but here is a tip for your question that will help in the future: Most Linux distributions include a command called file. You can use it to see what kind of file something is. (You would type what is bold below)

~/Downloads $ file ./TeensyduinoInstall.linux64
./TeensyduinoInstall.linux64: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, stripped

So this indicates it is an executable. The rest of the output is technical: ELF is the kind of executable that Linux natively uses. Statically linked means it has all of its library dependencies built-in, and stripped means the debugging information (symbols) has been removed. You can do this with any file to find out what it is if you can't tell by the extension. Hope this helps!