About SBC Reviews
Welcome! At Bocoup, we’ve been doing a lot of thinking about different Single-Board Computer (SBC) platforms.
Open Web Technologies and Web-Connected Devices
We see SBCs as part of a Web-Connected Devices ecosystem that also includes the web itself, “traditional” web clients and browsers, home automation technologies, microcontroller-based devices, mesh-networked sensors and (much) more. The connective tissues are open, standards-based technologies.
There are a lot of boards out there, and they’re arriving on the market thick and fast. While it’s easy enough to Google for specs—how many USB ports does this one have? What’s the processor in that one?—it’s harder to get a sense of how to really use one. How to get from point A to point B on a particular device. Which devices make sense for which kind of project. Subjective stuff. Examples.
Maybe you’re just learning electronics. Maybe you’ve graduated past basic microcontroller-based boards like the Arduino family and are curious. Or maybe you’re building something and thinking of moving it on to production as a web-connected device. We hope these reviews and explorations can shed some light on how these boards really tick.
What’s an SBC?
The definition of Single-Board Computer is fuzzy. From our vantage, they slot between highly-constrained microcontroller-based development boards (like Arduino-compatible boards) and general-purpose computers (though the Raspberry Pis are pushing that boundary).
About the Reviews
Each of the platforms we evaluated has an in-depth standalone review. These are narratives following our progress through getting the platform set up and making first forays into developing for it.
A collection of factors—ease of setup, quality of documentation, flexibility of development workflow, etc.—are summarized for all platforms on the results page.
In each review, we’ve attempted to perform some basic tasks that represent core hardware I/O and functionality.
For these tasks on most (but not all) platforms, we use the open-source
npm were unavailable, we wrote some of these tasks from scratch using a supported framework.
What’s the point? We feel that being able to have portable logic in the software layer and an abstracted hardware I/O can help with speedy prototyping, a boon to software-familiar devs!
1. Controlling an LED with a button
Use a pushbutton (momentary switch) to toggle an LED on and off. Demonstrates digital input and digital output and logic levels—controlling a single LED is, after all, the hello, world of hardware.
2. An Automatic “Nightlight”
Use a photoresistor to gauge brightness in the room and fade an LED to an appropriate brightness. This demonstrates analog-to-digital (ACD) conversion of varying voltages from the photoresistor circuit and PWM (pulse-width modulation) output.
3. Realtime Web Compass
The code for this example creates a web server available at port 3000 (by default) on the device’s local IP. Visiting that URL with a browser on the same network will show real-time compass headings.
A small application built on top of a more complex circuit (LCD, five input buttons and a PWM-pulsed LED). The logic is handled on the software layer and is adapted (via configuration) for different boards and I/O.