Hey backers! Thanks for helping support Punch Through’s vision of a wireless, low-power Internet of Things.
We’d like to update you on our plans for building the Bean software. This is the software which will let you compile your Arduino scripts and send them to your Bean via Bluetooth Low Energy. Read on to learn more!
We’re currently finalizing our software in the following order:
- Mac app
- Limited iOS app
- Windows app
- Full iOS app
We’re approaching these platforms in this order for the following reasons:
We’ve placed the Mac app at the front because it’s the easiest for us to reliably support. The number of MacBook and iMac models that exist are limited, and the ones that support Bluetooth Low Energy all have reasonably similar hardware and run modern versions of OS X. This means if your Bean isn’t working with your system, we can do a better job of troubleshooting what’s going on.
After the OS X app is ready to go, we plan on working on the limited iOS app. The reason we call this version of the iOS app “limited” is because it’s not an easy feat to compile C code on an iPhone or iPad. Apple devices don’t have GCC built in, and there’s no way to get GCC onto your phone unless you jailbreak and install from Cydia. As such, this version of the app will let you load compiled .hex files from your desktop apps onto your Bean, but not your Arduino .ino source files.
We’re developing a cut-down version of this app immediately after the Mac app because we want to showcase one of Bean’s greatest strengths—the ability to program your Bean wirelessly from your phone. We hope people will use this feature to do cool things! For example, someone could update firmware on their project installation without having to drag along a laptop just for programming and hack open the case to get at the Arduino inside.
Our next priority is the Windows app. This is a no-brainer—lots of our backers use Windows. The reason we put the Windows app after the Mac app is for two reasons:
- Bluetooth 4.0 support on Windows 8.1 is very new and much buggier in our experience than on OS X. We’ve already written a LightBlue app for OS X, and we can be confident that we’ve squashed a lot more bugs in that ecosystem.
- Hardware support on Windows for Bluetooth Low Energy can differ wildly. Many laptops running Windows 8 will have Bluetooth hardware that may not support Bluetooth Low Energy. Customers who buy BLE dongles may use ones that we haven’t tested, adding another bug factor. Since Windows PCs can vary wildly in their hardware, there are definitely conflicts in system configurations that we can’t foresee.
Once the Windows app is complete, we will work to release an iOS app that supports writing, compiling, and flashing Arduino firmware over BLE—the first app of its kind! We’re currently working with the brilliant minds at Codebender to integrate compilation into our app via their web service. Codebender provides a fantastic service for writing, compiling, and flashing Arduino software to your device. With their help, we’ll integrate a full compilation workflow into our iOS app, letting you write code on-the-go from any of your iDevices.
Last but not least, we’re looking to bring you Android support. Since Android 4.3, most new phones now have proper support for Bluetooth Low Energy. We’re going to leverage the finally-mature Android BLE APIs to bring you mobile code compiling and Bean programming from any of your Android devices with BLE support, thanks again to Codebender’s web service.
The elephant in the room: Linux support
If you’re on Linux, you might be upset with us for not supporting your platform. We’d like to, but:
- Bluetooth 4.0 is currently a second-class citizen in Linux. There are ways to get it working, such as using the BlueZ Protocol Stack, but they can be clunky, buggy, and hard to get working reliably, in our experience.
- Much like in Windows, users’ hardware and software combinations can lead to bugs we can neither reproduce nor troubleshoot.
As we develop the Mac app, we’ll continue to try our hand at supporting Linux, but in its current state we can’t make any guarantees as to if we’ll make any progress.
Sorry Linux users. Many of us at Punch Through are Linux and open-source enthusiasts—we have an average of 1 Raspberry Pi in the office for every third person, and we’re compiling our Arduino code for the Bean with an open-source toolchain. In its current state, we find it hard to guarantee that the majority of our users on Linux will be able to get the Bean working. on their platforms. We don’t want to disappoint with broken promises, but if we find something that might work you’ll be the first to know.
Edit: Lots of our users have been emailing us asking about Windows 7 support.
We will be supporting Windows 8.1 as it includes a well-assembled Bluetooth Low Energy driver stack, allowing us to program for one computer and make it work for all Windows 8.1 computers.
While it’s technically possible to get Bluetooth Low Energy working on Windows 7 with a USB dongle, it requires users to install a separate driver stack and developers to rewrite their BLE code to work with the new driver stack. The non-Microsoft BLE stacks that currently exist for Windows 7 have a reputation for being buggy and/or incomplete in functionality. We want to dedicate our effort toward producing reliable, high-quality software, and it’s hard to guarantee our users will have good experiences if we write for software stacks that aren’t officially supported. In addition, it’s a lot harder for us to diagnose any issues our users might have that relate to alternate BLE software stacks.