So last week I found a pic on Imgur posted by quantumCity showing a Raspberry Pi case made from a manila folder. Needless to say I found it to be a pretty neat way to throw together a case from something lying around the house that didn’t consist of using Legos. He posted the CAD file and a pdf version so all you have to do is print it, transfer it, cut it, and fold it. It worked like a charm on the first try.
The Internet of Things is all the rage lately. It seems to be all that tech sites want to talk about and therefore what a ton of startups want to work on. I’ve been watching this space closely for the last 5 years and I can’t help but compare hardware, in it’s current iteration, to being just like kitchen gadgets on the Home Shopping Network (link intentionally left off). What do I mean by that? Well, let’s talk about apples for a minute.
In the last week I’ve seen several articles pop up comparing the new Intel Edison to the Raspberry Pi to the Arduino to the [enter some other development platform here]. The problem with every single one of these is that they are missing the boat when it comes to choosing a development platform for your next project.
Specs Don’t Matter…(Mostly)
The easy thing to do when you want to create a new piece of tech content is just compare the specs of the different platforms. This table was part of a recent ReadWrite article.
At a glance you can compare the CPU speed, memory and GPIO count. What it doesn’t show, or even help with, is how to pick one for your next DIY project.
What Really Matters
So what really matters when picking a platform for your next project? Normally it has nothing to do with performance specs because almost any platform will be have plenty of performance to read your sensor and display the results or push it to the web. For me the most important questions aren’t how much flash memory a platform has or what the input voltage is. It’s a balancing act between a few key metrics.
Battery or Plugged In?
What do I mean by that? Well, first and foremost you need to ask yourself “Is my project going to be battery powered or can it always be plugged in?” Right away this is going to limit my choices. While I love the Raspberry Pi and know that it can be battery powered I’m probably not going to choose it because it it such a power hog when compared to something like an Arduino Uno or Sparkcore.
Compute Intensive? How Intense?
After thining about the power constraints, the next thing I ask is what kind of compute power do I need. What I think most newcomers miss is that a massive share of beginner projects don’t need an ARM processor running at 700MHz. But when you compare that to the 16MHz of the Arduino Uno you may think “Well, that’s not going to be powerful enough.” Remember the Apollo missions that flew rockets into outerspace (whether you believe we landed on the moon or not…we did…it’s certain that we did launch things into orbit)? The guidance computers on those spacecraft had approximately 64K, that’s K not M or G, of memory and ran at an astonishingly fast, at the time, 2.048MHz. You can accomplish a LOT with very little in embedded systems.
Sometimes you may have conflicting requirements like a device that needs to be battery powered but outputs 1080p video to a built in monitor. Just remember that there are other factors that, in my opinion, are more important than base specs. After all, if your project only needs 3 I/O pins it doesn’t really matter if your platform has 10, 30, or 50.
Did you even know the Raspberry Pi had a serial port? If you did and have tried to use it in Raspbian you’ve probably run in to some weird behavior. That’s because, by default, the serial port is tied up by the operating system so it can’t be reliably used in your projects. In this episode I show you how to configure the serial port so it can be used to make your awesome ideas reality.
I think we’re all still trying to figure out what Yo’s place is in the internet family but as of right now it’s basically a viral app. As soon as I found out there was an API for it I just knew I had to attach some hardware to it. Here’s a demo of what I put together.
The whole thing took me about 4 hours once I resolved my API issue (I originally gave them the wrong URL for the callback and had to email them to fix it). I want to share the process in case other people want to integrate Yo with hardware.
If you’ve been paying attention to hardware lately you’ve probably noticed how people have gone insane over remotely accessing their devices. In this µCast I’ll show you a simple way to get your project setup so that you can talk to it and control it via the interwebs. The best part, it only takes about 20 minutes.
My presentation from the Openwest Conference has posted to YouTube.
Really appreciated the opportunity I had to present and loved meeting some new people. Looking forward to attending next year.
I created a python module that makes interacting with specific hardware easy. You can find it here: µCasts Raspberry Pi Library
I’ve found myself writing quite a bit of code lately to interface with different pieces of hardware on the Raspberry Pi. I finally realized that for every new project I was copying the same code from the previous project to do things like turn on an LED or read the state of a switch. I decided that it was time to take all of that work and put it into a library that I could easily reuse with each project.
The python and node modules I’ve used to create projects in the past are very simple and generally easy to use. What they don’t provide, and aren’t meant to provide, is a higher level of abstraction around certain pieces of hardware. For example, let’s look at the TMP102 Sensor.
TMP102 image provided by Sparkfun as CC BY-NC-SA 3.0
[UPDATE]: I’ve had requests to post the finished code on Github for those that want to just play with the completed app. It’s now available at https://github.com/sidwarkd/pimonitor.
About a month ago I came across the CommandPi iOS app. It looked interesting so I paid the 99 cents and downloaded it to my iPad. The problem was, it didn’t work. I would provide my SSH credentials and after logging in the program would crash. So like any curious developer, instead of waiting for a fix I set out to write my own.
To be fair to the creator of CommandPi, what you are about to see is not meant to take anything away from that app. The app creator has put together a very nice UI and the crashing issue has been fixed. I just wanted to see how easy or hard it would be to create a knock off using ExpressJS, Angular and Bootstrap.
As part of my Skillshare class Unleash The Raspberry Pi Through Physical Computing I created a cheat sheet that I reference when working on hardware projects involving the Pi.
You may find it useful when working on your own projects so feel free to download and share. Let me know if you think I’m missing something important. I’m working on an HTML version and will update this post when it’s ready.