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

0 Members and 1 Guest are viewing this topic.

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: Why NOT use an Arduino for professional project?
« Reply #50 on: May 17, 2018, 10:46:33 pm »
I don't like generalizations like "an Arduino board should not be used in a professional product". This is engineering guys! If it satisfies the requirements, then it is good to use, be it professional or amateur, it's that simple. Many of the show stoppers mentioned here can be things that aren't even required for that particular customer.

An Arduino based solution would work very well and would also have the right price.
EMC issues can bite you in the ass anytime. I recall a question in a newsgroup from someone who used an Arduino and a relay board. The problem was that this setup picked up so much noise from the load the relays where switching that it wasn't stable. In the end it cost him way more time to figure out what was wrong and fix it compared to making a decent PCB layout. I/O and power supply protection is another area where things can go horrible wrong and where the Arduino shields don't seem to be designed for. But yes, I've seen very mission critical systems being build from Arduino-esque hardware.  :scared:
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline james_s

  • Super Contributor
  • ***
  • Posts: 21611
  • Country: us
Re: Why NOT use an Arduino for professional project?
« Reply #51 on: May 17, 2018, 11:27:35 pm »
My air conditioning controller is based on Arduino. It’s in my house made of Meccano, and my car made of LEGO.

And if you had made that all yourself I would be highly impressed. No good engineer would try to make stuff that way to sell to the mass market though.
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 4032
  • Country: nz
Re: Why NOT use an Arduino for professional project?
« Reply #52 on: May 18, 2018, 01:50:18 am »
It is not snobbery. It is experience with shipping product in large quantities.

I've been saying from the start, if you're going to ship millions of them then OF COURSE design your own board with the CPU and support stuff directly on it.

Quote
There is some sort of confusion here. If you plan to make 10 or even a 100 of something, then by all means use whatever you have at hand. If you need 10K of something, then things change a lot.

Which is precisely what I (and others) have been saying.
 
The following users thanked this post: tpowell1830

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 4032
  • Country: nz
Re: Why NOT use an Arduino for professional project?
« Reply #53 on: May 18, 2018, 02:06:24 am »
"Real engineers don't eat quiche"

To summarise : the main reason for not using an Arduino is professional snobbery.  ;)

Not snobbery! If you have to spin a board to fit onto the Arduino's connectors, you might as well put the micro on that board and save the expense of buying the Arduino.

There is no such thing as "The Arduino". I don't think anyone is suggesting using an Arduino Uno in final products.

There are "Arduino" boards running a variety of CPUs .. not only AVR but ARM, Espressif, RISC-V, even x86. Some come in Arduino Uno compatable form factors with those funky connectors, but others come in the form of a tiny board that is perfect for building into other projects. And they often cost $3 or $5 or something like that.

I've already mentioned a number of these by name: Pro Mini, Teensy, LoFive. Do I need to include a photo?



That's $2.19 from Ali Express, quantity 1. More like $1.65 if you buy a few.

Here's a 320 MHz 32 bit RISC-V one. It's a bit more expensive at $25 assembled and tested, but it's open source hardware (design files are on github) and you can buy the FE310-G000 SoC for $5. You can program it bare metal yourself, or you can use the Arduino IDE and/or libraries. Up to you.


 

Offline @rt

  • Super Contributor
  • ***
  • Posts: 1059
Re: Why NOT use an Arduino for professional project?
« Reply #54 on: May 18, 2018, 05:05:45 am »
So what did it boil down to? If you’re making 10 of something, maybe.

Otherwise, what does the Arduino platform offer an EE or professional programmer?
What unique design, or software library that hasn’t existed for at least a decade that everyone doesn’t already have in their toolbox?

 

Offline Nusa

  • Super Contributor
  • ***
  • Posts: 2416
  • Country: us
Re: Why NOT use an Arduino for professional project?
« Reply #55 on: May 18, 2018, 06:45:17 am »
The real problem with this entire thread is that "Arduino" is an extremely non-precision term that obviously has different meanings to different readers in the responses so far.
To one guy it's only the Arduino Uno hardware itself.
To another it includes the issues with the standard hand-holding libraries, completely ignoring the fact that competent users are smart enough to not use the stupid stuff that's in there for newbies.
To still another it might include the entire line of AT processors...for instance the ATtiny85, which might be a single component solution for simple embedded tasks.
Or any subset or superset of the above.

Your classic component tester, for which there is a HUGE thread in this forum, would be considered a highly successful Arduino-based product by most of us, if you're looking for an example.
 
The following users thanked this post: tpowell1830

Offline westfw

  • Super Contributor
  • ***
  • Posts: 4199
  • Country: us
Re: Why NOT use an Arduino for professional project?
« Reply #56 on: May 18, 2018, 07:10:39 am »
To get serious: a major reason for not using "commodity" module-level boards inside a professional is "design churn" - you become dependent another vendor's design that may not have the staying power that you want for your product.  Or it may go through design changes that are incompatible with your product.   The last Nano clones I bought I consider something like 5th-generation; I really like them, design-wise, but another Nano-like product from the same vendor (with built-in screw terminals) only lasted about a year.
And pity the poor bastard who designed a product based on the Arduino Star Otto ("This is great!  An Arduino-programmable board with lots of pins and a moderate-resolution LCD display!")

The company I used to work for actually spent a lot of resources on deciding whether to do a version of their product based on commodity x86 hardware (PC Motherboards, networking and IO cards), instead of the (very expensive) custom hardware we were using (some of our competitors and would-be competitors were doing it.)  In the end, they decided that the commodity hardware had too much variation - we'd end up spending nearly as much time testing "the latest rev" of board combinations as we would designing (better) custom hardware.  Sure, you can get long-lived "commodity-compatible" hardware, but suddenly it lacks the advantages of actual commodity hardware (like the low price.)
 
The following users thanked this post: tpowell1830

Offline westfw

  • Super Contributor
  • ***
  • Posts: 4199
  • Country: us
Re: Why NOT use an Arduino for professional project?
« Reply #57 on: May 18, 2018, 07:56:40 am »
Quote
real engineers don't need to use dumbed down libraries which are 10-100 times slower than doing the things right way.
Ah.  You mean like ASF, TivaWare, STM HAL or Cube, Harmony, and stuff like that?  I've looked pretty closely at several of those, and I'm really not convinced that they're any better than the Arduino code.  And they're a lot less portable :-(
And yet everyone seems to agree that it's not really worthwhile to write your own USB or TCP stacks.  (and it would be nice if people complaining about digitalWrite() demonstated a clearer understanding of just how limited that "50x faster 'right way'" code really is.


Quote
experience with shipping product in large quantities.

If you plan to make 10 or even a 100 of something, then by all means use whatever you have at hand.
Amen to this.  I suspect that the number "professional products" that are well under 1000 units/year is a lot larger than people assume.  "Professional product" doesn't necessarilly mean "mass produced."


Quote
Chinese nano is not cheaper
Huh.  You're right!  Atmega328p prices have come down while I wasn't paying attention.

-----

In a way, the ATmega328-class Arudinos are a poor example to be using for this discussion.  The reasons to NOT use an AVR Arduino in a professional product aren't really that "strong", but as many people have pointed out, the reason TO use one are also weak.  It'a a trivial design that you'd hope anyone with a "product" involving ANY additional hardware would be able to plunk down on their board as well.   The arguments become more complex with more complex "modules" - other people have mentioned that you can design products around PC104 or any number of "standardized bus" products where entire boards are provided by someone else.  (early cisco routers used multibus ethernet cards from 3com or Interlan, HDLC cards from SBE, 1822 interfaces from ACC, and nonvolatile memory cards from someone else.  For example.)  You can visit trade shows populated mostly by vendors of CPU and etc modules aimed at ... other vendors.
And it all starts to make sense at some level of complexity; if someone else has done the hard work of the difficult parts of setting up a high-density BGA CPU/SDRAM/HDMI/Ethernet/USB when all I want my product to do is ... something higher level, then putting an RPi Compute Module or x86 SBC inside my product might make a lot of sense.  Exactly where "the line" is, is difficult to say.  (and alas, most Arduino "modules" do not address the sort of quality issues that the vendors of the more complex boards address.  But ... they could.)
 

Offline bd139

  • Super Contributor
  • ***
  • Posts: 23018
  • Country: gb
Re: Why NOT use an Arduino for professional project?
« Reply #58 on: May 18, 2018, 08:22:55 am »
Three reasons I wouldn't use an Arduino based device for a commercial product that turned into a lot more reasons than three:

1. Interrupt hell. Jesus what a mess.
2. LGPL is a pain in my ass when it comes to distributing modified sections of the many broken half cocked libraries written by blind crack smoking monkeys.
3. It makes me feel dirty. Really dirty. Like I licked a toilet seat dirty. I can't sleep knowing there's some arduino in there. I'm a microcontroller racist and I admit it.
4. Pin assignments are arbitrary. Pin hell instead of DLL hell.
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.
6. Awful debugging tools.
7. C++.
8. Really really expensive. Whole PIC dev kit cost me much less than one genuine arduino.
9. Unreliable clones. I've had some that weren't even soldered properly!
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.

Most of the above applies to all varieties of arduinos.

Just to add, I write my OWN libraries most of the time. My LCD lib for AVR-gcc is 72 lines of well written C with three exposed functions. That's all you need!
« Last Edit: May 18, 2018, 08:26:03 am by bd139 »
 
The following users thanked this post: neil555, newbrain

Offline Ice-Tea

  • Super Contributor
  • ***
  • Posts: 3070
  • Country: be
    • Freelance Hardware Engineer
Re: Why NOT use an Arduino for professional project?
« Reply #59 on: May 18, 2018, 09:11:40 am »
To get a little bit back on track: you mentioned you've found these in the food industry..

What about mechanics? These machines tend to have rotating and/or shaking parts. How do you secure your DC/DC jack? Vibrations may wear it out and/or force it to shake out over time. Shocks may dislodge shields (or break of heavy components). Buying chinese clones? How do you know they comply to RoHs/REACH/...? Do you think it doesn't matter? Perhaps the food industry disagrees...

EMC/EMI compliance has been mentioned. There's heavy motors in the food industry. Your board may reset/hang because of it or if you use the ADC readout very poor measurements. Brownouts? Voltage sags? Is your mcu correctly configured (ie watchdog, monitoring) to handle such things?

Snobbery? Perhaps. But it is an indication of how much effort you want to spend to deliver a good and reliable product. If you need to connect stuff and you strip the cables, solder them together and put some electrical tape over it will work just fine. But if I'd have to choose between this:

and this

I know what to choose, even if they are totally functionally equivalent and demonstrably equally reliable.

Reminds me a lot of the 'rigor' discussion.

Offline Fire Doger

  • Regular Contributor
  • *
  • Posts: 207
  • Country: 00
  • Stefanos
Re: Why NOT use an Arduino for professional project?
« Reply #60 on: May 18, 2018, 09:49:30 am »
I agree about most of what already been said.
Plus I don't believe it's a good practice, if you do 10 boards sure many reasons doesn't matter but if time is not critical making a proper design will improve your workflow, your toolbox etc that will come handy when you won't be able to use an Arduino compatible board or WIRING.

Of course if you design something open source like soldering Iron (ts100?) WIRING is the best solution because its wide spread on your targeting market.

There shouldn't be "must" in engineering, for every option there are prons and cons, each project is different, but generally Arduino compatible boards, WIRING, RPI etc have more cons compared to bare solutions assuming that designer is not designing something out of his league.

If for example you want to design WIFI, BLE, TFT etc etc the problem is not that there are no libraries for other mcus, it's that you are making something out of your league, nothing bad with that but the proper solution for you is based on what you are *not* able to do and not on what's the best for the product and production.

To conclude my opinion is that by trying the *proper* way (more like the option with less cons in industry) someday you will be able for bigger/harder implementations, Arduino will always be a dev platform for newbies and it will limit your progress as an engineer.

I use many Wiring libs as referense, mainly because I am a newbie and *SOME* of them are nice and using proper design patterns, if Arduino's lib had a better implementation than mine then it's time for some reading :-DD

Hardware is just hardware of course, its name doesn't matter if it works (including EMI/EMC etc).
 

Offline Rerouter

  • Super Contributor
  • ***
  • Posts: 4694
  • Country: au
  • Question Everything... Except This Statement
Re: Why NOT use an Arduino for professional project?
« Reply #61 on: May 18, 2018, 10:02:07 am »
Yep seems the divide is split down the middle of the physical modules, or the software implementation.

I am good at hardware, and poor / lazy at software, I lay my board out built to pass every idiot check i could dream up, (does not mean there isn't a better idiot, he just hasn't found me yet)
So i see there is a library out there for what I want to do, grab that,

1. Proof of concept, Ugly as heck patch code to get it working in a timely manner, to get the project green lighted

2. Cleanup pass while boards are being made, format and clean up everything that wasn't used, including all the library functions that are not used, reducing the complexity while meeting the same requirements, sanitizing values passed to functions, and rewriting blocks where the code looks sketchy.

3. Product Testing, see if the hardware works, possibly some small tweaking, then ship

So a number of my products are using an arduino centered bootloader, the IDE is setting the fuses and uploading my software, and it works, If your code locks up the arduino, it would probably lock up most other platforms,

Most other options seem to scare away other people from attempting to program a batch of boards, for the IDE, its plug in programming header, select burn boot loader, select upload, and its done, the UI is not a command prompt, I tired that with AVRdude and the technicians where struggling.

So to wrap up, using an "arduino" in a professional product doesnt just mean throw a uno and some sheilds in a box, as the IDE ecosystem still counts, at that point its a microcontroller with prebaked libraries, which while ugly or slow at times generally are well tested for the older chips. There are gaps, there are pitfalls, just like any other manufacturers prebaked libraries, take it at that face value, and I would say, use the chips all you want, but dont trust the libraries 100%, rip out what you don't use and do a quick sanity check. this is the only place I can see things going horribly wrong.

And a reminder, there is nothing in an arduino IDE that forces you to use there macro code, you can write assembly and flip bits in registers, However i agree the debugging is rubbish, so I try to not get to points where I need it.
 

Offline Kjelt

  • Super Contributor
  • ***
  • Posts: 6460
  • Country: nl
Re: Why NOT use an Arduino for professional project?
« Reply #62 on: May 18, 2018, 10:08:00 am »
Some reasons besides already mentioned I would be hesistant to use Arduino boards for production:

- are the mlcc caps correct value and from a reputable manufacturer and derated properly? (you don't want to recall your entire product because the original producer wanted to save $0,01 by using a 4,7uF/6V3 mlcc from whoknowswhere for a 5V line and 4,7uF requirement.
- are the other components like dc-dc converter or other stuff genuine and will they last 4 years 24/7 ?
- pcb decent or is it carton and traces to small or overetched, etc.

My previous company used BBB boards in some of their products but they did not use the original ones, they made themselves sourced with their components , their pcb layout and formal coating. If there was a problem they could trace it back and solve it, if you have 5 manufacturers with 10 different boards over time and a problem occurs go start tracing which board, which manufacturer, which clients got that board etc. etc. This is going to cost you so much time all profit is evaporated on that process, or unhappy clients.
 

Offline madires

  • Super Contributor
  • ***
  • Posts: 7763
  • Country: de
  • A qualified hobbyist ;)
Re: Why NOT use an Arduino for professional project?
« Reply #63 on: May 18, 2018, 10:57:52 am »
Licenses and IP.
 

Offline nfmax

  • Super Contributor
  • ***
  • Posts: 1560
  • Country: gb
Re: Why NOT use an Arduino for professional project?
« Reply #64 on: May 18, 2018, 11:06:58 am »
Isn't the whole point of open source hardware, like BBB or Arduino, that you can prototype using the 'as delivered' modules, then take the design files, modify them as you wish, and build your own tailored hardware, without being sued?
 

Offline bd139

  • Super Contributor
  • ***
  • Posts: 23018
  • Country: gb
Re: Why NOT use an Arduino for professional project?
« Reply #65 on: May 18, 2018, 11:33:26 am »
Depends which flavour of open source.

There's a poo flavoured one.
 

Offline newbrain

  • Super Contributor
  • ***
  • Posts: 1719
  • Country: se
Re: Why NOT use an Arduino for professional project?
« Reply #66 on: May 18, 2018, 11:49:51 am »
Depends which flavour of open source.

There's a poo flavoured one.
Let's say Durian flavoured...appealing to some, repulsing to many.

Isn't the whole point of open source hardware, like BBB or Arduino, that you can prototype using the 'as delivered' modules, then take the design files, modify them as you wish, and build your own tailored hardware, without being sued?
The license for the HW design files is Creative Commons Attribution Share-Alike, so you are in the clear only if the modified files are again shared under the same license.
Why you would want to modify them rather than start from scratch is beyond me, given that the designs are mostly trivial...

With SW the picture is either blurry or ugly depending on your focus...the basic libraries are LGPL (but being statically linked that is not much different from regular GPL) and 3rd (4th?) party libs are anything that flies in the developers' heads (CC, LGPL, GPL, MIT, possibly others). CC is especially silly for SW.

In general -given the (L)GPL tainting- if the code is not made available to your customers you are in violation.

[TINLA, IANAL, but I need to check this kind of stuff for work...]
Nandemo wa shiranai wa yo, shitteru koto dake.
 
The following users thanked this post: tpowell1830

Offline RoGeorge

  • Super Contributor
  • ***
  • Posts: 6201
  • Country: ro
Re: Why NOT use an Arduino for professional project?
« Reply #67 on: May 18, 2018, 12:26:47 pm »
For a bird eye view of various licensing types in plain English: https://tldrlegal.com/

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9890
  • Country: us
Re: Why NOT use an Arduino for professional project?
« Reply #68 on: May 18, 2018, 01:54:09 pm »
At least the Arduino IDE problem is solvable.  The Visual Micro Arduino add-in for Microsoft Visual Studio works very well.  I haven't tried any of the debugging features (if there are any) because I tend to do that kind of thing with printf().

I bought a half-dozen clones from Amazon yesterday and I soldered one up last night.  I was deeply concerned about reported issues re: the CH340 USB->Serial chip.  Not a problem!  Plugged the board into my PC, the OS found the gadget, did whatever was required and the Arduino IDE could find and program the device.  Magic!

Same from inside Visual Studio.

These were the expensive clones at $4 each (nothing but the best for my projects!):

https://www.amazon.com/gp/product/B0713XK923

This is a neat little terminal board:

https://www.amazon.com/gp/product/B00X3L2RJK
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 8517
  • Country: us
    • SiliconValleyGarage
Re: Why NOT use an Arduino for professional project?
« Reply #69 on: May 18, 2018, 04:01:46 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 ?
Professional Electron Wrangler.
Any comments, or points of view expressed, are my own and not endorsed , induced or compensated by my employer(s).
 
The following users thanked this post: Thewafflication

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 #70 on: May 18, 2018, 04:38:54 pm »
I am hearing a bunch of opinions, but there are a few gems in there, such as:

  1. the quality of boards are variable, so quality examination and testing is required
  2. the compiler and libraries are a bit wonky, again testing
  3. the reliability may be only a few years (3, 4 or 5?)
  4. there may need to be external connections, (see original query "if the platform will do the job")
  5. opinionistos think that the platform is not worthy (snobbery?)

As I said in my original post, "if the platform will do the job". So far, I have not seen anyone writing any logical reasons that would pre-dispose the platform from NOT being used in a product. The logistical reason, volume, would be a math problem; i.e. price breakpoints. This is logical and a bean-counter decision, not really strictly usage. A PCB that holds the basics for the product has a price tag as well in the fact that there would need to be a PCB designer that is capable of technical layouts and then the boards, once created would all need to be examined and populated/tested. All of this has a cost as well. As I said, this is a logical decision made using a mathematical deduction.

I appreciate everyone's input, however, please show me some logical, compelling reasons NOT to use an Arduino platform when it WILL do the job. This is the question in my original post.
PEACE===>T
 

Offline ataradov

  • Super Contributor
  • ***
  • Posts: 11248
  • Country: us
    • Personal site
Re: Why NOT use an Arduino for professional project?
« Reply #71 on: May 18, 2018, 04:44:07 pm »
I appreciate everyone's input, however, please show me some logical, compelling reasons NOT to use an Arduino platform when it WILL do the job. This is the question in my original post.
You just outlined them yourself. If you are OK with all those things and do not consider them to be a problem, then there are no reasons not to use it.
Alex
 

Online chris_leyson

  • Super Contributor
  • ***
  • Posts: 1541
  • Country: wales
Re: Why NOT use an Arduino for professional project?
« Reply #72 on: May 18, 2018, 04:59:41 pm »
If it uses an ATmega processor then the pins are not circuit proof when used as outputs. I've turned quite a few boards into scrap because of this.
 

Offline bd139

  • Super Contributor
  • ***
  • Posts: 23018
  • Country: gb
Re: Why NOT use an Arduino for professional project?
« Reply #73 on: May 18, 2018, 05:03:15 pm »
I appreciate everyone's input, however, please show me some logical, compelling reasons NOT to use an Arduino platform when it WILL do the job. This is the question in my original post.
You just outlined them yourself. If you are OK with all those things and do not consider them to be a problem, then there are no reasons not to use it.


Yep some people like driving a wreck and are happy with that risk!
 

Offline maginnovision

  • Super Contributor
  • ***
  • Posts: 1963
  • Country: us
Re: Why NOT use an Arduino for professional project?
« Reply #74 on: May 18, 2018, 05:06:21 pm »
For me personally I'd say size and cost for hardware. It can also be difficult to interface with other hardware. For software in some ways there is no difference. You can still just write stuff using C and ASM for avr. You get the benefit of some easy to use libraries which can be replaced if/when you decide. However the ports are awkward and you need to either remap things or keep the number->port:bit map handy for non arduino specific stuff. Licensing is generally not an issue but you do need to check every library you use.

Building custom hardware, like has been said, is cheaper and you get exactly what you need(level shifters, power supply, sd interface...). You also have more options for the MCU since only a handful of avr chips have arduino boards for them. If you don't care about the cost and specificity none of that matters. In the end it is really up to you as to the applicability of an arduino board and code for your project.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf