Not planned
Description
Is your feature request related to a problem? Please describe.
Currently, the Arduino IDE is only built for MacOS x86, and not MacOS M1 ARM. It is however built for ARM32 and ARM64 Linux.
Describe the solution you'd like
A build of the Arduino IDE for ARM64.
Describe alternatives you've considered
Rosetta 2 x86 translation works as expected, but it's not native.
Additional context
Pyserial seems to have already ironed out most issues on ARM. Additionally, there are already ARM64 Arduino ports for Linux.
Metadata
Metadata
Assignees
Labels
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
per1234 commentedon Dec 5, 2021
There are no official ARM Linux builds of Arduino IDE 2.x. Only the classic Arduino IDE is built for these host architectures: #107
ubidefeo commentedon Dec 7, 2021
@MattElek
I have tried to build on M1 but some dependencies break, this is why we can't release for M1 Native yet.
The IDE performs very well on M1 using Rosetta 2, and we'll keep trying to build for M1 in the future, but dependencies and Electron related stuff is a stopper.
We don't use PySerial at all, because the Serial Monitor services are handled through the CLI behind the scenes
SConaway commentedon Feb 7, 2022
Hey there, I'm wondering what the current roadblocks are...is it upstream stuff with Theia? If there's any work that's been done, I can try to continue off of that.
fstasi commentedon Feb 7, 2022
Hi @SConaway, the current roadblocks are related to the theia version, that relies on node 14 and an outdated version of Electron.
Luckily, we have a PR in the making, that updates both of them and could enable the M1 native build.
At the moment I can't tell you yet if that PR is enough or if some additional tweaks are needed.
If you want to give us a feedback/help, I'd checkout the PR, then - on an M1 mac - run these commands
If you can post the output that would be a great starting point for us to assess what is the updated state of the build
PaulStoffregen commentedon Feb 7, 2022
The platform index specification has only 6 architecture names defined.
Even if the IDE were built native for M1, the tools it runs to actually compile & upload code do not seem to have any way to support M1 until this is updated.
per1234 commentedon Feb 7, 2022
That is only the list of host values used in the example package index above that statement:
The full list is described by this algorithm:
https://github.com/arduino/arduino-cli/blob/10107d2407c2d9997310fc2e0f22dfd15d48e9a8/arduino/cores/tools.go#L126-L195
So the
packages[*].tools[*].systems[*].host
value for a macOS ARM native build of a tool would be something likearm64-apple-darwin11
, but note this part:https://github.com/arduino/arduino-cli/blob/10107d2407c2d9997310fc2e0f22dfd15d48e9a8/arduino/cores/tools.go#L185-L191
I had aspirations of providing comprehensive documentation for the supported
packages[*].tools[*].systems[*].host
values in the Package Index Specification, but never figured out how to go about it.SConaway commentedon Feb 8, 2022
Hey @fstasi, wasn't sure where to reply with logs.
Everything went fine until the actual
yarn start
running on node 14:It's an issue in the
eclipse-theia/theia
repo's example, so I will look into it there.SConaway commentedon Feb 12, 2022
So, I am looking into things and it seems that the issue is the fact that theia wants node v14 to be used. Because of this,
node-gyp
doesn't build forarm64e
butx86_64
. using node v16 solves the issue!owiofwm2i commentedon Feb 26, 2022
so can you release your compiled version?
SConaway commentedon Feb 27, 2022
no, I can't release things for arduino...
owiofwm2i commentedon Mar 10, 2022
just a download link for your compiled version
11 remaining items