Slashdot Mirror


Ask Slashdot: Best Electronics Prototyping Platform?

crankyspice writes "Having recently picked up the Erector set I've wanted since I was a kid, I quickly found myself wanting to plunge deeper into makerspace by adding more sophisticated electronics to moving devices (rovers, maybe eventually flying bots). My first instinct was Arduino (maybe because of brand recognition?), but that got me thinking — what's the 'best' platform out there (most flexible)? Arduino with its myriad options (Nano, Mega, Uno, Mini)? PICAXE? BASIC Stamp? Raspberry Pi? (The latter seems like it would easily be the most flexible, but at greater cost in terms of weight and complexity.) I'm a hobbyist programmer, having learned C and C++ in college and recently re-learning Java (took and passed the Oracle Certified Professional exam, FWIW)..."

20 of 228 comments (clear)

  1. CopterControl by Sowelu · · Score: 5, Informative

    If you want it to fly, you might want this: http://www.openpilot.org/products/openpilot-coptercontrol-platform/

    Yes, yes, it takes the "fun" out of building your own flying code, but your machine will be a lot more fun to play with when it's actually stable. Put whatever other board you want on it, but for your own sake, use a dedicated flight board if you want to go airborne!

    1. Re:CopterControl by asynchronous13 · · Score: 3, Informative

      Open Pilot is pretty good, but good luck getting one. They only sell in batches, so you have to wait for months or get really lucky on your timing. Right now there's nothing in stock, and nothing expected for 8 weeks.

  2. Arduino, AVR, RPi, Beaglebone by n1ywb · · Score: 5, Insightful
    In that order. Arduino is cheap and dirt simple and surprisingly powerful and flexable. Arduino is based on AVR which is the next step if you wish to pursue ultra cheap ultra lower power micro designs. AVR is compatbile with the complete GNU toolchain including GCC and GDB via JTAG and in-circuit emulation using the astoundingly cheap Atmel Dragon, the $50 JTAG adapter. Raspberry Pi and Beaglebone both run Linux. The RPi is super cheap but is better targeted at apps which require a GUI. The BeagleBoard is more expensive but is better tuned for embedded use. It would be nice if the inverse were true, but oh well.
    • http://www.arduino.cc/
    • http://www.nongnu.org/avr-libc/
    • http://www.atmel.com/tools/avrdragon.aspx
    • http://beagleboard.org/bone
    • http://www.raspberrypi.org/
    --
    -73, de n1ywb
    www.n1ywb.com
    1. Re:Arduino, AVR, RPi, Beaglebone by n1ywb · · Score: 5, Informative

      Oh I should mention why I don't recommend PIC based platforms; poor support for using Linux as a development host.

      --
      -73, de n1ywb
      www.n1ywb.com
    2. Re:Arduino, AVR, RPi, Beaglebone by DrewFish · · Score: 4, Interesting

      I just got an Arduino for Christmas, and I'm having a blast learning electronics. (I'm programmer by profession, so the coding part is only mildly challenging/interesting.)

      The thing I've been enjoying about the Arduino is the community. When I hook an LED up, why do I need a resister? How do I compute -which- value resister I need? What do I need to run a 1A brush motor? So far I've very often found these questions have already been answered (with ideas, suggestions, hardware, etc).

    3. Re:Arduino, AVR, RPi, Beaglebone by grim4593 · · Score: 3, Informative

      I agree with parent: I have not seen any good tools to work with Microchip PICs under Linux.
      That said, I do enjoy working with PIC micro-controllers under Windows.

    4. Re:Arduino, AVR, RPi, Beaglebone by Solozerk · · Score: 3, Informative

      Under Linux, I use a pickit 2, pk2cmd, and sdcc. Gets the job done - although I'm not sure it qualifies as "good", it is a complete command line toolchain and up to now it has supported all but the very latest PICs. Also, gpdasm can disassemble compiled code pretty well if necessary, and gpsim can be used as an okay simulator. Do *not* use Microchip's pickit 3, as you'd be forced to use the horrible Microchip Linux IDE, MPLab X (a rebrand/modification of Netbeans, I believe) instead of say, emacs.

    5. Re:Arduino, AVR, RPi, Beaglebone by BTG9999 · · Score: 3, Informative

      This is not true anymore. The new MPLab X and new XC8, XC16 and XC32 compilers all support Linux officially. They are all free to use with some limitations. MPLab X is based off of NetBeans. I have installed, run and compiled real embedded applications with this tool set under linux for a currently shipping product.

    6. Re:Arduino, AVR, RPi, Beaglebone by Ford+Prefect · · Score: 5, Informative

      I agree. Get an Arduino Uno at first and then you'll start to get a sense of what direction you want to move in from there.

      Agreed also. I started off with an Arduino nearly two years ago, and learned a lot of electronics and C/C++ building a camera timelapse gadget. (Videos here!)

      The community is definitely incredibly helpful, and if you're trying to do something there's a good chance someone's done aspects of it already. Plus the limited platform means it's difficult to get too sidetracked, and you pretty much have to build things in an efficient manner. It's built over that pretty standard AVR stuff too, so implementing your own Arduino-alike hardware is frighteningly simple.

      The ecosystem of Arduino shields is pretty amazing, but often a bit on the expensive and unwieldy side - for example, paying a fair amount for WiFi when an Arduino can barely handle a single connection, or full-colour backlit LCDs when the thing has almost no RAM - at some point you're going to have to make the leap to a Raspberry Pi or similar if projects are heading that way. I built a ridiculous time-travelling radio around a Pi, using some pretty standard UNIXy stuff which would have been impossible on an Arduino.

      On the other hand, I've seen many learning projects built with Raspberry Pis which would be far better suited to Arduinos - the Arduino has no real operating system, just the (tiny) bootloader and the standard libraries that get linked in, so it's extremely difficult to break a working, embedded setup. My timelapse gadget? Ideal. Starts almost instantly, has no easy-to-corrupt storage - think of the Arduino as programmable electronics glue. Whereas the Pi is more like software glue - if you need a tiny UNIX box doing software-type stuff, potentially interfacing with the real world, then the Pi and friends win hands-down.

      --
      Tedious Bloggy Stuff - hooray?
    7. Re:Arduino, AVR, RPi, Beaglebone by Darinbob · · Score: 5, Interesting

      PICs are ok, but the C for it is extremely limited and it can be a bit frustrating at times. AVR is limited too, but it felt a bit less odd at times. Both come with a large variety of options so the stuff I hated about PIC may not apply to others. The better compilers for PICs are proprietary and as I recall GCC for PIC just isn't that great as the PIC model is too unusual, and there are so many variants of PIC instruction set. AVR feels a bit more like a normal CPU and the differenet models don't change the instruction set too much.

      Both are Harvard architectures meaning you may have a lot of room for programs (ie, 16K or more), but very little memory for RAM (256 bytes). Which means that if you only have a 4K program you don't get to use all that unused space to have more runtime memory. That tiny amount of RAM however is shared with system registers!! The more peripherals your chip has the more RAM that ends up reserved. So what you read on a data sheet may not be what you actually have to work with.

      I am not an Arduino fan. However it's probably good for beginners as it's easier to get started with. You can program it using USB and they can get power over USB as well, which is really handy to avoid extra purchases of power supplies and system programming hardware. Other systems beside Arduino have USB too but boards intended for professionals may not have these quick-start options. These boards are probably going to give you more than you need as well to avoid the frustration of having something too small, after all a hobbyist isn't going to be quibbling about how many pennies they can save per chip in bulk and the hobbyist is going to be building multiple designs with the same chip. It can also can be used without soldering and has a variety of stuff you can buy to attach to it.

      On the other hand Arduino is pushing their programming system as well, which is really the thing that separates Arduino from any other AVR board. It is a C-like language with a library; you're not programming to the bare board, you're not even writing your own main() routine. It is not intended for profressional programers, the target audience appears to be "multidisciplinary" (ie, people who aren't programmers). But you can skip that stuff and go for real C or assembler if you like.

  3. Those are not electronics prototyping by Anonymous Coward · · Score: 5, Insightful

    The toys you have listed are for developing firmware and software.

    Prototyping electronics involves first designing some electronics, simulating them (if applicable or able), and then designing the boards, ordering parts, and having them assembled (or assembling them yourself).

  4. IOIO? by swanzilla · · Score: 4, Interesting

    If you like Java, I'd suggest the IOIO and an Android device. You inherit the device's guts (gps, cellular antenna, speakers, wifi, gyro, color display) and can go nuts. The biggest difficulty for me was getting the ADK up and running w/ Eclipse on my Debian laptop. They are cheap too...take a look at Sparkfun and Adafruit.

  5. $4.30 MSP430 Launchpad for starters by javawocky · · Score: 5, Informative

    I recently starting wanting to fiddle with Micro controllers for this or that and stumbled across the Texas Instruments Launchpad. For $4.30 delivered (yes including shipping world wide) you get a complete development board, 2 chips, some headers and the USB cable. TI have a free IDE you can program it with, or if you are on Linux you can use the MSPGCC command line tools, which I use. Its ultra low power - 3.3V - which means if you want to interface to 5V systems you may have to do a little homework, but other than that, their is no risk in ordering one to try out with the money you would have wasted on Starbucks. http://www.ti.com/ww/en/launchpad/stellaris_head.html?DCMP=stellaris-launchpad&HQS=stellaris-launchpad Order directly from Ti - https://estore.ti.com/MSP-EXP430G2-MSP430-LaunchPad-Value-Line-Development-kit-P2031.aspx

  6. what about microcontroller + FPGA ? by volvox_voxel · · Score: 3, Interesting

    Everything I've ever worked on as a professional had a microprocessor and an FPGA. You can pick up a "Zed Board" with a dual-core Arm Cortex-A9 and a 85K luts worth of FPGA. You could learn fpga programming in addition to learning about microcontrollers. You can run linux on one core, or run "bare-metal" or Free-rtos in the other for all of your hard real-time needs. You have a very wide selection of things for you can try. The FPGA is a true parallel processor, and is great for processing multi-sensor inputs. A microcontroller time-slices between all of the tasks it needs to take care of. An FPGA can essentially be a hardware dedicated task.

    1. Re:what about microcontroller + FPGA ? by hamster_nz · · Score: 4, Informative

      As an owner of a Zedboard (and half a dozen others FPGA boards) I recommend other readers disregard this advice. It is not a good starting board as is has a very, very steep learning curve, much steeper than any other FPGA I've used, It is also very, very expensive (but you do however get a lot for your $). The FPGA build times are very long too, especially annoying when you are just starting out.

      However, if you are interested in Programmable Logic logic, try a Papilio One from Gadget Factory - equivalent to a quarter of a million logic gates for a $37.50 + p+p. An open source AVR compatible processor core is available, so you can still develop with it as though it is an Arduino, and even make changes to the internals of the CPU.

  7. It depends by Anonymous Coward · · Score: 4, Informative

    It completely depends on your project or goals. Simple electronics, I'd go with arduino, it's ridiculously easy, I haven't programmed in 10 years, or ever done anything with an arduino or MIDI or really done much with electronics ever, but within 2 hours of buying one I had a phone keypad playing chords on 3 instruments through a MIDI device. Mega has 70 digital I/Os, 14 analog (IIRC). IC2. There's a good range of tools available.

    If you need more horsepower, or to connect to keyboards/mouse/video/network etc, the Raspberry Pi is a mini PC basically.

    If you need extremely low power, MSP430 is your best bet. Extremely quick power up/down, too, so you can have it check a sensor every second and shut down to use even less power. There's videos of one running a clock with LCD from a grape.

    Basic stamp, I wouldn't bother with. I can't think of any advantages to it over the arduino, maybe someone with more experience knows of one, I've only dabbled with one.

    I don't have any experience with the others, so I'll let others comment on those.

  8. Arduino + Fritzing by Bitsy+Boffin · · Score: 5, Informative
    No question in my mind, an Arduino for the microcontroller platform, and Fritzing to do the design.

    Why?

    Arduino: community, quite simply, it has the critical mass of community behind it so you have a real source of knowledge (and existing code) to draw from. It's like the hardware analog of PHP, sure it's not necessarily the best, but the sheer amount of resources out there means you will have an easier time getting it to do what you want.

    Eventually your projects might extend from running on top of an actual Arduino form board (I like the Diavolino board/kit from Evil Mad Science, mainly because it looks cool, but also because you can set it up with the minimum of components to suit you), to you incorporating the AVR onto your own PCB design but still using the Arduino bootloader/environment, to you incorporating a bare AVR on the board and moving away from the Arduino environment. So you have a clear progression of learning.

    Fritzing: open source, simple, and a GOOD interface for HOBBY users. No it's not a replacement for Eagle, or Altium or DesignSpark... but a hobbiest working on small things just doesn't need the power of those, they want a nice easy system which they doesn't have a steep learning curve, and can help them draw the schematic, breadboard it, and design a pcb. There are other open source packages, such as KiCad but universally, I found, that the interfaces just suck, hugely, unless you really invest the time to become familiar with them, and then they still suck but you can live with it. Fritzing is far FAR more intuitive, if less professional.

    --
    NZ Electronics Enthusiasts: Check out my Trade Me Listings
  9. Re:DO NOT GET an MSP430 Launchpad by muridae · · Score: 3, Informative

    You don't have to use the TI IDE and bootloader, which are highly encumbered with copyright. MSPGCC ( http://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=MSPGCC_Wiki ) exists to allow the whole system to use an opensource toolchain.

  10. Start with Arduino, then branch out by billstewart · · Score: 4, Informative

    Arduino has a really short friendly learning curve - the system is designed so a random not-very-technical artist can pick it up, start doing blinky lights and sensors, find lots of interesting community support and demonstrations and applications. All the pieces you need to get started are right there - hardware, software, IDE, sensors, output devices, documentation. The Arduino hardware is fancier than a bare-bones AVR chip on a breadboard (and building one of them is a good second project), but it's still pretty cheap. The software may hold your hand a bit too aggressively, but once you've learned what you're doing you can get deeper (think of it as a mostly-C scripting language.) If you'd rather use gcc to write your programs at the bare-metal level and avrdude to download them, you can, but Arduino lets you do your work at higher levels until you need that. You could buy an ISP programming tool for $20-50 to program raw AVR chips with, but you can also use a ~$30 Arduino to do that job, so just go buy one.

    Once you've used the Arduino a bit, you might want to branch out to a TI or STM development board, or something like Propeller with a lot more CPU horsepower if you need that, or PIC (if you want to know what people used to learn on before Arduino.)

    Stuff you're going to have to buy - whatever prototyping board you want (I'd recommend Arduino), a solderless breadboard or two, solid-core wire in a couple of colors, some LEDs, assorted resistors and capacitors, probably several different types of sensors and output devices, maybe a power supply (USB gives you 5v, which is just fine if you're doing everything tethered to your laptop or have a USB phone charger around.) If you don't have electronics stuff around home already, you'll probably end up spending $100 or so, typically for a kit from Sparkfun or Adafruit or MakerShed, plus some random shiny-looking parts from their catalogs, plus you'll start to find Radio Shack very useful when you need to stop in and get some more LEDs or various connectors (and get yourself a bag of assorted resistors and a bag of assorted capacitors if you didn't have enough from a kit.) If you're going to solder boards, you'll also need a soldering iron, solder, and some breadboard to work with.

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  11. Re:None of the above. by caseih · · Score: 3, Interesting

    Arduino's environment uses essentially straight C++. There's nothing special about it; it all runs through g++. The Arduino system merely provides you a nice lightweight abstraction that you can use or not.

    I recently developed a linear actuator controller using Arduino and when I was done I targeted the AtTiny84 processor, took the hex file and burned it with avrdude to the chip and it worked great (though I'm only using it at 1 MHz with no external clocking components. I built the binary from within Arduino's IDE even (added a plugin to target attiny). This is what makes Arduino so interesting. It's a straight forward jump into more complicated AVR programming, or to other smaller chips that don't have an arduino bootloader like the attiny.

      I think your post illustrates the confusion over Arduino.
    1. It's not a special language; it's simply C++ with a framework to abstract the chip a little and the result resembles processing, but it isn't processing. I've seen people develop little python libraries for Raspberry Pi that emulate this framework on the Pi.
    2. The arduino bootloader is nice for rapid develop/load/test cycles, but isn't required. If you have the proper hardware definition files in Arduino you can target other chips like AtTiny (no bootloader at all), or the Teensy (proprietary bootloader).
    3. You can port your Arduino programs directly to AVR if you wish complete with the arduino abstractions (framework).
    4. Arduino is really about a community and a lot of libraries.

    Just as an aside, I recently discovered the QP event framework for Arduino, straight AVR, Arm, Pi, or any number of other platforms. Gives you a complete event-driven paradigm for embedded devices complete with threads, timers, event sources, event sinks, etc. All in just under 3k. It's complicated stuff but looks to be very powerful I'm going to check it out.