Author Topic: (SOLVED/ANSWERED)Why NOT use an Arduino for professional project?  (Read 25171 times)

0 Members and 1 Guest are viewing this topic.

Offline Fungus

  • Super Contributor
  • ***
  • Posts: 16561
  • Country: 00
Re: Why NOT use an Arduino for professional project?
« Reply #75 on: May 18, 2018, 05:18:02 pm »
I guess I have made a post that has many opinions, however, my question is clear. I am seeing many opinions, yet no answers to my basic question. I see the word 'sloppy' with no explanation, 'should never be used' with no explanation.

Folks, I am looking for reasons why not to use an Arduino when it WILL do the job. Please use words as to why it is a bad idea, not personal opinions. I have already stated the 'protecting the software' part, what other reasons?

The main problem is the crappy connectors on boards like the Arduino Uno. There's no way you can use those for production. Same goes for breadboards, etc., just say no!

If you get an Arduino that allows you to solder wires to it then there's no problem, IMHO.

eg. The Pro Mini.

Another thing worth mentioning is that the Arduino system doesn't usually enable the watchdog timer, the brownout detector, etc., on the AVR chips. It's a good idea to enable them in something that has to be reliable so the chip will reset itself if something goes wrong.

While we're on the subject: It can be a good idea to use an ISP programmer and trash the bootloader. The chip will start up instantly instead of taking two seconds.
 

Offline metrologist

  • Super Contributor
  • ***
  • Posts: 2199
  • Country: 00
Re: Why NOT use an Arduino for professional project?
« Reply #76 on: May 18, 2018, 05:21:01 pm »
I thought Arduino is a professional product?
 

Offline newbrain

  • Super Contributor
  • ***
  • Posts: 1714
  • Country: se
Re: Why NOT use an Arduino for professional project?
« Reply #77 on: May 18, 2018, 05:40:25 pm »
Licensing is generally not an issue but you do need to check every library you use.
I tend to disagree here.
If an Arduino board is used directly, I would be surprised to find that the product has a complex and 'valuable' HW design.
This means that most of the added value of the product ends up being in the SW.
As said above the base libs are LGPL, as most of the available libraries (or even GPL).

(L)GPL is a powerful license, but forces you to make the code available to the customers, with no way of preventing public distribution, and in this case I find it lessens the value of the product: an easy to reproduce HW, and public SW.

Please note that I'm saying this not a GPL enemy, as I work every day with an LGPL product (among others with more liberal licences) and we heavily contribute (~90%), but we have other ways to add value to our final products since the LGPL part is only a sub-component.
Nandemo wa shiranai wa yo, shitteru koto dake.
 
The following users thanked this post: tpowell1830

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9886
  • Country: us
Re: Why NOT use an Arduino for professional project?
« Reply #78 on: May 18, 2018, 05:44:53 pm »
The OP has been given all the reasons to not use an Arduino:

Oversize (Uno)  The Nano is much better in terms of size.
Cost
Arduino Libraries - code quality/speed/bloat
Arduino Libraries and the limitations they place on the use of hardware
Pinout vs raw device with full access
and so on...

If none of these are show stoppers, why not?  It won't look professional but maybe the customer isn't grading on professionalism.

As an engineer, I would have two opinions:  Quick to market or an insult to the profession.  Flip a coin...

 

Offline james_s

  • Super Contributor
  • ***
  • Posts: 21611
  • Country: us
Re: Why NOT use an Arduino for professional project?
« Reply #79 on: May 18, 2018, 06:53:15 pm »
I will admit to stuffing nano clones into a few projects I've built for myself. I shudder though whenever I see a full sized Uno stuck inside a "finished" product.

One thing about it, the Arduino hardware is little more than a breakout board for the AVR so there's nothing stopping you from using C or Bascom or whatever on it. The $2.50 Nano clones are great for prototyping, I keep a small pile of them around.
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 4196
  • Country: us
Re: Why NOT use an Arduino for professional project?
« Reply #80 on: May 18, 2018, 06:55:09 pm »
I am especially amused by all the responses of the form "I would never use an Arduino module because my hardware design would be SO much better than theirs" (wrt EMI, Power, connectors, "proper USB circuitry", on an on...)  "and any software I write would be SO much better than the crappy arduino core and libraries."   Is spite of the obvious existence of thousands of "professional projects" that have crappy HW and SW (Sturgeon's Law, you know.)
(huh.  I might almost expect an inverse linear correlation - a 98th percentile project (top 2%) might have a 2% chance of using an arduino avr-class module, while an "average" project might have a 50% chance of using one.  (although, as you hit the below-average projects, I'd expect all sorts of random stuff to show up.)

SW licensing with the Arduino core and libraries is theoretically a big problem, because while most authors who have slapped inappropriate licenses on code don't care, a couple have intentionally viral licenses (or are they designed to get you to pay for alternate license arrangements?  Who knows.)
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 4196
  • Country: us
Re: Why NOT use an Arduino for professional project?
« Reply #81 on: May 18, 2018, 07:02:45 pm »
Quote
The main problem is the crappy connectors on boards like the Arduino Uno. There's no way you can use those for production.
Um.   You mean the same 0.025inch square "header connectors" that are used, and have been used, in everything from (billions of) PCs and other commercial products for about 50 years now?   I mean, they're frequently horribly mis-used in the arduino world ("just plug in a 22-24g wire"), and they were never intended for "many" insert/remove cycles,  but they should be fine for use with proper mating connectors as a permanent connection.  (Possibly excepting buying super-cheap low-quality parts from questionable sources, which could happen whether or not you use a module.)
 
The following users thanked this post: tpowell1830

Offline bd139

  • Super Contributor
  • ***
  • Posts: 23018
  • Country: gb
Re: Why NOT use an Arduino for professional project?
« Reply #82 on: May 18, 2018, 07:17:08 pm »
Indeed. Also used for PC104 embedded stuff galore. I’ve shipped production gear with those in!
 

Offline tpowell1830Topic starter

  • Frequent Contributor
  • **
  • Posts: 863
  • Country: us
  • Peacefully retired from industry, active in life
Re: Why NOT use an Arduino for professional project?
« Reply #83 on: May 18, 2018, 07:40:18 pm »
I am especially amused by all the responses of the form "I would never use an Arduino module because my hardware design would be SO much better than theirs" (wrt EMI, Power, connectors, "proper USB circuitry", on an on...)  "and any software I write would be SO much better than the crappy arduino core and libraries."   Is spite of the obvious existence of thousands of "professional projects" that have crappy HW and SW (Sturgeon's Law, you know.)
(huh.  I might almost expect an inverse linear correlation - a 98th percentile project (top 2%) might have a 2% chance of using an arduino avr-class module, while an "average" project might have a 50% chance of using one.  (although, as you hit the below-average projects, I'd expect all sorts of random stuff to show up.)

SW licensing with the Arduino core and libraries is theoretically a big problem, because while most authors who have slapped inappropriate licenses on code don't care, a couple have intentionally viral licenses (or are they designed to get you to pay for alternate license arrangements?  Who knows.)

Thanks westfw for the pertinent comments.

I am surmising that the software is open and as long as your written software part is made available, the license agreement is intact. Is this not true? In a B2B environment, most businesses are not worried about the ability to change software for a device that is doing the job, so I see no reason not to freely give them all of the code. Most do not have the time to fiddle with such things anyways, since they would hire me to produce a solution. I see no problem with giving the company all of the code. My main ideas for products are of a B2B nature anyways.

For a product for the general public is another can of worms, which I probably would not do unless it was for a specific sector of the general public, such as those who would purchase 3d printers and those who would use a bench top router/mill/laser cutter. Although I do not have plans for any such device, I could see possibly in the future defining a product that is similar.  This segment of the general public is more curious and technical minded by definition, and I would not hesitate to give them the software either and tell them to modify to oblivion, all warranties are null and void when this happens, however, modify at your own risk.
PEACE===>T
 

Offline Wilksey

  • Super Contributor
  • ***
  • Posts: 1329
Re: Why NOT use an Arduino for professional project?
« Reply #84 on: May 18, 2018, 10:21:07 pm »
I have had a quiet chuckle to myself when reading some of these posts.

I have never used an Arduino myself in a professional product, but as I have said previously, I have seen in several industries Arduino's plonked in the centre of them.

The thing that made me chuckle was people talking about "full size Uno", at least 3/4 of the products i've seen (in the food industry) have used Megas!

The thing I have found is that the people requesting these products don't really care if you shove a turd in a box as long as it "works" then they don't really care, you could shove a banana or potato in a box and they'd be happy as long as it tells them the temperature of a pot or pan.  :-//
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 4196
  • Country: us
Re: Why NOT use an Arduino for professional project?
« Reply #85 on: May 18, 2018, 10:47:45 pm »
Quote
I am surmising that the software is open and as long as your written software part is made available
AFAIK, as long as you're willing to provide the source code of your entire "project" to anyone, you should be fine.  I'm not sure about the status of keeping code private between the producer and the actual customer.
The complications arise when you want the software to be "proprietary" (non-open), something a lot of developers of "professional projects" would prefer, for various reasons.  Various Arduino officers have said they allow such proprietary code using the Arduino core libraries, but that's not what either "GPL3" or "GPL3" (which authors have slapped on various 3rd party libraries) says, and even the LGPL license used by the core has "difficulties" with statically-linked deeply embedded microcontroller software.   If you work for a company with lots of lawyers, you are likely to face barriers to using Arduino libraries  (I'm sure that RMS is really proud of keeping so many lawyers employed. :-( )
In the absence of lawyers, a company with a project using Arduino libraries might be faced with paying "other" license fees, or with releasing their "private code" as open source.

For example, right now, I'm looking at the EtherCard library for ENC28j60 Ethernet/ip/tcp.  It's all GPLv2, which I interpret (I am Not A Lawyer) as meaning that you can only use it for open-source projects.  I find that annoying, and it makes me feel like not wanting to make improvements to the library :-(
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 3998
  • Country: nz
Re: Why NOT use an Arduino for professional project?
« Reply #86 on: May 19, 2018, 02:09:35 am »
Quote
I am surmising that the software is open and as long as your written software part is made available
AFAIK, as long as you're willing to provide the source code of your entire "project" to anyone, you should be fine.  I'm not sure about the status of keeping code private between the producer and the actual customer.

No, not to "anyone".  You only, under the GPL, have to provide source code to those you distribute the binary programs to. Not the rest of the world.

What RMS has wanted, from the start, is the freedom to modify things that he owns.
 
The following users thanked this post: newbrain

Offline bd139

  • Super Contributor
  • ***
  • Posts: 23018
  • Country: gb
Re: Why NOT use an Arduino for professional project?
« Reply #87 on: May 19, 2018, 07:47:47 am »
That’s fine. But it missed one failure mode which is distributing the fixes you had to make that the upstream vendor ignored. Ergo you end up with a ton of forks with the distribution and management of that as well. Then there’s the whole linking problem which is where your proprietary product (nothing wrong with that) is linked with an open source product. These days the hardware is trivially reproducible. The software is your entire business IP.

Ultimately no one really can be bothered with all that shit, the risk or dealing with the upstream vendors (who incidentally are usually either asshats or thoroughly incompetent or don’t care) so GPL licensed stuff gets banned.

This tangle actually has created a market for people who deal with license compliance issues. In large companies this is a big issue.

Look at FreeBSD and Apple. They are on an “eliminate GPL” components thing. They favour apache and BSD licenses. Even Microsoft won’t touch the GPL.

RMS needs to understand that without restriction is the only freedom. Otherwise we end up with some pseudo freedom of speech apart from being offended crap.
« Last Edit: May 19, 2018, 07:51:12 am by bd139 »
 

Offline daveshah

  • Supporter
  • ****
  • Posts: 356
  • Country: at
    • Projects
Re: Why NOT use an Arduino for professional project?
« Reply #88 on: May 19, 2018, 07:54:39 am »
Yep. I feel that the open source FPGA world is moving to permissive licenses (MIT, BSD, ISC), it's certainly where I am going and a good thing in my opinion.
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 3998
  • Country: nz
Re: Why NOT use an Arduino for professional project?
« Reply #89 on: May 19, 2018, 11:07:13 am »
Look at FreeBSD and Apple. They are on an “eliminate GPL” components thing. They favour apache and BSD licenses. Even Microsoft won’t touch the GPL.

RMS needs to understand that without restriction is the only freedom. Otherwise we end up with some pseudo freedom of speech apart from being offended crap.

Yes, I personally decided 20 years ago that I'll only put serious effort at home into open source projects that I can use in proprietary products I participate in at work. The Boehm garbage collector is one example. Or the "Gwydion" d2c Dylan compiler. Now, LLVM but not GCC.

I'll sometimes contribute a two line bug fix or something to a GPL project, but I'm never going to add a major new feature to one.

OK, except something like the Linux kernel. It's GPL but it's not "linked" to or viral to every other damn application on the system.
 

Offline bd139

  • Super Contributor
  • ***
  • Posts: 23018
  • Country: gb
Re: Why NOT use an Arduino for professional project?
« Reply #90 on: May 19, 2018, 11:11:25 am »
Yes we’re llvm / clang fans :)

We’re trialling FreeBSD at the moment because lower footprint, much better toolchain, ZFS, proper ACL support, no license issues, conservative engineering, documentation.

I got put off after fixing something in a freedesktop project and never getting anywhere. It’s still broken now, 7 years later. It’s even on launchpad as broken in Ubuntu. On that basis we fork and fix. We have one Postgres engineer available now as well which is cool.
 

Offline JPortici

  • Super Contributor
  • ***
  • Posts: 3452
  • Country: it
Re: Why NOT use an Arduino for professional project?
« Reply #91 on: May 19, 2018, 12:34:39 pm »
5. I regularly break the compiler which appears to compile a cross between C, C++, pig latin and something that got farted out of MIT media lab.
10. 99.9% of the information out there is how to flash an LED.
11. So many charlatans kicking out utter crap in the ecosystem out there.
12. The IDE is like being buggered with a broken wine bottle.

5: bwahahaaa. the most accurate description ever.
10 : yup
11 : more yup
12 : even more yup. it is 2018 can we have breakpoints , tracing , variable inspection , instead of having to resolve to debugging using print commands ?

seems relevant

https://hackaday.com/2018/05/18/arduino-just-introduced-an-fpga-board-announces-debugging-and-better-software/

i have to say i really fancy that FPGA board, may be the first duino thing i get to use
69.99 though
« Last Edit: May 19, 2018, 12:37:35 pm by JPortici »
 
The following users thanked this post: newbrain

Offline David Chamberlain

  • Regular Contributor
  • *
  • Posts: 249
Re: Why NOT use an Arduino for professional project?
« Reply #92 on: May 20, 2018, 09:34:55 am »
Does this answer OP's question?  :phew:


 
The following users thanked this post: ez24, JaspaJami

Offline james_s

  • Super Contributor
  • ***
  • Posts: 21611
  • Country: us
Re: Why NOT use an Arduino for professional project?
« Reply #93 on: May 20, 2018, 05:55:05 pm »
Does this answer OP's question?  :phew:





Ship it! :)
 

Offline SiliconWizard

  • Super Contributor
  • ***
  • Posts: 14297
  • Country: fr
Re: Why NOT use an Arduino for professional project?
« Reply #94 on: May 20, 2018, 06:10:40 pm »
@David Chamberlain: Nice product! :-+  :popcorn:

Everything to be said has mostly been said here. But just for good measure: one question. Why would you? And what would make that seemingly attractive? Hardware? Software? Those are the points you need to consider.

Just a couple thoughts:
  • Arduino boards are nothing more than a µC with a few components around. If you're going to design a PCB for your product anyway, there is absolutely no reason not to include the µC on it IMO. It will be cheaper, more reliable (no extra connections), much smaller, not dependent on any funky vendors/distributors that usually target the hobbyist market, etc.
  • Investing in oldish AVR stuff is not a good investment of your time at the moment IMO. There are quite a few dev. boards now claiming to be "Arduino-compatible" which are not based on AVR µCs though, so this point may not apply in all cases. But with such a fragmentation, I'd be a bit wary of the robustness of the Arduino libraries on all supported platforms. See below.
  • About the libraries, which are maybe the strongest selling point: I'm not sure how robust they are. I'm sure you could figure that out from the source code, but if you're going to audit the source code and maybe validate it, it might be less time-consuming to write your own code. It's the eternal question. And I'm not saying Arduino libs are bad per se, I'm just saying that I don't know and that they have mostly been written with hobbyist uses in mind. That doesn't mean they are bad. That just means they weren't written with reliability requirements IMO.

Dev. boards can be great for quick prototyping purposes. I use them on a regular basis (no Arduino though, but that's another point).

Now the worst part in all of this may not be to ponder over the use of Arduino's, but rather to think that you can go from a quick prototype to a product by just stuffing everything in a box and calling it a day. Even if it's a nice box and not just carton.  :-DD
 

Offline Fungus

  • Super Contributor
  • ***
  • Posts: 16561
  • Country: 00
Re: Why NOT use an Arduino for professional project?
« Reply #95 on: May 20, 2018, 06:18:18 pm »
  • Arduino boards are nothing more than a µC with a few components around.

If you don't need RS232 then it's just the uC. You can use the internal clock.
 

Offline CatalinaWOW

  • Super Contributor
  • ***
  • Posts: 5170
  • Country: us
Re: Why NOT use an Arduino for professional project?
« Reply #96 on: May 20, 2018, 06:50:53 pm »
Just to add some fuel to the fire.  As someone who frequently gets to troubleshoot and repair old equipment for which the documentation is frequently lost or otherwise unavailable, the use of a common module such as the Arduino is a godsend.

So another reason not to use the Arduino is to protect future sales by making maintenance of your widget more difficult.  This strategy is common in many industries.  This reason applies most strongly to low production items for which an Arduino might otherwise be suitable.
 

Offline james_s

  • Super Contributor
  • ***
  • Posts: 21611
  • Country: us
Re: Why NOT use an Arduino for professional project?
« Reply #97 on: May 20, 2018, 09:07:40 pm »
I'm not sure how an Arduino would make repairing the thing any easier. If the micrcontroller is shot and you don't have the source then you're pretty much SOL anyway.
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 4196
  • Country: us
Re: Why NOT use an Arduino for professional project?
« Reply #98 on: May 20, 2018, 09:45:01 pm »
Quote
Why would you?
Well, for example, if I design "MY" part of a "professional" project as a shield that plugs into an Arduino Uno, and manage to fit its software within the facilities that the arduino provides, I suddenly gain the ability to swap out the processor and communications channel for any one of quite-a-few alternatives from many vendors.  A fully custom design would be a lot harder to move from "ATmega328p with serial" to "48MHz SAMD21 with native USB" to "ESP8266 with WiFi" to "120MHz SAMD51 with native USB."
 

Offline Fungus

  • Super Contributor
  • ***
  • Posts: 16561
  • Country: 00
Re: Why NOT use an Arduino for professional project?
« Reply #99 on: May 20, 2018, 10:33:24 pm »
Quote
The main problem is the crappy connectors on boards like the Arduino Uno. There's no way you can use those for production.
Um.   You mean the same 0.025inch square "header connectors" that are used, and have been used, in everything from (billions of) PCs and other commercial products for about 50 years now?

I guess if it's in the form of an Arduino shield then it could pass muster.

I meant the typical Arduino+Breadboard+rats-nest-of-Dupont-cables that makes up the average Arduino Uno project.

Indeed. Also used for PC104 embedded stuff galore. I’ve shipped production gear with those in!

PC104 is an Arduino shield by another name.   ;)
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf