Arduino 2 IDE coexistance with 1?

clinker8

Well-known member
Really not sure where to post this. It seems this might be the best subforum, but feel free to move it to a better location if appropriate. Been on 1.8.19 for quite a while now. Thinking of upgrading the IDE to the latest stable release.

Does the app image work for Ubuntu? Reason I'm asking is the app image doesn't work for FreeCAD and I had to compile the source to be able to use FreeCAD.

If the app image doesn't work, what the heck does one do with the zip download? There's no readme for installation! The Arduino instructions just say use the app image...

Arduino is using some fav of the year for their software development, and their build from source instructions assume you were born knowing what to do. I know nothing about their build environment, and don't want to spend 3 months figuring it all out. This is quite the contrast from a simple makefile and a list of dependencies.

Does IDE 2 alter any 1.8.19 settings? (No matter how it is installed in Linux?) I have a working electronic lead screw project running on a Teensy 4.1 there and I don't want to "screw it up". There's a second unit in the field that I need to support, so blowing up 1.8.19 is not what I want to do.
 
Well, I think it won't screw things up, too bad. I ran the app image, but it knows nothing about Teensy under boards.
My OS is Pop!OS 22.04, which is an Ubuntu derivative.

Do I need to supply a url for Teensy related boards under preferences? If so, what is it?
Or do I need to install a new Teensyduino? If so, where is the installation directory? I have no idea!

At least the app came up fast. Made a copy of my ELS project, just in case...

Any help would be greatly appreciated! Right now, under IDE 2.0.3 I'm dead in the water, because I can't access Teensy under Select Boards.
 
Yes you can have IDE2 and IDE1 both installed on same machine.

Appimage on Ubuntu: Currently has a minor issue that a shared library is not installed by default on Ubuntu.
fixed by: sudo apt install libfuse2

Covered several places including: https://itsfoss.com/cant-run-appimage-ubuntu/
Arduino is working on update to their appimages to be more contained. Not sure if yet in daily builds or not.

;) make files are easy? oops I did not update to say filex now depends on filez and it did not rebuild correctly....

Build from Source? - Are you talking about building Arduino? or building your sketch? Yes their build setup to build the actual IDE is pretty complicated.

Building your own sketch, depending on if your files are all in your sketch folder. You click on verify or upload...

IDE2 update 1.8.19 settings? Unclear what you are asking? Note: Teensyduino installed under 1.8.19 does the installs of all of the Teensy stuff
under whatever IDE you are installing over, as Paul needed to update some the underlying things of the IDE.

With 2.x - Teensy install is like most any other board type. And it's files are installed in the standard Arduino boards location. In the Arduino15 location.
So it does not use any of the same files. Obviously if you edit the same sketch using the two different IDEs, it will stay changed for both of them.
 
Yes you can have IDE2 and IDE1 both installed on same machine.

Appimage on Ubuntu: Currently has a minor issue that a shared library is not installed by default on Ubuntu.
fixed by: sudo apt install libfuse2

Covered several places including: https://itsfoss.com/cant-run-appimage-ubuntu/
Arduino is working on update to their appimages to be more contained. Not sure if yet in daily builds or not.

;) make files are easy? oops I did not update to say filex now depends on filez and it did not rebuild correctly....

Build from Source? - Are you talking about building Arduino? or building your sketch? Yes their build setup to build the actual IDE is pretty complicated.

Building your own sketch, depending on if your files are all in your sketch folder. You click on verify or upload...

IDE2 update 1.8.19 settings? Unclear what you are asking? Note: Teensyduino installed under 1.8.19 does the installs of all of the Teensy stuff
under whatever IDE you are installing over, as Paul needed to update some the underlying things of the IDE.

With 2.x - Teensy install is like most any other board type. And it's files are installed in the standard Arduino boards location. In the Arduino15 location.
So it does not use any of the same files. Obviously if you edit the same sketch using the two different IDEs, it will stay changed for both of them.

I didn't say trivial, but a makefile is easy. Yes, I had to buld FreeCAD from source because their app image didn't work. I just ran make. Done - well it took awhile. But at least it ran!

The app image seems to run, sort of. Compiling my It can't find font_DroidSansMono.h any more. @KurtE, do you know where that might be found? Used to have it in IDE 1.
 
Hmm, is that font bundled with ILI9341_t3 ? It looks like it. In IDE 1, it found the font. IDE 2 can't.
 
It seems it is a lot more than that. I have dozens of errors in IDE2, whereas I had none in IDE 1.8.19. As I shipped a unit, I am alarmed at this, as I have a customer to support. At the moment, I am in a pickle, because I cannot create a working image!

TeensyTimerTool has many errors. EncoderTool has many errors. ILI9341_t3n, ILI9341_fonts are generating errors and warnings. It seems ILI9341_fonts brings in ILI9341_t3, which generates conflicts with ILI9341_t3n.

IDE2 seems to be a lot stricter. It also seems it wrote all over my existing libraries. I have no idea what it did, but it sure broke my working code. What a mess.
 
Maybe this advice will come too late, but IDE 1.x has a feature called "portable mode". You create a folder named "portable", which causes that copy of the IDE to be completely self contained. The Teensyduino installer automatically detects this and installs as appropriate for that mode.

Might be worthwhile to collect up all the libraries you need into a "portable" copy of IDE 1.8.19.

Sadly, they didn't implement this in IDE 2.0.x.
 
Fixed the TeensyTimerTool errors by reverting to V1.0.0. It seems TTT>1.0.0 relies on Teensyduino 1.58beta or better. This is not shipped with IDE2.0.3.
EncoderTool errors fixed by updating to latest by cloning @luni s repo.

ILI9341_fonts is bringing in ILI9341_t3 which is conflicting with ILI9341_t3n. I was using features in ILI9341_t3n...
Code:
In file included from /home/bruce/Arduino/libraries/ILI9341_fonts-master/font_DroidSansMono.h:4:0,
                 from /home/bruce/Arduino/ELS_IDE2/touchdisplay.h:5,
                 from /home/bruce/Arduino/ELS_IDE2/ELS.h:16,
                 from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/.arduino15/packages/teensy/hardware/avr/1.57.2/libraries/ILI9341_t3/ILI9341_t3.h:176:0: warning: "ILI9341_SPICLOCK" redefined
 #define ILI9341_SPICLOCK 30000000
 ^
In file included from /home/bruce/Arduino/ELS_IDE2/touchdisplay.h:2:0,
                 from /home/bruce/Arduino/ELS_IDE2/ELS.h:16,
                 from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/ILI9341_t3n-master/src/ILI9341_t3n.h:253:0: note: this is the location of the previous definition
 #define ILI9341_SPICLOCK 30000000u
 ^
In file included from /home/bruce/Arduino/libraries/ILI9341_fonts-master/font_DroidSansMono.h:4:0,
                 from /home/bruce/Arduino/ELS_IDE2/touchdisplay.h:5,
                 from /home/bruce/Arduino/ELS_IDE2/ELS.h:16,
                 from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/.arduino15/packages/teensy/hardware/avr/1.57.2/libraries/ILI9341_t3/ILI9341_t3.h:177:0: warning: "ILI9341_SPICLOCK_READ" redefined
 #define ILI9341_SPICLOCK_READ 6500000
 ^
In file included from /home/bruce/Arduino/ELS_IDE2/touchdisplay.h:2:0,
                 from /home/bruce/Arduino/ELS_IDE2/ELS.h:16,
                 from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/ILI9341_t3n-master/src/ILI9341_t3n.h:254:0: note: this is the location of the previous definition
 #define ILI9341_SPICLOCK_READ 2000000
 ^
In file included from /home/bruce/Arduino/libraries/ILI9341_fonts-master/font_DroidSansMono.h:4:0,
                 from /home/bruce/Arduino/ELS_IDE2/touchdisplay.h:5,
                 from /home/bruce/Arduino/ELS_IDE2/ELS.h:16,
                 from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/.arduino15/packages/teensy/hardware/avr/1.57.2/libraries/ILI9341_t3/ILI9341_t3.h:170:3: error: conflicting declaration 'typedef struct ILI9341_t3_font_t ILI9341_t3_font_t'
 } ILI9341_t3_font_t;
   ^
In file included from /home/bruce/Arduino/libraries/ILI9341_t3n-master/src/ILI9341_t3n.h:108:0,
                 from /home/bruce/Arduino/ELS_IDE2/touchdisplay.h:2,
                 from /home/bruce/Arduino/ELS_IDE2/ELS.h:16,
                 from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/ILI9341_t3n-master/src/ILI9341_fonts.h:25:3: note: previous declaration as 'typedef struct ILI9341_t3_font_t ILI9341_t3_font_t'
 } ILI9341_t3_font_t;
   ^
In file included from /home/bruce/Arduino/ELS_IDE2/touchdisplay.h:2:0,
                 from /home/bruce/Arduino/ELS_IDE2/ELS.h:16,
                 from /home/bruce/Arduino/ELS_IDE2/ELS_IDE2.ino:1:
/home/bruce/Arduino/libraries/ILI9341_t3n-master/src/ILI9341_t3n.h:1166:29: error: redefinition of 'class ILI9341_Button'
 #define Adafruit_GFX_Button ILI9341_Button
                             ^
/home/bruce/.arduino15/packages/teensy/hardware/avr/1.57.2/libraries/ILI9341_t3/ILI9341_t3.h:560:7: note: in expansion of macro 'Adafruit_GFX_Button'
 class Adafruit_GFX_Button {
       ^
/home/bruce/Arduino/libraries/ILI9341_t3n-master/src/ILI9341_t3n.h:1167:7: error: previous definition of 'class ILI9341_Button'
 class ILI9341_Button {
       ^
Slowly working through this, but it is ugly...
 
... Teensyduino 1.58beta or better. This is not shipped with IDE2.0.3.

1.58-beta3 is called "0.58.3" in IDE2's Boards Manager. Just click the drop-down list to select it and click "Install".

The betas are numbered this way to prevent IDE2 from prompting every running the latest stable version to upgrade to a beta version.
 
Maybe this advice will come too late, but IDE 1.x has a feature called "portable mode". You create a folder named "portable", which causes that copy of the IDE to be completely self contained. The Teensyduino installer automatically detects this and installs as appropriate for that mode.

Might be worthwhile to collect up all the libraries you need into a "portable" copy of IDE 1.8.19.

Sadly, they didn't implement this in IDE 2.0.x.

Fortunately, I have a complete working IDE 1.8.19 running on two different RPI4's. (32bit and 64bit) All my source code is on a private git server. I am not totally lost. It's more of a setback. Still, I'd like to be able to use the newer IDE on my main computer. RPI4's are slow, even with an SSD. I may attempt to create a portable mode. You can be sure that will be backed up and moved to another location. The old IDE is awful slow if you ssh into the RPI4, especially if the RPI4 is wireless.
 
Fixed the TeensyTimerTool errors by reverting to V1.0.0. It seems TTT>1.0.0 relies on Teensyduino 1.58beta or better. This is not shipped with IDE2.0.3.
EncoderTool errors fixed by updating to latest by cloning @luni s repo.

ILI9341_fonts is bringing in ILI9341_t3 which is conflicting with ILI9341_t3n. I was using features in ILI9341_t3n...

Slowly working through this, but it is ugly...

The version of ILI9341_font library from @mjs513 is setup to work with most all of our graphic libraries.

The problem is that they depend on the font definition, which is not local to this, but instead part of each of the libraries. @mjs513 version has checks with the has include stuff to make it workable.
 
The version of ILI9341_font library from @mjs513 is setup to work with most all of our graphic libraries.

The problem is that they depend on the font definition, which is not local to this, but instead part of each of the libraries. @mjs513 version has checks with the has include stuff to make it workable.

Did you try to say that I should uninstall Paul's and install mjs513's version, and it might work? Because, I didn't really quite understand you.

Edit: This helped a lot. It cleaned out all the t3/t3n errors
 
Last edited:
All that's left is compatibility between EncoderTool 3.1.0 and TeensyTimerTool 1.2.0 on Teensy 0.58.3 running on Arduino 2.0.3.
These are @luni s libraries.

I will work on cleaning up some of my warnings. Got to do my part...
 
Did you try to say that I should uninstall Paul's and install mjs513's version, and it might work? Because, I didn't really quite understand you.

Edit: This helped a lot. It cleaned out all the t3/t3n errors
Yes, the other positive side effect with Mike's version, is we converted it to an archive library.
The benifit is, with the official version, if you include it, all of the fonts will be loaded into your sketch.
With Mike's version, only those that have references to them will be included...
(Note I should double check, maybe the official version also put this in after...)
 
All my warnings, like iso C++, unused variables are fixed and all of ILI9341_t3n issues are resolved. Thanks to all for your help.

Only thing left generating issues are EncoderTool and TeensyTimerTool. The new compiler settings seem to be more severe. I am getting errors from those two libraries. The compiler put out 373 lines worth of errors... (Not 373 errors, but 373 lines of text.) Under IDE 1, just last week, there were 0 errors. Hoping luni can update his libraries soon.
 
Back
Top