User Tools

Site Tools


arduino:what-makes-an-arduino

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
arduino:what-makes-an-arduino [2020/02/07 15:43]
Ilias Iliopoulos [Arduino boards]
arduino:what-makes-an-arduino [2024/02/02 21:44] (current)
Ilias Iliopoulos Added DISQUS
Line 5: Line 5:
 Everybody loves [[https://​www.arduino.cc|Arduino]]. It has broken the boundaries of the closed circle of Electronics Engineering and has brought micro-controller based automation closer to education, art, telecommunications and other disciplines. Even for the hard-core electronics engineers who had been working in the automation field since the 1980'​s,​ Arduino brought an abundance of sensors, libraries, support software and even more, very inexpensive hardware that can be purchased from several suppliers around the world. Everybody loves [[https://​www.arduino.cc|Arduino]]. It has broken the boundaries of the closed circle of Electronics Engineering and has brought micro-controller based automation closer to education, art, telecommunications and other disciplines. Even for the hard-core electronics engineers who had been working in the automation field since the 1980'​s,​ Arduino brought an abundance of sensors, libraries, support software and even more, very inexpensive hardware that can be purchased from several suppliers around the world.
  
-But along with the spread of knowledge, comes a "​broadening"​ of the accuracy that we use certain terms. I have heard people and read articles using the terms "​Arduino",​ "ATmega328", "​IoT"​ and even "​MCU"​ to mean the exact same thing. In projects where a micro-controller can be used to provide a solution, I hear "just drop in an Arduino and make it work". Even more, some people have come to expect that using an Arduino will skip all effort for designing, building and testing, making a new product available the next day. +But along with the spread of knowledge, comes a "​broadening"​ of the accuracy that we use certain terms. I have heard people and read articles using the terms ''​"​Arduino"​''​''​"ATmega"''​''​"​IoT"​'' ​and even ''​"​MCU"​'' ​to mean the exact same thing. In projects where a micro-controller can be used to provide a solution, I hear from non-experts //"just drop in an Arduino and make it work"//, forgetting that the selection of the proper MCU for the job requires special technical skills, and even financial and logistics skills in some cases. Even more, some people have come to expect that using an Arduino will skip all effort for designing, building and testing, making a new product available the next day. 
  
-So, what makes an Arduino? ​+The target audience is not only engineers. Sales and Marketing people, all sorts of Managers, as well as Legal Counsellors may find issues to help them gain an understanding of the usually complex thinking of their fellow engineers.  
 + 
 +So, what really ​makes an Arduino? ​
  
 ===== Parts of the platform ===== ===== Parts of the platform =====
Line 21: Line 23:
   - Arduino Software (IDE)   - Arduino Software (IDE)
  
-But is that all? Is this an all-inclusive definition? Are parts interchangeable?​ Could we use non-Arduino parts with Arduino? So let's have a look on my approach of "what really makes and Arduino"​. ​+But is that all? Is this an all-inclusive definition? Are parts interchangeable?​ Could we use non-Arduino parts with Arduino? ​Is it a plug-and-play solution? Can it lower out time-to-market?​  
 + 
 +So let's have a look on my approach of "what really makes and Arduino"​. ​ 
  
 ==== Arduino boards ==== ==== Arduino boards ====
Line 35: Line 39:
 In contrast, if the functionality of the board largely relies on an Arduino library (e.g. an algorithmn to control the temperature of the kiln), then, it could be called "​Arduino-based"​. ​ In contrast, if the functionality of the board largely relies on an Arduino library (e.g. an algorithmn to control the temperature of the kiln), then, it could be called "​Arduino-based"​. ​
  
-An what if the composite board contains functionality in several features, without identifying one or more as critical or essential or nice-to-have?​ Who can assign a gravity factor to each part of the board, especially when the economics of the design dictate that each and every part should have a function that is marketed, advertised etc. and even more so, patented or copyrighted?​ The boundaries are definitely not clear, especially when looked at from a legal point of view.   +And what if the composite board contains functionality in several features, without identifying one or more as critical or essential or nice-to-have?​ Who can assign a gravity factor to each part of the board, especially when the economics of the design dictate that each and every part should have a function that is marketed, advertised etc. and even more so, patented or copyrighted?​ The boundaries are definitely not clear, especially when looked at from a legal point of view.   
  
 The original Arduino UNO was designed around Atmel'​s ATmega328 MCU. If one uses an ATmega328 in a design, does it make it an Arduino? Well, if the MCU contains the bootloader and is probably programmed with the Arduino IDE, again probably using the Arduino programming language and libraries, it could be identified as "​Arduino-based"​. But in most cases and unless explicitly defined so, it is just a board with an ATmega328, containing the knowledge of its maker. The original Arduino UNO was designed around Atmel'​s ATmega328 MCU. If one uses an ATmega328 in a design, does it make it an Arduino? Well, if the MCU contains the bootloader and is probably programmed with the Arduino IDE, again probably using the Arduino programming language and libraries, it could be identified as "​Arduino-based"​. But in most cases and unless explicitly defined so, it is just a board with an ATmega328, containing the knowledge of its maker.
  
 +You may ask what is the point of raising such an issue. Technology people need to be precise. Marketing people should know what they are advertising. Sales people should know what they are selling. But above all, Legal should know precisely whose Intellectual Property is every part of a composite board. Arduino is an open-source platform, published under a specific license scheme. Open-source libraries contain software that is made public under other licensing schemes (such as MIT, Apache, GNU GPL). Some libraries may contain pieces of code produced by others, and therefore their licensing scheme is mixed. Legal Counsellors and Engineers should work very closely to identify whether they can integrate such open-source components in a commercial product. ​
 ===== Peripherals ===== ===== Peripherals =====
  
 Several peripheral boards, such as containing relays, sensors etc claim to be "​Arduino compatible"​. Is there such a standardized compatibility?​ The short answer is **NO**. There are hundreds of variations in the power supply voltages, current requirements,​ clock and timing specifications,​ availability of libraries, Arduino MCU boards and peripherals etc. One must be very cautious when buying such a peripheral board. It is strongly advised to get a sample first and make sure that you buy the exact same thing when ordering larger quantities. And definitely, there is lots of Googling required before placing an order. Several peripheral boards, such as containing relays, sensors etc claim to be "​Arduino compatible"​. Is there such a standardized compatibility?​ The short answer is **NO**. There are hundreds of variations in the power supply voltages, current requirements,​ clock and timing specifications,​ availability of libraries, Arduino MCU boards and peripherals etc. One must be very cautious when buying such a peripheral board. It is strongly advised to get a sample first and make sure that you buy the exact same thing when ordering larger quantities. And definitely, there is lots of Googling required before placing an order.
  
-Most peripherals provide a more-or-less standard interface. If for example a peripheral supports SPI or I2C and provided that there exist an Arduino library, there are good chances that you can use it in your application. A certain amount of effort is required to learn the features and usage of the library. Sometimes, libraries are built to support so many platforms, architectures and features that it may be easier to built a custom one. An additional drawback of libraries found on the internet is that sometimes they are so packed with features, that consume a lot of the limited space of an MCU. I have found myself in several occasions with libraries so big, that it was not possible to write any code at all. In such cases, you may consider (not in precise order):+Most peripherals provide a more-or-less standard interface. If for example a peripheral supports SPI or I2C and provided that there exist an Arduino library, there are good chances that you can use it in your application. A certain amount of effort is required to learn the features and usage of the library. Sometimes, libraries are built to support so many platforms, architectures and features that it may be easier to built a custom one. An additional drawback of libraries found on the internet is that sometimes they are so packed with features, that consume a lot of the limited space of an MCU. I have found myself in several occasions with libraries so big, that it was not possible to write any code at all. Such an example is the graphics libraries for OLED displays. In such cases, you may consider (not in precise order):
  
-  - not using the library and built custom code 
   - branching the library code and delete unnecessary features   - branching the library code and delete unnecessary features
-  - writing a custom library+  ​- not using the library and built project specific custom code 
 +  ​- writing a custom library, in case re-usability in various projects is required
   - select a peripheral component with a less resource hungry library ​   - select a peripheral component with a less resource hungry library ​
   - use an MCU with more resources  ​   - use an MCU with more resources  ​
Line 55: Line 60:
 Can those peripheral boards operate with non-Arduino boards? Mostly yes, unless one relies on a particular Arduino feature, or the cost of modifying the peripheral to work with another platform is so high (such as building a library from scratch) that does not justify the effort.  ​ Can those peripheral boards operate with non-Arduino boards? Mostly yes, unless one relies on a particular Arduino feature, or the cost of modifying the peripheral to work with another platform is so high (such as building a library from scratch) that does not justify the effort.  ​
  
 +**Finally, one critical concern concerning life-threatening issues**. The Internet-of-Things (IoT) and the massive use of controllers in home automation is driving people without any knowledge of handling electricity to experiment with turning lamps on and off and similar projects. I cannot stress enough the lethal dangers associated with such projects. Education is mandatory, not only to explain **what to do**, but also to understand **what not do** without the supervision of a certified professional. **Parental supervision is totally worthless, unless the parent is a certified electrical engineer**. Several of us had been hobbyists from a small age. Staying alive means that we have been careful enough to gradually build our knowledge, before we did something dangerous. Young people should not be discouraged but rather educated in maintaining their safety. **In any case, project builders should understand and comply to the safety and security issues associated with their projects, as well as the local laws, regulations and certifications for designing, building, testing, operating, owning and interfacing any form of apparatus.** ​
  
 ==== Arduino IDE ==== ==== Arduino IDE ====
Line 75: Line 81:
 > Wiring allows writing cross-platform software to control devices attached to a wide range of microcontroller boards to create all kinds of creative coding, interactive objects, spaces or physical experiences. ​ > Wiring allows writing cross-platform software to control devices attached to a wide range of microcontroller boards to create all kinds of creative coding, interactive objects, spaces or physical experiences. ​
  
-Anyone with a knowledge of C can start writing simple programs with the Arduino language very quickly. Good knowledge of C++ is required to understand how libraries work and even more, to start writing more complex programs and libraries. Additional effort in the knowledge building process is required in understanding electronics related issues, such as using the pins for inputs, outputs, motor control etc.+Anyone with a knowledge of C can start writing simple programs with the Arduino language very quickly. Good knowledge of C++ is required to understand how libraries work and even more, to start writing more complex programs and libraries. Additional effort in the knowledge-building process is required in understanding electronics related issues, such as using the pins for inputs, outputs, motor control etc.
  
 ==== Arduino libraries ==== ==== Arduino libraries ====
Line 109: Line 115:
  
 and perhaps other disciplines,​ along with **health and safety considerations**,​ is required to build a project. and perhaps other disciplines,​ along with **health and safety considerations**,​ is required to build a project.
 +
 +~~DISQUS~~
  
arduino/what-makes-an-arduino.1581082984.txt.gz · Last modified: 2020/02/07 15:43 by Ilias Iliopoulos