Possibly leveraging Arduino 1.6.x support for different cores, architectures and libraries

Much of the historical angst in the forum threads from 6-12 months ago seems to center around two main points of view:

  1. Arduino = AVR, SPARK is not AVR, QED - and
  2. Arduino is not professional enough for us; we need to stand up for traditional programming values…

On the first front, with the recent 1.6.x Arduino IDE releases, this is patently untrue. With everything from teensy3’s to ESP8266’s being supported by the Arduino IDE, there is ample proof that SPARK could be fully supported by, and could take full advantage of the Arduino ecosystem.

On the second, I believe that, as crude as it is, and as simplistic as it may feel, it absolutely is the right way to get volume hardware adoption…

I’m a noob Photon user who is also an Arduino library author and model railroad hardware developer who wants to support both worlds.

With my biases out on the table, I’d like to advocate for “Arduino IDE/ecosystem compatibility”. And, yes, I fully realize how difficult it is to adopt NIH technology, how much effort goes into being a follower, and how hard it is to let go of Betamax in favor of VHS… As a mentor of mine once said when talking about the dominant technology in a sector, the difference between being compatible and better and being incompatible but better is that of standing on a giant’s shoulders or having them step on you…

On the library front, to make things concrete, is there a downside to simply adopting the “Arduino 1.5 library standard”? (https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification)
As I see it, there would be some mechanical changes to the build.io code, and the uber-library-example: spark.json becomes library.properties, the directory structure changes a slight bit, but the result is simplified support for many different boards and architectures by the original library author - and no need to fork and maintain SPARK-only copies of everyone else’s library.

The same could be said for the firmware HAL core itself, but this is the library forum :slight_smile:


Hi @JohnP,

Just wanted to jump in and say personally I’d love to help build compatibility and make it really easy to use the Particle Platform on Arduino boards, and with the Arduino IDE. (Maybe even an AVR, why not?) :slight_smile:

@jgoggins what are your thoughts on that Arduino Library standard? ( https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification )


1 Like

I like the Arduino Library standard, don’t think it would be that difficult to implement, and think it’s something we should do.

We’re hoping to put some serious dev effort into improving the Particle library system so it works well local compiling and the particle-cli within the next couple months and I’d love to see if we can also take some steps to make our library system work well with the Arduino standard as well.

@suda , I know you’ll likely be leading development efforts on this. What do you think? It doesn’t seem too spooky to me, making the mechanical changes that @JohnP describes seems straight forward. Building things in a way that is backward compatible with our existing library standard also doesn’t seem too crazy either.