Very small window after installation

I installed uecide-0.10.6 yesterday on my Windows 10 machine by using the zip file containing the JRE. After starting, the program is essentially unusable because of the small size (see attached screen shot). I used a magnifying glass and was able to set the default editor font 24 to 36 points and that worked, but the menu font was still tiny.

I'll assume there's an easy fix for this, but I'm not aware of it. Any suggestions appreciated.

History: I had problems similar to this years ago when this computer was new, as I run the display at the 3840x2160 resolution. In the Windows Settings for the Display, I use 255% for the 'Scale and layout' setting and this seems to have worked fine for all applications that I've installed in the intervening years.

Attachments: 

Comments

It is a known problem with

It is a known problem with Java applications in general.

There are options in the preferences for some of the themes to change the size of the theme fonts. I think the default theme has that option.

File->Preferences...

Then expand Theme and select JTattoo Options (select it - don't expand it). Then set the JTattoo Font Size to Giant. Not all of them support it, but some do. YMMV.

Another option is to set the sun.java2d.uiScale variable to a multiplier (something I just found). You can't do it directly in the Windows version alas, so you may want to take a look at debug.bat as a basis for making a new batch file for running UECIDE with the addition of -Dsun.java2d.uiScale=2 somewhere before the -jar flag.

I will have a look at the possibility of adding an option in preferences to set that value at startup. It may be possible.

Ok, I have added the option

Ok, I have added the option in preferences and it seems to work well. Integer multiples only (that's all it supports) between 1x and 4x can now be selected as your default. I'll release a new beta version now if you want to play with it.

I tried the Theme change, but

I tried the Theme change, but it made no practical difference. Since I installed uecide from the zip file, there's no debug.bat file present.

If you can post the text of the debug.bat file, I'll give it a try. Thanks!

I'll reboot into Windows 10

I'll reboot into Windows 10 and have a play with that version. Maybe it's because you're running it from within cygwin? Personally I much prefer WSL... Especially when version 2 becomes available and it's pretty much 100% Linux...

Actually it might be the case

Actually it might be the case that display scaling only works with Java 9 and upwards. The Windows version of UECIDE comes with Java 8 as the bundled version. You can try installing Java 9 or greater in Windows and using that to execute the uecide.jar file to see if it helps.

Yes, that's what it is.

Yes, that's what it is. Download Oracle JDK 11 reference implementation from here and extract it. I put it in the root of my C drive.

Then run, replacing your jar file path:

C:\Users\matt>c:\jdk-11\bin\java -jar c:\Users\matt\Desktop\uecide-0.11.0-beta-2\lib\uecide.jar

If you don't have Java installed in Windows you could just replace the java folder in the UECIDE zip file with the jdk-11 folder (rename it to java) and it should work. But if you have a native Windows installation of Java it will pick that over the local copy.

Matt: thanks for all the

Matt: thanks for all the effort. I downloaded the jdk-11 and unzipped it, but have run into strange permission problems, as I'm unable to do very simple tasks from the command line in the uecide directory, such as a command like 'ls >a', even after giving full control to myself and administrators (and I'm an administrator on my PC). My son said he might stop by tomorrow afternoon, so I'll ask him to take a look at things. I've invested enough time into this at the moment and can't experiment with it further.

I need to get around to

I need to get around to making jdk 11 the default bundled version. That's going to take some testing though.

I do have a crazy idea to rewrite UECIDE completely from scratch in C++ using Qt, but that would take so much work... It would be worth it to be able to drop Java though... Maybe next year...

Ok, I have upgraded the "full

Ok, I have upgraded the "full" zip file on 0.11.0-beta2 to OpenJDK 11. As a resault it is now 200MB ... !

But I have also tweaked the configuration so it uses the bundled JDK by default instead of the system installed JRE - so this version should just be a download-extract-click to get it working. It's only the ZIP file I have updated at the moment, so let me know how you get on with it.

OK, I downloaded the 200 MB

OK, I downloaded the 200 MB package and got it unzipped on my permissions-problematic RAM drive. I started uecide and the magnification setting of 4 was too large, so I settled on 3 and changed the font back to a sane 11 point rather than the 24 point I had tried before.

My God, this thing is a work of art. I like how you download the tools and get all the useless crud out of the way (and your aggressive caching philosophy is what attracted me in the first place). It worked beautifully up to the point where I clicked on the button to compile and download to the Arduino Mega -- then the whole uecide app exits with no warning. This has happens the three consecutive times I tried it. I'm going to reboot my computer and see if it still does it.

I'll report back. Let's get this thing debugged, as I would really like to try using this tool.

The reboot didn't help; the

The reboot didn't help; the application still exits on the compile/upload command. I tried to get a hint of what's wrong by running the following command from the cygwin bash command line:

uecide.exe ..>~/uecide_log 2>&1 &

Here's what was in the log file:

/cygdrive/d/uecide-0.11.0-beta-2 --> cat /home/Don/uecide_log WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.uecide.Base (file:/D:/uecide-0.11.0-beta-2/lib/uecide.jar) to field java.lang.ClassLoader.scl WARNING: Please consider reporting this to the maintainers of org.uecide.Base WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release 0 packages can be upgraded. java.lang.NullPointerException at org.uecide.Editor.openNewTab(Editor.java:2547) at org.uecide.Editor.openOrSelectFile(Editor.java:2501) at org.uecide.Editor.(Editor.java:666) at org.uecide.Base.createNewEditor(Base.java:1435) at org.uecide.Base.doOpenThings(Base.java:1028) at org.uecide.Base.(Base.java:834) at org.uecide.Base.main(Base.java:186)

Hmmm... This is something to

Hmmm... This is something to do with Java 11 by the looks of things. It works on 8, but crashes on 11. It's related to the serial system jSSC. An Access Violation exception occurs in jSSC-2.8_x86_64.dll. Other people seem to be suffering the same problem in other software, so it's not UECIDE's fault, but jSSC's.

I'm going to need to look around for a replacement for jSSC really.

I'm going to have a try with Java 9 to see if that works or not...

Ok, that wasn't as painful as

Ok, that wasn't as painful as I first thought it was going to be. Thank god I abstracted all the serial code through my own communication device classes.

I am just uploading version 0.11.0-beta-3 which now uses JSerialComm. There is likely to be bugs - but I did successfully up load to my Mega from Windows with it, with the display zoomed to 2x.

Let me know how it goes.

There is one thing that I have noticed with JSerialComm, and that's it taking a long time to open a serial port (a couple of seconds). I may have to delve into the source code of JSerialComm to see why that is. It's no biggie though...

I downloaded uecide-0.11.0

I downloaded uecide-0.11.0-beta-3-windows-full.zip and unzipped it. When I ran it, the splash screen appeared and the app seems to have crashed before that screen was finished (see attached bitmap).

I don't have any more time at the moment to mess around with this, as there are other pressing tasks. When things look stable, please feel free to email me and I'll take a look at things again. I'd love to be able to use this beautiful tool you've implemented.

Attachments: 

It could be that previous

It could be that previous crashes have killed your preferences file. Try uecide --reset-preferences

You could also use uecide-cli instead of uecide for a version that doesn't detach from the terminal. Then you can more reliably use --verbose and --exceptions to see what is going on.

Unfortunately if it's something that is only crashing for you and not for me (mine works perfectly) I can't progress with it and fix it without your help.

I tried your suggestion of

I tried your suggestion of resetting the preferences and it booted up again. Thanks! Here's the output to stdout:

/cygdrive/d/uecide-0.11.0-beta-3
--> uecide --reset-preferences &
[1] 917
/cygdrive/d/uecide-0.11.0-beta-3
--> WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.uecide.Base (file:/D:/uecide-0.11.0-beta-3/lib/uecide.jar) to field java.lang.ClassLoader.scl
WARNING: Please consider reporting this to the maintainers of org.uecide.Base
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
>>> All preferences reset to default! <<<
0 packages can be upgraded.
Warning: Nashorn engine is planned to be removed from a future JDK release
Warning: Nashorn engine is planned to be removed from a future JDK release
Warning: Nashorn engine is planned to be removed from a future JDK release
Warning: Nashorn engine is planned to be removed from a future JDK release

I think things are now working, as I was able to compile and upload a program to the Arduino board.

I noticed the startup of the serial monitor window is slow like you mentioned, but no big deal. I used the Preferences to change the font of the serial window, but it doesn't change, even after restarting uecide. I've attached a bitmap showing what it is like; it's usable, but I find the font hard to read with my old eyes.

I like that I can close the tabs and edit the files with an external editor; your app looks for changes and updates its displayed windows. Nice job. I also very much like how you save the settings of dialog widgets and don't make me have to remember to reset them myself. This is only done by authors who use their own code.

Overall, I think it's a beautiful application and I commend you for all the hundreds (thousands?) of hours of hard work and fiddling. It's far superior to the Arduino IDE which is embarrassingly lacking in maintenance, considering the popularity of the Arduino boards. I also commiserate with your underlying dissatisfaction with using Java, as a C++ app with Qt would likely be a nicer, slimmer tool. However, such a change will trade for other headaches, such as strange incompatibilities on different platforms because of compiler or OS subtleties. Alas, using a GUI toolkit is like marriage -- it can take a long time to find out those little things that drive you crazy, but by then your committed. :^)

Attachments: 

Yes, UECIDE is written first

Yes, UECIDE is written first and foremost for me to use daily. If other people fine it useful then that's great.

You're right that the serial terminal font doesn't change. No idea why that is - it should do. I'll look at that right now.

I have plans for a more flexible "serial debugger" environment that will replace the serial terminal one day. It will allow multiple concurrent serial connections to different devices, add timestamps to each incoming line, colour the lines from different devices differently, put different devices in different columns of the output, etc. All fancy things to help debug your system when you have multiple boards all talking to each other. I'll keep the old serial terminal hanging around though as well, probably. That's for another day though...

Cool. The fancier serial

Cool. The fancier serial ideas sound great.

One final question. I'd like to use uecide from a script to do my builds and uploads (from a makefile is fine). I'm unable to get the CLI version to work. Here's the contents of the script I'm using:

!/bin/sh

u=/cygdrive/d/uecide-0.11.0-beta-3/uecide-cli.exe $u --headless \ --board=arduino-mega2560 \ --verbose \ --force-local-build \ --upload \ --port=\\.\COM3 \ serialcmd.ino 2>&1 |grep -v WARNING

I can't get the command line version to upload to the board; if I start the GUI, then it compiles and uploads just fine. I've attached what I see sent to stdout.

I'm probably making a silly mistake. Any advice?

Attachments: 

Try putting in the full path

Try putting in the full path of the sketch folder. Not the .ino file, the folder.

u=/cygdrive/d/uecide-0.11.0-beta-3/uecide-cli.exe 
$u --headless \
   --board=arduino-mega2560 \
   --verbose \
   --force-local-build \
   --upload \
   --port=\\.\COM3 \
   /cygdrive/c/Users/Don/Documents/UECIDE/serialcmd

Or wherever the sketch is stored...

Also, your COM port may have to have the backslahes escaped in your script: \\\\.\\COM3

Pages