Wiring was Arduino before Arduino

Hernando Barragán is the grandfather of Arduino of whom you’ve never heard. And after years now of being basically silent on the issue of attribution, he’s decided to get some of his grudges off his chest and clear the air around Wiring and Arduino. It’s a long read, and at times a little bitter, but if you’ve been following the development of the Arduino vs Arduino debacle, it’s an important piece in the puzzle.

Wiring, in case you don’t know, is where digitalWrite() and company come from. Maybe even more importantly, Wiring basically incubated the idea of building a microcontroller-based hardware controller platform that was simple enough to program that it could be used by artists. Indeed, it was intended to be the physical counterpart to Processing, a visual programming language for art. We’ve always wondered about the relationship between Wiring and Arduino, and it’s good to hear the Wiring side of the story. (We actually interviewed Barragán earlier this year, and he asked that we hold off until he published his side of things on the web.)

The short version is that Arduino was basically a fork of the Wiring software, re-branded and running on a physical platform that borrowed a lot from the Wiring boards. Whether or not this is legal or even moral is not an issue — Wiring was developed fully open-source, both software and hardware, so it was Massimo Banzi’s to copy as much as anyone else’s. But given that Arduino started off as essentially a re-branded Wiring (with code ported to a trivially different microcontroller), you’d be forgiven for thinking that somewhat more acknowledgement than “derives from Wiring” was appropriate.

screenshots_comparo
See what we mean?

The story of Arduino, from Barragán’s perspective, is actually a classic tragedy: student comes up with a really big idea, and one of his professors takes credit for it and runs with it.

This story begins in 2003 as Barragán was a Masters student at the Interaction Design Institute Ivrea (IDII) in Italy. He was advised and heavily influenced by Casey Reas, one of the two authors of Processing.

Programma2003At the same time, Massimo Banzi is teaching a class in essentially microcontrollers-for-designers at Ivrea using a PIC-based board called the Programma2003 and a curious language that you’ve never heard of, “JAL: Just Another Language“. At the time, there was no GCC support for the PIC, so the choices for open-source development were few. Worse, most of the design students are using Macs, and JAL only compiles on Windows. It wasn’t user friendly.

Barragán’s thesis is a must-read if you want to know where Arduino comes from. The summary is everything you know now: it’d be revolutionary if one could make a hardware / software platform that were easy enough that artists and non-microcontroller-nerds could get into. This is exactly the revolution that was underway in the computer graphics front, powered by Processing. Make it open source and freely available, and you’ll take over the world. So he turned to the Atmel AVR chips, which had the GCC open-source toolchain behind it.

From Wiring to Arduino

WiringBoard-AssembledSo by 2004, Barragán had a few prototypes of Wiring boards out, and he and his fellow students were using them informally for projects. The GUI will look ridiculously familiar if you’ve used Processing or Arduino. Since the students were already familiar with Processing, it made a lot of sense to just clone it — with Casey Reas’ blessing of course. Barragán wrote a little program that maybe you’ve heard of: Blink.

Now Barragán needed a faculty advisor at Ivrea, and his interests clearly aligned best with Massimo Banzi. So with his thesis work well underway and Reas’ backing, Barragán took on Banzi as his advisor. With Banzi and three other faculty members, the Wiring platform got its first real test-run, the “Strangely Familiar” workshop and show (PDF). It was a stunning success — in the space of only four weeks students actually made stuff.

Massimo Banzi teaching class with Wiring
Massimo Banzi teaching class with Wiring

Barragán graduated in 2004 and moved back to Colombia. The success of “Strangely Familiar” lead Massimo Banzi to drop Programma2003 like a hot potato and teach his physical design classes using Wiring.

ArduinoPrototype1Work began on the Arduino project, according to Banzi, because he wanted a board that was cheaper to make than the Wiring board. So he replaced the ATmega128 microcontroller for a cheaper, smaller version, and chopped off everything that wasn’t “essential” from the Wiring board, like the power LED. This became the “Wiring Lite” board — and eventually the first Arduino prototype.

Giving Arduino its Due

It is not the case that Arduino doesn’t acknowledge Wiring at all. They do. There are a few sentences in the first paragraph of the Credits section of the website, as mentioned above. That and $4.50 will buy you a Grande, Quad, Nonfat, One-Pump, No-Whip, Mocha, but how much more can one ask for?

The Arduino project has been marketed with extreme savvy, something that cannot be said of Wiring. Banzi hooked up with influential people in the US, eventually friend-of-a-friending himself into contact with Dale Dougherty, who invented not just “Web 2.0” but also the “Maker Movement” and Make Magazine. Arduino and Make was a match made in heaven, and the rest is history.

But as mentioned at the top of the article, this is a classic tale of woe. Banzi had better connections and more marketing drive and skill. He pushed the exact same project — rebranded — a lot harder, better, and further than Barragán did, or probably could. Arduino is a household name simply for that reason. If Massimo Banzi hadn’t been behind the wheel, it’s unlikely that you’d be complaining about how many Wiring-based projects we feature.

And, being open-source software and hardware, Barragán gave away the shop. He probably (naïvely) expected to get more credit from his former advisor, or even get invited along on the ride. He asks why Arduino forked Wiring instead of continuing to work with him, and the answer is absolutely clear — Arduino was taking it for their own. And they could. It’s not nice, but that’s business.

Still, we feel Barragán’s pain. So we’re glad, after a decade of silence, that Barragán is speaking out on behalf of himself and Wiring, because it sets the record straight and because his project really was “Arduino” before there was an Arduino.

137 thoughts on “Wiring was Arduino before Arduino

  1. I think a simple programming system may go even farther back.

    Fred Martin of MIT had the Handyboard and it’s system in the 1990’s http://handyboard.com/hb/
    While more expensive than the Arduino systems, it was simple to use.

    Even before that, many people tried to build systems that were simple and easy for beginners to use. I am sure people from the early 80’s will compare the Commodore 64 or TI99 or Sinclair ZX systems to something like this.

    Keep going back, and Kurtz and Kemeny when they invented BASIC in 1964 thought it was the language for anyone.

    1. For me personally, it’s Intel Basic-52, a 8032 with the 8k basic interpreter in the ROM. Add some RAM, PROM plus a sprinkling of TTL. I still use a version of it every now and again, built using the Atmel AT89S52 and an EEPROM.

      1. I gave up trying to get my Intel SDK 8085 to work.
        I think I replaced every chip on it without success… (sigh!)
        I also have an 8080 SDK board (with a lot of parts needed to soldered on)
        and 3 386 SDK boards (bought from that guy at Tinaja.com…

        1. I built a serial-console only SDK 85 clone when I was a CS student. The idea of entering code using an hex keyboard as I could use CP/M 8080 assembler instead was so much appealing. And I just sped the serial up the 110bps to 9600bps, after all it was just a delay loop change. I even built an extra socket to use if for EPROM programming. That was fun

    2. Indeed the BBC Micro with its user port is probably a very early analogue, and especially so as it was used in education. And yes, BBC BASIC was one of the best 8-bit BASICs around.

      Other systems come to mind too, the AIM65 was a definite hobby micro computer.

      1. That reminds me of the Jolt computer which was one of the first 6502 computers. It had a 6502, a 6532 and a ROM (basically, nothing else) and I think it was the first single board 6502 computer (I may be wrong). There’s almost no information about it online and they’re impossible to find, but a little company called Atari used it to develop the VCS 2600 game console.

        1. To “develop” it is pushing it. A ROM / PIO / CPU is about the simplest possible computer that can do anything, it’s not really a “design”, there’s no decisions to make. Add on a horribly basic graphics / sound chip, and that’s a 2600. Doesn’t even have any more RAM than the 128 bytes in the 6532.

    3. No mention of the Basic Stamp?
      They were designed with hobbyist and educational markets in mind and were used in many of the same kind of projects as Arduinos and their clones are today.

      1. The Basic Stamp was a motivating factor for Massimo to create Arduino. According to him the Basic Stamp was far too expensive(and still is) and he wanted a lower cost alternative to it.

        1. Bringing up Basic Stamp is entirely beside the point. Everyone knows the Stamp, for sure. It was one of the first “friendly” programming boards. That’s where the similarity ends.

          But the Arduino language _is_ Wiring. Not “inspired by”, not “simliar to”. Arduino copied it wholesale.

      2. Meh… The BASIC Stamp was way too expensive to ever be a hobbyist device. It may have been useful as an educational tool in places where school systems had a lot of money to spend but that’s about it. Parallax could have chosen to have the ‘Arduino’ market decades before it ever existed. But they didn’t. They priced themselved right out if it. Or.. maybe not. Maybe the technology of the time wouldn’t have allowed them to hit a lower price. Thankfully, today it doesn’t matter anymore.

    1. Looks like it, based on the pictures. Wiring board has nice 0.1″ spacing between headers. Banzi’s “Wiring Lite” has the nonsense spacing between headers.

  2. But apart from the attribution/credits/$$$ issue, the aim was achieved – an open source easily programmable with open tools on any host platform board that could do digital and analogue signalling.

    1. it’s been a pleasure working with people on Arduino projects just because they can use any platform they like(Linux/Mac/Windows) and there’s no cost but the hardware and even that has many choices.

      Without Arduino, we might not have any of this. We don’t know how far Wiring could/would have gone but the facts are real where Arduino has gone.

      1. That’s right. And that’s the uncomfortable truth, for me, about both Arduino _and_ Wiring. I think they’re both deeplymildly flawed, but Arduino got marketed very well, and became this de facto standard. Which means that many people collaborated and made many awesome projects with it — which makes its flaws entirely irrelevant.

        If Arduino showed me anything, it’s that a project that’s technically kinda mediocre can nonetheless be tremendously influential and important. It’s not all about good design and getting things right — it’s a lot about marketing.

          1. IBM PC and Altair at least both was at least original designs, but neither were they particularly good designs either. Unfortunately I think ANSI/ISO and other standard committees was probably poorly suited to setting standards in this area. The right way back then would probably be to design a reference system and release schematics and other design information.

        1. It’s not marketing, it’s that Arduino offers something nobody else did. The simplicity, and the standard for everyone to settle on. Even if it’s not a great standard, the world was crying out for ANY standard for micro boards.

          Everything else can be fixed as time goes by. And mostly bypassed now if you know enough about it to be able to. The most important thing is that beginners can get something useful out of it. Professionals have a million other boards to be clever on.

        2. The fact that technical merit has little bearing on real-world impact is one of the most important things to learn when moving from academia to industry. It doesn’t matter how satisfying or elegant or even how correct something is. The only thing that matters is whether it solves a problem and can be marketed to someone who needs that problem solved.

      1. 1) It was aimed at artists getting a hardware project done over a few weeks’ time, not people who know their stuff and who’ve worked in the field for years.

        2) Anyway, the point is that all that stuff was Wiring before it was Arduino. I picked “digitalWrite” b/c everyone would know it. Something like 90-95% of the “Arduino” API was from Wiring.

    1. That is some real contribution to the debate, champ! Thank you for letting us know that you do not like Arduino. Do not consider for a moment that for many people arduino was an affordable and easy way to get into technology. Again, thank you for your valuable opinion!

        1. Hmm, music on a fisher price toy, not exactly what I’d call useful or what I’d waste my time on but to each their own…I don’t just use Arduino, have most experience w/ Freescale and Atmel toolchains and a couple of their chips. I don’t care the platform just my first nontrivial project on one. Latest thing I’m trying to finish is: https://github.com/Int-Mosfet/nRF_Detekt , which is just a sensor project that encrypts comms to a receiver and logs in internal memory.

  3. Wiring was open source, Arduino is open source. Banzi had what Barrigan didn’t. marketing capability. No harm, no foul. Stop sour graping and invent the next best thing, if you are able too …

      1. Suddenly, buying cheap knockoffs doesn’t seem so wrong. Now, maybe a cheap-knockoff-marketer could sell ’em for $0.50 more and send some love where it seems to be long-overdue…?

        1. I quit feeling bad for the Italians a long time ago. $5 Chinese CH340 Nanos align EXACTLY with their original goal: get these awesome boards into students’ hands as quick and cheap as possible.

    1. “Stop sour graping and invent the next best thing, if you are able too …”

      He already did. Sorry mate but that’s a terribly daft and arrogant comment.

      “Banzi had what Barrigan didn’t. marketing capability.”

      is ‘marketing capability’ a euphemism for being a jerk?

  4. Interesting read!

    Once again this proves my theory that every successful business needs a genius and an asshole^W^Wa businessman. [Barragán] evidently forgot to bring his businessman (M/F) and ended up wondering how far away the parallel universe is where people are bitching about all the Wiring projects on Hackaday.

    I think it’s extra ironic that [Banzi](?) made the stupid mistake placing that one header one late night that makes all *uinos incompatible with breadboards forever, which has always been my pet peeve with Arduino. Looks like the Wiring board had all the headers on a perfect .1″ grid and would have lots of potential if it wouldn’t have been completely forgotten. [Barragán] definitely deserves more recognition.

    1. Look, we can’t have it both ways… Either the board has an odd header pitch, making the shield format *duinos only suitable for tabletop tinkering in a cluster-fuck of jumper wires OR we’d have a shit-ton of projects that easily incorporate a myriad of massive *duino boards just for blinking some lights..

      Both scenarios are cringe worthy, but is has to be one of the other…

    2. The Wiring board looks beautiful! It’s what I’d wish for Arduino if I could turn back time.

      Arduino was a stripped-down version, with a bunch of kludges and some outright mistakes (the pin-header spacing among others).

      But as [sspence65] mentions above, it’s the marketing, not the professional design, that mattered.

  5. I would say: Banzi & co probably thought about the great potential of Wiring/Arduino, and went on hardly, and they were right. Probably Barragan wasn’t so business man, and stared at sun with his thesis. I understand his feelings, but I don’t like the way he tells the story, seeming he is a victim. Probably he is just another victim himself, just like Tesla vs Edison, or Meucci vs Bell, with the great difference here we talk around open-hardware.

  6. I love the IDE. So much things to show in MMI-classes…

    “Look, here, an endless pull down menu. Turn monitor into portrait mode and you can still scroll this single pull down menu for hours!

    And look, there, where you select your hardware. It is put under tools. Is there any better way to hide this medium important tool in a more misleading menu? You are right, Kevin, Help would be the winner… And then, see this! the board manager is a substantial tool and it is hidden in a sub menu of the board selection menu. isn’t that great? And endless pull down again! so great!

    What you say, Chantalle? Tools in tools menu sounds right to you? Yes, I agree. Saving, printing, upload, all important tools. I could be a epic giant single scrolling tools menu!

    Learn you lessons, Kids, Don’t use modal dialogs. Endless pull down is the way to go!”

    The editor is disappointing. Has no beef, so nothing to complain about. Kids ask for refactoring and I say “look, it has tabs! And birds! there! hush hush!” I feel so at home with it. Tabs have the same eternal existing error when adding new tabs…

    1. You forgot that it silently hides important feedback from you. Renames your files without asking, and even puts it in subdirectories without asking sometimes. Always starts windowed. Does not auto-save.

    2. You forgot to mention that it’s too dumb to disconnect its own serial terminal when it has to download a new program to the Arduino. Or has that been fixed by now, too? I’ve been using VisualMicro (visualmicro.com; a free plugin for MS Visual Studio that makes it able to handle Arduino sketches) almost exclusively for years.

      1. You are right, it is another glorious master piece of everything.

        It somehow works since 1.6.5. If its open, it is disconnected at compile start. So if compiler fails it is turned on again. (I would expect it to turn off after successful compile and before uploading.) It fails totally, if it is not open, you start compile and then try to open it. It totally fails if USB port disappears while having it open…

        Saving while compiling is still possible. And can result in all hell breaks loose. What do I say… Multiple starts of compiling runs are possible (didn’t check with 1.6.7 that introduces the new compile backend that introduces a lot of new errors that are not show to the user… compiling simply fails and nothing happens.)

        Oh, my cat purrs. Always sounds like const const const… Reminds me of this little gem: create a tab, put
        void fish(const int blah = 7) {} into it. And try to call it in setup(). Still does not work since 1608. (Preprepre-processor does not recognize such difficult declaration and fails to create the forwards…)

        I think the very very very best from education point of view is this small compiler-result-shitty-strip-of-black-nothing. that scrolls down and focuses on the last error line. For all beginners it is a total fail of concept, because they a.) miss that there is something above the stuff they seen and b.) they might not have grasped the concept how compiler errors (and especially in C/C++) work.

        1. An important workaround for the stupid “we’ll generate your forward declarations for you” bug (yes it’s a bug in my opinion) is to surround all function headers that Arduino chokes on with a macro.

          #define arduinonono(x) x

          void fish(const int blah = 7) { /* fails */ }

          arduinonono(void fish(const int blah = 7)) { /* compiles okay */ }

          1. Actually, from education point of view, the forward generation is a great thing.

            When starting programming with/for noobs I think it is important to remove obstacles and present success. With success I can raise the bar and dispense knowledge and keep the audience motivated.

            Saying this I think this macro is a way in the wrong direction. just fix the preprepre-processor.

            (And now I’m to drunk to argue any further.)

  7. Has anyone mentioned that they both should have been using Lua, instead of creating a dead end for beginner coders? I know the hardware was not affordable, but it is the IDE and simplicity that makes Arduino intriguing. Unfortunately, students learn how to program in a language that has not other use outside of Arduino, then hit a brick wall when moving into C programming. We are just realizing that Lua is the best lang for this purpose with NodeMCU being much more user expandable code wise than Arduino.

    1. C/C++ is the bases for almost everything, Lua is written in C.
      probably moste interpreted languages are.
      C/C++ is not a dead end, not if you want to keep going forward and create things.

    2. The “one language good for everything” is a myth driven by corporate interests and ignorance. Technically speaking is a pile of crap. Lua is wonderful as a scripting language and for more complex but not speed critical tasks on more powerful platforms, as Python and a dozen other languages that don’t compile into native binary executables. Just don’t expect a comparable speed with C or to cram it into the smallest chips and expect any decent storage and speed available.

      Not only C is far from dead, but if tomorrow Java and Lua ceased to exist altogether we could still have operating systems and applications, but I’m not sure about the opposite: just try writing a kernel in Lua and a device driver in Java.

      1. I’ve done a device driver in Java (lower levels of a Bluetooth stack) designed for the standard JVM at the time (ages ago!). Not something that I’d recommend not because of the higher level language, the problem was the senseless verbosity that unlike that of Ada didn’t have any advantages. Last time I touched Java, heard it is a bit better nowadays…

        There have been several Java OS projects BTW.

        1. Same here on java device drivers. It’s possible and the C native interface is always a get out of jail [free?] card. And remember the Java Spot uC ? The JVM has been made better, probably closest to replacing C for OS core function if C went away. But yes, Ada is way easier for this stuff (and has the ‘C’ native features too! Too bad an Ada dev stack would cost you an arm and a leg)…

  8. In what way have Arduino perverted the concepts of for(), if() while() et.c. that destroy the feeble childs mind forever, ruining every possibilty of ever learn real programming? Is it maybe the ridicoulus paradigm of having an initializing function for setting up the hardware just to end up in an endless loop doing the same thing over and over? Please enlighten me.

  9. Give Barragán a Nobel prize, and that should cover him financially and morally. Or make him the president of Arduino foundation of some sort, with pay. Benevolent dictator for life.

    1. Companies building their entire product around an open-source project is getting out of hand. In my opinion it’s fine for a person to take an interesting project, reframe it for ease of access and build a for-profit company around it-I draw the line at taking that base, locking it down with closed-source licensing and keeping all the profits for themselves. Even if the company rebuilds from the ground up- they still need to acknowledge where their inspiration came from.

      Once they turn a profit they need to get ahold of the original dev(s) and compensate them accordingly. Even using employee clock-hours to contribute back to the source project would go a long way.

      Comparison between Pettis and nophead comes to mind for some reason.

        1. nophead/Nop Head / Chris Palmer… designer of the Mendel90 variant of RepRap-based 3d Printer. Designed his variant, complete with parametric design files and released it all OpenSource.

          He didn’t lock it down or do absolutely anything at all to hinder someone that wanted to use his work for their own purposes. You could buy partial kits (hard to find\custom parts) or a complete full kit directly from him and his wife or you could self-source the entire build yourself from the BoM generated by the parametric design that took into account variations in materials (metric vs. imperial hardware, MDF or ACM frame of varying thinknesses, etc.).

          1. And some background material in the off-chance someone wants more information of what I speak-

            (1) http://www.hoektronics.com/2012/09/21/makerbot-and-open-source-a-founder-perspective/

            (2) http://www.makerbot.com/blog/2012/09/20/fixing-misinformation-with-information

            (1) – decent insight into what the controversy was. For a change- The comments aren’t crap.
            (2) – I think (one of) the telling part(s) is that Pettis does this big blog write-up then takes the time to write 2 equally long replies addressing several commenters in each one. Adrian Boywer and Josef Prusa make an appearance and Pettis disappears after making a one-line response to another commenter.

    2. “perfectly acceptable” is definitely within the eye of the beholder. If it’s *legally-acceptable* you’re talking about, then yahknow, alls you gots to do is live somewhere where the law supports your amoral values… don’t dare me to give examples, what’s that rule that when WWII is brought up it’s the end of the conversation…?

      1. it’s threads like these I’m glad that “Confirm Subscription” email comes through… 90% of the Arduino-discussions is hardly worth scrolling past, let alone being emailed about every troll’s repetative-perspective. How’d I forget when clicking that “Notify me” checkbox? Wee, saved! Have fun y’all!

  10. How’s that that nobody knows JAL, it was very good for me, until I found Arduino.

    I started writing asm for 8052 (in a simulator first), at that time, I only can get Pics where I live, so to program asm for PICs.

    Later I was undecided for several projects to use the 16F84A or the (new) 16F628 at that time, so having a upper level lang. could help in writing less and more reusable code.

    At that time PicList was great (I presume it still is), but for me the problem was that I was more time correcting other functionalities for it to work in my projects than understanding electronics and doing stuff. (being a higher level computer programmer (Visual Basic 6 at that time, java later), I was more interested to learn electronics for my hobbies and not losing time reinventing the wheel with awful code.

    I discovered JAL, and I have been taught Pascal at the University, so it was very familiar for me, and the libs somewhat worked together, sometimes you have to throw in the simulator to understand what was happening (I remember debugging an I2C lib to interface to a MPC42010, was just a minor bit flip, but boy, hard to find).

    Then, a couple of years later, googling a little for some functionality I came across the word Arduino and started to look for more info, Arduino was more integrated and seemed more polished (go figure), so I made the switch, around 2006/2007.

    I often switch on my 41hz.com AMP6, with the help of the Phillips RC5 lib with the TV remote, and select different sound inputs or control the volume with the (corrected) I2C lib, And when I changed TV, I reprogramed the eeprom (just a button at start and then zapping the amp with the remote) to assign which button do what thing (that’s another lib there). This amp was done more than 10 years ago, and it’s still working flawlessly on the PIC16F628 done in JAL.

    I was looking for something similar to switch to 32bits (Cortex M0 or M4 probably), but I didn’t find an easy migration, I found that freescale’s freedom board with it’s integrated solution in eclipse too magical (when you want to use a button, you drag a component, but you not see actual code after that action), I didn’t bother to do more than a couple of tutorials with it, that I found that freescale was sold to a company that happen to have some similar products, so I don’t know if it is a good idea spending more time in it. I just bought a Teensy3.2, I hope I can spare some time on it soon.

    Sorry for my english.

  11. To my mind, the problem here is hidden in unwillingness to say to embedded world that Arduino IDE is based on Processing or Arduino Framework is based on Wiring Framework. I’ve just looked in a few pages:

    * https://www.arduino.cc/en/Main/Software
    * https://www.arduino.cc/en/Guide/Environment

    I didn’t find information about Wiring/Processing (not saying about Hernando Barragán). Please correct me if I missed something.

    —–

    From the other side, we hardly work on the http://platformio.org which develop totally for free under permissive Apache 2.0 license. Yep, our resources are limited and community isn’t big like Arduino. However, I can’t imagine if someone will decide to fork/clone our ~2years work and re-brand it because we don’t support some other boards. How about to help or make contribution into the original idea/project?

    As for Wiring, we write on the Arduino-based pages (Arduino/Energia frameworks) something like “Arduino/Energia Wiring-based Framework” from the first days of our project. We consider that people should now about original authors.

    —-

    Finally, I don’t understand why the other projects/companies like to hide “original authors”. It should be honour to write about founders because they saved a lot of time and now we can be focused on the other important things.

    Regards, Ivan
    PlatformIO.Org

  12. Considering what happened I think Barragan came across with a fairly even tone.
    I think it’s obvious that Massio was faced with losing his job when the school closed and so he grabbed the only lifeline available to him. But not giving proper attribution was a violation of the open source license.
    maybe a good resolution to the arduino trademark name is she would just be to assign the trademark rights to Barragan.
    Forking a repository and giving it a new name sounds like what was done with the IDE at the beginning of the LLC/SRC Trademark dispute. What seems totally ironic after reading this is that this was an accepted practice since they had both done the same thing when they forked over Wiring.

  13. I have to use Eclipse for programming the NXP ARM (but have done it with gcc/bare metal) and PSoC Creator for programming the PSoC4 ARM.

    They are nowhere as easy to use as the Arduino IDE or Wiring.

    I almost never use a library for the AVR when using the Arduino IDE.
    I always look into the libraries and use the code inline.

    An I almost never use digitalWrite or read but always go straight on the hardware.

    And using assembly is not a problem neither on the AVR or the ARM platform.

    And I don’t like open source as I feel it’s like stealing and won’t put food on my table but have released some open source projects.

    What I wanted to say is that the Arduino project is a great way to introduce novice hackers into the embedded world like the C64/Atari/ZX/Apple and others where in the 80ties.

    1. Open source isn’t stealing, it’s giving away. It’s more likely for your project to take off and be used throughout the world, much less likely you’re going to make any money out of it.

      Open sourcing something is a gift to the world, or more specifically the community of people who use that sort of stuff. It’s a decision you make. “Stealing” involves stuff being taken against the owner’s will. Open source isn’t that.

      I know what you mean about the libraries though, they’re usually written to cover every possible use case, different variations of hardware, and of course to be as easy as possible for people who might not have the skills. I sometimes cut into library code, pull out the bit that actually does the lifting, and interface to it my own way. It’s still a great help though, better than having to figure out, eg, infra-red remote control pulse timing and codes. If my project’s only using one particular remote, I don’t need all the stuff that covers all the other types.

  14. “student comes up with a really big idea…”
    But it WASN’T a “really big idea” – just another incremental improvement in a long line of “microcontrollers should be cheaper and easier to use” projects that probably started with the KIM1 and COSMIC ELF, proceeded through BASIC52, HANDYBOARD, Basic Stamp(s), USBBitWhacker, and others. (And many here disagree with the “improvement” part.) Hernando may have added some important “non-engineer” perspective in his design of APIs and simplification of the GUI, or maybe Arduino took off only because it had “marketing” and “community” and “luck” (which he can’t take any credit for.)
    More extensive and accurate attribution would be nice, but there’s always been enough anyone who was paying attention knew about Wiring (Sparkfun started selling “Wiring” boards about the same time they started selling “Arduino” boards. They were too expensive, not easily reproduceable, and weren’t breadboard-friendly either.)

    1. You don’t find it at all ironic that during an international legal and PR battle over who really created Arduino and therefore who should be able to profit from it, we are all reminded that Arduino is basically a minimal credit clone of Wiring?

      The next time I hear someone go on about how people should support Arduino by buying ‘genuine’ hardware, I know which bookmark I’ll be sharing.

    1. What? Do HAD get money from each ‘ino clone sold? Are the staff all Massimo Banzi’s love-slaves? I don’t get their half of this “marketing” they’ve been doing, what’s in it for them, exactly?

  15. I know this may come as news to you HackADay (and it shouldn’t), but many of us who are actually promoting the Arduino Platform to teach microcontrollers to beginners actually still own a Wiring board.
    I got mine in 2005, I believe, but didn’t go past the basic examples until I went to my first Arduino introductory workshop.
    I liked the Wiring and I think it’s a pity it slowly faded out, but this is somehow due to Hernando’s lack of entrepreneurial skills and his connections (or lack thereof).
    Many of us know this story or parts of it, and it’s definitely not a nice one to read.
    I myself wish he had had more recognition and worked with the Arduino team, but it may also be that he didn’t click with the others.
    This is a typical example of how history works: slowly traces of information are lost and history is rewritten, with the ones who write the books changing the story from its origin.
    I am happy he took the time to carefully put together his version of the facts and document with images and links

  16. There is a concept of “moral rights” that have not been explored here.

    Moral rights stay with the author regardless of subsequent licensing, and although some jurisdictions require them to be asserted, many do not.

    Moral rights basically give you three things;
    1) the right to be attributed
    2) remedy against false attribution
    3) protection from derogatory use of a work

    I’m not sure part 3 can be used, as Arduino env. ultimately fills many of the goals of the original work. However parts one and two do allow recourse.

    If the argument is that, through lack of attribution, barragan has suffered economic consequences such as lack of employment, lack of involvement (I’m sure that Arduino would have less success if it said “derived from my former student’s work, who is not in the team making money”) and the way Arduino was subsequently licensed (in terms of marketing) there may be remedy despite the open sourcing.

    Note: not a lawyer

    1. What’s he gonna do, sue people til they say “thank you”? He open-sourced it on purpose. Bringing crap like “moral rights” into it is against the whole point of open source. I admit I haven’t read the Arduino license, but I’d be pretty sure Stallman has it covered.

  17. I had enough of the Arduino bashing. The flaws of Arduino are well-known (crap IDE, shitty naming of system functions, etc.) and the whole topic is discussed to death and adds nothing to the argument (pun not intended). It’s just being smug and arrogant. One more thing: this article is about Barragan and the Arduino team. No part of the article is about IDE or the flaws of the whole concept. It’s about people. How hard is it to read the article before you form an opinion? Or do you just come here to moan about Arduino?

    1. Trying to understand what it is that is so bad with Arduino. Ok, the IDE is not perfect, but coming from the old stuff it is a lot better than we used to have. And is the rest just that people don’t like the names of the system functions?

  18. If Barragan made his work open source, then he should be pleased with what happened. That’s the POINT of open source, you’re giving your idea to the world, to improve and use as their own. Any idea of proprietorship is given up when you adopt the license. A thank you is nice, but surely he doesn’t expect anything more?

    It might be Barragan’s decision to make Wiring open source, that’s led to Arduino being open source, if it’s used his ideas it would have to be.

    Similarly Banzi doesn’t get any money from most of the Arduino clones out there, and I’m sure he doesn’t expect any. That’s the point, it’s done for love. If you’re gonna make money, you do it from offering a superior product and good support. Not IP ownership and control.

    Either of them could have kept their stuff proprietary. But then they’d just be one more incompatible micro board, competing with everyone else’s, with a small library of software. They might have sold a few. But the world wouldn’t be full of curious amateurs programming micros without even having to fully understand what they’re doing. Arduino’s freeness meant the Chinese cloners drove down prices quickly, which meant every OTHER micro dev board had to get much cheaper too. All of TI’s boards, the Pi, even Intel’s Edison, led on from this.

    Micro dev boards were crap, difficult, and expensive before Arduino. Barragan’s changed the world! He knows it’s his legacy, even if other people don’t. That’s a contribution to humanity worth making, a life well spent even if he does nothing else. It only happened because he open-sourced it. He wouldn’t have made millions if he’d kept it private. So he’s done as well as he ever could, and he should be proud of himself.

      1. With a non-commercial, others wouldn’t have been able to sell Arduinos (right?). That’s the whole point. Arduino is one of the shining examples of the open source philosophy. It wouldn’t have happened otherwise. Even if he didn’t intend it that way, but I think he did. Maybe he’s a bit pissed off someone else made a lot of money, but they didn’t make money from his idea, Massimo made money from all the other work he did in popularising it. Anyone could’ve developed Wiring into Arduino, Massimo did it.

        For these other shenanigans Massimo is supposed to have got up to, I’ve no idea about those. Not saying he’s a lovely guy, just talking about this particular case.

        1. So what you’re saying is that Donald Trump isn’t a bad guy because he didnt invent real-estate or laws he just mastered the art of manipulating laws and business to make massive profits and that we shouldn’t judge him based on the content of his character?

          That because he has shown himself to be aggressive and hostile in business that it doesn’t mean he will necessarily bring the same traits to his run at being a politician?

          Any one can make billions in real estate, but Trump did it so we shouldn’t judge him for throwing what the rest of us consider morals out the window to accomplish it?

        1. Sure, but the complete freedom is the reason Arduino is what it is. If it wasn’t possible to buy cheap boards from a thousand different companies, all completely compatible, it’d just be another dev board. And it’d still cost 80 quid, like a PIC board used to! Arduino only works BECAUSE it’s completely open and free.

          It’s not because of the hardware, which is basically an AVR with an LED. The enormous software library is an important part, as is the IDE, which was written cooperatively as open software.

          Besides that, can you actually HAVE intellectual property for “an AVR and some pins, and it has a USB bootloader”? Creating a standard was the key, but the standard itself is pretty bare. And that’s a good thing as well!

          For a manufacturer to produce a few thousand Arduino clone boards is a much simpler decision than if they had to negotiate licensing. Why would they license that board over any other? Why not design their own? Licensing would have kept Arduino expensive, if anybody had actually ever heard of it. Companies knock out basic Arduinos and the only way they can compete is to cut the price, because there’s no IP to keep manufacturing within a small licensed group. Remember how things were before? Expensive and fragmented.

          Arduino wouldn’t be what it is, if there were any restrictive licenses on the hardware or the software. That’s the point. And thus it’s impossible to make your millions off inventing it. It only works because it’s free. And all Baragan gets, is to have contributed to mankind, and thousands of grateful people who’ve made useful things. That’s not too bad!

          1. This comment is spot on, if it was made a year ago.

            In that time frame, however, two people involved with making Arduino the success story it is have gotten into quite a public and bitter battle over who started what and how that implies who owns what. That’s what makes your comment miss the mark today. I agree, and I think Baragan agrees with you, that the Arduino suite (collectively, the microcontroller platform and IDE) didn’t break any laws, or necessarily misrepresent what it was, but it did misrepresent where it came from. Baragan might not have been the first to put together a microcontroller development board and IDE to help people get into programming and artistry, but he certainly laid nearly all the groundwork for making it accessible to millions of people. All he wants is credit where credit is due, and that is certainly at the foundation of Arduino.

    1. completely agree with you.
      as one of the first to buy a Wiring board when they were sold and shipped by Barragán worldwide, my curiosity towards microcontrollers only came after I attended my first Arduino workshop.
      I had tried BasicStamp before Wiring and that was another fail in triggering my curiosity.
      I now use micros in my daily work and teach foundation of electronics and physical computing to students from all over the world.
      the community built around Arduino was much present and although HAD seems to have some beef with Arduino, there’s no doubt that most of us who were not familiar with electronics (beyond mere soldering and plugging things together for no apparent reason) are now professionals who design PCBs, devices, installations.

      to me Arduino has been the best way to get familiar with digital electronics and thanks to it I now understand a lot about this fascinating field, besides making a living off of it.

      We owe this to Barragán, Banzi, Mellis, Zambetti, Igoe, Cuartielles and (why not?) Martino as well as to everyone else (IDII students and faculty included), and to the community which developed around this project.
      credit and attribution seem often a tricky field to walk, and hopefully clarity will come.

      again, despite being a follower of HAD for ~10 years, it seems they have some feud going on with Arduino which we’re not aware of. please, enlighten us.

      disclaimer: for my daily work I use AVR microcontrollers and while I prototype using Arduino boards and libraries I code using SublimeText and have been using Eclipse before. I don’t find the IDE to be a productive tool for me (same as I don’t like Processing’s IDE) but I teach it to my students because it’s a great way to get to do something in the first hour of getting acquainted with the platform.
      We can’t say the same about any other platform.

  19. I’m not really sure if people out there get the concept of forking and open source software/hardware. If people don’t like having others fork their work they really shouldn’t open source it. Besides the Wiring IDE sucks and the Arduino IDE sucks because it’s based on it. Also the Arduino libraries i.e. DigitalWrite() e.t.c can be very limiting even for a high level API. And don’t even get me started on the whole ‘setup()/loop()’ thing.

    The mbed libraries are in my mind much better, even for beginners.

  20. So, back to reality. What “Arduino” did is “use” OPEN SOURCE to bring something useful to the masses. Isnt that what it is all about? We can all be successful at inventing something but making it useful and making it accessible (economy of mass) to the general populace is the much harder, and higher (IMO) purpose.

  21. The moral to this story is, don’t use open source if you want to ever control or make money from your ideas. Which is why I keep all my projects off the web. People will steal IP from you in a heartbeat to make a buck. And Arduino sucks. It’s a half assed IDE that is more confusing than useful and if you have ever really programmed in C/C++ you’d understand why it’s a bad idea to learn terrible programming habits and then try to un-learn them later. You never will. You’ll just propagate bad code like a virus run amuck.

    1. I agree, learn bad habits then un-learn them. It is an easy way to start for the first 3 hours of learning, not a good way to learn C afterward. It works as a great kind of bait, a bait that fall off the hook though.

        1. They are the proccessing/wiring lang, the setup and loop sections, the cut and past habit, and using delay for timers. Plus, it is mot interpreted like lua, java, or python, so experimentation is not as encouraged. Then there is the C syntax, that discourages beginners and veterans alike.
          Finally, there is the incompatibility with other programing langs. If you want to make a simple color pong game, or a gui, you are very limited and learning many things that are unnecessary to develop such programs.

          1. Thanks for your comment!
            Here are some reflections on it. Be free to add your input to them as well.

            That it is another language with some peculiarities I don’t see as any drawback. Myself I have used multiple languages professionally, all with their small quirks. And I see setup() and loop() as such. Nothing stranger than the headers needed in other languages.

            The cut and paste habit you can get in any language with a large enough user base, such as Python or Java.

            Using delay is a way around the details on setting up timers. But you can still use them, and advanced material on Arduino programming describes how. And this is only relevant if you compare with low other level languages.

            I don’t see how high level languages would encourage more experimentation. When I have seen people learn and play with Arduino there is a lot of experimentation going on still, even if you need to compile it.

            And I don’t get if the C-syntax is good or bad?

            And finally I don’t see how it is more incompatible than any other language. It is very much like C, so a lot can be directly applied there. It is also very much like most other languages I have learned in that all the common structures are available. If you would like to do a colour Pong game or GUI, it is not the right choice as it is targeted for an embedded platform. But its sibling Processing is very capable of doing these things. And also very much like the Arduino language.

  22. * You can get someone else to write your code (you have to be subtle with this)
    * You use a library that you don’t really understand.
    * Function prototypes? What’s a function prototype?
    * main( )? What the heck is main( )?
    * Yes, I’m a C++ programmer.. But what’s this class thingy? Inherit? Polymorph… whaaa? Data hiding? Why would I want to hide my data?
    * I have two codes. They both work independently. But when I put them together, neither of them works.
    * I don’t want to use that if loop nonsense.
    * How do I fix these voids?
    (All found on Arduino forum)
    I realize that these may be rank beginners, but I hardly ever see a claim that a project was completed or that someone actually learned to code or has been inspired to learn coding. The idea is that Arduino is easy, simple, and you don’t really have to learn anything more than that.
    It’s also often stated that the intention is for “artists” to use Arduino. Based on forum traffic, it is clear that sensor, motor, LED (of not very artful applications), wifi, and bluetooth by far out-number any Art projects.

    1. I am not sure that it is valid to judge the platform on what you find on a beginners forum. Especially as it is where you ask questions when things don’t work, it is not where people typically show of what they have accomplished.

      And as a counterpoint I would like to give three example of Arduino being used, all from the last days:
      Tiny open source robot: http://hackaday.com/2016/03/07/tiny-open-source-robot/
      Wood stove control: http://hackaday.com/2016/03/06/wood-stove-runs-on-arduino-power/
      Production test of electronics: https://www.youtube.com/watch?v=R8-rW3ATvts

  23. hi gang, this was a very interesting read/ I enjoyed the history (even histrionics) and I enjoyed finally getting to understand the technical evolution of micro controller prototyping platform the entire world knows as Arduino.
    The moral dilemma for me revolves around the misleading obfuscation of original ideas and general credits. Yes, the Arduino credits page is note-worthy and does give appropriate credit in an open software / open hardware situation. BUT, and its a big BUTT, Arduino does not (did not) go far enough with the original idea credit; typical genius graduate student gets ripped off by aggrandizing marketing savvy masters counselor. I hate that.
    I think the thing that really sticks in my moral crack is Massimo’s TED talk… this is shameless obfuscation of original idea speak… and he should be ashamed of it; there was plenty of time in that 18 minute TED talk to speak to the originator of the idea with appropriate credits due.
    The other issue for me is that Massimo (and the others) are so sensitive to people forking their work (like Funduino and others) when in fact their work is just such a ‘fork’ (say rip-off) of the originators ideas which sprang from his master’s thesis. This creates a moral dilemma for Massimo.
    I really think Massimo should set the record straight in a future TED talk and then update the Arduino site. I think Arduino needs to do a better job of crediting on their site, including bringing the original author (Barragan) into the pack of ‘founders’ on the Arduino site.
    Of course Arduino has no obligation to accept my ideas pursuant to rectifying this moral dilemma. On the other hand, Massimo may not want myself or others thinking he’s a jerk. But he is; sadly.

  24. Phew! I didn’t see anyone mention whether or not Barragán included a copyright statement on any of his original or derived code. That is an internationally enforceable and common practice to protect the author’s rights but does not exclude the product from being open source in any way. I see this everywhere. So, if Arduino violated that, then the violators can be taken to court. It’s the same way many of the open-source licenses have been enforced, but primarily to out those who close their “forked” (a.k.a. derived) software. This is what Barragán should have done and how he could have maintained his credentials on his code and design.This even works for programmers working for companies — while their employer has the “ownership” of anything you right (unless you have a contract to the contrary), then you still “own” the copyright as the original author, although you cannot capitalize off of it (not a lawyer, so any lawyer reading this {ha ha} correct me).

    And for those talking about the “good old days” — I built an Intel 8008 (NOT a misprint!) 1st generation microprocessor using the CPU board I ordered through the 1974 Radio Electronics Mark 8 article written by Jonathan Titus et al. using surplus parts from Jameco, Polypaks, and John Meshna. I then designed and made my own PC boards for a 2KB SRAM board using 16 1024×1 2102 SRAMs plus a hex keypad and LED display for loading the programs directly into RAM, in 1975. The later replaced the original kit’s set of 8 paddle switches to latch the 14 bit address and then load the 8 bit data, auto-incrementing the address after loading the address the first time.I then used this “PC” as the controller for my college senior design project which was an Intel 1702A PMOS 256×4 byte UVEPROM running on +5 & -9V supplies and requiring -46V programming pulses. I did all of this without an assembler, let alone a HLL compiler. Needless to say, I got an A (my professor couldn’t believe I did all this). This article came out only a few months before the seminal 8080/S-100 bus Altair 8800 article in Popular electronics, but I already had most of my parts in hand and my budget was exhausted. While it WAS fun, it was LOTS of HARD work, and I DO NOT miss those days!

    And only a few mentioned that Processing and Wiring (and maybe Arduino to a lesser extent), was not designed to teach programming skills per se, but to allow designers (i.e. non-programmers) to engage in designing their own programmed parts. Adafruit’s Flora and Gemma series of wearable electronics extends that concept of electronics for the non-geek using Arduino compatibles.

    And if you want to argue about “real programmers”, go to “the master” Steve Gibson’s website — he writes ALL of his Windows code in assembly!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s