Maybe unconventional but I've installed the Arduino IDE on the target system, ARM Cortex Beaglebone. I've used it write a simple sketch, edited preferences.txt to direct compilations and have compiled the sketch there. But how to complete the build/install/run steps? Trying upload fails as it just wants the serial port address for the target board. The target is the system it is already on. Can find no makefile or make install options. Need some help, please.
And please do not include cloud-based tools. Thanks.
It took me a minute to realize the signature is only shown on the profile page, so I'll share AlanRH's signature here:
System = Beaglebone Black ARM Cortex-A8
LUBUNTU 18.04.2 LTS 32-bit ; MATE 1.20.1 desktop
Kernel Linux 4.14.108-ti-r108 armv7l
Arduino IDE 1.8.9-linuxarm 32-bit
That doesn't answer westfw's question though. The Arduino IDE allows you to target many different platforms. The stock IDE installation comes with support for the AVR architecture Arduino boards (Uno, Mega, Leonardo, etc.). The IDE allows you to add support for other platforms. Arduino also provides official support for their SAM, SAMD, and ARC32 architecture boards. 3rd parties have provided support for a wide range of other platforms. You need to have the hardware core installed for the target you want to program. After that, you need to select the appropriate selection from the Arduino IDE's Tools > Board menu. If you have Tools > Board > Arduino/Genuino Uno selected and you're trying to program the BeagleBone, it will never work since they have different architectures. If there is no existing hardware core for the target you want to use, then you need to create your own core and this can be a very big and complex job.
I try to keep up to date on all the supported platforms and I don't remember hearing of anyone adding support to the Arduino IDE for the BeagleBone target. I maintain a list of all known hardware cores here:
and I don't find any mention of "beagle" on that document.
I do know that Arduino Create supports programming the BeagleBone, but I think that is exclusive to Arduino Create, not available on the Arduino IDE, and the support code for that feature was not made publicly available.
Link to where I got the Linux ARM 32-bit Arduino IDE:
Does that not mean that Arduino released an IDE for the ARM processors used on Raspberry Pi and Beaglebone? May I ask if could search as well under Raspberry?
Thanks. I was just reviewing that git repository. The instructions there to get it set up for RasPi look complex but manageable.
Could you help me to get my board set up as a new one available under "Board"?
I gather from your saying: " If there is no existing hardware core for the target you want to use, then you need to create your own core and this can be a very big and complex job." that my 'hardware core' does not exist. I really do not know what that means, but there are millions of BBB users and I think many of us would like, as I think Arduino intends, to be able to apply their IDE and buy their sensor boards and other products.
AlanRH:
Could you help me to get my board set up as a new one available under "Board"?
At this stage, I could only parrot the instructions found on that page. I recommend that you start working through the instructions and then as soon as you hit a step you don't understand come back here with a specific question and I'll help you out with it.
AlanRH:
I gather from your saying: " If there is no existing hardware core for the target you want to use, then you need to create your own core and this can be a very big and complex job." that my 'hardware core' does not exist.
What I mean is that I'm fairly knowledgeable about the existing Arduino hardware cores and I don't remember seeing one for BeagleBone. However, it's possible I saw one and forgot or that there is one I just haven't found yet. I did just do a quick search and didn't find anything of interest except for mentions of Arduino Create's support for programming the BeagleBone.
AlanRH:
I really do not know what that means
An Arduino hardware core contains everything needed for the Arduino IDE to compile and upload a program to a given platform. This may include:
Core library: The implementation of the standardized Arduino API (e.g., pinMode(), digitalRead(), digitalWrite()) for the platform.
Bundled libraries: Some of the standardized Arduino libraries are architecture specific (e.g., SPI, Wire, SoftwareSerial) and thus each hardware core must bundle their own version of these libraries.
Variants: Contains IO pin mapping definitions.
boards.txt: Defines each of the Tools > Board menu entries that will be added by the core and the hardware parameters for these boards (e.g., clock speed, upload baud rate, available memory)
platform.txt: Defines the compilation and upload patterns for the platform.
Toolchain: The tools needed to compile and upload to the platform.
AlanRH:
there are millions of BBB users and I think many of us would like, as I think Arduino intends, to be able to apply their IDE and buy their sensor boards and other products.
So far, it seems you have the Arduino IDE working on the BeagleBone.
Arduino's primary products are microcontroller development boards like the Uno. These boards are their own target for programming. There's a good chance you could already use these boards with your BeagleBone.
As for the BeagleBone itself being a target for programming, this doesn't really directly benefit Arduino as a company much, since it makes the BeagleBone a competitor for their own products. In the case of Arduino Create, it makes financial sense to support the Beaglebone as a target because Arduino sells paid plans for Arduino Create so the cloud software service itself is the product. However, Arduino has been very awesome about making it very easy for 3rd parties to add support for any platform (including products that compete with Arduino's products) to the Arduino IDE. It's only a matter of some 3rd party taking the time and effort to make the hardware core and share it with the world. We know Arduino has created their own secret hardware core for the BeagleBone and other Linux SBCs so at least we know it is doable. The Raspberry Pi hardware core is likely a very good starting point.
pert, I really appreciate the care and time you've taken with this question. Thank you.
I'm pretty sure I do not have the programming skills or Linux knowledge to create all you've described as a new Arduino Hardware Core for Beaglebone Black, but I'll follow your links & consider the similarities to the Rasp PI hardware core as they use at least the same family of ARM processors, and see if I might take this on
Hopefully someone much more skilled, and likely in the BBB world, may see your posts and get on this.
Or, perhaps, hint, hint, someone with knowledge of the BBB core used in the $$$Cloudy Arduino Create world could convince them to share that core with their down-to-earth IDE developers and us.
AlanRH:
pert, I really appreciate the care and time you've taken with this question. Thank you.
You're welcome. I'm glad if I can be of assistance. It's a fairly complex subject once you start diving into the details. I do think it's important for all Arduino users to have a very high level understanding of the concept of Arduino's "hardware cores" system, at least enough to know when they need to install one and how to install it. Usually hardware core installation is very easy due to the Arduino IDE's excellent Boards Manager (Tools > Board > Boards Manager) feature. Unfortunately, the author of the Raspberry Pi did not add support for Boards Manager installation so you need to do the much more complex manual installation method. Installation is further complicated with the Raspberry Pi hardware core due to the need to install software on the Raspberry Pi target as well. You would find installation of pretty much any other hardware core to be far easier.
AlanRH:
Or, perhaps, hint, hint, someone with knowledge of the BBB core used in the $$$Cloudy Arduino Create world could convince them to share that core with their down-to-earth IDE developers and us.
I agree that it's really a shame that the work has already been done by Arduino, but it would need to be done all over again by a 3rd party to make this available since Arduino kept it closed source. That said, Arduino has made a tremendous amount of their software and hardware open source after paying a massive amount of money for skilled developers to create it, so you really can't fault them too much if they decide to keep the occasional pieces of IP secret.