Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Open Source Hardware

Ask Slashdot: What's The Best Open Source Hardware to Tinker With? 134

This question comes from an anonymous Slashdot reader who just got an Arduino and started tinkering with electronics: I'm quite amazed at the quality of the hardware, software, and the available tutorials and (mostly free) literature. A very exciting and inexpensive way to get a basic understanding of electronics and the art of microcontroller programming.

Now that I'm infected with the idea of Open Source hardware, I'm wondering if the Slashdot community could suggest a few more things to get for a beginner in electronics with experience in programming and a basic understanding of machine learning methods. I was looking at the OpenBCI project [Open Brain Computer Interface], which seems like an interesting piece of hardware, but because of the steep price tag and the lack of reviews or blog posts on the internet, I decided to look for something else.

Leave your best answers in the comments. What's the best open source hardware to tinker with?
This discussion has been archived. No new comments can be posted.

Ask Slashdot: What's The Best Open Source Hardware to Tinker With?

Comments Filter:
  • by Anonymous Coward

    Tinkering with hardware, really hard to say what that means. As a Hardware engineer for about 25 years most anyone who says tinker makes me think they want to flash an LED or some such thing.

    Does tinker mean
    1. Run software on
    2. Modify / customise
    3. Build from plans
    4. something else

    In general build from plans is not a good idea for expensive stuff because when it does not work it can be dead or just impossible to diagnose without some serious equipment (or at least a good scope.)

    • by Q-Hack! ( 37846 )

      Sadly, the days of Heathkit are long gone.

    • some serious equipment (or at least a good scope.)

      You can get a USB oscilloscope on Amazon for $20.

      Then get some discrete transistors, caps, resistors, and some LEDs. Build an inverter, then an oscillator, and an adder.

      After that, breadboard a microcontroller, then add an FPGA and use Verilog to implement a state machine, a serial port, and then a "soft" 8 bit CPU. Whip up an assembler for your custom CPU, and bootstrap an event loop driven mini-OS.

      Once you do all of that, give me a call, and I will give you a job.

      • by AmiMoJo ( 196126 )

        event loop driven mini-OS.

        Ugh.... I hate those so much. Every function that runs for more than a millisecond becomes a giant, unwieldy state-machine and a nightmare to debug.

        Here's an example of a proper, cooperative multitasking system: https://github.com/kuro68k/xmu... [github.com]

        It does proper context switches via a single function call, so no horrible spaghetti code. There are some down-sides, such as slightly higher stack use and needing to allocate enough stack to each task, but that's a fairly standard thing for embedded developers anywa

        • Or get an XMOS microcontroller [xmos.com]. Multiple CPUs. Also, each CPU has hardware support for multi-tasking, so each of four to eight processes gets a guaranteed portion of the system clock.

          The system programming model is based on Communicating Sequential Processes (CSP). The I/O lines have hardware support so you can do FPGA-like timing and control, but using a nice, high-level language. Lightning fast. Rather popular for audio-processing systems.

          • by AmiMoJo ( 196126 )

            XMOS do make some interesting parts, but they are all geared towards high performance. That's great some times, but when you need low power it's still impossible to beat 8 bit MCUs. Fortunately they are relatively easy to context switch on as well, since it's basically a few work registers and a stack pointer.

            • but when you need low power it's still impossible to beat 8 bit MCUs.

              Impossible, you say? Epson to Launch Production of Ultra-Low Power 4-Bit Microcontrollers [epson.com]. :-)

              • by AmiMoJo ( 196126 )

                I remember the old Fujitsu 4 bit parts. No C compiler of course, you had to use assembly and it was a right bigger. Good times.

                • I remember the old Fujitsu 4 bit parts. No C compiler of course, you had to use assembly and it was a right bigger. Good times.

                  I had a friend who worked for a toy company, and they used these in many of their products. 4 bit registers. 32 bytes of RAM. Ten cents each.

                  • by AmiMoJo ( 196126 )

                    The in-circuit emulator we had was the size of a desktop PC case. The parts were OTP or UV erasable so emulation was pretty much the only sane way to develop.

                    It was nice being in total control at the assembler level.

      • some serious equipment (or at least a good scope.)

        You can get a USB oscilloscope on Amazon for $20.

        He said a good scope. 20MHz of bandwidth is fine for audio work, but if you're serious about anything you'll be wanting at least 100MHz of headroom. Hell, I picked up a Tek 847 for $25 that's got 50MHz and two separate timebases. (Of course it also sucks down 190 watts and takes matched sets of 12AX7s, so there's that.)

        • by mark-t ( 151149 )

          You can get a USB oscilloscope on Amazon for $20.

          He said a good scope. 20MHz of bandwidth is fine for audio work, but if you're serious about anything you'll be wanting at least 100MHz of headroom.

          Heh... I was looking to say something similar when I saw the above comment. Looks like I'm not the only one who feels that way.

    • i think if you wanna start collecting a vocore is the least you can have ... buttonsized ... you can have mommy sow it into a vest as buttons, stick a battery to it in your pocket ... maybe solar chargers if you got one of those backpacks, write some basic shell script to scan for unsecured wi-fi and start hackzing
      or use it as an mp3 player out of the box, i saw a youtube video of some ultrageek who soldered a spare screen to it , and recompiled doom to run it as a benchmark ... and its dirt cheap too :)
  • by Dan East ( 318230 ) on Sunday October 01, 2017 @09:47PM (#55289903) Journal

    I'm just curious why the hardware needs to be open source for you to tinker with it. If you aren't planning on making contributions to the hardware design (which doesn't sound like "tinkering" to me), and if you aren't going to base products on it that you are going to sell or distribute, then I don't see why it needs to be open source.

    So if we're not talking about open source hardware, I have enjoyed experimenting with the STM32 Nucleo boards. They're affordable ($11), and at one time were vastly more powerful than Arduino (I don't keep up with who is producing what so maybe that has changed). I developed online using the free mbed IDE ( https://os.mbed.com/accounts/l... [mbed.com] ) and open source libraries, and would drag / drop the downloaded image onto the USB drive and it would flash it and start running my software.

    • on the hardware side with open source hardware all the info is open, the schematic, the blueprint of the circuit boards, even the IC chips are open, http://kiwisdr.com/ [kiwisdr.com]
    • I'm just curious why the hardware needs to be open source for you to tinker with it. If you aren't planning on making contributions to the hardware design (which doesn't sound like "tinkering" to me), and if you aren't going to base products on it that you are going to sell or distribute, then I don't see why it needs to be open source.

      My guess is Open Source(tm) hardware has better/more (any) hardware documentation readily available along with numerous project tutorials and such.

    • by mark-t ( 151149 )

      I'm just curious why the hardware needs to be open source for you to tinker with it. If you aren't planning on making contributions to the hardware design (which doesn't sound like "tinkering" to me), and if you aren't going to base products on it that you are going to sell or distribute, then I don't see why it needs to be open source

      This is just a guess, but offhand, I'd say it's because being open source suggests the details of its design are readily available to anyone who wants to see them, which is id

      • I think if you think you are going to learn the design of a CPU from scratch you are deluded.

        • Plenty of people have constructed their own CPU with discrete logic gates. You can 'cheat' on the ALU and just use the 74LS181 chip, for instance, and throw the registers around it using octal latches like 74LS373s and the like. And of course the 7464 for a bit of scratchpad RAM. Some of them are fairly rare at this point in time, but you could make your own ALU if you really wanted using MSI logic.

        • Why? The CPU that our project uses was originally designed by a single PhD student. With modern HDLs, it's entirely plausible for a single person to design a CPU (if you want to do more than simulate it in software or an FPGA, you need to spend a lot of money, but that's irrelevant to learning how to design one). The RISC-V hardware mailing list seems to have people producing new implementations almost every week.

          A simple in-order pipeline is pretty easy. Things get harder when you want to make it s

    • Off hand one could give the long look to the Arduino and Raspberry Pi? Maybe there are some cheap Bit-Slices? I am curious STM32 Nucleo, I've got a idea for a robotic arm with 32-DOF that has to lift 100Kg, and maybe this SBC could do the job?
      • If you are going to be lifting 100kg, you should know exactly what you are doing before even thinking about building such a device. If you are going to have 32 degrees of freedom you should use a PC to do all your math, which is going to be a lot, and only use embedded processors for the motion controls. Additionally, you should already be familiar with platforms suitable for that application, an STM32 Nucleo board should be not even be considered unless you are only using it to evaluate the STM32 platform

        • "Exactly?" Try "off the truck, on the ground." Plus or minus centimeter is good enough. Do I need help from a Metrologist? No. That's over engineering. It's not a video game, it's just hard work. At the end of the day, its a beer, and a thanks. Because tomorrow, it's more of the same.
      • If you want to throw around that much weight you better hope your CPU hardware was designed by professional engineers.

        • "Throw?" The verb I used was "lift."

          The real problem that will bust a bra strap, is the power supply. It needs to run 3 hours, the average is 2 hours 15 minutes. Swapping power supplies should take about 1 minute.
    • If you're not restricted to open source hardware then try to get your hands on an ATM. These can be very profitable to tinker with.

    • by AmiMoJo ( 196126 )

      The online mbed IDE is something of a deal-breaker for a lot of people. You are completely at their mercy, when they terminate the service all your projects and code will become useless. They can make any arbitrary changes they like and you have no way to reject them.

      STM32 is just ARM, so you might as well just use whatever free ARM IDE you prefer. Eclipse and GCC work well.

      One of the reasons why Atmel AVR is popular is that it's supported by free development tools. In fact Atmel ship GCC as their compiler

  • by FudRucker ( 866063 ) on Sunday October 01, 2017 @10:23PM (#55289997)
    my favorite is KiwiSDR, it is a SDR that plugs on to a Beaglebone Green and the Beaglebone has Debian on it, and i am gradually tweaking the KiwiSDR software to my personal liking, nothing too drastic, mostly user interface things https://imgur.com/a/d6dJ4 [imgur.com]
  • Depends (Score:2, Informative)

    by Anonymous Coward

    Pi for absolute beginners. Arduino can get you a long ways very quickly. Beaglebone is more advanced and powerful if you want to use Linux. That being said, there is no reason not to use demo boards from microcontroller makers such as Microchip as a starting point since the demo board hardware files are freely available to develop with and their development systems are cheap and easy to learn.

    • While Pi is designed to cater to beginners, they are cheap and they can be pretty handy for prototyping stuff rather than going through the hassle of spinning up your own board.

    • Pi for absolute beginners. Arduino can get you a long ways very quickly.

      Not really. It all depends on what you want to do, what your goals and constraints are etc.

      The Pi is great even in a professional setting especially for one-off stuff. Doubly so if you need a network and/or a screen or something like bluetooth. Few things need the level of grunt of the Pi 3, that's for sure.

      Realtime control over the GPIO is possible but a different ball of wax.

      That being said, there is no reason not to use demo boards

  • by Subm ( 79417 ) on Sunday October 01, 2017 @10:26PM (#55290009)

    I like pencil and paper. Sometimes a pen.

    Hammers, nails, screwdrivers, and such work well too.

  • By far, my favorite hardware to work with is the Raspberry Pi 3. It now works with mainline Linux, and has a bunch of gpio to play with.

    • Re: (Score:2, Informative)

      by Anonymous Coward

      great as far as it goes

      but the video binary blob is closed source
      so are other parts.

      • great as far as it goes

        but the video binary blob is closed source
        so are other parts.

        So there is closed firmware for the wifi and potentially video chips, yes. There is an open source video driver now, that works fairly well.

        So if you take the Fedora/kernel view of things, totally open source friendly. If you take the libreboot/FSF/Purism Librem, then yeah, not what you want.

      • All of that is largely irrelevant to the users of devices.

    • A bunch of GPIO, without a way to run them in realtime. Or is there a subprocessor or something I can use for super accurate timing?

      • A bunch of GPIO, without a way to run them in realtime. Or is there a subprocessor or something I can use for super accurate timing?

        Yeah, an Arduino Pro Mini/Micro. Because when you want super accurate timing, you want a coprocessor. Sadly, there's nothing like that actually onboard the Pi's SoC. Happily, an Arduino costs bugger all, and you can program it from the Pi [reddit.com]. (Yes, how annoying that they didn't bother to implement DTR in the serial driver. Yes, you could add it in the serial driver on the GPIO pin of your choice, if you cared enough.)

        The other benefit is that it makes it a lot less likely that you will fry your Pi with GPIO.

      • If you need hard realtime then you don't use a miniature PC, it's as simple as that.

      • A bunch of GPIO, without a way to run them in realtime. Or is there a subprocessor or something I can use for super accurate timing?

        How real time do you want?

        You've got a quad core processor, and so once you set your one GPIO thread to the highest priority level, you get surprisingly good performance on a stock kernel especially if you keep the load average down.

        If you switch over to the RT branch of the kernel, you'll get RT performance good enough for almost everything. Multi-core is helpful since you can

        • How real time do you want?

          I'm still trying to figure that out. For one GPIO pin, I'm fine with milli-second timing (so regular Linux should be fine). For others, it's faster, but I'm still waiting to find out what precision is required. I know I have latency issues as well, but that's on me as a developer.

          Does developing software for a RTOS require special SDKs/skills/patterns? Can you still do something like run WiFi/BlueTooth in a RTOS, or does it require so much rewriting that there are no drivers?

          • Disclaimer, I've not done much RT work.

            If you get a Linux kernel with PREEMPT_RT you'll hey deterministic bounds on latency and jitter, which is the core of real-time performance. Since its a stock kennel, you'll get all the goodies like WiFi, Bluetooth and so on (as long as you have the firmware).

            In terms of special skills... Basically you'll need to write your real time code in C, C++, or some other language where you can write useful code without heap allocation. You'll also need to know a bit of Unix (p

  • Build your own (Score:5, Informative)

    by dlleigh ( 313922 ) on Sunday October 01, 2017 @10:37PM (#55290053)

    Anyone who wants to tinker with hardware should buy a copy of Horowitz and Hill’s “The Art of Electronics”, now in its third edition.

    https://www.amazon.com/Art-Ele... [amazon.com]

    It’s practical, understandable and will teach you how to build good, real world analog and digital circuits. Accept no substitutes!

    • I grew up with a copy of Horowitz and Hill, first edition, but there's a sizeable contingent of people who pull a Martin Prince [youtube.com] about H & H (they are 'familiar with his work' so to speak). It's an excellent book for general coverage of practical electronics, but snobby EEs find it threatening (it empowers people who didn't have to take all the sucky classes they did, I presume)

    • by Anonymous Coward

      Just in case your pocket is not filled with $$$, there is a PDF of the 2nd edition of the book available online

      http://www.csun.edu/~acm31201/Old%20Class%20Work/ECE%20340/The%20Art%20of%20Electronics%20-%20P%5B1%5D.%20Horowitz,%20W.%20Hill.pdf

      I do recommend folks with money to purchase the 3rd edition, tho !

      • Just in case your pocket is not filled with $$$, there is a PDF of the 2nd edition of the book available online

        It's 65 quid, which is not a large chunk to dedicate to a hobby.

    • While I agree it's great for electronics, it's also an order of magnitude different in league compared to the program a microcontroller with a modular open hardware concept crowd. Definitely required reading for building circuits, but that's not what most people do anymore.

      The Arduino / shield concept basically put an end to that requirement. Hell I've been known on occasion to simply not give enough of a damn to design/build a circuit of my own and simply interface with an off the shelf module for the reas

  • STMicro CubeMX (Score:4, Informative)

    by Anonymous Coward on Sunday October 01, 2017 @11:24PM (#55290181)

    STmicro boards are more powerful than UNOs, have 10x the IO of RPis and cost 1/2 as much as either (US$14 for an 80MHz L4 core with about 20 IOs, including 4 UARTS, 3 SPI, 3 I2C, and a dozen GPIO).

    Their CubeMX stack is easier to start with than Silicon Labs or NXP IDEs, and exports projects for IAR, Keil and GNU ARM-AEBI makefile!

    I would recommend mbed but there are too many shortcomings.

    STMicro = for when you grow out of RPi/Arduino.

    • You can get UNO clones on eBay for several dollars. They work fine, though people who have bought into the 'Open Source Hardware' in a way that they want to sell $30 boards with $2 of components on them get riled up about.

  • Raspberry Pi and Arduino are great platforms for learning. But if you want a properly integrated professional system with limitless potential out of the box, LattePanda wins hands-down.

    Although it is about 5x the price of a Raspberry Pi, it quite easily operates as a fully-functional Win10 installation with C#, Javascript, Ruby, Visual Studio, NodeJS, Java, Processing etc - powered by USB.

    Specs:
    Intel Cherry Trail Z8350 Quad Core Processor
    Base Frequency: 1.44GHz (1.92GHz Burst Frequency)
    Operating System: Win

  • There is very little "pure" open source hardware. Patents and software copyrights (and proprietary software bits) make this difficult.
    If you want to tinker, a good option is the BBC Microbit (http://microbit.org/). It's a simple ARM processor with inputs, Bluetooth, sensors (acceleration, compass, etc.), LED display, light sensor and robust programming environments (GUI, Python, C++, etc.)
    The Bluetooth give lots of interesting options for communicating with other nearby Microbits

  • I have four or five of these... got some for lots of people. I think there might be some firmware blobs required, but it's open source enough for me. To play with, it needs to be cheap enough to break without heartbreak, and it needs a community, and pi has all that, and third party hardware packages also. It runs plain vanilla debian, and so dead easy to work with, build your projects in python. Latest generation gets you wifi & bluetooth built in, so a lot of options for control and i/o.
  • I'd say that the Lattice ICE HX FPGA is worth using to learn about verilog. And after that maybe some fpga based ham radio projects like maybe Lime [crowdsupply.com]
  • Print your board old-style at home. some Z80? Really easy to do with a laser printer and ferric chloride. http://www.z80.info/z80_mp.htm [z80.info] Breadboard project: http://www.vaxman.de/projects/... [vaxman.de] Also check Arduino Severino: https://www.arduino.cc/en/uplo... [arduino.cc]
  • I made a stepper motor controller about 30 years ago with just TTL gates. Today I'd use a PIC microcontroller, but for open source, you want to work with the bare wires. Get a 'solderless breadboard' an assortment of chips, some LEDs and a big piece of #20 wire to cut to short lengths and strip the ends on. You need a 5 volt supply, but you can salvage one from a cellphone wall-wart charger. That part is much easier than it was 30 years ago.

    You can get a bunch of TTL gates on eBay, [ebay.com] I think.

  • by L-One-L-One ( 173461 ) on Monday October 02, 2017 @04:43AM (#55290867)

    Thanks to open-source hardware, there has never been so much choice and so much opportunity to learn.

    My recommendations for today's tinkerer are:
    - Raspberry Pi (not fully open source but close enough) and the wiring Pi library http://wiringpi.com/ [wiringpi.com]
    - The esp8266 boards: Super cheap Arduino compatible WIFI boards.
    - Any SAMD21 ARM cortex M0 board like the Arduino Zero, Sparkfun SAMD21 breakout, or the Adafruit Feather M0.
    - STM32 "blue pill" boards. Super cheap on ebay and powerfull.

    In theory, you don't need hardware to be open source just to "tinker" with it. But in reality, if you want to truly learn stuff, open source hardware is great. You can take a look at the schematics, learn piece by piece from others: power supply circuits, reset, oscillators, micro-controllers, ...

    For example take a look at the Sparkfun SAMD21 breakout schematics here: https://cdn.sparkfun.com/datas... [sparkfun.com]
    You'll see the leds, the usb, the battery power circuit, the micro-controller and headers, all nicely broken down in separate blocks that you can learn from and re-use.

    After a while, you will be able to make your own boards. YES! ** That the best part of it all! **

    Myself I started with a simple Arduino UNO and a couple of years later, I'm about to launch my own IoT Arduino compatible platform, fully designed and implemented in the garage of our house: http://omzlo.com/ [omzlo.com]
       

    • Comment removed based on user account deletion
      • This may seem like a silly question, but may I ask what you do with them? Is it the challenge of creating them which is exciting, or what you use them for afterwards?

        I'm starting to think about tinkering with electronics, and I have a couple projects in mind which could be cool to do, but literally no idea if they are something which would take me a month to do or 10 years. If it ends up being 10 years, I imagine my interest will start to wane, so I'm wondering if other things will come up along the way t

  • If I understand correctly you got hooked on Arduino because of it's user friendliness and available documentation. In that regard it's not Open Source you're looking for, but rather very actively used platforms with a large community support.

    I say that as a big caveat since ever other person is pointing out that the Raspberry Pi isn't Open Source, but I'm inclined to believe you don't care too much about the fact that the video driver for it is a binary blob right?

    The platforms should be chosen with an end

  • It really depends on what you want to accomplish with it. I tend to favor the Parallax Propeller chip as it's inexpensive (~$10) and has eight cores which are great for independent/parallel processes as I see in hobby robotics, and their is an open access repository of functioning code "objects" that offer a surprising amount of advanced functionality. But at the end of the day you will have to code and compile everything in one of a few dedicated languages. On the other end of the spectrum, If I want mor
  • by Anonymous Coward

    Grab an Arduino Uno. They are the most popular micro-controller board with the largest community around them. There are dozens of knock off boards, and many books to choose from. That's your best start, then branch out from there.

  • by blind biker ( 1066130 ) on Monday October 02, 2017 @09:39AM (#55291829) Journal

    At this point, I think Arduino has become the most expandable, simplest, and most open HW platform for tinkering, out there. Compared to Raspberry Pi, it has more shields, it allows for better access to the hardware, there is NO need for proprietary drivers (this plagues Raspberry Pi), it has FAR more I/O pins - which is probably why there are so many more shields for it.
    Arduino allows for hard-realtime control, should you need it. Among other things, this is why there are various 3D printer, laser-cutter, and CNC machine control boards made based on Arduino.
    Finally, the C++ libraries for Arduino are very numerous and allow you to do all kinds of sexy tricks. For instance, simple graphics via CRT control (be it RGB or composite). Or my other favorite set of projects: MIDI controllers and hardware synths based on Arduino.

  • You could get an old Thinkpad T400 or X200, flash Libreboot on it, then install Trisquel. This is certified by the FSF (fsf.org) as being an open source piece of hardware. Oh, I think you'd have to change out the Wi-Fi card as well, as open source drivers don't work with the stock card. Have fun!
  • Plenty of people have mentioned the Raspberry Pi and Arduino...plenty of options in the $25 - $100 range.

    This poster agrees with them, but what about those that do NOT want to build hardware, they just want to explore Linux and software....this post is for you. Read on, and note, while the starting prices of their hardware starts out low, by the time you max it out with memory, disk drives, power supplies, better Graphics cards, multiple other stuff, the price will rise. In other words, do not expect th

"Ninety percent of baseball is half mental." -- Yogi Berra

Working...