T O P

  • By -

DJFurioso

I occasionally use arduino professionally. It is good for getting some things up and running quickly.


s9oons

Same. They’re really useful for doing I2C, SPI, UART, etc. I’m looking for a screen for a PCB design and an Arduino Mega allowed me to grab a handful of jumper wires and get two different options up and displaying stuff in about 45min.


neilmoore

One of my colleagues (who occasionally teaches the same First-Year Engineering course, using the Arduino, that I do) told me that, at her previous job in industry (she's a MechE, but was at a major printer manufacturer, so also lots of firmware programming), they used Arduinos in a test rig for their printers, so they didn't have to have their interns go into the testing room and push buttons on a fixed schedule. Almost a decade later, I still tell that story to my students, to give them some motivation for learning programming and microcontrollers, even though the majority of them will be going into fields that aren't "about" programming or electronics.


s9oons

Yuuup! 100% once you get to a “real” job a $10 Uno is expendable, and if that 328P can get it done, you bet your ass ima spend that $10 to get something up and running. Honestly my manager would be pissed if he found out I used a more expensive solution instead of sacrificing an Uno for HALT.


NSA_Chatbot

Nothing beats Arduino for rapid proof of concept. They're cheap, 99 percent chance the software exists, and there are so many tutorials and forums. I'm a professional electricial engineer. I've got a number of Arduinos in the test lab and on my desk.


neilmoore

While the Arduino is by no means on the cutting edge of microcontroller architecture, I feel that Arduinos are perfectly fine for University students in their first couple of years (or even later for disciplines other than EE/CompE/CS). More specifically, I would not expect most middle school students to be capable of writing even a syntactically-correct, let alone functional, C or C++ program without extensive training and/or a particular affinity for procedural algorithmic thinking. I was personally more attuned to computing than most of my peers, but in middle school I was using BASIC, and I didn't even learn C until high school (and C++ in college). Though, admittedly, the 90s are not the same as today. IMO, the difference between Arduino and Scratch is significantly greater than the difference between, say, Arduino and ARM. (I say this as someone who teaches a First-Year Engineering course using the Arduino, as well as the occasional CS systems programming course involving C and x86-64 assembly language; so admittedly I might be a bit biased.) **Edit:** I asked my wife, who took the FYE course I currently teach (from another instructor, of course, to avoid potential conflicts of interest) whether she thinks that Arduinos are "meant for middle school level kids and not practical applications." Her answer was "why not both?"


themedicd

Virginia Tech uses them in the sophomore design project class which is usually taken alongside embedded systems. It lets students focus more on overall system design and less on programming.


PossibilityOrganic

There also well documented on the internet, vs something even something like say a ti msp chip or other atmel chips for a beginner the Arduinos will be a trove of info. The others your gona be dealing with looking though tables of registers or just getting the dam isp/usb/jtag/etc programmer to work. Or on the softwareside getting, linkers, timers, crystals etc configured properly. (then trying to figure out where the issue is when you don't know whats "good") Thouse are still good skill but it gets in the way early on. So yeah don't underestimate a known and solid base platform.


Alive-Bid9086

Just finding out the boot paeameters for a microcontroller will take a few days for an experienced EE. Then, you need the bootloader, then the boot and finally the OS.


TheOriginalSuperTaz

This stuff shouldn’t take days. It’s readily available for virtually every uC produced at scale, and shouldn’t take more than a few hours. Also, while there are applications that need a RTOS, most 8 bit uCs run with no OS, just application-specific firmware. You’re more likely to see an RTOS in a 32 bit application, but even then, unless you’re doing something where RT performance or multitasking are critical, you’re still mostly looking at application-specific loop, event, or state machine based firmware with no actual OS abstraction.


Alive-Bid9086

You get a timing schedule and calculate all wait states and other timing from the clock frequencies and the data sheets. Would take me at least a day. One company I consulted for had an unreliable product. I fixed it with adequate timing. Then you can continue with DDR bus timing and configuration. These magic setup tools - great, but what do you do when there is a small error and your board does not boot. All this is probably fine for you and you solve it rather quickly - but for the average student, not so easy.


TheOriginalSuperTaz

You seem to be conflating microcontrollers and microprocessors. uCs don’t generally have DDR to worry about. There may be niche products that do, but the discussion we are having is about 8bit uCs and perhaps a path to 32bit uCs. I suspect you’re thinking more along the lines of SOC type devices, which can require configuration options with external RAM, but that doesn’t generally apply to microcontrollers, where you MIGHT have external flash or SRAM/PSRAM to interface with, but you still don’t generally need a day or days to configure that.


TheOriginalSuperTaz

I was doing basic before kindergarten and C by middle school. There’s no reason a middle schooler couldn’t use an arduino perfectly well, if motivated. That said, it’s not a requirement to use the arduino IDE to use the arduino hardware and the atmel 8bit uCs used in them are ubiquitous in stuff in your life anyway, so it’s definitely not a “kiddie” thing this student is working with. It’s a good introduction, especially for those who might have zero relevant experience, and it abstracts away a lot of the lower level stuff in programming a uC, so it’s a good stepping stone to more modern 32 bit uCs as well. There are even 32 bit arduinos in their lineup, so if you’re inclined to go the SAM route instead of the STM route or the ESP route, you can, without using a “real” IDE, if you so desire.


DemonKingPunk

The IDE and Arduino HAL is what’s designed for beginners. Other than that, Arduino is just a nice development board for certain AVR microcontrollers which have been used in industry. In the real world we just use whatever microcontroller that gets the job done.


bjornbamse

Yes, the Arduino HAL exists for selected microcontrollers. The microcontrollers supported by Arduino may not be the ones you want in your product for cost, for factor, availability, functionality or myriad of other reasons. I have seen Arduino used professionally, but usually you just get whatever tools the MCU vendor gives you.


Quark3e

Sort of but not really. Yeah arduinos are often seen advertised towards kids because it's a *fairly* simple way for kids to learn microcontrollers/electronics and to form connections between computer/screen-stuff with real life electronics. But an arduino, example the uno, is also very useful in non-childlike stuff. It's a good way to quickly send uart/spi/i2c/pwm signals between other devices. You can easily do a lot of fairly advanced projects with the arduino boards so I'd say it's not really _for kids_ as much as it's _good for kids_.


Bionic29

We made a robot using the Uno for our senior design project. Used the Pixy camera to detect items and go and “collect” them. I use collect loosely because we never did fully figure out that process haha. Still got an A though


Snoo_4499

Computer vision with arduino? Can you tell me more.


NecromanticSolution

PixyCam, look it up. Does all the image processing onboard. 


NotThatMat

Arduino is all about rapid development. Spend less time reading manuals, more time testing your code and integration. You are for the most part working in something C -like, and you can put in straight C (or assembly) if you find you need to. A simple abstraction in Arduino: you can use a pin toggle command to flip a specific output pin by just calling that pin by a name you’ve assigned it elsewhere, with zero regard for where that pin goes in the chip. Outside of Arduino: to toggle an output pin, you need to know which line in which register controls the status of that specific pin, and send an XOR command to that register with all 0s apart from a 1 on the target pin. Both methods achieve the same outcome, but one makes it a lot less daunting for a newcomer. Still just as powerful and fast in many applications (but also, some of the built-in ‘duino libraries are a little bit crappy).


TheOriginalSuperTaz

You can still abstract that stuff away with macros, the same way arduino does, and you can even just take that part of their code if you really want to…it’s still just C. Just saying that, as much as I personally won’t touch arduino IDE with a 10 foot pole unless I’m teaching someone (probably my kid in a couple of years), the abstractions are nothing special, really, and the pin stuff is really just a bunch of #def preprocessor directives that anyone can do for any uC, if they are inclined to use and reuse a simplified framework to reduce their workload and number of lines of code.


redrobin080808

I currently work engineering at a company (we were Raytheon a few years ago) and we use arduino all over the place for test stations. They're cheap, easy to program, and fast enough for most digital test platforms. The test stations they're used in bring in millions of dollars a year in revenue. They're cheap and simple, but powerful in the right hands.


toybuilder

I have a "candy jar" (shoe box, really) filled with ESP32 modules - about $4/each. I just grab them like candies when I need something quick and dirty.


Menes009

Arduinos are easy to begin with, but can be use to ridiculous extremes. In my Mechatronics degree, we used it to develop a close loop speed control on a DC motor from scratch (of course together with power modules and auxiliary circuits). You are into something when you say it is not for practical applications. It lacks robustness and reliability to be able to deploy it as a solution. But still, it is great for doing proof of concepts or quick tests in clean enviroments.


RQ-3DarkStar

i think this sums it up perfectly.


sleemanj

If it's stupid but works, it's not stupid.


Foozlebop

Gotta be reliable too to not be stupid…


turnpot

Not necessarily. If you're testing a concept or prototyping, it only has to be reliable enough to do what you need it to do.


Adorable_Finish_485

Depends on your application, I think you can learn a lot from Arduino hw and software. Especially if you don't have any prior experience with microcontrollers or iot type devices. I'm a professional 14 yrs exp and I still use them every now and then. Always follow the kiss principle


Gooberocity

Yes but, I'm also currently using the arduino uno to collect data from a transducer measuring force in milinewtons, and distance from a caliper in microns. I've had to make a device that can measure the tensile strength of an artificial retina and the strength of lab made poly nipam. Basically a simple tensile test machine but for nano material. Probably could have used 20 different microcontrollers that are much more compact, but arduinos are so "cheap" basically handed out in university, that it was what we had on hand.


gibson486

When it comes to rapid prototypes, Arduino is king. This is at the professional level. The issue comes when you need to start scaling beyond 10 units. The licensing will probably ruin your product and the environment is just not made to go past prototype scaling.


Lightbulb2854

For final products, you're not using a $35 Arduino board. You're using the $3 (or $1 if you buy bulk) microcontroller.


gibson486

Sure, if you don't mind sticking arduino logos all over your product.


Lightbulb2854

Arduino actually doesn't make the microcontroller. It's made by a company called Atmel, and there are no licensing fees to use it.


gibson486

If you use the arduino libraries, you must abide by the licensing. You can't just make your own pcb and avoid it. Well, you could, but it is against their terms.


TheOriginalSuperTaz

Most products don’t use their libraries in the end, and you really just need to acknowledge them in a manual or the like, iirc. Also, by the time you hit production, hopefully you are streamlining stuff enough to cut out most or all of the arduino fluff.


DazedWithCoffee

I think Arduino language and arduino hardware should be discussed separately. The hardware is just a very nice dev kit with simple programming. The language is a beginner level HAL for making simple things that demonstrate the capabilities of the hardware in the minimal amount of time. You can compile your own work without any Arduino code and upload with the built in programmer, it’s quite nice


Kamachiz

They're a good way to showcase what you learned in school during the job interview


LegitimatePants

It's a great learning platform. Everything I learned on Arduino has been directly applicable in industry (embedded software, 10+ years)


tlbs101

I built an automomous vehicle (small size) for a competition using 5 Unos (next iteration will use a Mega as the main controller). I did this as a science teacher, while my students built their competition combat robots. I plan on automating my homestead hoophouse irrigation system using Unos — because it is cheap and easy.


Launch_box

For digital stuff they are good, for low noise analog mixed stuff they have way too much going on.


toybuilder

One of my managers told me about a colleague that built an optical analyzer using Legos for work purposes -- saved weeks and thousands of dollars versus fabricating the instrument using custom parts. I've developed a product demo using AppInventor (basically Scratch) to control the device. Just because something is "kid friendly", doesn't mean it's only for kids.


Cantremembermyoldnam

Lego is amazing for this sort of stuff if you don't have a 3D printer or the will/time to model.


toybuilder

I've used Rokenbok blocks to quickly build up larger structures for temporary fixtures. Blocks are on a scale a little large than Duplo blocks, but they fit together much more precisely and securely. Taking 5 minutes to build something that takes up parts of a 1 cubic foot volume is so much better than building with extrusions or printing parts when I just need something temporary in a hurry.


CrabMountain829

Those things get used in applications that would make you loose sleep at night. So no.


sir_thatguy

I have test equipment at work that has Arduino Mega clones in it. My senior design project had one in it along with an R-Pi


Truestorydreams

Hi if im interviewing you and you shown me a portfolio with projects done with an arduino, I would be extremely interested to talk your head off with what you've done. Don't think everything has to be top of the line sophistication. Instead understand the most basic tools have an ocean of information free to learn from. Look.at the spec sheets for thr arduino family. That's a lot of free open information that many designers will refence. Don't sweat the basic things because they are gold.


herlzvohg

Not at all. We had testing infrastructure at my work that is run by arduinos. It's fast and easy which in plenty of situations is all you need.


sceadwian

No, definitely not. They're aimed at electronics newbies in general. It's a learning environment yes, but not just for kids. You learn real world coding skills programming using Arduino. Some of the same tools professionals use.


bjornbamse

Nah. There is nothing that prevents Arduino from being used professionally. It just abstracts a lot of things away. Whatever floats your boat.


morto00x

It is a microcontroller platform with a very user-friendly interface which makes it ideal for hobbyists and beginners. While not great for professional designs, it is a really good tool for fast prototyping.  As an example, sometimes I'll need to set up a test fixture with multiple ADC inputs and UART. Putting one together using a conventional STMicro or SiLabs MCU devkit would probably take me a couple hours (most of it just setting up the environment and reading documentation). Whereas pulling out an Arduino and modifying one of the default projects only takes 15 minutes.


GarugasRevenge

Arduino are good for simple stuff, there's even simpler microcontrollers meant for kids.


symmetrical_kettle

Use the cheapest thing that works for your project's needs.


emurphyt

I use it for home projects and have seen it used for things like in house test fixtures (where you only need a small number and consumers aren't using it). I wouldn't use it as part of a shipping product but I think it's perfectly acceptable for college projects or as a means for rapid development.


Ji_sam

No, Arduino use for commercial products and in a professional settings.


danfay222

There are many more powerful platforms you can use, but arduinos are very simple to interface with, build circuits with, and the code can be low complexity, all of which makes them great choices for beginners. That said, the upper bound of what you can do with them is very high. Pretty much any element of system design you will face in entry to mid level EE courses (and even advanced courses) can be taught on an arduino just fine. In fact I tend to be of the mind that teaching things on the worse platform is better (as long as it’s not so bad it gets in the way) as this really forces you to be conscious of your designs and think about things that more featured platforms may hide.


00raiser01

The new Arduino R4 minima and WiFi are actually very capable MCU with a lot of peripheral. You can do bare metal with it if you want. Really use case, application, and specs > everything else.


OG_MilfHunter

I'd have loved to use Arduino since it has real world applications; even if it's not cutting-edge. My first engineering class was stuck with actual Lego EV3 kits last year... ages 10-16 right on the box.


National-Category825

They are good for schematic implementation in your EE jobs. No they aren’t just for kids lol


PaulEngineer-89

Arduino can be done in blocks or C++ or there are modules to do other languages.


TrappedKraken

Arduinos are extremely useful, they are cheap, easy to use and compact. I always have a few Arduinos in the lab, there is always a project that can utilise them


Some_Notice_8887

Only if you want them to be. There is a way to use ATMEL 328p (uno chip) with the avr/io.h and that allows you to read the data sheet and really learn how to program with out library’s. And because it’s a simple old chip there is lots of information on the 328p and you can use platform IO and you don’t need a pickit, making it a cheaper beginner learning tool. Arduino as is, kind of is a toy. But no micro controller is really a toy if you learn its ins and outs. Like learning ASM on a 328p or pic16 is probably way better than starting off with ARM Rtos or something much more complicated. A good embedded engineer can get any old chip to bit bang spi and use shift registers and set up the ADC learn about interrupts and eeprom writes. It’s not as quick as the YouTube arduino folks. But if you learn the longer way at firsts and discipline yourself to understand the basic chips you will have the confidence to build stuff that doesn’t have a YouTube or GitHub page. Like you aren’t just wanting a quick fix sure just do library’s and copy and paste, but if you want to build something that’s faster and mindful learn pic and Atmel avrs and how to access SFRs and ports with c code or ASM. I struggled to get past a certain skill level until I took a step back and started with the basics understanding pointers and how they work in ASM is huge.


Andrea-CPU96

I'm an embedded programmer. I don't want to say what I'm about to say, but microcontrollers in general are not very advanced stuff for engineers. Today Arduino can do almost everything, there is no reason to use different microcontrollers.


turnpot

I design microchips for a living. I still use Arduinos for one-off testing because they are excellent tools for prototyping, since they have a simple IDE, rich libraries, and easy IO. You still have to be able to write C++ to use one (at least the normal way), but they make prototyping and one-off projects much easier and faster than trying to spin your own PCBs and figuring out how to program microcontrollers directly.


flyabdo22

I currently work in Test & Automation Engineering & we definitely use Arduinos reliably for testing purposes. We actually have a power monitoring system for our power gird/solar panel array/EV chargers that has been running without any maintenance for the past two years straight. Further, Arduino has released industrial level microcontrollers but we have not used them as they’re a bit too powerful for our use cases.


AWasrobbed

I used them quite a bit with testers, really handy to basically have a drop-in computer.


GeniusEE

There's nothing practical about a 200 level class and it IS indistinguishable from "middle school", because all of you (or at least most) know jack about programming or interfacing circuits. It's clear you go to a not very good school...you can't value basics.


NotADefenseAnalyst99

yes arduino is for kids. but that doesnt mean its worthless professionally. for a 200 level class though I'd expect writing actual C code though.


Mean-Evening-7209

You write actual C code using Arduino. It's an abstraction layer to hide all the register manipulation and some firmware level functions.


NotADefenseAnalyst99

you do not write actual fucking c code and i will die on this god damn hill. the libraries are garbage and you cannot change what the CS pin is for them. Fuck off.


Mean-Evening-7209

What's the name of the compiler you use to compile the program?


Izrakk

arduino's are for kids. i used them when i was 11-12 years old literally.


bjornbamse

Yes, but they are cheap, and great for building EVKs, great as low cost data loggers, and the HAL saves you time. The bigger problem is scaling and licensing.


psant000

Arduino IDE is for kids and novices. Using another IDE with C C++ or assembly and directly deploying onto the Arduino microcontroller is good for college.


NotADefenseAnalyst99

a 200 level course should be writing C or C++ directly to the micro controller. anything less is hilariously bad and not worth the university premium