Arduino Nano-Every

beageedog's picture

Just looking into the IDE. Looks nice, but the Boards database doesn't contain the Arduino Nano "Every" 16mHz STM processor that I'm using. On the Arduino environment this is contained in the Mega update. Anyone know where I can find this and how to install?

David

Tags: 

Comments

It is not currently available

It is not currently available for UECIDE. I am gradually going through each core and the associated boards and rebuilding them to make the inclusion of new boards more automated. AVR is on the list to do (probably next) - I have been focussing on the ESP32 and ESP8266 mainly recently.

beageedog's picture

Thanks. I get it.

Thanks. I get it. Development moves at its own rate.

I guess I'm stuck with VSCode for a while. I liked the IDE Simplicity of use. I didn't want a career setting up and maintaining the environment. Drop a note here when it comes available please. I'll check back once in a while to see if it got updated.

Regards,

David

Alas I am only one man, but

Alas I am only one man, but this lockdown thing is giving me more time to do things with UECIDE, which is why the ESP32 and ESP8266 got overhauled. I'll make sure the AVR is next.

I have now overhauled the AVR

I have now overhauled the AVR boards and in the process added the megaAVR core and boards. Hopefully it all works, but I have no way of testing it. If you can have a play and see what happens and feed back to me any problems with it that would be good.

beageedog's picture

So couldn't sleep. But tried

So couldn't sleep. But tried the obvious.

Refreshed, got the Arduino Nano Every and set the com port.

Went for the obvious. BLINK.

Not what I expected..... Turned on verbose for you. It looks like installed libraries are not right? I'll play a bit with it tomorrow morning.

/Users/beageedog/Library/uecide/compilers/avr-gcc/bin/avr-g++ -c /var/folders/w7/2ndc0wts5xj1bz7rzs6ycs_h0000gn/T/build-c1a7b44e-2390-4da8-af38-bc9acb2df449/Blink_combined.cpp -o /var/folders/w7/2ndc0wts5xj1bz7rz s6ycs_h0000gn/T/build-c1a7b44e-2390-4da8-af38-bc9acb2df449/Blink_combined.cpp.o -mmcu=atmega4809 -g -std=gnu++11 -fpermissive -fno-exceptions -fno-threadsafe-statics -Wno-error=narrowing -fno-exceptions -ffunctio n-sections -fdata-sections -flto -g -Os -ffunction-sections -fdata-sections -MMD -flto -DF_CPU=16000000L -DARDUINO=10812 -DAVR_NANO_EVERY -DARDUINO_ARCH_AVR -mmcu=atmega4809 -DAVR_NANO_4809_328MODE -DMILLIS_USE_T IMERB3 -DNO_EXTERNAL_I2C_PULLUP -I/Users/beageedog/Library/uecide/cores/arduino-megaavr/arduino -I/Users/beageedog/Library/uecide/cores/arduino-megaavr/arduino/api -I/Users/beageedog/Library/uecide/boards/Arduino /arduino-nona4809 -I/var/folders/w7/2ndc0wts5xj1bz7rzs6ycs_h0000gn/T/build-c1a7b44e-2390-4da8-af38-bc9acb2df449 -I/Users/beageedog/Library/uecide/cores/arduino/examples/01.Basics/Blink -w
In file included from /Users/beageedog/Library/uecide/cores/arduino-megaavr/arduino/api/Stream.h:25:0,
from /Users/beageedog/Library/uecide/cores/arduino-megaavr/arduino/api/Client.h:22, from /Users/beageedog/Library/uecide/cores/arduino-megaavr/arduino/api/ArduinoAPI.h:29,
from /Users/beageedog/Library/uecide/cores/arduino-megaavr/arduino/Arduino.h:23,
from /var/folders/w7/2ndc0wts5xj1bz7rzs6ycs_h0000gn/T/build-c1a7b44e-2390-4da8-af38-bc9acb2df449/Blink_combined.cpp:1:
/Users/beageedog/Library/uecide/cores/arduino-megaavr/arduino/api/Print.h: In member function 'size_t Print::write(const char*)':
/Users/beageedog/Library/uecide/cores/arduino-megaavr/arduino/api/Print.h:49:42: error: 'strlen' was not declared in this scope
return write((const uint8_t *)str, strlen(str));
^~~~~~
/Users/beageedog/Library/uecide/cores/arduino-megaavr/arduino/api/Print.h:49:42: note: suggested alternative: 'strlen_P'
return write((const uint8_t *)str, strlen(str));
^~~~~~
strlen_P

Not what I expected either...

Not what I expected either... strlen not being defined?!

Maybe it's something specific to the OS X version of the compiler? Unlikely, since it should be the same compiler as normal AVR boards.

You're not using (ugh...) Catalina are you?


Well, what do you know? It fails to compile on OS X (I just booted my rather slow VM...). Now to dig into what is going on.

Ok, for once this is not my

Ok, for once this is not my fault. This is Arduino being complete and utter idiots.

There's a reason why in old cores the String object was defined in WString.h not String.h - yet for this core they decided that no... they'll use String.h...

Which is fine on a case sensitive filesystem like on Linux. But with case-insensitive or case-preserving it conflicts with the c library's string.h where strlen() is defined.

Maybe they're doing some strange magic giggery-pokery to work around it in the Arduino IDE (differentiating between <> and "" for includes, but I can't see it) or it's just plain broken everywhere.

I guess I could script my way around it when building my packages but that's not nice. Better would be for Ardthicko to revert to using WString.h like they always have done...

Ok... a bit of scripting in

Ok... a bit of scripting in my build system and I think we're good to go.

I have also raised an issue with the Arduino API repository.

beageedog's picture

Yes Catalina. I am using

Yes Catalina. I am using Arduino 1.1.12 which, within the Arduino IDE, things work nice. As a side reference point, VSCode works well with this combination within Catalina, but will not work on WIN10 failing to parse include paths. But I diverse. I'm not aware of the changes in string.h, but your explanation makes sense. I trust your judgement. My depth doesn't go that deep being more of an applications guy. I'll give it a new try. I am excited about porting my project over to a tool which has more advanced features, but doesn't require a doctorate to use the IDE.

I assume reading this, you have dropped new build in the download.

Thanks Matt.

beageedog's picture

Ouch. Bad magic. See file

Ouch. Bad magic. See file BlinkOut.ino attached. First.. The compiler output is dumped not into the output window, but to the top of the editor window instead. A file pointer problem there it looks like. That corrupts the file going forward. Second, I'm still seeing string related errors.

In member function 'size_t Print::write(const char*)':
/Users/beageedog/Library/uecide/cores/arduino-megaavr/arduino/api/Print.h:49:42: error: 'strlen' was not declared in this scope
return write((const uint8_t *)str, strlen(str));

Attachments: 

beageedog's picture

Ouch. Bad magic. See file

Ouch. Bad magic. See file BlinkOut.ino attached. First.. The compiler output is dumped not into the output window, but to the top of the editor window instead. A file pointer problem there it looks like. That corrupts the file going forward. Second, I'm still seeing string related errors.

In member function 'size_t Print::write(const char*)':
/Users/beageedog/Library/uecide/cores/arduino-megaavr/arduino/api/Print.h:49:42: error: 'strlen' was not declared in this scope
return write((const uint8_t *)str, strlen(str));

Attachments: 

Yuck, that's a mess. But...

Yuck, that's a mess. But... it's Catalina. I think Catalina is the last version of OS X that I will be actively supporting (or as actively as I can on Catalina...).

The first thing you must do is ditch Apple's Java implementation. But Oracle say:

Changes introduced with macOS 10.15 (Catalina) cause certain Java applications to behave incorrectly. Therefore, we cannot certify any JDK version on macOS 10.15 yet.

But you can still install OpenJDK manually:

  1. Download openjdk-14.0.1_osx-x64_bin.tar.gz
  2. Extract the contents (a folder called jdk-14.jdk)
  3. Move (or copy) that folder into /Library/Java/JavaVirtualMachines/

To test it, from a terminal, run:

/usr/libexec/java_home

It should respond:

/Library/Java/JavaVirtualMachines/jdk-14.jdk/Contents/Home

As for the compile errors - you have updated the core in the plugin manager...?

  • Tools -> Plugin Manager -> Refresh -> Upgrade All

One thing I have noticed in

One thing I have noticed in Catalina is loads of graphical corruption. I think this is due to the theme(s) not working well in that version of the OS. If you are suffering from that (I get nothing in Preferences except a grey box, for example) then you could try changing the Window Style in Preferences (catch 22 here... but I'll explain in a mo...) to System Default.

Now... changing the preferences without being able to see the preferences... that's a doozy. Well, there's a couple of ways.

  1. Click blindly. I find that moving the mouse over where buttons should be makes them appear. And clicking where the preferences tree should be on the left makes bits of that, and the content panel, appear to. So clicking just below the Theme menu should make things start to show, and then you want to navigate in the tree to the Theme node and select System Default in the Window Style dropdown list. Finding the OK button (bottom right of the window) should be easier as it should appear as you hover over it.

  2. Running a terminal command:

/Applications/UECIDE.app/Contents/MacOS/universalJavaApplicationStub --set=theme.laf=systemdefault
  1. Editing your preferences.txt file. This is located in ~/Library/uecide/preferences.txt and you want to look for the line starting theme.laf= and change the value to systemdefault

Options 2 and 3 both need to be done while UECIDE isn't running, so make sure to quit it first.

Pages