Apart from a thorough clean-up of its documentation morass, the Simblee system needs a much better gestalt explanation.
What about documentation? Exactly.
I'll start with installation. There's no software to download from the Simblee site. Grab the quickstart guide to discover that you first download the Arduino software, then the Simblee extensions from within it. Thus began a small comedy (tragedy?) of errors.
There were two quickstarts on the website, and I made the mistake of downloading the older one (iOS only). The newer version added Android information, which I didn't need. Unfortunately, it also contained an updated URL for the Simblee library code.
The URL text in the pdf guide was hyperlinked: useless, as you don't want to open it in a browser. You want to copy the text into the Arduino software. I did that. I should have realised that because the URL text was split by a line break, there might be problems. Yup—the line break became a space, but it took me half an hour to notice that. And the cherry on top? The hyperlink was wrong, containing the URL only up to the line break. Wow…four errors in one URL: hyperlinked, wrong hyperlink, line break, outdated URL.
So, then I grabbed the newer quickstart (and suggested they remove the old one…which they did). This was better, though the URL was still pointlessly hyperlinked (well, not entirely pointless, as you can COPY it easily). Pasting this into the Arduino board manager initiated download of the Simblee libraries. I also had to install FTDI USB drivers. Yuck.
Hardware docs? There's a Simblee module datasheet, and I've seen worse. Surprisingly for a BLE module, there's minimal data covering power consumption; just a few numbers in the title page feature list. Board docs? None. No schematics or even pinouts. Each board does have the pin functions labelled on the PCB, and being quite simple, I guess that's good enough.
Continuing to browse the docs: there's a seven-page Functions Reference. That's a start, though the BLE functions aren't explained in a useful way. Well, useful perhaps to a BLE expert, but a big selling feature of the Simblee is that you don't need to be an expert. There are sleep/wake functions, but again, their short descriptions seem to be hiding assumed knowledge of the whole system. A few miscellaneous functions, like reading temperature, close out this reference. There's no coverage of features like encryption, RTC, random numbers or the battery monitor, though there are some software examples that cover encryption and the RNG. Presumably the RTC just works, using standard Arduino functions.
Next, there's a User Guide, currently "alpha, v2.06." Call me a stickler, but I find those two labels mutually incompatible; and the alpha doc phase should be long past anyway. I’ll be more of a stickler, pointing out the footer text says v2.05, not 2.06, various typos, use of u for µ and x for × in various documents, etc.
This user guide—at 31 pages—actually is a decent introduction to Simblee HW & SW, but that's all it is; an extended quickstart.
If I'm correct about the microcontroller in the module, its datasheet specifies an output drive strength of 5mA, but on three pins at a time, maximum. It looks like pins can be set for normal (0.5mA) or high (5mA) drive. I found no mention of the three-pin limit in any Simblee docs. And the datasheet seems to imply that the limit does not apply to IOL, but as there aren't that many ground pins (it varies with package), I expect there's an IOL limit too.
Okay, enough with the obsession over details. Let's get to the core of the Simblee experience: coding up a GUI. The GUI function reference…umm, let's see…where is it…? To my utter astonishment, there's no GUI reference! Yes, the User Guide demonstrates some GUI elements. Yes, there are example programs. But that's it!
I hit the Web looking for info, and after poking around for 10 minutes, I'd scanned to the end of a SparkFun Simblee tutorial, and lo, there's a link to a GUI reference. The reference is on the Simblee site, but the only link to it is from SparkFun. Huh? Oops.
The GUI reference is a year old, but does get into some proper detail in its 14 pages. Some of the available elements are text, solid and gradient rectangles, buttons, switches, sliders, input fields, multiple screens and images.
Images are limited to PNG format, and must be converted to C arrays, which you can then reference in your code. With about 96kB available, that can obviously be somewhat limiting. And there seems to be no way to use the other myriad resources of smartphones, iPads and other devices, like audio, sensors, location services, etc. Soon I hope.
Apart from a thorough clean-up of this documentation morass, the system needs a much better gestalt explanation. There's a lot of HW/SW interaction going on with BLE, and this needs to be understandable for any but the simplest applications. No, users shouldn't have to be BLE experts, but the usage, power, and timing implications of the various BLE states has to be clear. Although a couple of "timesharing" functions are superficially discussed, users need a much clearer explanation of what's happening in the time domain.
There's a Simblee YouTube channel that's worth checking out, but it hardly makes up for the overall documentation paucity. I can't imagine engineering a product like this without having documentation ready before the product is on the market—documentation that is essentially the design specification for the product. RF Digital must surely be suffering under excessive customer support pressure now because of this.
Still, the Simblee is a great concept, and if you think it can give your project a leg up, it's worth a look. Though, you might want to talk with their support team first, just to be sure they'll be able to offer the help you're going to need.
Oh, and stick around. I'll be working on and writing about my RGB project real soon now.