Arduino?Rasp Replacements - Page 1
Forum section: electronics / general

author: DaveyG
author_rank: Newbie
timestamp: May 16, 2020, 09:43:58 am
content: I was just wondering this morning.Do any of you clever people know what the direct replacement for an Arduino would be? I am aware that the micro controller itself is just the AT IC in the middle of my Arduino but I was wondering if there are any ICs like a PIC that are a replacement/professional version of an arduino.I am aware this is a silly question

author: I wanted a rude username
author_rank: Frequent Contributor
timestamp: May 16, 2020, 11:10:09 am
content: The microcontroller on a regular Arduino is anATmega328P, and it's certainly used in real, professional products ... just less often these days because ARM-based microcontrollers are cheaply available, but those also tend to be more complex to code.Something like a professional equivalent to the Arduino board is theATmega328P Xplained Mini. This board lets you easily use the microcontroller's built-in debug functionality, so you can set breakpoints etc. instead of just doing printf()s over the serial UART like on an Arduino. The idea of this board is you develop your program on it and then create your own PCBs with ATmega328s on them.That said, there are plenty of commercial products that actually contain Arduinos, Raspberry Pis, etc. Engineers do what works.

author: donotdespisethesnake
author_rank: Super Contributor
timestamp: May 16, 2020, 11:15:44 am
content: This sounds like an X-Y question. What is it you are actually trying to achieve?The vast majority of products using an MCU will use a custom board, so in that sense there is no "professional version" of an Arduino. Only when you get to Linux class CPUs, will you find people use of the shelf modules, although the norm is still to place the CPU on a custom board. Designing 6+ layer boards with DDR etc is bread and butter for professional engineers.

author: rstofer
author_rank: Super Contributor
timestamp: May 16, 2020, 03:42:45 pm
content: I don't really understand the question. Are you looking for a board that is more 'professional'? If so, what characteristics would it have?There are a lot of other boards, many of which use the 'wiring' concept and are thus Arduino 'compatible' for some notion of compatible.For example: The Arduino Due board has a LOT more IO and uses a much faster ARM chip yet it still uses the Arduino IDE and provides for the same library functions.Then there is the Teensy series of boards.https://www.pjrc.com/I have a couple of the new 4.1 boards and the libraries will be released tomorrow. Again, this can work with the Arduino IDE (as if that is a goal!) and uses the same underlying 'wiring' library concepts. The 4.1 uses the same 600 MHz chip as the 4.0. These things are nearly 40 times as fast as the conventional Arduino in terms of clock speed and 300 times as fast in terms of benchmarking.https://www.pjrc.com/store/teensy40.htmlI like the 'stamp' form factor (sort of like a DIP package with a ton of pins) because I can easily build a daughter card for my project and just plug the CPU board into a socket.There are MANY other devices so it really depends on what you mean by professional. I like the mbed LPC1768 device and I like using the online mbed.org compiler. But at 96MHz, it's showing its age.https://os.mbed.com/platforms/mbed-LPC1768/There is no way I'm going to create a CPU board. It's too much work and it's just a lot easier to plug in one of the 'stamp' format boards into a daughter card.'Stamp' form factor probably started with the Paraallax Basic Stamp a long time back:https://www.parallax.com/product/bs2-ic

author: rstofer
author_rank: Super Contributor
timestamp: May 16, 2020, 04:03:34 pm
content: Although most Arduino related projects use the provided wiring library functions, it isn't required. You can write to bare metal if you wish and completely blow off any notion of Arduino. All you would have is an ATmega328P with direct-to-hardware code. There's no reason to avoid doing this, it's just that Arduino users typically create their project around the provided libraries. Considering that when using the Arduino loop() function everything must be done in a superloop and just about nothing uses the underlying hardware features, there is a real limit to how responsive the chip can be. After all, it's pretty slow to begin with.There are many good reasons to move away from the Arduino libraries but it's just a whole lot harder to get a project to work.

author: Syntax Error
author_rank: Frequent Contributor
timestamp: May 16, 2020, 04:57:30 pm
content: There is also the Arduino Pro range.https://www.arduino.cc/pro

author: DaveyG
author_rank: Newbie
timestamp: May 16, 2020, 04:59:13 pm
content: Thank you all for the replies.I am not looking at making anything specifically.I was just thinking outside my small box of hobby electronics, wondering what a company might put onto a PCB instead of headers and then an Arduino or as some of you stated Teensy etc.I nice bit of reading I can do from your replies though so thanks.When it comes to 'coding' a microcontroller that is just soldered onto the PCB, how do they do it? Is it put into an external DIP cradle that loads the code on, then they solder it onto the board? After the prototype stage getting it to work.

author: Rick Law
author_rank: Super Contributor
timestamp: May 16, 2020, 08:03:27 pm
content: I am an amateur but I have played with the Arduino for a few years. Even as an amateur, I have seen "professional PCB's" using MCU's lesser than an Arduino.For example, I have a few "professional manufactured" flashlight driver PCB's using the ATTINY 13A, a low-end AVR which is a few cuts below the ATMEGA328 in the Arduino-UNO, also an AVR line of MCU from the same manufacturer. The limits on the ATTINY13 is so low it makes the ATMEGA328 looks practically like a super-computer.I actually upgrade the ATTINY13A to ATTINY85 - same pinout but slightly bigger. Bending the pins a bit, I squeezed the ATTINY85 onto it so I can make my flashlight driver with more capabilities (ATTINY85 @ 8K flash/512 ram vs ATTINY13a @ 1K flash/64 ram space - but not like the ATMEGA328 with 32K flash/2048 ram). I also have a couple ofATTINY25 control boards with pin-headersperhaps for plugging directly into a product housing to do whatever - if only I can find them, I'd show you a picture. I purchased them from eBay when I was experimenting to decide whether I would want to replace the MCU in my flashlight driver.For "professional" products, you can bet they will save as little as a cent or two and use the cheapest possible MCU that can do the job. And, depending on the product, an ATMEGA 328p may be an over-kill. So, don't go with the idea that "professional" stuff will be more feature filled - they are perhaps better made but surely not overly featured.To paraphrase a movie saying "Spare no expense", professional PCB's will "Spare all unnecessary expense".EDITed: minor wording corrections

author: MosherIV
author_rank: Super Contributor
timestamp: May 16, 2020, 09:23:55 pm
content: Hi, I am a professional embedded software engineer and have worked in the field for 20 years.There are development boards that show case particular microcontrollers from each microcontroller manufacturer. These are typically used by companies to try out a microcontroller in a particular range before designing and building a custom board for production. These dev boards use to be well out of price range for ametures, typically they cost £100s each, and needed expensive debugger equipment. These dev boards may or may not have connectors for adding or connecting to other boards, or they may have lots of peripherals integrated on the board for demonstration purposes.Sometimes the dev board will be used as a prototype core of a demonstration system for the end application. The end custom board will be designed with the microcontroller and all the electronics for the end application, often based on the prototype.ST micro have lead the way with ultra cheap dev boards with the Nucleo and discovery range that both companies and ametures are using. TI have also made MSP430 dev boards relatively cheapin the past few years.Prior to this, the manufacturers were not interrested in hobbiests and they did not want to sell dev boards at a loss. Now, the hobbiest market is worth it and the manufacturers make a small range of cheap dev boards, like the ones I have mentioned.They also still make and sell the expensive professional dev boards, just go to the microcontroller manufacturer web sites, look up the ranges of microcontrollers, pick a specific device and see if they produce a dev board with that device. Some will be expensive and aimed at the professional market, some will be very cheap and aimed at both markets.

author: brucehoult
author_rank: Super Contributor
timestamp: May 16, 2020, 09:43:39 pm
content: Quote from: DaveyG on May 16, 2020, 04:59:13 pmYes. you can program the chip like that before it goes on the board, but you can also program many of them when they are already on a board by attaching a debugging/programming clip on top of them.A couple of months ago someone brought a "Blickstick Square"https://www.blinkstick.com/products/blinkstick-squareto me and asked if it's possible to make it show a pre-programmed light sequence with just power attached, not a PC. Normally the PC send commands down to it via the USB.I took a look, saw an ATTiny85 on the back of the board, and said "I think so". I wrote and downloaded new firmware for it using a SOIC-8 clip and the standard "Arduino as ISP" program on an Arduino Uno. You need to connect GND, +5, RESET, data in, data out, clock to specified pins on the ATTiny85. The program holds RESET high and uses a defined protocol implemented in hardware on the ATTiny to download the new code. This works as long as the existing firmware doesn't reprogram the RESET pin as an output (I think).It's pretty easy.https://twitter.com/BruceHoult/status/1233627006606041088Here I've got the ATTiny85 on the BlinkStick using one output pin (as normal) to control the built in LEDs, and another pin to control an external LED array I bought for $13. (It can run much much faster than this -- refreshing the external 64 LED array takes about 80 us)I also programmed the same code (in fact before I risked the BlinkStick) into a stand-alone ATTiny DIP8 I bought on Amazon (5 for $10). Once programmed it needs only GND, +5, and the output data pin to the LED array. No other external components.

author: MosherIV
author_rank: Super Contributor
timestamp: May 16, 2020, 09:53:30 pm
content: When is come to programming the microcontroller, it is common to either use the debugging interface (JTAG) or to develop some proprietry flashing method.With the JTAG method, the production boards will have a programming connector on it somewhere. Sometimes the connector will not be fitted because the production line will use bed of nails pogo pins that mean fitting the connector is not needed.With the flashing method, something convient like USB interface will be used and a special program to send the binary image will be provided. The microcontroller will have some communication protocol to send the binary and let the program the progress.

author: Rick Law
author_rank: Super Contributor
timestamp: May 18, 2020, 12:01:08 am
content: Quote from: brucehoult on May 16, 2020, 09:43:39 pmI too use an SOIC-8 clip to connect-to and program the ATTINY13, ATTINY25, and ATTINY85. For ATMEGA already on a NANO or UNO, I use the 6-pin ISP jumper-header. I have a dedicated programmer-NANO running a slightly modified version of the ISP-Programmer program. The programmer-NANO is on a protoboard with headers to connect an SOIC clip, and/or a 6 pin ISP header. So I can use SOIC-8 clip or use ISP connector to program the target ATTINY/NANO/UNO. Great way to put the Arduino boot-loader on a new bare chip or put any program onto the AVR for one-at-a-time scale...But, I think the OP may also be asking about how the program got onto the MCU during PCB manufacturing process. That I will have to leave it to others with actual knowledge of that process.

author: brucehoult
author_rank: Super Contributor
timestamp: May 18, 2020, 05:13:04 am
content: Quote from: Rick Law on May 18, 2020, 12:01:08 amWhat have you changed?One thing I thought about trying was having the chip being programmed powered from a GPIO pin on the programmer-Arduino instead of directly from +5 V and have the ISP-Programmer program only power on the target chip at the start of the programming process.

author: Rick Law
author_rank: Super Contributor
timestamp: May 18, 2020, 10:00:58 pm
content: Quote from: brucehoult on May 18, 2020, 05:13:04 amMy modified ISP programmer program has another home-brewed program embedded. It has an "overlord" which on starting reads a DIP switch to decide what to run - Run start-A/loop-A or run start-B/loop-B.(A) NANO as ISP-ProgrammerThe ISP-Programmer side has just very minor change - the Arduino Example Program already support indicator LEDs. I modified it to have 3 LEDs, Red (programming - don't touch now), Yellow (Getting ready), Green (done, finished, can unplug/reboot anytime)(B) NANO as USB adapterThe programmer-NANO serves as the USB serial adapter for the target-MCU (for me, my target frequently is an ATTINY85).The NANO runs bit-bang to add RX2/TX2. With the ATTINY85 running universal serial "bit-bang" RX/TX which connects to the NANO's RX2/TX2. What the ATTINY writes, the NANO read and pass on to the USB. What the NANO received from the USB, it passed along to the ATTINY to read. With that, my ATTINY85 can talk to any serial terminal program on the PC via the NANO as communication conduit.Since I mounted the programmer-NANO on a prototype board, I have room for more DIP switches and headers. Besides the standard ISP header and a header to connect the SOIC-clip cable, I also have a break-out header for the 8 pins coming from the SOIC clip. Additional DIP switches allows me to connect-to or to cut off individual pins from the target-MCU to the NANO (leaving that pin connecting the target-MCU pin to just the header break-out). That header allows me to insert something simple like an LED, or a jumper to a real breadboard.The serial capability along with the breakout header, I can leave my ATTINY85 on the SOIC clip and do quite a lot of work before I need to solder it to the target PCB.

author: brucehoult
author_rank: Super Contributor
timestamp: May 18, 2020, 11:40:54 pm
content: Quote from: Rick Law on May 18, 2020, 10:00:58 pmYup. Handy.