(SOLVED/ANSWERED)Why NOT use an Arduino for professional project? - Page 1
Forum section: electronics / general

author: tpowell1830
author_rank: Frequent Contributor
timestamp: May 16, 2018, 04:17:33 pm
content: I was wondering, because I have heard embedded developers say that Arduinos should never be used for a professional product or project. The only reason that I can think of, not being an embedded developer, is that Arduinos are so easy to change the running software. Is that the reasoning behind not using Arduino, even if it is in scope of use, on a product?Can someone name other reasons why you wouldn't use an Arduino, if it would do the job?

author: rstofer
author_rank: Super Contributor
timestamp: May 16, 2018, 04:26:48 pm
content: On a product you are unlikely to need all the headers and board space. More likely, the product would be developed with an Arduino but built with just the ATmega328P chip - assuming the Arduino had sufficient resources.Then there may be licensing or copyright issues - I wouldn't know anything about that.If I were going to incorporate an Arduino, it would be the Nano for the form factor. I would just plug it into a motherboard and call it good. I tend to do that for my more permanent projects. I just design the interface board and plug in the uC. In fact, I have a PCB coming in tomorrow where I built Ben Eater's EEPROM programmer. The PCB carries the Nano, a ZIF socket and a couple of 74LS595s. The board it trivial but it should stay together a lot better than a prototype board with jumper wires. Using the Nano doesn't take up much board space and I can just solder the Arduino right to the PCB.

author: igendel
author_rank: Frequent Contributor
timestamp: May 16, 2018, 04:30:21 pm
content: On the hardware side, the cheap clones are unreliable, while the genuine ones are very expensive. Also, for most professional projects you have no use for the Arduino board that surrounds the microcontroller, it just limits your design and takes up precious space.I won't even start talking about the software

author: rstofer
author_rank: Super Contributor
timestamp: May 16, 2018, 04:36:45 pm
content: Quote from: igendel on May 16, 2018, 04:30:21 pmOne way is to do the development with the Arduino libraries and then start over with bare metal for the product. Most of the library code won't be required and the bits that are can be rewritten.For modest projects, I think the Arduino is a fast way to do 'proof of concept'. mbed (and all the variants) is another. There's a huge leap between an Arduino and an ARM Cortex <whatever> in terms of memory size, speed, peripherals and just about everything else. I really like the original LPC1768 mbed board. The online toolchain works well (although it is optional) and just dragging and dropping the executable onto the mbed device is a very slick way to program the device.Many of the STM32F boards are mbed compatible and supported by the online toolchain. They also support drag and drop for the executable. Very easy to work with.

author: ataradov
author_rank: Super Contributor
timestamp: May 16, 2018, 04:37:27 pm
content: "Never" is not in a sense that is is bad, it is just impractical for majority of production work, so you might just as well not use it at all. Qualified programmer can make things work with much less code with hand-written code, and AVRs are not all that hard to program that you would need an extensive support library. An less code means less effort in supporting and maintaining it.And this is only about the software, using actual Arduino boards in production devices makes no sense on any level.

author: ataradov
author_rank: Super Contributor
timestamp: May 16, 2018, 04:39:31 pm
content: Quote from: rstofer on May 16, 2018, 04:36:45 pmThis is not a great way, since you are being locked into architecture imposed by the Arduino environment, so even if you replace all the components, it will still have Arduino look and feel. Unless you want to rewrite everything, which you should have done to begin with.

author: Bassman59
author_rank: Super Contributor
timestamp: May 16, 2018, 04:43:44 pm
content: Quote from: tpowell1830 on May 16, 2018, 04:17:33 pmIf you have to spin a board for a custom shield, then you might as well include the microcontroller and its support stuff on that board, too. And that's when the Arduino becomes unnecessary.And since you're spinning your own board, you might as well get rid of the stuff you don't need, add things you do need, and make it in the form factor your design requires.

author: james_s
author_rank: Super Contributor
timestamp: May 16, 2018, 04:45:28 pm
content: Quote from: igendel on May 16, 2018, 04:30:21 pmThat has not been my experience at all. I have a bunch of the cheap clones and I cannot tell any difference in operation between those and the real deal.I would never personally integrate an Arduino into a commercial product, that's just sloppy, but I suppose it wouldn't hurt to use the bootloader and software. I think the biggest issue you'd have is protecting your code if you care about that, I don't think the Arduino environment lets you lock the code.

author: Wilksey
author_rank: Super Contributor
timestamp: May 16, 2018, 04:50:43 pm
content: A surprising number of companies use Arduino units in production equipment.

author: ataradov
author_rank: Super Contributor
timestamp: May 16, 2018, 04:51:43 pm
content: Quote from: Wilksey on May 16, 2018, 04:50:43 pmAny specific examples? Apart from sketchy 3D printers, of course.

author: tpowell1830
author_rank: Frequent Contributor
timestamp: May 16, 2018, 05:01:55 pm
content: 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?As for 'sketchy 3d printers', what makes them 'sketchy'?Ok, cost seems to be thrown in, how much does an Arduino cost compare to a custom board?One said the software is not up to snuff? How? Why?I appreciate input from all.

author: igendel
author_rank: Frequent Contributor
timestamp: May 16, 2018, 05:12:11 pm
content: Quote from: james_s on May 16, 2018, 04:45:28 pmUnfortunately, I personally encountered and/or repaired quite a few faulty clones. It could be anything, from poor soldering to wrong capacitor values or dysfunctional crystals. While some branded clones may be better than the cheapest anonymous ones, I still don't trust them for any project that actually needs to be reliable.I do use Arduinos a lot, clones included, for hobby work, small tests etc.

author: igendel
author_rank: Frequent Contributor
timestamp: May 16, 2018, 05:22:06 pm
content: Quote from: tpowell1830 on May 16, 2018, 05:01:55 pmObviously that depends on what else is on the custom board. And let's say you need an external memory chip. On a custom board that's an integral part of the design, but how do you attach it to the Arduino? How much would THAT cost you?Quote from: tpowell1830 on May 16, 2018, 05:01:55 pmAgain, depends on what you need to do. The simplest and most famous example, perhaps, is changing an output pin's output. The Arduino's "digitalWrite" command is about 40 times slower than direct port register manipulation. If, in your professional project, your microcontroller has to interact with fast electronics, this difference can be very significant.

author: ataradov
author_rank: Super Contributor
timestamp: May 16, 2018, 05:25:07 pm
content: Quote from: tpowell1830 on May 16, 2018, 05:01:55 pmWell, it is not like there is a single huge blocking issue with Arduino. There are a lot of small ones. The one got mentioned for example - do you want code security? Well, with plain Arduino you are out of luck. Want in-field updates? With Arduino bootloader you are limited to what it can do.There are minor limitations for production work that are all over the place. Not one of them is a deal breaker, but as a whole you better off designing stuff from scratch.And the bigger problem with starting with Arduino and moving away is that it does not buy you much in the end, yet you end up with a project structure that carries a history of drastic changes, instead of being cleanly engineered.Arduino gives you immediate gratification, and if this is something you need, then by all means go for it.

author: nctnico
author_rank: Super Contributor
timestamp: May 16, 2018, 05:26:58 pm
content: Quote from: tpowell1830 on May 16, 2018, 04:17:33 pmI'd split this into two sections: hardware and softwareThe hardware is unsuitable because connecting boards together is asking for connection and EMC problems. For a professional product you'll need a good, single PCB design with protection on the power supply and inputs/outputs.OTOH I don't see why you can't use the software. If you test it thouroughly and it works then it works.

author: NivagSwerdna
author_rank: Super Contributor
timestamp: May 16, 2018, 05:35:07 pm
content: Quote from: tpowell1830 on May 16, 2018, 04:17:33 pmNo reason unless you can find something cheaper... adding a AVR to your own PCB is probably cheaper and if you so wish you can make it Arduino eco-system compatible,Other solutions might give you some extra features... e.g. debugging and closer to bare metal performance.

author: Wilksey
author_rank: Super Contributor
timestamp: May 16, 2018, 10:58:09 pm
content: Quote from: ataradov on May 16, 2018, 04:51:43 pmI wasn't talking about 3d printers, I have been asked to update some products for at least 3 different companies who's products use Arduino, I can't give specifics, but I can tell you the industries include food + drink, transport and environment sensors, all with an actual Arduino dumped in the enclosure. These companies don't seem to really care for the hardware, they subcontract it to presumably whoever was cheapest at the time and as long as they get a "blinky box" that works, they don't really care for much else. Most if not all completely unmarked for CE, and a good number of wireless devices used.

author: james_s
author_rank: Super Contributor
timestamp: May 16, 2018, 11:01:27 pm
content: I wonder who they're subcontracting it to? Highschool students? I mean sure it will work, but that's just sloppy. It's like buying a new car and finding that the infotainment unit is an off the shelf laptop glued behind the dash.

author: ataradov
author_rank: Super Contributor
timestamp: May 16, 2018, 11:02:35 pm
content: Quote from: Wilksey on May 16, 2018, 10:58:09 pmWell, yes, if you don't care, then for sure use Arduino, RPi, or whatever you can find in your trash bin.Sure for one-off products that will never be updated or maintaned it may work.

author: IanB
author_rank: Super Contributor
timestamp: May 16, 2018, 11:10:04 pm
content: Quote from: tpowell1830 on May 16, 2018, 04:17:33 pmFor a one-off, or a low volume custom solution, then maybe an Arduino is convenient. It is a well defined and understood unit available off the shelf with a variety of interface options. For low volumes, off-the-shelf hardware is much cheaper than development time spent on custom solutions. Just the same way that nobody would design their own power supply module in preference to buying one in.That said, for a high volume commercial product, an Arduino would make much less sense:- it is too large- it carries unnecessary functionality- it is inefficient- it misses some custom functions that may be needed- it is too expensive in volume- it doesn't integrate tightly with off-board parts- etc.

author: Thewafflication
author_rank: Contributor
timestamp: May 16, 2018, 11:12:51 pm
content: Quote from: ataradov on May 16, 2018, 04:51:43 pmI can't say where, but generally they are used in places they don't belong...

author: james_s
author_rank: Super Contributor
timestamp: May 16, 2018, 11:17:25 pm
content: If you insist on embedding an Arduino, at least use one of the nanos with soldered connections, not the chunky full sized thing with a shield stuck on it.

author: rstofer
author_rank: Super Contributor
timestamp: May 16, 2018, 11:49:26 pm
content: Quote from: ataradov on May 16, 2018, 05:25:07 pmAs I mentioned above, if an ATmega328P is workable, using an Arduino for 'proof of concept' makes a lot of sense. Then, if the project is released for development just rewrite the code for a bare chip. It doesn't make sense to spend a lot of time on something that will never see the light of day. Certainly not the time required to essentially rewrite some libraries.Throw it together, put on the dog and pony show and, if you get funding, build the final product using only the chips actually required. For example, there may be no need for the FTDI chip if you don't use serial IO. The device can be programmed with ICSP. This eliminates simple field upgrades but, hey, get it right the first time.All assuming, of course, that the Arduino is adequate for even the concept stage. If I was in the AVR camp, I might gravitate toward the ATmega128. I really like that chip!

author: brucehoult
author_rank: Super Contributor
timestamp: May 17, 2018, 02:06:12 am
content: Quote from: tpowell1830 on May 16, 2018, 04:17:33 pmIt depends on the product. It depends on how many will be made. On how much engineering cost is acceptable vs the hardware cost. On whether the board is the entire product, or just some small component off on a corner of some bigger machine.If you're going to be making millions of them and every cent needs to be shaved off the bill of materials, then of course you won't ship an actual Arduino in the final product. You might well use one to prototype ideas. When I was working at Samsung we tested ideas on Raspberry Pi or Odroid before we tried them in a Galaxy S. The turn-around time is just so much faster, you can develop on the dev board itself instead of cross-compiling if you want, and even if you cross-compile scp/ssh is way faster than odin or adb. And you have a real *nix environment on the test device.If you're not a huge manufacturer but a small consultant and you're only going to be making something between one and a hundred of the thing, then why not use an actual Arduino board? It doesn't make sense to save ever $50 off the parts cost if it means you have to charge $10k more for your time to design, layout, and manufacture your own board. Just make sure you solder the board into the thing for reliability, and you'll want to use one of the boards designed for that.That's hardware.As for software .. if you are not pushing on the limits of performance of the AVR (and many or most projects are not) then there's nothing particularly wrong with using the Arduino libraries.They are built for ease of use and portability rather than performance, but it's not as if they are more buggy than code you'd write yourself. (And if you do find a bug, for goodness sake fix it and submit the fix back for others). If whatever you're using it for has to respond to things on the scale of seconds or milliseconds then the Arduino library is just fine. If you have to respond to things in 1 us or 10 us then no.

author: ehughes
author_rank: Frequent Contributor
timestamp: May 17, 2018, 03:03:13 am
content: Because it makes zero sense for product with a volume greater than 1 unit. Just put your MCU directly on the board. Why pay a a margin on a board that doesnt provide any value in your product.

author: brucehoult
author_rank: Super Contributor
timestamp: May 17, 2018, 04:15:00 am
content: Quote from: ehughes on May 17, 2018, 03:03:13 amSo everyone using PC/104 is crazy?

author: ataradov
author_rank: Super Contributor
timestamp: May 17, 2018, 04:17:01 am
content: You are comparing the effort needed for designing a computer to Arduino? Anyone with a bit of a clue can layout Arduino board in a day or two.

author: brucehoult
author_rank: Super Contributor
timestamp: May 17, 2018, 06:46:06 am
content: Quote from: ataradov on May 17, 2018, 04:17:01 amOk, so 15 hours at $100/hour charge out rate. $1500.You can get a heck of a lot of $3.50 Pro Mini boards from Ali Express for that.I know the 328 is very easy to deal with. Few external components needed, and still available in a DIP package. That's not the case with very many (if any) ARM chips. I would not hesitate to solder a Teensy 3.5 or 3.6 into any commercial project I did rather than try to design and build that myself. Same goes for Raspberry Pi Zero, or LoFive. Simply not worth doing it yourself.

author: ataradov
author_rank: Super Contributor
timestamp: May 17, 2018, 06:50:25 am
content: If your project can be done entirely on Arduino, then yes. If it requires external boards, then you are wasting your time aligning connectors to be Arduino compatible at the same hourly rate. And then designing an enclosure to house that board, which you have no control over.If you have to design at least one board for a product, additional cost of putting m328 there is negligible.

author: JaspaJami
author_rank: Contributor
timestamp: May 17, 2018, 07:01:07 am
content: Not exactly Arduino, but im going to use ESP32 and Arduino IDE + library's in one commercial project with OTA updates. Most likely first prototypes even use Espressif ESP32-DevKitC development modules, final product most likely just ESP-WROOM-32 modules.Why? Because it should be suitable for our needs and im familiar with that environment. A lot of ready good library's available.

author: brucehoult
author_rank: Super Contributor
timestamp: May 17, 2018, 12:26:23 pm
content: Quote from: ataradov on May 17, 2018, 06:50:25 amOf course you're not going to use Arduino Uno with its wacky pin spacings!Boards such as the Pro Mini (AVR), Teensy (AVR or ARM), or LoFive (RISC-V) that I mentioned in the last message or the NodeMCU or ESP32 Espressif boards have standard 0.1" pin spacing and usually come with bare holes in the PCB and header pins you can solder on and use or not as you wish. It's extremely simple to physically interface to them. With the header pins added they can be mounted to a breadboard, or soldered to another trivial to design board very easily.

author: Rerouter
author_rank: Super Contributor
timestamp: May 17, 2018, 12:57:25 pm
content: Ive use various arduino boards to proof and test my work, spun up some boards with the chip baked in and never changed the software from that original proof.Equally some of the atmel chips supported are bloody brilliant, in size, power and io, so i tend to bake in a varient of an alternative arduino bootloader, modified to suit and bam, feild upgradable units over a mutlidrop rs485 with less than a day of code bashing and testing.Many times i have seen people talking about moving to ide s with better testing options, but yet to find something pain free and clear on how to set it up.

author: Gibson486
author_rank: Frequent Contributor
timestamp: May 17, 2018, 01:55:22 pm
content: I have worked for two companies that thought they could use Arduinos to actually make a product. It is a bad idea.if you are a solo engineer or your company is a 1 man team, then yeah, it could work.However, the real truth is that you cannot really get past the prototyping stage with it with a whole team. The whole platform is not really scalable and cost wise, it makes no sense.1. The arduino software stack is sort of hacked together with weak glue.2. In order to make it scalable, you have to hack the hack. You see where this is going? You will be pissed off when the stuff only works for half your team. Then the other half of your team does not want to move past the Arduino IDE. It is a mess.3. Oh, so you will do everything in Linux? See number 2. Then get pissed off when you see that the ubuntu repo still uses the old ass arduino version, which does not even work with the new Atmel programmers. Then you have to upgrade AVRDude (yeah, it is called AVRDude)4. Mega2560 cost more than a cortexM4 with more than double of everything.Need I go on?

author: donotdespisethesnake
author_rank: Super Contributor
timestamp: May 17, 2018, 06:07:27 pm
content: "Real engineers don't eat quiche"To summarise : the main reason for not using an Arduino is professional snobbery.

author: ataradov
author_rank: Super Contributor
timestamp: May 17, 2018, 06:11:00 pm
content: It is not snobbery. It is experience with shipping product in large quantities.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.It is like saying that professional electricians don't use $5 Harbor Freight multimeters because of snobbery.

author: taydin
author_rank: Frequent Contributor
timestamp: May 17, 2018, 06:28:08 pm
content: 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.Let's say somebody comes to your shop and asks for a control system for a simple mechanical system, and he doesn't want to spend thousands of dollars on Siemens etc. PLC's. And the system isn't doing anything mission critical (in other words, if something goes wrong, nobody's going to get hurt and no huge loss of money will ensue). An Arduino based solution would work very well and would also have the right price.

author: Bassman59
author_rank: Super Contributor
timestamp: May 17, 2018, 06:45:04 pm
content: Quote from: donotdespisethesnake on May 17, 2018, 06:07:27 pmNot 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.If the prototype software written for Arduino works, there's no point to re-writing it.I think that most professionals reading this forum already have code to implement the things that the Arduino "ecosystem" supports. Whether that code runs on the Atmel parts or some other processor, it's already done. There is no need to switch platforms.(Veering off the topic: For kids learning how to write programs for microcontrollers, the Arduino is great. When the kid runs into the limits of the platform, then s/he'll look for alternatives, which invariably means having to get under the hood to understand what's going on. But with the Arduino, the canned demos and such work out of the box, which gives the kids confidence that they can actually do something with a microcontroller.)

author: wraper
author_rank: Unknown
timestamp: May 17, 2018, 06:52:33 pm
content: Quote from: igendel on May 16, 2018, 04:30:21 pmGenuine arduino in not much better. A piece of crap with inexcusable design mistakes. Particularly USB interface with non functional shielding and ESD protection.

author: wraper
author_rank: Unknown
timestamp: May 17, 2018, 07:03:24 pm
content: Quote from: donotdespisethesnake on May 17, 2018, 06:07:27 pmEven without hardware part, real engineers don't need to use dumbed down libraries which are 10-100 times slower than doing the things right way. Not to say there are no libraries for many things real engineer will need.

author: westfw
author_rank: Super Contributor
timestamp: May 17, 2018, 07:09:49 pm
content: You do realize that Arduino Nano like boards are currently cheaper (from reputable Chinese dealers) than bare atmega328 chip from digikey (in moderate quantities.)

author: JaspaJami
author_rank: Contributor
timestamp: May 17, 2018, 07:10:25 pm
content: Quote from: wraper on May 17, 2018, 07:03:24 pmI understand that if you are making a huge amount of some specific product thing is different. But i think its stupidity to not use ready library's when its making its thing and hours for work matter. If you code everything from scratch it just takes a lot longer time. Its often maybe ok, but quite often not if you are making one/two pieces. Still it can be professional customer project.

author: wraper
author_rank: Unknown
timestamp: May 17, 2018, 07:18:56 pm
content: Quote from: JaspaJami on May 17, 2018, 07:10:25 pmHow much faster is it to use superslow digitalWrite() instead of working with ports directly? Let me answer, it offers zero time savings. And when you realize Arduino limitations in the middle of the project, you may just start writing code in plain C (then why bother with arduino to begin with) or need to change the platform altogether.

author: wraper
author_rank: Unknown
timestamp: May 17, 2018, 07:24:33 pm
content: Quote from: westfw on May 17, 2018, 07:09:49 pmChinese nano is not cheaper, and Digikey is not the cheapest place to buy components. Not to say there are much cheaper and more capable MCUs.

author: free_electron
author_rank: Super Contributor
timestamp: May 17, 2018, 07:25:35 pm
content: if you strip down an arduino to the portion you really need in your application you end up with the microcontroller , the crystal and 4 caps ...that should say it all ...

author: JaspaJami
author_rank: Contributor
timestamp: May 17, 2018, 07:53:24 pm
content: Quote from: wraper on May 17, 2018, 07:18:56 pmBut i can make program with ready librarys in one hour that is measuring temperature with 1-wire DS18B20, downloading from internet via WIFI weather forecast, drawing this information to TFT display where is also touch screen button that if you press that it sends that information to phone via BLE.Its not maybe most powerfull one what comes to code (also im really not expert at coding), but without librarys it would take ages to make that. At least for me.

author: ataradov
author_rank: Super Contributor
timestamp: May 17, 2018, 08:00:25 pm
content: Quote from: JaspaJami on May 17, 2018, 07:53:24 pmThat is immediate gratification I was talking about. Now imagine you are actually working on a product, and did some testing, and the thing fails under certain conditions. And all of a sudden your "productivity" goes down the drain, since now you have to dig though heaps of poorly written unfamiliar code.Or even worse, imagine that stock network library blocks until the data is returned from the server. It is fine when the server is under your bed, but when you deploy the device in Japan and it has to talk to a server in the US, your UI is blocked and device is unresponsive. Now you have a huge problem.It is OK for hobby, not OK for actual production work.Quote from: JaspaJami on May 17, 2018, 07:53:24 pmAnd I think that where all the misunderstanding in this thread comes from. People that are experts don't need Arduino, and hopefully those are the same people working on releasing devices into wide production.

author: Seph.b
author_rank: Regular Contributor
timestamp: May 17, 2018, 08:17:31 pm
content: Quote from: free_electron on May 17, 2018, 07:25:35 pmIf 8MHz is enough, all you need is 2 caps.Programming via ICSP is so easy I can't see using an Arduino for anything more than a proof of concept anymore. My projects are in the 10s of units and the BOM for the board is a very small part of the total project cost. I could probably build 75% of my projects playing legos with Aliexpress modules. I like my stuff to look more professional though; layed out nice with our logos on it. Like others have said, if I am spinning a board anyway why not just drop a 328p on it and be done with it. I also don't have to worry about customers plugging a USB cable into it and changing the programming.

author: JaspaJami
author_rank: Contributor
timestamp: May 17, 2018, 08:18:49 pm
content: Quote from: ataradov on May 17, 2018, 08:00:25 pmUnderstand. But the good one is that those librarys are opensource and there is many vise and dummy heads trying to figure out problems in code.Quote from: ataradov on May 17, 2018, 08:00:25 pmYes, in these things you have to have a backup solution. Im at the moment designing system that is spread over the world and we have to make OTA updates to those once in a while. Have to get also another factory firmware to inside that if OTA update for some reason crashes it doesn't brick whole system.Quote from: ataradov on May 17, 2018, 08:00:25 pmStill partly disagree. If you have to do example unique systems its very possible that you don't get a deal if you spend to much time for the code (or you don't get descent salary from that work).Even sometimes i think its best to use ready modules. If customer need one small project to electric cabinet mounted to DIN rail it can be best idea to use something like this and ready Mega board:https://www.ebay.com/itm/Electronics-Salon-DIN-Rail-Mount-Screw-Terminal-Block-Adapter-Module-For-R3/142788159920vs. starting to plan own board, make that board, make code from scratch...

author: JaspaJami
author_rank: Contributor
timestamp: May 17, 2018, 08:20:50 pm
content: Quote from: Seph.b on May 17, 2018, 08:17:31 pmbtw there is also arduinos without usb ports. But i dont see much use for those. In those cases where they would be handy almost everytime its better solution to design own one.

author: @rt
author_rank: Super Contributor
timestamp: May 17, 2018, 10:08:27 pm
content: My air conditioning controller is based on Arduino. It’s in my house made of Meccano, and my car made of LEGO.

author: nctnico
author_rank: Super Contributor
timestamp: May 17, 2018, 10:46:33 pm
content: Quote from: taydin on May 17, 2018, 06:28:08 pmEMC 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.

author: james_s
author_rank: Super Contributor
timestamp: May 17, 2018, 11:27:35 pm
content: Quote from: @rt on May 17, 2018, 10:08:27 pmAnd 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.

author: brucehoult
author_rank: Super Contributor
timestamp: May 18, 2018, 01:50:18 am
content: Quote from: ataradov on May 17, 2018, 06:11:00 pmI'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.QuoteWhich is precisely what I (and others) have been saying.

author: brucehoult
author_rank: Super Contributor
timestamp: May 18, 2018, 02:06:24 am
content: Quote from: Bassman59 on May 17, 2018, 06:45:04 pmThere 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.

author: @rt
author_rank: Super Contributor
timestamp: May 18, 2018, 05:05:45 am
content: 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?

author: Nusa
author_rank: Super Contributor
timestamp: May 18, 2018, 06:45:17 am
content: 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.

author: westfw
author_rank: Super Contributor
timestamp: May 18, 2018, 07:10:39 am
content: 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.)

author: westfw
author_rank: Super Contributor
timestamp: May 18, 2018, 07:56:40 am
content: QuoteAh. 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.QuoteAmen 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."QuoteHuh. 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.)

author: bd139
author_rank: Super Contributor
timestamp: May 18, 2018, 08:22:55 am
content: 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!

author: Ice-Tea
author_rank: Super Contributor
timestamp: May 18, 2018, 09:11:40 am
content: 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 thisI know what to choose, even if they are totally functionally equivalent and demonstrably equally reliable.Reminds me a lot of the 'rigor' discussion.

author: Fire Doger
author_rank: Regular Contributor
timestamp: May 18, 2018, 09:49:30 am
content: 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 readingHardware is just hardware of course, its name doesn't matter if it works (including EMI/EMC etc).

author: Rerouter
author_rank: Super Contributor
timestamp: May 18, 2018, 10:02:07 am
content: 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 lighted2. 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 shipSo 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.

author: Kjelt
author_rank: Super Contributor
timestamp: May 18, 2018, 10:08:00 am
content: 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.

author: madires
author_rank: Super Contributor
timestamp: May 18, 2018, 10:57:52 am
content: Licenses and IP.

author: nfmax
author_rank: Super Contributor
timestamp: May 18, 2018, 11:06:58 am
content: 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?

author: bd139
author_rank: Super Contributor
timestamp: May 18, 2018, 11:33:26 am
content: Depends which flavour of open source.There's a poo flavoured one.

author: newbrain
author_rank: Super Contributor
timestamp: May 18, 2018, 11:49:51 am
content: Quote from: bd139 on May 18, 2018, 11:33:26 amLet's say Durian flavoured...appealing to some, repulsing to many.Quote from: nfmax on May 18, 2018, 11:06:58 amThe license for the HW design files isCreative 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...]

author: RoGeorge
author_rank: Super Contributor
timestamp: May 18, 2018, 12:26:47 pm
content: For a bird eye view of various licensing types in plain English:https://tldrlegal.com/

author: rstofer
author_rank: Super Contributor
timestamp: May 18, 2018, 01:54:09 pm
content: 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/B0713XK923This is a neat little terminal board:https://www.amazon.com/gp/product/B00X3L2RJK

author: free_electron
author_rank: Super Contributor
timestamp: May 18, 2018, 04:01:46 pm
content: Quote from: bd139 on May 18, 2018, 08:22:55 am5: bwahahaaa. the most accurate description ever.10 : yup11 : more yup12 : even more yup. it is 2018 can we have breakpoints , tracing , variable inspection , instead of having to resolve to debugging using print commands ?

author: tpowell1830
author_rank: Frequent Contributor
timestamp: May 18, 2018, 04:38:54 pm
content: 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 required2. the compiler and libraries are a bit wonky, again testing3. 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.

author: ataradov
author_rank: Super Contributor
timestamp: May 18, 2018, 04:44:07 pm
content: Quote from: tpowell1830 on May 18, 2018, 04:38:54 pmYou 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.

author: chris_leyson
author_rank: Super Contributor
timestamp: May 18, 2018, 04:59:41 pm
content: 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.

author: bd139
author_rank: Super Contributor
timestamp: May 18, 2018, 05:03:15 pm
content: Quote from: ataradov on May 18, 2018, 04:44:07 pmYep some people like driving a wreck and are happy with that risk!

author: maginnovision
author_rank: Super Contributor
timestamp: May 18, 2018, 05:06:21 pm
content: 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.

author: Fungus
author_rank: Super Contributor
timestamp: May 18, 2018, 05:18:02 pm
content: Quote from: tpowell1830 on May 16, 2018, 05:01:55 pmThe 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.

author: metrologist
author_rank: Super Contributor
timestamp: May 18, 2018, 05:21:01 pm
content: I thought Arduino is a professional product?

author: newbrain
author_rank: Super Contributor
timestamp: May 18, 2018, 05:40:25 pm
content: Quote from: maginnovision on May 18, 2018, 05:06:21 pmI 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 weheavilycontribute (~90%), but we have other ways to add value to our final products since the LGPL part is only a sub-component.

author: rstofer
author_rank: Super Contributor
timestamp: May 18, 2018, 05:44:53 pm
content: The OP has been given all the reasons to not use an Arduino:Oversize (Uno) The Nano is much better in terms of size.CostArduino Libraries - code quality/speed/bloatArduino Libraries and the limitations they place on the use of hardwarePinout vs raw device with full accessand 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...

author: james_s
author_rank: Super Contributor
timestamp: May 18, 2018, 06:53:15 pm
content: 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.

author: westfw
author_rank: Super Contributor
timestamp: May 18, 2018, 06:55:09 pm
content: 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.)

author: westfw
author_rank: Super Contributor
timestamp: May 18, 2018, 07:02:45 pm
content: QuoteUm. 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.)

author: bd139
author_rank: Super Contributor
timestamp: May 18, 2018, 07:17:08 pm
content: Indeed. Also used for PC104 embedded stuff galore. I’ve shipped production gear with those in!

author: tpowell1830
author_rank: Frequent Contributor
timestamp: May 18, 2018, 07:40:18 pm
content: Quote from: westfw on May 18, 2018, 06:55:09 pmThanks 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.

author: Wilksey
author_rank: Super Contributor
timestamp: May 18, 2018, 10:21:07 pm
content: 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.

author: westfw
author_rank: Super Contributor
timestamp: May 18, 2018, 10:47:45 pm
content: QuoteAFAIK, 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 :-(

author: brucehoult
author_rank: Super Contributor
timestamp: May 19, 2018, 02:09:35 am
content: Quote from: westfw on May 18, 2018, 10:47:45 pmNo, 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.

author: bd139
author_rank: Super Contributor
timestamp: May 19, 2018, 07:47:47 am
content: 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.

author: daveshah
author_rank: Unknown
timestamp: May 19, 2018, 07:54:39 am
content: 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.

author: brucehoult
author_rank: Super Contributor
timestamp: May 19, 2018, 11:07:13 am
content: Quote from: bd139 on May 19, 2018, 07:47:47 amYes, 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.

author: bd139
author_rank: Super Contributor
timestamp: May 19, 2018, 11:11:25 am
content: Yes we’re llvm / clang fansWe’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.

author: JPortici
author_rank: Super Contributor
timestamp: May 19, 2018, 12:34:39 pm
content: Quote from: free_electron on May 18, 2018, 04:01:46 pmseems relevanthttps://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 use69.99 though

author: David Chamberlain
author_rank: Frequent Contributor
timestamp: May 20, 2018, 09:34:55 am
content: Does this answer OP's question?

author: james_s
author_rank: Super Contributor
timestamp: May 20, 2018, 05:55:05 pm
content: Quote from: David Chamberlain on May 20, 2018, 09:34:55 amShip it!

author: SiliconWizard
author_rank: Super Contributor
timestamp: May 20, 2018, 06:10:40 pm
content: @David Chamberlain: Nice product!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.

author: Fungus
author_rank: Super Contributor
timestamp: May 20, 2018, 06:18:18 pm
content: Quote from: SiliconWizard on May 20, 2018, 06:10:40 pmIf you don't need RS232 then it's just the uC. You can use the internal clock.

author: CatalinaWOW
author_rank: Super Contributor
timestamp: May 20, 2018, 06:50:53 pm
content: 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.

author: james_s
author_rank: Super Contributor
timestamp: May 20, 2018, 09:07:40 pm
content: 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.

author: westfw
author_rank: Super Contributor
timestamp: May 20, 2018, 09:45:01 pm
content: QuoteWell, 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."

author: Fungus
author_rank: Super Contributor
timestamp: May 20, 2018, 10:33:24 pm
content: Quote from: westfw on May 18, 2018, 07:02:45 pmI 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.Quote from: bd139 on May 18, 2018, 07:17:08 pmPC104 is an Arduino shield by another name.

author: ejeffrey
author_rank: Super Contributor
timestamp: May 21, 2018, 04:15:47 am
content: Quote from: tpowell1830 on May 16, 2018, 05:01:55 pmWell if it will do the job, then it will do the job. For a lot of commercial products it won't fit the size, peripheral selection, or cost targets, or they will prefer a more powerful micro-controller, or the don't need that much power and would save money with a cheaper one. Or they will need sufficiently control of the peripheral and IO setup that they basically have to throw out the arduino environment.QuoteA custom board is pretty cheap if you are making more than a few. Especially if you can leave off the some of the connectors (do you need USB?). But that isn't the real point: an arduino by itself isn't useful for much of anything. You can plug a USB cable into it an show up like a serial port, and that is about it. To do anything you need to connect it to something. That will usually be another PCB, probably a shield using the stacking pin headers. So you will likely be using a custom PCB anyway, and adding a microcontroller to a custom PCB costs next to nothing. Plus you eliminate the pin headers, and possibly other parts. Also, you eliminate potentially costly assembly steps of attaching arduino, then attaching the shield.There are still reasons to have a stand alone microcontroller talking to other components, but then you probably want to use cables so that the components can be remote, rather than just stacked on top arduino style. With an arduino, you might then end up needing a shield that just goes from pin headers to whatever connector you need or just screw terminals.I'm also not a big fan of using pin headers to mechanical support a shield in a production product. I would like to have a latching/locking connection or mechanically mount with screws and then run a cable that isn't providing mechanical support.There are definitely commercial products produce in small volume that use arduinos because it works. If that is your situation, go for it. But for higher volume products, it is almost always going to be overall cheaper and more reliable to use a custom board that does what you want.

author: CatalinaWOW
author_rank: Super Contributor
timestamp: May 21, 2018, 04:58:40 am
content: Quote from: james_s on May 20, 2018, 09:07:40 pmIt is a known processor with standard I/O locations. Replacements for the hardware will be around for many years on the NOS and used/salvage marketplace. And the code libraries used are known making reverse engineering of the SE easier, which may well be available since it isn't protected. Of course if the micro is dead that isn't available, but in a generic box the Arduino very possibly will not be the dead bit, and knowing what it is doing provides real clues about what the fried bits should be doing. Even if the Arduino is dead there is a real chance of recovering the code.

author: madires
author_rank: Super Contributor
timestamp: May 21, 2018, 10:24:11 am
content: The ATmega has some lock bits to prevent firmware extraction. And they are set even for open source firmware by some vendors. We've seen this several times for clones of the Transistortester.

author: brucehoult
author_rank: Super Contributor
timestamp: May 21, 2018, 12:33:51 pm
content: Quote from: David Chamberlain on May 20, 2018, 09:34:55 amClearly not a professional project.But the problem does not lie with the Arduino.

author: Fungus
author_rank: Super Contributor
timestamp: May 21, 2018, 01:28:35 pm
content: Quote from: madires on May 21, 2018, 10:24:11 amYep.If you really want to you can lock an Arduino using the little six pin header on the board.

author: JaspaJami
author_rank: Contributor
timestamp: May 21, 2018, 05:57:20 pm
content: I can agree atleast in that if you use Arduino Uno board, thats not professional

author: Fungus
author_rank: Super Contributor
timestamp: May 21, 2018, 06:55:55 pm
content: Quote from: JaspaJami on May 21, 2018, 05:57:20 pmMaybe ... but only ifeverythingelse is on a nicely soldered shield.

author: David Chamberlain
author_rank: Frequent Contributor
timestamp: May 21, 2018, 09:48:50 pm
content: I finding this thread to be somewhat confusing.The Arduino platform is a microcontroller + a boot loader and that's it. Please correct me if I'm wrong as I've never used one. The discussions in the Pro-Arduino camp in this thread seem to conceded that an Arduino Uno in a 'professional' project is a little amateur hour BUT an Arduino Nano is more professional because it allows you to directly solder it to another board or because it's small or because it is missing all the peripheral connectors that may be unused?Well lets look at the Nano then... Current list price US$22. And yes lets ignore the cheaper clones because we're making a 'professional' product here and not one sourced from questionable gray market supply lines.What do the components cost?- Microcontroller (ATMEGA168-20AU) = $3.42- USB Serial UART (FT232RL - 895"FT232RL) = $4.50- +5VDC regulator (UA78M05CDCYRG3) = $0.62- 16 MHz christal (ABL-16.000MHZ-B2) = $0.34- Mini-B socket (67503-1020) = $0.65- About 10 passives. Lets say your getting ripped off for the passives like everyone else at the moment and pay $0.13 each.So your total component cost here is $10.83If you can get a PCB made for $5 !! then you have just saved $6.17 per unit. And those prices above are for single units. { Actual part.no and sources -https://www.arduino.cc/en/uploads/Main/ArduinoNanoManual23.pdf}Point is, you would be better of designing that stuff in to your own PCB and if your product requires more components then those listed above then you have saved the need for a PCB and separate Arduino board.My other reason why this all does not make sense is that for any product to be sold in any country requires some type of regulatory approvals be it CE or FCC. The minimum would be radio emissions & immunity and trust me, because I've done it several times now, you don't get much change from $10k once all is said and done. That many zeros just for a bit of paper that no one is ever going to read does sharpen your mind on the dollar and cent savings I listed above.It also makes me a little mad when people bodge a product together without any approvals and think it's all so easy. They are the ones who look at a real professionally engineered product and say 'WOW what a rip off I can make that for a 10th of the price and sell it'. But that's a rant for another time.

author: Dubbie
author_rank: Unknown
timestamp: May 21, 2018, 10:42:50 pm
content: I didn't realise that AVR chips were so expensive.Not sure why you wouldn't use a $2 Arm chip instead. Way more powerful and way more features.

author: NorthGuy
author_rank: Super Contributor
timestamp: May 21, 2018, 10:58:05 pm
content: Quote from: David Chamberlain on May 21, 2018, 09:48:50 pmCan replace all that with PIC16F1454 = 1.20 and save $7.68.

author: Seph.b
author_rank: Regular Contributor
timestamp: May 21, 2018, 11:21:25 pm
content: Quote from: David Chamberlain on May 21, 2018, 09:48:50 pm$1.75 all over the place on AliExpress. If that is pro enough is another matter. I have never have issues with them though.To go back a bit in the convo, I didn't realize that using modules in the arduino library applied their license. I only ever program atmegas over the ICSP pins and don't use the bootloader. I guess I should start using ports directly vs digitalRead/Write and remove the licensing requirement on at least 50% of my projects. Not sure why I even still use the clunky Arduino IDE even. Guess it is time for me to finally figure out getting rid of it entirely.

author: julianhigginson
author_rank: Frequent Contributor
timestamp: May 22, 2018, 05:40:27 am
content: can you use a proper debugger with arduino yet? That would be my biggest showstopper for arduino in professional development of any kind.. Even initial proof of concept development. Because once managers see "progress" - even with an unreliable tool, they really don't want to re-do anything ever.I have seen a few projects where work was begun on arduino with stuff wired to it (which is all good for a cheap proof of concept!) And the project eventually moved to an AVR and relevant parts on a custom board - but it was still running the AVR bootloader and the code was arduino code developed in arduino IDE... and when they had subtle problems, it was not an easy thing to debug using printf().Compare to C AVR projects using the exact same chip and the proper C language, which you can debug with AVR Studio and a standard atmel jtag probe.

author: westfw
author_rank: Super Contributor
timestamp: May 22, 2018, 07:16:28 am
content: QuoteYou're wrong, and you've admitted that you don't have the background to adequately pass judgement...QuoteIf you'd put those parts, at those prices, on your "professional" board, I think your customers would have been better off with one of those "cheaper clones" that you rejected... In particular, both the m168 and the FT232rl are long-obsolete and consequently overpriced compared to their more modern replacements.Maybe we should be careful to define "professional" as well? I don't believe it's the same as "mass produced"...

author: brucehoult
author_rank: Super Contributor
timestamp: May 22, 2018, 07:47:45 am
content: Quote from: julianhigginson on May 22, 2018, 05:40:27 amDo you mean like gdb?There's nothing very special about Arduinos. Those that have non-AVR CPUs are usually pretty easy to debug. The RISC-V HiFive1 (Uno form-factor) and LowFive (Pro Mini form factor) both support debugging with OpenOCD with JTAG-over-USB and/or a Olimex ARM-USB-TINY-H or similar directly on the JTAG header. I'd expect most ARM-based Arduinos are the same.AVRs in general have the problem that many of them (including the 168 and 328) don't have JTAG. It doesn't matter whether they are in an Arduino or on your own board. They do however have "debugWIRE" using the reset pin. You need an AVR Dragon or similar to understand that and connect to your PC. You need to minimise the capacitance on that line because the communications is reasonably high speed, which on an Uno means removing the cap connecting the reset pin to the reset button.

author: David Chamberlain
author_rank: Frequent Contributor
timestamp: May 22, 2018, 08:09:21 am
content: Quote from: westfw on May 22, 2018, 07:16:28 amThat's fine I don't mind being wrong however your statement might have been more constructive if you pointed out how you thought I was wrong. I will guess. The Arduino platform has a huge eco system of users, ready to go libraries and IDE so clearly that's the BIG value add beyond just the raw component costs and if it gets any one at all interested in electronics in general then it's a good thing in my books. My statement "The Arduino platform is a microcontroller + a boot loader and that's it" may have been a little flippant but I was following on from other lines of thought regarding integrating them in to products from a hardware perspective.Quote from: westfw on May 22, 2018, 07:16:28 amYes my point was that even with over priced components you could still build your own board for cheaper even for a one off design / prototype.I rejected "cheaper clones" because often the source and as such reliability can not be determined and this for me is important, whether or not it's a single unit or 100000 units. The conversation here is about low volumes surely because again as I was attempting to demonstrate once you look at purchasing 100K Arduinos you'll realize how much profit you're missing out on.Quote from: westfw on May 22, 2018, 07:16:28 amI agree and think that this is exactly what this thread is attempting to do. It seems to be a harder question to answer then we all first thought. I'll take a stab at it though - I think a lot of engineering experience is hard to quantify because after a while you just do things because 'that's the way it's done' without giving it much thought.

author: Gibson486
author_rank: Frequent Contributor
timestamp: May 22, 2018, 02:04:48 pm
content: Quote from: westfw on May 22, 2018, 07:16:28 amLOL...I have been using the FT232rl for the past decade. It is sort of, well, just works, so why replace it? What is a more modern option? I am not arguing, I really want to know.

author: Gibson486
author_rank: Frequent Contributor
timestamp: May 22, 2018, 02:21:02 pm
content: The licensing on the arduino itself is not a problem. It is the stuff add to it. They mean to use the MIT license, but they use the other more restrictive ones. It is still open source, but you are supposed to make your code open source as well IF you make any changes to the library or code you are using that references that license. I think the arduino PID library has that issue.There is a lot of arduino snobbery. Me, personally, I like it. In terms of prototyping, it is great. The fall out is that it has created a generation of hacking engineers that just copy designs without any regard as to how it works or if the design was proper at all. Also, it has created a generation of wannabe firmware engineers as well. There is nothing that annoys me more than a library made for some device (like a DAC) that has actual Arduino code in it. Really? Way to make your whole library non portable. So, yeah, I like the arduino, but do not be one of those people that stop there. You should expand yourself and go beyond the platform and actually learn how to use just Atmel itself.

author: wraper
author_rank: Unknown
timestamp: May 22, 2018, 02:27:42 pm
content: Quote from: David Chamberlain on May 21, 2018, 09:48:50 pmPrices are unrealistically high. Why particularly NRND ATMEGA168-20AU, why not ATMEGA168PAat half of the price?Vreg like 5-20 cents depending on model.Crystal < 10 centsMicro usb connector < 20 cents (who needs mini USB?)Passives are almost free.QuoteWho generally needs it in the circuit anyway unless you want to program the MCU weird way? And if you need USB, just pick another USB capable MCU for <$1, or ATMEGA16U2.Not to say that you likely won't need this additional vreg and crystal in your circuit. RC oscillator in AVR is crap. Other manufacturers offer like 0.5-1% without any crystal in MCUs which are cheaper.

author: wraper
author_rank: Unknown
timestamp: May 22, 2018, 02:35:40 pm
content: Quote from: Gibson486 on May 22, 2018, 02:04:48 pmUSB UART converter is a workaround in it's nature. If you need USB, just pick MCU which supports it natively.

author: Gibson486
author_rank: Frequent Contributor
timestamp: May 22, 2018, 02:43:39 pm
content: Quote from: wraper on May 22, 2018, 02:35:40 pmLOL....good point. Thanks!Quick question, though. If you use USB, is the driver stuff taken care of?

author: NorthGuy
author_rank: Super Contributor
timestamp: May 22, 2018, 02:50:23 pm
content: Quote from: westfw on May 22, 2018, 07:16:28 amSure it is. By definition, professionals are those who make money from their activity, while amateurs do not (e.g. professional golfer vs. amateur golfer). In electronics, to make money, the product must be produced in some quantity. And conversely, if you produce something in quantity, you're doing this to make money. "Mass production" is probably too big of a word. but production in quantities is what distinguish professionals from amateurs.Professional certainly doesn't mean better than amateur (e.g. your local golf pro vs. Bobby Jones). Professionals are often restricted by a multitude of factors which force them into technically inferior designs because of business or marketing considerations. Amateurs are free.Libraries and communities don't matter much for professionals. Instead, they have education and experience, which beats the community support in and out.Looking from that perspective, Arduino is certainly not suitable for production - extra cost, bulky form factor, bad power consumption, no real benefits. So, professionals rarely use it. There's nothing inherently wrong in using Arduino for production - you will just make less money that you would otherwise. If you're rich or have wide margins, this may be Ok for you.

author: wraper
author_rank: Unknown
timestamp: May 22, 2018, 02:55:05 pm
content: Quote from: Gibson486 on May 22, 2018, 02:43:39 pmUse HID or virtual com port library/example from MCU manufacturer. HID won't need a driver, virtual com port will have a driver already available.Example:https://www.silabs.com/community/mcu/8-bit/forum.topic.html/vcpxpress_want_tom-MGyE

author: Fungus
author_rank: Super Contributor
timestamp: May 22, 2018, 02:59:14 pm
content: Quote from: Gibson486 on May 22, 2018, 02:43:39 pmYes.If you use an AVR chip with onboard USB you get the USB-2-RS232 for free, eg. Arduino Leonardo.If you want something cheaper than the FT232 then all the Arduino clones seem to use the CH340. I'm betting it's very cheap.

author: brucehoult
author_rank: Super Contributor
timestamp: May 22, 2018, 05:32:58 pm
content: Quote from: NorthGuy on May 22, 2018, 02:50:23 pmI can't agree with that.Many many professionals make money from selling their time, not from selling quantities of of a product.Computer programmers often write systems that only have one copy in use, by one client. Consulting engineers of any kind (mechanical, electrical) as well. Not to mention architects.I would say that many of these people are a lot more professional than some salary slave designing products in a megacorp, even if the resulting products are sold in the millions or billions -- their personal reputation and future work depend on it.

author: NorthGuy
author_rank: Super Contributor
timestamp: May 22, 2018, 06:19:13 pm
content: Quote from: brucehoult on May 22, 2018, 05:32:58 pmYou're right. The diversity is enormous and there are lots of different cases. May be my generalization went too far.For example, industrial automation often uses PLCs, which are way more expensive and inefficient than Arduino. The economics of this is totally different than designing products for sale. Arduino would be a cost saver, if only Arduino could get regulatory approval.

author: tpowell1830
author_rank: Frequent Contributor
timestamp: May 22, 2018, 08:03:15 pm
content: Quote from: NorthGuy on May 22, 2018, 06:19:13 pmRegulatory approval is unnecessary in most cases, maybe in Canada you have to have it? I have designed products used in Canada before and not even asked once if it was 'approved'. We are talking about professional engineering of products/projects, but I guess many are in the paradigm of thinking in terms of consumer based, high production products.Also, the original question had to do mainly with the software, and I think that has been covered a little, although I don't have a clear idea of why the Arduino software is not 'professional' when it will do the job. I keep hearing comments talking about it being slow, libraries are bad, licensing issues, but I have clearly stated that these 'WILL do the job', and in the solutions that I would be involved in, I have no problem handing over the software, libraries, anything that has to do with software. I would even give the recipient of the solution a couple of USB cables if they asked for them. This would all be in the cost of the solution that I would charge them.The kind of solution that I am talking about would involve a company that has a problem that needs solving and have contracted me to provide a solution. If the Arduino is one of the products in that solution and will do the job, I haven't heard any arguments or logic that would stop me from utilising the Arduino, even an Arduino Uno if needed. The company isn't paying me for the Arduino, per se, but a solution to their problem that for whatever reason, they did not have the means or time to solve. If I was to use any product in the solution, I would set it up as a test for few months to insure that there were no issues. The price is in the solution, not the product (Arduino). If after a reasonable time this was satisfactory to the customer, then I would install this on all affected machines or situations as needed, once the authorities of the company agree that the solution is working satisfactorily. This is when I would give them the software and training or whatever they requested, as long it is in the pervue of the original agreement. Then give the maintenance people training on how to load the software if requested. This doesn't mean that some engineer couldn't come along and figure out how the solution works and incorporate into future machines/situations, this company owns the solution and we are done. This usually doesn't happen because engineers/employees of companies like this are way too busy taking care of their part of their duties at the company to sort this out. But, if they do this, I don't see a problem because this company asked us for a solution, we provided the solution and we will probably be asked to fix other issues they may have in the future, win, win.

author: ez24
author_rank: Super Contributor
timestamp: May 22, 2018, 09:28:19 pm
content: From another post - it is bad to put "arduino" on a resume.

author: westfw
author_rank: Super Contributor
timestamp: May 22, 2018, 09:42:03 pm
content: QuoteFT232 used to be one of the few "it just works" Serial/USB parts - good drivers, good customization options, somewhat readily available... But that was more than a decade ago; now it's sort-of like the PIC16F84; still appears widely, but no longer a clear winner by most measures.The most obvious replacement is the newer parts from FTDI - FT230x and FT231x. Smaller than the FT232, and less than half the price (~$2.) Sparkfun's RedBoard uses the FT231x. There is also the CP2102/CP2104 (now from SiLabs; used to be Cypress?) Adafruit and NodeMCU seem to like these.There's the CH340 stuff from China, and a myriad of "small USB-capable microcontrollers with USB/Serial Code" (MCP222x from Microchip is some sort of pre-programed PIC18, the ATmega16u2 used by official Arduinos, etc) (actually, I don't recommend a chip whose firmware you need to write and support yourself.)And then there are all the modules. I suppose a "true professional should never use a pre-made modules when they could just buy chips and put them on their own board.", but... I've been plunkingthesedown on some recent projects, and they seem ... pretty wonderful.

author: NorthGuy
author_rank: Super Contributor
timestamp: May 22, 2018, 09:53:46 pm
content: Quote from: tpowell1830 on May 22, 2018, 08:03:15 pmOf course, if your clients are happy with Arduino, it is nothing wrong with it.With about the same amount of effort you could've created a little custom PCB which fits perfectly in a little box (or wherever it is supposed to fit into) with a set of (possible custom) connectors which let you connect it to whatever it needs to be connected, as well as LEDs, buttons etc. Wouldn't it make your service better?

author: NorthGuy
author_rank: Super Contributor
timestamp: May 22, 2018, 10:57:12 pm
content: Quote from: westfw on May 22, 2018, 09:42:03 pmVery cheap. When capacitors get completely extinct (if not already), you can buy these to mine capacitors

author: Seph.b
author_rank: Regular Contributor
timestamp: May 22, 2018, 11:24:09 pm
content: Quote from: NorthGuy on May 22, 2018, 09:53:46 pmSound exactly like my situation. Clients would be fine with whatever works, but for a little bit of extra effort upfront I can do as you describe. The bonus is subsequent builds are way faster, easier, and less prone to mistakes because most of the wiring is replaced by the PCB.

author: tpowell1830
author_rank: Frequent Contributor
timestamp: May 23, 2018, 12:16:30 am
content: Quote from: NorthGuy on May 22, 2018, 09:53:46 pmI really don't understand why everyone is wanting to build an extra board when the Arduino "WILL DO THE JOB". It will cost more money and unnecessary time getting a PCB designer to design a board, order it and the parts, test it to see if the designer did it right and then assemble it. How is this better?

author: Dubbie
author_rank: Unknown
timestamp: May 23, 2018, 12:47:23 am
content: Quote from: tpowell1830 on May 23, 2018, 12:16:30 amBecause it is exceedingly rare that a project involves just a solo arduino. usually, you have a bunch of other components and ICs. If you are connecting it all together with wires and other breakout boards, you can with very little effort replace all that mess with a PCB. and if you're going to the trouble of putting in a footprint for an arduino, why not just put the footprint for the AVR uC instead?

author: james_s
author_rank: Super Contributor
timestamp: May 23, 2018, 12:54:02 am
content: Don't most engineers who are designing an electronic product do the board layout themselves anyway? Everything I've designed I did end to end, but then EE has never been my day job. I've taken shortcuts and built a few one-offs with Arduino nano clones and Chinese modules but if I think there's any chance I might want more than one I pretty much always lay out a custom board for the whole thing. It makes assembly easier not having to connect a bunch of stuff together with wires.

author: JaspaJami
author_rank: Contributor
timestamp: May 23, 2018, 06:16:33 am
content: Quote from: westfw on May 22, 2018, 09:42:03 pmI think those are excellent when you dont want leave usb port to project. So you just program it with that and plug it away.

author: wraper
author_rank: Unknown
timestamp: May 23, 2018, 08:37:37 am
content: Quote from: Seph.b on May 22, 2018, 11:24:09 pmIt does not. It's basically a freaking breakout board. You will have basically the same amount of wiring, except few extra pins for xtal and AVCC.

author: David Chamberlain
author_rank: Frequent Contributor
timestamp: May 23, 2018, 08:48:00 am
content: Quote from: wraper on May 23, 2018, 08:37:37 amYeah it's a bit like how my laptop is just breakout board for my fingers and a USB mouse and keyboardI very much doubt NorthGuy or Seph.b were simply talking about making a direct clone of an Arduino.

author: wraper
author_rank: Unknown
timestamp: May 23, 2018, 09:14:35 am
content: Quote from: David Chamberlain on May 23, 2018, 08:48:00 amWhat arduino pcb offers besides breaking out pins compared to bare MCU? Basically nothing if you attach it to another custom PCB anyway. Only that you now also need additional connectors.

author: David Chamberlain
author_rank: Frequent Contributor
timestamp: May 23, 2018, 09:51:36 am
content: Quote from: wraper on May 23, 2018, 09:14:35 amYes I think we're all saying the same thing here or else I'm completely misunderstanding you. If you are designing any sort of product (be it professional or unprofessional)it is very unlikely to consist ONLY of an Arduino (as pointed out by @Dubbie) you will have peripheral components that need to be connected to your MCU somehow... So why not just stick them all on a single PCB and save the cost of an Arduino in your BOM?I've seen a few other posts here with the opposite view, along the lines of "It will cost more money and unnecessary time getting a PCB designer to design a board" (@tpowell1830).Personally I think spinning a custom PCB for a prototype is a walk in the park, so much so that I would not bother considering (anymore because I once did) putting together a proof of concept with breadboard or hardwired prototype boards. That is NOT a knock on anyone who does it's just I find it a much faster and more reliable way to market.

author: Fungus
author_rank: Super Contributor
timestamp: May 23, 2018, 09:58:28 am
content: Quote from: David Chamberlain on May 23, 2018, 09:51:36 amYep.Quote from: David Chamberlain on May 23, 2018, 09:51:36 amIf you're making more than two of anything then a PCB will save you hours of work. Stripping little jumper cables and soldering them to Arduinos takes hours. Not to mention all the mistakes and rework involved.It's madness NOT to make a PCB unless you need it yesterday and can't afford the three week turnaround time of a cheap PCB maker.

author: bd139
author_rank: Super Contributor
timestamp: May 23, 2018, 10:18:14 am
content: Definitely agree.Plus you can do 30 minute turnaround on boards by hand if you want with some practice. This one is done with an etch resist marker and ferric chloride. Looks like shit but it works for a prototype but it's good when you want to test a portion of the system before committing to getting a board made for something that might not work...

author: David Chamberlain
author_rank: Frequent Contributor
timestamp: May 23, 2018, 10:35:41 am
content: thats one serious ground plane

author: Fungus
author_rank: Super Contributor
timestamp: May 23, 2018, 10:59:14 am
content: Quote from: David Chamberlain on May 23, 2018, 10:35:41 amAnd I'm not sure the solder "mask" is supposed to be made with actual solder.

author: bd139
author_rank: Super Contributor
timestamp: May 23, 2018, 11:03:04 am
content: Solder mask is a luxury for production

author: wraper
author_rank: Unknown
timestamp: May 23, 2018, 11:08:48 am
content: Quote from: Fungus on May 23, 2018, 10:59:14 amConsider it as HASL. Exposed copper will corrode over time, also it's easier to solder pre-tinned copper.

author: bd139
author_rank: Super Contributor
timestamp: May 23, 2018, 12:03:37 pm
content: That's basically the reason to do it. Flux pen the bastard then run the iron over it until all the copper is gone, then clean it, then stuff the parts on.Incidentally most of the parts on that board were actually also nicked out of an old HP 54602B scope that was BER. Prototypes are cheap!

author: Gibson486
author_rank: Frequent Contributor
timestamp: May 23, 2018, 02:02:33 pm
content: Quote from: westfw on May 22, 2018, 09:42:03 pmThanks! My boards will enjoy the extra space!

author: NorthGuy
author_rank: Super Contributor
timestamp: May 23, 2018, 02:12:27 pm
content: Quote from: wraper on May 23, 2018, 08:37:37 amWhen you make your own PCB, there's no reason to copy Arduino. Making your own PCB gives you freedom of choice.There are gazillions of different MCUs on the market. Each has a different set of periphery. If you select an MCU which has the set of periphery best suitable for your project, you will need less external "modules", which reduces BOM count and thus makes PCB design simpler (and the PCB itself smaller).Moreover, selecting a good MCU for the job will simplify your software design, which means less time spent programming and less time spent debugging.

author: wraper
author_rank: Unknown
timestamp: May 23, 2018, 02:17:01 pm
content: Quote from: NorthGuy on May 23, 2018, 02:12:27 pmThat was said about the case when you want to implement arduino like hardware on your own board. If you go away from it, of course you can make more suitable choice of MCU and surrounding components. I don't think I'll ever use AVR in my future designs. Last time I designed circuit with AVR was in 2015 with Attiny24A. And that was just a small update of previous design with minor FW modification. Basically I put the same circuit on PCB of different shape.

author: Seph.b
author_rank: Regular Contributor
timestamp: May 23, 2018, 03:44:48 pm
content: Quote from: wraper on May 23, 2018, 08:37:37 amHow is that a breakout board? It is a PCB with all of the extra components and connectors needed for the full project. All of the wires that are not plugging into a connector are replaced by TRACES on the PCB. Plus I get the advantage of being able to accomplish mechanical tasks to on the board and include silkscreen to document/brand it.It is not like I am just pinning out all of the atmegas pins and making my own crappier version of an arduino and then still putting 100 wires on it.

author: wraper
author_rank: Unknown
timestamp: May 23, 2018, 04:20:30 pm
content: Quote from: Seph.b on May 23, 2018, 03:44:48 pmWhat does, say, arduino UNO have except MCU, vreg and crystal that may actually be used for operation of your circuit based on arduino?QuoteLOL what? You just leave unused MCU pins unconnected.QuoteDo you live in alternate reality? If you don't use some MCU pins, you leave pads unconnected. If you do use them, there do not become less wires if you use arduino.

author: Seph.b
author_rank: Regular Contributor
timestamp: May 23, 2018, 06:49:23 pm
content: Quote from: wraper on May 23, 2018, 04:20:30 pmI have no idea what you are talking about. From your logic, it seems that any board that uses an ATMega is an arduino.Here is a partial parts list of a typical board I make, most of these parts are not on an uno.ATMega328P (yep, the one used on an uno you got me)6 5v relays6-12 transistorsPTCs on outputszener/tvs diodes on inputsL293D7805dozens of passive and diodesNote, I don't use a crystal on most of my boards because the internal 8MHz clock is more than enough for me. I also don't use USB serial and if I use serial it is with a MAX485 to another board.Pretty much all of these things could be accomplished by buying modules on ebay and putting tons of wires between them all. I don't know what you are arguing, but my point was that a PCB gets rid of all of those wires. Plus if it warrants it I can have mounting holes for switches ect in the PCB to eliminate the wires going to those too. I think the unified design and lack of wires looks a lot more professional and is less prone to mistakes then a jumble of wires connecting ebay modules.

author: wraper
author_rank: Unknown
timestamp: May 23, 2018, 07:08:12 pm
content: OK, I got it wrong. I thought you wrote pro arduino post. What I meant is that arduino does not add any value besides being a breakout board.

author: asmi
author_rank: Super Contributor
timestamp: May 23, 2018, 08:04:41 pm
content: Quote from: tpowell1830 on May 22, 2018, 08:03:15 pmI work in manufacturing shop floor support (essentially we design and build stuff that is then installed on the floor and aids manufacturing). In this industry you can't run anything on the shop floor unless it's signed for by the health&safety folks, and they won't approve anything unless it's got all kinds of approvals all over the box! I suspect a big part of a reasoning is that the signature is not merely a formality, but is an actual liability if some accident happens with the stuff that they signed for, and ensuing investigation confirms that this was a design/installation/testing defect, and not an actual accident.Funny thing is - I've seen ATmega328 and ATSAN3N (this one powers Arduino Due) MCUs in those "approved and tested" products quite a lot, and at least one industrial PLC I worked with is Arduino-compatible!

author: bd139
author_rank: Super Contributor
timestamp: May 23, 2018, 08:24:20 pm
content: My Honeywell thermostat has an AVR in it.Had to take it to bits and fix it multiple times

author: SiliconWizard
author_rank: Super Contributor
timestamp: May 23, 2018, 08:28:12 pm
content: Quote from: bd139 on May 23, 2018, 08:24:20 pmCondolences!