This is an old thread, but a colleague and I have been discussing this patent today, and I saw that there's no definitive answer to "can I do blinkup in my own project" in this thread. Therefore I'd like to point out a couple of things about patents:
- Only the section labelled CLAIMS matters. Everything else, the pics, the examples and explanatory texts are irrelevant and with non-US patents can sometimes even be deliberately misleading or confusing.
- For some device to be covered by a claim, it must have all the attributes mentioned in the claim. This means that very short claims are a lot more valuable (and harder to circumvent) than long claims. For example: a patent covering "a vehicle riding on wheels" would cover all cars, whereas one that covered "a vehicle riding on wheels with a combustion engine having 9 cylinders" would cover pretty much none of them.
- Prior art has to also satisfy all aspects of a claim, not just some of them.
- Assume the main claims (printed black not gray by google) are given. The other claims (the ones starting with "the method of claim 1, and...") are there in case the patent office doesn't deem claim 1 on its own patentable. These additional claims further restrict claim 1, making the patent narrower, and thus less valuable. It may happen that the patent office only grants claim 8 for example. In this case, this hasn't happened, the independent claims 1 and 13 were granted, the others are irrelevant.
So, what is Electric Imp patenting? In my own words:
a device with:
- circuitry that runs software, AND
- is able to store a unique ID, AND
- is able to transmit that unique ID, AND
- has both a radio and an optical interface, AND
- has solid state memory for both code and configuration data, AND
- uses the optical interface to load network configuration data, AND
- connects to the network specified in the configuration data, AND
- loads code based on the unique ID or a token, AND
- sends the unique ID or a token to a server, which uses that ID/token to select code (note, it doesn't say where this code runs), AND
- the device communicates over the network.
If you build your own device, and want to make sure that it doesn't fall under this patent, it is sufficient to make a single point in that list unapplicable, like not having a server pick different code, or not transmitting a unique ID.
So in a nutshell: can you copy the blinkup process? Yes. Can have a server run individual virtual machines for each of your devices? Also yes. Can you combine blinkup and server virtual machines? No.