IP Library Granted Patent US 8,984,107
Granted Patent B2
US 8,984,107 · App. 13/734,976 · Granted Mar 17, 2015

Optically configured modularized control system to enable wireless network control and sensing of other devices

Inventor: Hugo Fiennnes (Palo Alto, CA)
Assignee: Electric Imp Incorporated
H04L41/0806H04N21/4126H04N21/4131H04N21/4182H04N21/4184H04N21/4227H04N21/43615H04N21/4363H04N21/4437H04N21/4782H04N21/6125
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,984,107
App. No.
13/734,976
Granted
Mar 17, 2015
Kind
B2
Abstract

System and method of interfacing arbitrary non-network connected devices to wireless computer networks. The invention provides an optically configurable wireless communications module, in either fixed or removable formats, with wireless (e.g. WiFi) network connectivity. The module also has a programmable arbitrary device controller, associated software, and at least the combination of the arbitrary device and the module also provides a unique ID code. A software token assisted method may be used to associate the unique ID code with appropriate control software and this association stored in network server memory. The invention also uses an internet-based service and a local optical programmer to configure the module's wireless network configuration. Once connectivity is established, the module may upload its unique ID code to the server and receive appropriate arbitrary device control code from the server. Portable version modules may be swapped between arbitrary devices at will, and will automatically configure themselves.

Claims (68)

1. A method of automatically configuring the software for a communications module for an arbitrary non-network connected device, said arbitrary device having electrical circuitry to implement its functionality, said method comprising:

providing a communications module to said arbitrary device, said communications module capable of carrying control signals to at least some of said electrical circuitry;

either said arbitrary device or said communications module additionally having a unique ID storage memory device capable of transmitting unique identification data;

said communications module having a communications interface capable of establishing a wireless network connection with a computer network, and an optical interface capable of reading optically transmitted configuration data;

said communications module having internal solid state memory capable of storing code and data;

said communications module having at least one internal processor, said at least one internal processor configured to at least execute said code when said communications module is connected to said arbitrary device;

using said optical configuration interface to load wireless network configuration data into said device, thereby allowing said communication interface to establish a wireless network connection with a computer network;

using said network connection, and either said unique identification data or a software token to load the code to operate said communications module;

wherein either said unique identification data or said software token is used by a network connected server to select the type of code to operate said communications module, and wherein said network connected server stores a record of the association between said unique identification data and said type of code;

wherein commands or data to said arbitrary device are transmitted through said network, to said communications module, and are interpreted by at least one processor running said code, and wherein said at least one processor in turn sends control signals to said electrical circuitry; or

wherein commands or data from said electrical circuitry are transmitted to said communications module, are interpreted by said at least one processor running said code, and transmitted using said communications interface to said network.

2. The method of claim 1 , wherein said software token is used by a network connected server to select the type of code to operate said communications module, and wherein after said selection, said network connected server stores a record of the association between said unique identification data and said type of code;

further using said optical configuration interface to load said software token into the internal solid state memory of said communications module, thereby allowing said communication interface to transmit said software token to said network connected server.

3. The method of claim 1 , in which said communications module is a plurality of removable communications modules, and said arbitrary non-network connected device further comprises a slot capable of accommodating one said removable communications module;

wherein said arbitrary device further comprises said unique ID storage memory device capable of transmitting unique identification data;

further providing said software token by:

plugging a first removable communications module containing said software token in said internal solid state memory into said slot;

establishing a network connection with said network connected server, and transmitting said unique identification data and said software token to said network connected server, thereby allowing said network connected server to record the association between said unique identification data and said software token;

wherein said software token is used by a network connected server to select the type of code to operate said communications module, and wherein after said selection, a network connected server stores a record of the association between said unique identification data and said type of code;

wherein, when a second removable communications module not containing said software token in said internal solid state memory is plugged into said slot, said second communications module can obtain said unique identification data from said arbitrary device and transmit said unique identification data to said network connected server; and

said network connected server can select the type of code to operate said second removable communications module using said record of the association between said unique identification data and said type of code.

4. The method of claim 1 , wherein said communications module further comprises a physical interface with electrical connections;

said arbitrary device additionally comprises a communications module interface that can interact with said electrical connections on said communications module and carry control signals between said electrical connections to at least some of said electrical circuitry.

5. The method of claim 4 , wherein said communications module is capable of reconfiguring the function of at least some of its electrical connections to an alternate analog or digital protocol for purposes of interacting with said arbitrary device.

6. The method of claim 1 , wherein said code configures the at least one processor of said communications module to operate as a sandbox or virtual machine in a manner that prevents program crashes or errors in the portion of the code that operates said arbitrary device from interfering with the portion of the code that operates the communications module network interface.

7. The method of claim 6 , wherein said code configures the at least one processor of said communications module to operate as a virtual machine in a manner that further presents a communications module device independent interface to the portion of the code that operates said arbitrary device.

8. The method of claim 1 , wherein said optical interface capable of reading optically transmitted configuration data further comprises at least one photodetector or at least one connection to at least one photodetector.

9. The method of claim 1 , wherein said communications module code is capable of operating said arbitrary device in at least an alternate fallback mode when local network connectivity is absent or network connectivity to the Internet or to an Internet server capable of providing instructions to said communications modules is absent.

10. The method of claim 1 , used to control at least two arbitrary devices, each equipped with its own communications module, said method comprising:

configuring at least one internet server with instructions to manage the operation of said arbitrary devices or communications modules;

establishing network connections between said communications modules and said at least one internet server;

using said at least one internet server to relay commands or data from a first arbitrary device and communication module to a second arbitrary device and communications module; or

using said at least one internet server to relay commands or data from at least one arbitrary device equipped with its own communications module to an outside human or automated recipient; or

using said at least one internet server to relay commands or data from an outside human or automated source to at least one arbitrary device equipped with its own communications module.

11. The method of claim 1 , further providing a slot in said arbitrary device to accommodate a communications module;

said slot in said arbitrary device additionally having a communications module interface that can interact with said communications module and carry control signals to at least some of said electrical circuitry;

said arbitrary device additionally having a unique ID storage memory device capable of transmitting unique identification data from said arbitrary device to said communications module;

and wherein said communications module is a removable communications module.

12. The method of claim 1 , wherein said communications module is permanently embedded in said arbitrary device.

13. A method of automatically configuring the software for a communications module for an arbitrary non-network connected device, said arbitrary device having electrical circuitry to implement its functionality, said method comprising:

providing a slot in said arbitrary device to accommodate a communications module;

said slot in said arbitrary device additionally having a communications module interface that can interact with said communications module and carry control signals to at least some of said electrical circuitry;

said arbitrary device additionally having a unique ID storage memory device capable of transmitting unique identification data from said arbitrary device to said communications module;

providing a communications module to said arbitrary device, said communications module capable of carrying control signals to at least some of said electrical circuitry;

said communications module having a communications interface capable of establishing a wireless network connection with a computer network, and an optical interface capable of reading optically transmitted configuration data;

wherein said optical interface capable of reading optically transmitted configuration data further comprises at least one photodetector;

said communications module having internal solid state memory capable of storing code and data;

said communications module having at least one internal processor, said at least one internal processor configured to at least execute said code when said communications module is connected to said arbitrary device;

using said optical configuration interface to load wireless network configuration data into said device, thereby allowing said communication interface to establish a wireless network connection with a computer network;

using said network connection, and either said unique identification data or a software token to load the code to operate said communications module;

wherein either said unique identification data or said software token is used by a network connected server to select the type of code to operate said communications module, and wherein said network connected server stores a record of the association between said unique identification data and said type of code;

wherein commands or data to said arbitrary device are transmitted through said network, to said communications module, and are interpreted by at least one processor running said code, and wherein said at least one processor in turn sends control signals to said electrical circuitry; or

wherein commands or data from said electrical circuitry are transmitted to said communications module, are interpreted by said at least one processor running said code, and transmitted using said communications interface to said network.

14. The method of claim 13 , in which said communications module is a plurality of removable communications modules:

further providing said software token by:

plugging a first removable communications module containing said software token in said internal solid state memory into said slot;

establishing a network connection with said network connected server, and transmitting said unique identification data and said software token to said network connected server, thereby allowing said network connected server to record the association between said unique identification data and said software token;

wherein said software token is used by a network connected server to select the type of code to operate said communications module, and wherein after said selection, a network connected server stores a record of the association between said unique identification data and said type of code;

wherein, when a second removable communications module not containing said software token in said internal solid state memory is plugged into said slot, said second communications module can obtain said unique identification data from said arbitrary device and transmit said unique identification data to said network connected server; and

said network connected server can select the type of code to operate said second removable communications module using said record of the association between said unique identification data and said type of code.

15. The method of claim 13 , wherein said communications module further comprises a standard solid state memory card physical interface with physically compatible electrical connections;

wherein said communications module also comprises an electronic and logical interface that, in at least one mode of operation, is capable of connecting to a standard memory card reader and storing and retrieving memory data according to standard memory card protocols;

wherein said slot in said arbitrary device additionally comprises a communications module interface that can interact with said physically compatible electrical connections on said communications module and carry control signals between said physically compatible electrical connections to at least some of said electrical circuitry.

16. The method of claim 15 , wherein when said communications module is connected to said arbitrary device, said communications module is capable of reconfiguring the function of at least some of its physically compatible electrical connections to an alternate analog or digital protocol for purposes of interacting with said arbitrary device.

17. The method of claim 15 , wherein said standard solid state memory card physical interface, physically compatible electrical interface, and logical interface is a PC Card, CompactFlash Card, SmartMedia card, Memory Stick card, Miniature Card, Multimedia Card, MMCmicro Card, Secure Digital Card, SxS card, Universal Flash Storage card, miniSD card, microSD card, xD-Picture Card, Intelligent Stick card, Serial Flash Module, μ card, NT card, or other commercially standard solid state memory card format.

18. The method of claim 13 , wherein said slot is a standardized slot device designed to be compatible with a plurality of different types of arbitrary devices, and wherein said standardized slot device comprises a socket for said communications module, an identification chip, a communications module power supply, and interface circuitry that provides an electrical interface between said communications module and said arbitrary device electrical circuitry.

19. The method of claim 18 , wherein said standardized slot device is mounted behind a slot on the surface of said arbitrary device, thereby creating a unitized arbitrary device and standardized slot device such that the socket of said standardized slot device remains open and capable of both receiving and removing said communications module.

20. The method of claim 13 , wherein when said communications module is moved from a first arbitrary device to a second arbitrary device, said communications module acquires the unique identification data of said second arbitrary device, establishes a network connection to said network connected server, transmits said unique identification data of said second arbitrary device to said network connected server, and receives code associated with said second arbitrary device from said networked connected server, thereby giving said communications module the capability to add a network interface to said second arbitrary device, and allowing said communications module to be interchangeable between said first arbitrary device and said second arbitrary device.

Assignments (8)
SECURITY INTEREST Recorded Jul 22, 2026
From: KORE WIRLESS GROUP INC.; KORE WIRELESS INC.
To: WHITEHORSE CAPITAL ORIGINATION, LLC
Reel/Frame 075362/0959 →
SECURITY INTEREST Recorded Jul 21, 2026
From: WHITEHORSE CAPITAL MANAGEMENT, LLC
To: KORE WIRELESS GROUP INC.
Reel/Frame 075348/0522 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2023
From: TWILIO INC.
To: KORE WIRELESS GROUP INC.
Reel/Frame 065772/0805 →
SECURITY INTEREST Recorded Nov 15, 2023
From: KORE WIRELESS GROUP INC.
To: WHITEHORSE CAPITAL MANAGEMENT, LLC
Reel/Frame 065574/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2023
From: TWILIO INC.
To: KORE WIRELESS GROUP, INC.
Reel/Frame 071393/0799 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2023
From: TWILIO INC.
To: KORE WIRELESS GROUP, INC.
Reel/Frame 063896/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2020
From: ELECTRIC IMP INCORPORATED
To: TWILIO INC.
Reel/Frame 051428/0868 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2013
From: FIENNES, HUGO
To: ELECTRIC IMP INCORPORATED
Reel/Frame 031641/0825 →
Continuity (5)
Continuation In Part 13481737 · May 25, 2012
Provisional Application 61647476 · May 15, 2012
Provisional Application 61583299 · Jan 5, 2012
Provisional Application 61490498 · May 26, 2011
Related Publication 20140025795A1 · Jan 23, 2014