2

I keep reading how Arduinos are "open source", but my understanding of OSH is that all its components must be open source.

Arduino uses an Atmel AVR CPU - but Googling this shows the Atmel is proprietary!?

So I ask: how can Arduino be truly OSH if it's chief component - its Atmel CPU - is proprietary?!?

  • 6
    I think the point of OSH is that anyone can use and modify the design, not that it can be created from sticks and stones. – Ignacio Vazquez-Abrams Jan 21 '15 at 21:46
  • Thanks @IgnacioVazquez-Abrams (+1) - however when you say "use and modify the design", what (exactly) are you talking about? If the CPU is proprietary, then what parts of Arduino's "design" can be used/modified?!? – smeeb Jan 21 '15 at 21:49
  • Arduino is based on AVR (most boards, not all actually) but is more than just the single MCU chip. Hence the board itself is OSH. As Ignacio mentioned, one is not supposed to recreate an MCU from scratch (who would want to do that by the way?). In this sense we can say that Arduino is OSH. – jfpoilpret Jan 21 '15 at 22:13
  • 1
    The power steering, the voltage regulation, the connection footprint, etc. – Ignacio Vazquez-Abrams Jan 21 '15 at 22:38
  • 1
    @smeeb The Arduino design files can be found here: arduino.cc/en/Main/arduinoBoardUno Look for the schematic and the EAGLE files. Those files are Arduino "design", and since they are open they can easily be modified. The AVR is a component in the Arduino, but I would say the AVR's design is not part of the Arduino design. – David Grayson Jan 22 '15 at 0:55
5

The components are necessarily going to be proprietary. There is no feasible way around this. If you wanted to design a new open source microcontroller from scratch with no proprietary components, it would set you back several billion dollars. The software used to design integrated circuits costs hundreds of thousands of dollars to license and represents billions of dollars of investment. Production of the chips themselves takes place in wafer fabs that cost billions of dollars to build, and represent billions of dollars of investment in process technology and semiconductor physics research. The equipment and process technologies are very closely held trade secrets. If you are OK with proprietary production, then you can submit GDSII design files (developed with your own open source IC design software) to fabs such as TSMC for production, but the line setup costs will run in the hundreds of thousands of dollars.

Bottom line: you have to draw the line somewhere as to what is acceptable to be 'open' and what is not. Open source hardware generally means the board-level design files and firmware sources are available, and generally nothing more.

Interestingly, there are many open source CPU designs available. Sun's OpenSPARC is an open design, you can download the RTL description of the CPU core and modify it. However, convering RTL to a chip requires IC design software or implementation on a proprietary FPGA with a proprietary development environment.

  • That is only physical production party. You still have to design the CPU internals and test them. – user31481 Feb 10 '18 at 21:13
3

An 'Arduino' is open source in that you can see the schematics, go out and buy any required components (including the AVR), and change the design however you like.

The AVR is not part of what Arduino owns, it is a simply a component which they have built their design around. You could if you so choose replace that component with something else like a PIC for example, or any other programmable microcontroller for that matter. Granted if you made such a change you would also have to change the software, but then if you change the hardware even to another AVR you would have to change the software so in that sense it isn't really a limiting factor.

1

There is a good practical question and interesting issues raised here, but this part:

"my understanding of OSH is that all its components must be open source."

I would say your understanding is wrong, where did you get that from?

The design (i.e. how to arrange components) must be open source. Ideally the components would be Open Source too, but practicality dictates that components must be bought "off the shelf". IOW, overall the design should aim for "as Open Source as much as possible".

The thing about hardware is that to realize a design components must be bought, and those components often contain proprietary IP. Of course, the same problem applies to Open Source Software, to run it I need to buy a CPU from Intel, AMD, etc.

So while all open source designs must rely on some proprietary IP as a base platform, the practical question is how easily can the design be moved to another platform (portability), and how easily a component can be substituted (fungibility).

There is only one source of AVR chips and that is Atmel. Other components, like a 3.3V regulator can be easily substituted with other.

The Arduino core software does not rely solely on AVR architecture, in principle it is portable to any CPU platform, in practice any platform that is targeted by GCC. The fact that some Arduinos are not AVR e.g. Due, shows that.

0

Open-source hardware is fundamentally different from open-source software in that you cannot make a copy of OSH for free. If you want to build an Arduino, you will need all the components it's made of, and even the simplest components like diodes are proprietary, just like the AVR chip. Neither can be home-made and both are proprietary designs.

The important thing about OSH is not that it's made of free components, but the fact that information about how it's made is freely available. The abundance of Arduino shields and addons is not due to availability of free AVR cores, but to the fact that anyone has access to the information needed to make their board Arduino-compatible. BTW, that's how personal computers gained the dominant position on the market: IBM has published detailed specifications including schematics of their IBM PC (albeit not under a free license), enabling other companies to make compatible hardware, and later on, PC clones.

Last but not least, the open-source aspect of Arduino is by no means limited to the hardware. The core library was written in portable way, which made it possible to run it on a wide range of hardware cores. There are even FPGA boards featuring Arduino connectors (1, 2, 3), which can run Arduino software on soft-cores such as F32C or NIOS.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.