Apologize for my lack of knowledge in this area. I’m working on Cortex M3 based chip (CC1310) and was wondering if it’s possible to use Arduino IDE environment for it? I know Due is Cortex M3 based, but I don’t know if all M3 MCUs can be programmed with same tools? I realize that RAM and FLASH sizes might differ, but other than are they same?
In short the Arduino IDE won't work with an arbitrary Cortex M3 device.
Cortex M3 defines the microcontroller's CPU. The peripherals (GPIO, serial, I2C, timers, etc) are not defined by ARM. They may vary between manufacturers and even between devices in a single manufacturer's product line.
I see, thank you so much for clear answer!
If you wish wider ARM support - I can recommend an MBED (https://www.mbed.com/) It's not directly compatible with Arduino, but uses similar concept. Lots of different ARM based chips are supported already.
alesam: If you wish wider ARM support - I can recommend an MBED (https://www.mbed.com/) It's not directly compatible with Arduino, but uses similar concept. Lots of different ARM based chips are supported already.
Thanks! I'll check them out, but from quick search doesn't look like CC1310 is currently supported. I actually did found something on http://energia.nu, it looks like they might support this MCU with Arduino IDE. They support "launchpad" dev board tho, and I'm using E70, but I think differences are just integrated Serial2USB chip and extra pinouts... Wish me luck, lol Found core files here: https://github.com/energia/cc13xx-core
It's possible to add support to the Arduino IDE for any microcontroller as long as command line tools are available to compile C++ code for the chip and upload to it. Creating the level of standard Arduino API support like you get with the regular Arduino boards can be a big project, but also a very significant contribution to the Arduino project.
As you discovered, this has already been done for many of the most popular microcontrollers, and more are being added all the time.
Oooo. I think I understand now. Like avrdude that's used by Arduino compiler for ATmel chips. I need to figure out toolchain used for programming these TI MCUs, perhaps I can integrate it with Arudino (if someone hasn't done it already)...
AVRDUDE is the upload tool the Arduino IDE uses for AVR. avr-gcc is the compiler used for AVR.
I need to figure out toolchain used for programming these TI MCUs, perhaps I can integrate it with Arudino (if someone hasn’t done it already)…
I think the Energia core you found is a very good starting point (probably all the hard programming work is already done there). Energia and the Arduino IDE use much the same system. It’s unfortunate that Energia seems to have gone a bit off in their own direction. I think the reason might be that the Arduino IDE’s general support for any hardware platform was not well developed at the time of the Energia project. Even so, I think it should definitely be possible to use the Energia core with the Arduino IDE without too much difficulty. I suspect that Energia just bundles the TI toolchain directly with their IDE, since that platform is the specific focus of Energia (similar to how Arduino IDE bundles the AVR toolchain).
Here is the specification for Arduino hardware packages:
After a quick look at the Energia core, it looks to be in compliance.
One of the best ways to learn about Arduino hardware packages is to look at the existing ones. Here is the Arduino SAMD Boards package:
The popular 3rd party ESP8266 package:
When your package requires a toolchain other than the AVR one that comes with the Arduino IDE, it starts making even more sense to provide installation via Boards Manager, which allows you to specify tool dependencies of your packages and have those downloaded and installed separately from the hardware package. This is documented here:
It’s not absolutely required though. Arduino’s hardware packages can only easily be installed via Boards Manager but the ESP8266 and ESP32 packages provide for the option of doing a manual installation of the package to the hardware subfolder of the sketchbook folder along with their toolchain, as was always done for 3rd party hardware packages in the days before Boards Manager was introduced.
I have some experience in this area (though none with the TI chips or Energia) so I can try to help if you have any questions.
I think it would be way cool if you were able to add the CC1310 to the list of chips that could be easily used with the Arduino IDE. I think it’s mostly just going to be a matter of figuring out how to get the toolchain installed and maybe making a few minor adjustments for things that have changed in the Arduino IDE since the time of the Energia fork.
Thank you so much! I followed ESP8266 success story, but never actually got to use one because I was interested in low power sub 1Ghz devices... I've been building ATMega328p based (SquareMote) boards with RFM69w transceivers for several years. Have whole bunch of them as various sensor thru the house and in backyard. I even managed to get one running for a year on single CR2032 cells, but I'm kind of hit the wall at how far I can push it due to power usage, size and cost. So I'm attempting to build a solution like ESP8266 but in Sub 1Ghz package. CC1310 is fantastic device, and I recently discovered E70 (constellated) packaged one that's just blew my mind.
Back to Energia, I tried installing their board definitions under Arduino IDE, but I just realized they have their own modified version of IDE. I'll give it a try first :)
Also do you have an idea how physically can I program my E70 board? Energia is geared towards "Launchpad". I'm using more of a naked CC1330 board that basically has all power management and exposed pins. I can program it using FTDI adapter connected to UART pins, or I will need some kind of JTAG programmer or perhaps ISP?
I don't have any experience with the TI chips so I can't provide any assistance on programming them. Hopefully someone else here on the forum will be able to answer your question.
pert: I don't have any experience with the TI chips so I can't provide any assistance on programming them. Hopefully someone else here on the forum will be able to answer your question.
No worries! I spoke with folks at Energia, and getting some assistance :)