Any other platforms like Arduino? - Page 1
Forum section: electronics / beginners

author: ZeroResistance
author_rank: Frequent Contributor
timestamp: December 28, 2017, 05:58:49 am
content: What options does a developer have today for rapid prototyping. With that I mean to quickly put together a circuit and start testing it.Arduino already has an established software library and various shields but I would like to know about other options and weight their pros and cons.I have heard about other platforms like mbed, raspberry pi but don't know if they have the breadth that arduino and its shields cover?It would be interesting to know what platforms do companies use to do their prototyping work on?TIA

author: Peabody
author_rank: Super Contributor
timestamp: December 28, 2017, 06:25:10 am
content: I don't know of anything that compares with the shields and libraries available for Arduino. In theory, the TI MSP430 processors have a Launchpad board, which accepts shields, and it even has a port of the Arduino IDE for MSP430 called Energia. But I don't think there's anywhere near as much stuff available for it. Don't know about PIC though.

author: kripton2035
author_rank: Super Contributor
timestamp: December 28, 2017, 09:28:55 am
content: the arduino is the way to goI don't know of any other solution with thus huge available library and examples. it really covers any solution.you will leave the arduino world when your app will demand too much power and speed the arduino is not capable of.then you can go to the esp8266 and esp32 platform, that pretty much is like an arduino but with more wifi and bluetooth and speed.after that, you can go up with raspberries and mbed and the arm family.but sorry when I see weather stations based on a raspberry, it's for me a huge mess of computing power...(and money too as a raspberry is almost 10x the price of an arduino)

author: AndyC_772
author_rank: Super Contributor
timestamp: December 28, 2017, 09:36:46 am
content: If you're thinking about the Arduino, bear in mind that a professional engineer often has no need to prototype something so simple. Prototyping is all about the other parts of a design: I/O ports, analogue circuits, power supplies, and so on... things that are bespoke, unique to the product being developed, and unlikely to ever be available as a "shield" for any platform.I sometimes start writing code using an STM32 Nucleo board. These are so ridiculously cheap, it's worth having one just to make a head start on getting the start-of-day code written while the PCB is out for manufacture, even if it then gets stuffed into the back of a cupboard never to be seen again.I'll also use manufacturers' own test boards for parts that are otherwise difficult to try out. For example, solid state accelerometers tend to come in tiny QFN packages that require a PCB, but I can write the driver in advance if I have a board with just that component on it which I can wire across to some other board that has a CPU.Typically, though, the prototyping process goes something like:- gather requirements and develop specification- draw rev A schematic- lay out PCB- send off for manufacture- while manufacturing is happening, start the next project, write code, occupy time in a productive way- plug in first rev A board and power up- test, debug, modify, repeat- produce rev B schematic- etc.

author: picandmix
author_rank: Frequent Contributor
timestamp: December 28, 2017, 09:49:41 am
content: The Arduino probably is the most supported device in both hard and software terms, but almost every manufacturer has their own development board and IDE.Whats equally important is your ability to utilise that hard and software if it meets the needs of your development work, whatever level that is at , hobby / professional ?For example, look at the low cost Cypress dev boards which have so many functions built in along with configurable block arrays etc.http://www.cypress.com/products/32-bit-arm-cortex-m3-psoc-5lpLike all dev boards, its down to your own abilities as to how easy it is to move to a new micro, some are easier than others.Equally the benefits of an active forum for the particular device can be a deciding factor, as often you will need the experience of others to overcome various problems.

author: chris_leyson
author_rank: Super Contributor
timestamp: December 28, 2017, 10:08:10 am
content: I've use a Microchip Microstick II before as part of some prototype production test gear, it comes with a debugger built in and you can choose between four different families of processor. Another reason for choosing PIC was familiarity with the free C compiler.

author: paulca
author_rank: Super Contributor
timestamp: December 28, 2017, 10:48:34 am
content: The Raspberry PI is worth a look, if you haven't already.It's a completely different ball game to the Arduino. As mentioned above it can and often is used as completely overkill.Unlike the Arduino the Raspberry PI is a complete "PC" on a small board. Thus it's raw specs are many orders of magnitude greater than the Arduino which pales as tiny in comparison:1.2Ghz quad core processor1Gb RAM onboardMicroSD card storage up to 64Gb (or 128, 256Gb if you want to pay for the latest large SDs)Full 100Mbps wired EthernetWifi 802.11nBluetooth400Mhz GPU w/ HDMI capable of full HD video playback + more.Onboard stereo sound.USB2.0 (4 ports)There are things the Arduino has out of the box that the PI does not, such as onboard hardware ADC/DAC ports, though you can do custom PWM on a digital out of course. It will of course do SPI, i2c, 1wire etc.While the Arduino is programmed over serial and you effectively write a single binary to the core and it will execute that single binary for the rest of time until reprogrammed, the PI runs an operating system (usually a Linux flavour such as Raspbian). Thus the PI is fully capable of multi-tasking and can run dozens of processes together. The Arduino by contrast is arguably single threaded (yes you can use interrupts and probably time slicing) but the PI supports multi-programming, multi-threading, multi-processor out of the box. This has downsides, if your project requires precise low level timing, the PIs multi-threading and multi-programming architecture can actually get in the way as the CPU is serving hundreds of interrupts routinely. The simplicity of the Arduino (or other MCU) becomes an advantage here.For me the appeal of the PI over the Arduino is the easy access to network, storage and other connectivity. Sure you can get Ethernet or Wifi shields for the Arduino and SD card access, but with 32k of RAM you are effectively messing around with 1980s level processing, accessing 2000 era network and storage. Besides an Arduino with an Ethernet sheild and SD card looks like overkill in itself, just seems "unbalanced" really.The PI, being a PC allows you to program in higher level languages such as Python which opens you up to a massive library of code which will do things that the Arduino just won't be able to. Such as writing an RRD file, using a MySQL database, creating a fully functional webserver and/or dynamic web application front end.You also gain access to any USB device that will work on Linux.Cost is relevant. If what you are doing is more than doable on an Arduino then that would be the cheaper option, however, if you start with Arduinno+Wifi Sheild + SD card + Power supply you are starting to talk the same kind of money as a PI which has all of that built in and then some.You can also interconnect them over serial to get the best of both worlds.

author: danadak
author_rank: Super Contributor
timestamp: December 28, 2017, 10:50:04 am
content: Cypress PSOC -The wall of text, for those affected avert your eyes -For me what stands out is -1) Routability2) Fast 12 bit SAR A/D and slow 20 bit DelSig3) DFB (Digital Filter Block) that is dual channel, handle FIR or IIR filters, or DFBcan be used as a GP fast processor block, similar to RISC block4) MSI logic elements GUI based and/or the UDB Verilog capability. Eg. the FPGAlike capability5) Onboard Vref6) IDAC, VDAC, OpAmps (up to 4), comparator, mixer, switch cap, analog mux....7) LCD, COM, UART, I2C, I2S, One Wire, SPI, Parallel, LIN, CAN, BLE, USB9) Custom components capability, create with schematic capture or Verilog10) DMA to offload processes like filters, COM, Display11) ARM M0 (PSOC 4) or M3 (PSOC 5LP) or 8051 core(PSOC 3) or M0+/M4 dual core PSOC 612) Extensive clock generation capabilities13) All components supported by extensive prewritten APIshttps://www.element14.com/community/thread/23736/l/100-projects-in-100-days?displayFullThread=truehttp://www.cypress.com/documentation/code-examples/psoc-345-code-examplesGreat video libraryAttached component list. A component is an on chip HW resource.Free GUI design tool with schematic capture, "Creator". Components have rich API library attachedto each component. Compilers free as well.PSOC 4 is low end of family, consider 5LP parts as well. PSOC 4 also has arduino footprint boards (pioneer) as well. PSOC 6 dual core M0+/M4.https://www.elektormagazine.com/labs/robot-build-with-cypress-psochttp://www.cypress.com/products/32-bit-arm-cortex-m-psochttps://brightcove.hs.llnwd.net/e1/uds/pd/1362235890001/1362235890001_5241352463001_2606504288001.mp4?pubId=1362235890001&videoId=2606504288001Regards, Dana.

author: ZeroResistance
author_rank: Frequent Contributor
timestamp: December 28, 2017, 11:22:52 am
content: Quote from: Davy_ on December 28, 2017, 09:17:45 amNot yet looked into the Raspberry Pi. But what I meant to ask was that are there any competing ecosystems like the Arduino, that have a whole range of software libraries, hardware / shields for sensors / actuators etc. where all I have to do is connect these boards together and possible write some logic for the app but all the base work is already done.

author: paulca
author_rank: Super Contributor
timestamp: December 28, 2017, 11:30:32 am
content: Quote from: ZeroResistance on December 28, 2017, 11:22:52 amThe PI meets that requirement. In PI Land they are called "Hats" rather than sheilds. It has a huge eco-system. Just have a browse around on something likewww.thepihut.com:https://thepihut.com/collections/raspberry-pi-storeAlso, I should mention the "PI Zero" which isn't much bigger or more expensive than an arduino nano, but is orders of magnitude more powerful.https://thepihut.com/collections/raspberry-pi/products/raspberry-pi-zero-w?variant=30332705425

author: paulca
author_rank: Super Contributor
timestamp: December 28, 2017, 12:49:18 pm
content: Quote from: kripton2035 on December 28, 2017, 09:28:55 amI kinda see what you are saying, but your view is a little too down in the weeds, if you will excuse that saying. You are thinking in "microcontroller" land, down with the ants, while the rest of the world is zooming around in drones 1000ft above you.Reading a sensor is the Arduino's meat and two veg. It does it amazingly well. Reading a sensor like that is completely overkill for a Raspberry PI, yes.But. Consider the question, "Now I have X,Y,Z data from sensors, what can I do with those?"This is were the Arduino kinda hits a brick wall. Sure you can display them on a oLED screen, you could send them over a short serial line to something with the power to do other things (such as a PI), but without expensive ungainly shields and daughter boards you are kinda stuck down in the weeds. You could switch a relay or two maybe.You can't even really store the data and perform statistics as you just don't have the memory for anything useful in the time frames a weather station could use. If you have say 10 x 16 bit values taken once a second, you could store about a few hours and if your power blips you lose it. You can use the lesser flash RAM but I think it's exceedingly limited in size.So you can't store the data and you can't get the data off the board without expensive shields. Even those expensive shields are limited with no OS to support them. Eventually you will be crying out for an operating system, proper storage, proper networking.My "weather station" runs on PIs and while I do often feel that using a raspberry PI to read 3 sensors is overkill, I then remind myself that those sensor values are unicast over the Wifi to another PI where they are arrogated and recorded with 1 minute resolution for 2 years before being archived/averaged back to 5 minute resolution for another 10 years. The later isn't really required I can afford SD card storage to store 20 sensors @ 1 minute resolution for 10 years easily. AND I have the CPU and memory power to actually process that kind of dataset.For what it's worth, I use "RRDTool/RRDGraph" which is specifically designed for storing history data series in fixed size data sets. It has a graphing API which will produce PNG images on demand and can be scheduled to batch process hundreds of graphs or called directly from a web interface to generate them on demand. None of that is possible in an Arduino and even if you could store the datasets, it would take hours and hours at 16Mhz compared to a quad core at 1.2Ghz. The RRDTool binary alone would fill the Arduino's memory several times over.I looked into replacing at least the sensor PIs with Arduinos but when it started into WiFi shields and dicking about with DHCP to feed it configuration, it just didn't add up in cost, convenience or usability.For home use when you are looking at buying half a dozen "Nodes" the raspberry PI is certainly affordable. I could only see the advantage of the Arduino for weather station use if you are considering productising your weather station and want to eventually move to a bare Atmel chip, mass produce them on a PCB and keep costs very low with the added overhead of designing the full board.Not to knock the arduino for where it's particular platform is advantageous. Low power, cheap, real time computing. The simplicity and cleanly-ness of the architecture allows you super fine grained control over what gets executed when, which the PI will make very difficult and require kernel level development to get yourself into the real time priority scheduling space in kernel space. Even then, consider that a Linux system can be so heavily burdened with real time priority interrupts that it fails to update it's system clock from the RTC interrupt. That said, with the right know how I think you could simulate a whole rack of Arduino's within a PI and with kernel space simulation of the Mega even get close to the timing accuracy.The other advantage of the arduino is the polar opposite of the PIs advantages. It's simple. There is no OS to install, update and maintain, no disks to maintain, etc. etc. Low power consumption. Very simple "one click" programming IDE. (Although with a working python set up, logged into the PI over ssh it is arguably even simplier with the PI)

author: Raj
author_rank: Frequent Contributor
timestamp: December 28, 2017, 01:07:30 pm
content: the question, one should ask is- for what project?btw,theres tensey,rpi,beagleboard,hc5,esp8266,the list goes on.my advice-get a book on c (language)

author: rsjsouza
author_rank: Super Contributor
timestamp: December 28, 2017, 01:15:41 pm
content: If you are coming from Arduino, I suspect you may be more comfortable making smaller steps instead of jumping straight to an advanced embedded computing platform such as Raspberry Pi or BeagleBone. Adding to the aforementioned ARM Cortex M platforms such as STM32 Nucleo and PSoC, the Launchpad family also has MSP432, CC13xx (low power RF), CC2640 (Bluetooth) and CC32xx (WiFi), which use the same connector standard as the MSP430 Launchpads. There are also some more specialized Launchpads for motor control (F28xx) and usong a faster Cortex R (TMS570 and RM4x). They all use the same connector standard.

author: janoc
author_rank: Super Contributor
timestamp: December 28, 2017, 05:20:54 pm
content: Don't forget the ESP8266 boards - hw SPI,I2C, some GPIO (look for the modules with most pins broken out), plenty of flash and RAM, works with the Arduino libraries - and you get Wifi and Bluetooth as well. It is somewhere between the 8 bit AVR boards and the full SoC systems like Raspberry Pi and Beaglebone.

author: kripton2035
author_rank: Super Contributor
timestamp: December 28, 2017, 05:47:34 pm
content: Quote from: janoc on December 28, 2017, 05:20:54 pmESP32 has bluetooth (and wifi), but the ESP8266 only has wifi embedded.

author: westfw
author_rank: Super Contributor
timestamp: December 29, 2017, 09:38:21 am
content: Arduino-like IDE:MSP430 launchpads. (Energia)Stellaris and MSP432 ARM Launchpads (Energia)Assorted "Teensy" boards (USB AVRs (teensy, teensy 2) and NXP (Freescale) ARM (Teensy 3.x))Microchip PIC32 "ChipKit" (MPIDE)Assorted STM32 ARM, includes some ST "eval boards" (http://www.stm32duino.com/, "Maple")Assorted ESP8266 and ESP32 boards (WeMos, Espressif, etc)Assorted other boards (ATmega1284, SAMD09, ATmega328pb, "Circuit playground", etc.)MBed IDE/libraries. This is another "easy to use" set of libraries, originally developed by NXP for ARM chips.Assorted NXP eval boards.Many more. Seehttps://os.mbed.com/platforms/Some have the Arduino "shield" format and might be usable with shields originally designed for Arduino.CircuitPython, Lua, BASIC Stamp, PICAXE...Many more... You have hundreds of choices, and everyone wants to tell you how easy their software is to use. Essentially, Arduino and a few hardware vendors started selling relatively bare "platforms" for $30 or less instead of the $300 that more complex evaluation boards used to cost, and they were so spectacularly successful (in terms of "people use them") that everyone started doing it... (Plus, "gcc", hardware vendors buying up compiler companies, etc.)

author: frozenfrogz
author_rank: Frequent Contributor
timestamp: December 29, 2017, 10:04:21 am
content: In my opinion you need to specify a bit more what you mean by "prototyping work". As a product designer I use the Arduino plattform for quick mock-ups and several other design agencies I know also use it to interface with "stuff" to display in a trade fair environment etc.If you are talking about serious hardware development though, no one will really bother with hacking together a prototype that way.For the latter task you would sort out your technical requirements, price point,... opt for a suitable MCU / FPGA / CPU architecture and have someone who already knows what he or she is doing layout schematics and software / firmware accordingly.I like using the Arduino environment because I am neither an EE nor a computer scientist but I develop ideas, concepts and mock-ups to show to customers. The large knowledge base on the internet provides a shitload of C libraries for almost everything, making it easy to cobble things together without the need to dive to far into datasheets and low-level programming. For this kind of prototyping it does not really come down to what IDE you use, but in general I would recommend getting into C++ as a compiled language and Python as an interpreted one - these get you quite far.

author: rsjsouza
author_rank: Super Contributor
timestamp: December 29, 2017, 01:37:00 pm
content: Quote from: westfw on December 29, 2017, 09:38:21 amThe Energia seems to support most of the launchpads I mentioned before, not just the MSP43x and Stellaris devices. I have necer used it with these other devices, thus I can't tell how well they are supported, though.

author: janoc
author_rank: Super Contributor
timestamp: December 29, 2017, 03:56:01 pm
content: Quote from: kripton2035 on December 28, 2017, 05:47:34 pmAh right, thanks for the correction.