IP Library Granted Patent US 11,096,226
Granted Patent B2
US 11,096,226 · App. 16/845,240 · Granted Aug 17, 2021

Modularized control system to enable IoT wireless network control and sensing of other devices

Inventor: Hugo Fiennes (Palo Alto, CA)
Assignee: Twilio Inc.
H04W76/10G06F21/53H04L41/0806H04L41/12H04L63/00H04L67/10H04L67/12H04W4/70H04W12/086H04W84/12
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 11,096,226
App. No.
16/845,240
Granted
Aug 17, 2021
Kind
B2
Abstract

Internet of Things (IoT) system and method of interfacing arbitrary non-network connected devices to wireless computer networks. The invention provides a configurable wireless communications module, in either fixed or removable formats, with wireless (e.g. WiFi) network connectivity. The invention uses at least one internal processor, which is configured to operate as a sandbox or virtual machine manner to isolate the code used to operate the arbitrary non-network connected device from the code used to operate the communications module.

Claims (57)

1. A method comprising:

providing a virtual machine at a server for managing a communications module coupled to an arbitrary device that is non-network connected, the arbitrary device comprising a communications interface configured to accommodate the communications module;

receiving, by the virtual machine, a command for the arbitrary device;

establishing a network connection from the virtual machine in the server to the communications module; and

sending the command, via the network connection, from the virtual machine to the communications module, wherein the communications module is configured to transmit the command to the arbitrary device via electrical circuitry connecting the communications module to the arbitrary device.

2. The method as recited in claim 1 , wherein the server stores information about and an association between a unique identifier (ID) of the communications module and the arbitrary device.

3. The method as recited in claim 2 , further comprising:

configuring, at the server, the communications module for communications with the arbitrary device, the configuring comprising:

receiving, by the server, the unique ID of the communications module and a type of arbitrary device; and

storing in the server the association between the communications module and the arbitrary device.

4. The method as recited in claim 1 , further comprising:

sending, from the server to the communications module, a communications module virtual machine code, wherein at least one processor of the communications module operates the communications module virtual machine code to operate the communications module.

5. The method as recited in claim 1 , further comprising:

providing, by the server, a user interface accessible via a browser for configuring the communications module;

receiving, via the user interface, a configuration parameter for the communications module; and

sending the configuration parameter from the virtual machine to the communications module.

6. The method as recited in claim 1 , further comprising:

providing, by the server, a web application programming interface (API) to interface with the arbitrary device via the communications module.

7. The method as recited in claim 1 , further comprising:

updating, from the server, software of a communications module virtual machine handling communications of the communications module, wherein communications module code is shielded from changes to update communication capabilities.

8. The method as recited in claim 1 , wherein the communications module includes a wireless network interface for establishing the network connection.

9. The method as recited in claim 1 , wherein the communications module is mounted in a slot on a surface of the arbitrary device.

10. The method as recited in claim 1 , wherein the communications module is designed to be compatible with a plurality of different types of arbitrary devices.

11. A server comprising:

a memory comprising instructions; and

one or more computer processors, wherein the instructions, when executed by the one or more computer processors, cause the server to perform operations comprising:

providing a virtual machine at the server for managing a communications module coupled to an arbitrary device that is non-network connected, the arbitrary device comprising a communications interface configured to accommodate the communications module;

receiving, by the virtual machine, a command for the arbitrary device;

establishing a network connection from the virtual machine in the server to the communications module; and

sending the command, via the network connection, from the virtual machine to the communications module, wherein the communications module is configured to transmit the command to the arbitrary device via electrical circuitry connecting the communications module to the arbitrary device.

12. The server as recited in claim 11 , wherein the server stores information about and an association between a unique identifier (ID) of the communications module and the arbitrary device.

13. The server as recited in claim 12 , wherein the instructions further cause the one or more computer processors to perform operations comprising:

configuring, at the server, the communications module for communications with the arbitrary device, the configuring comprising:

receiving, by the server, the unique ID of the communications module and a type of arbitrary device; and

storing in the server the association between the communications module and the arbitrary device.

14. The server as recited in claim 11 , wherein the instructions further cause the one or more computer processors to perform operations comprising:

sending, from the server to the communications module, a communications module virtual machine code, wherein at least one processor of the communications module operates the communications module virtual machine code to operate the communications module.

15. The server as recited in claim 11 , wherein the instructions further cause the one or more computer processors to perform operations comprising:

providing, by the server, a user interface accessible via a browser for configuring the communications module;

receiving, via the user interface, a configuration parameter for the communications module; and

sending the configuration parameter from the virtual machine to the communications module.

16. A non-transitory machine-readable storage medium including instructions that, when executed by a machine, cause the machine to perform operations comprising:

providing a virtual machine at a server for managing a communications module coupled to an arbitrary device that is non-network connected, the arbitrary device comprising a communications interface configured to accommodate the communications module;

receiving, by the virtual machine, a command for the arbitrary device;

establishing a network connection from the virtual machine in the server to the communications module; and

sending the command, via the network connection, from the virtual machine to the communications module, wherein the communications module is configured to transmit the command to the arbitrary device via electrical circuitry connecting the communications module to the arbitrary device.

17. The non-transitory machine-readable storage medium as recited in claim 16 , wherein the server stores information about and an association between a unique identifier (ID) of the communications module and the arbitrary device.

18. The non-transitory machine-readable storage medium as recited in claim 17 , wherein the machine further performs operations comprising:

configuring, at the server, the communications module for communications with the arbitrary device, the configuring comprising:

receiving, by the server, the unique ID of the communications module and a type of arbitrary device; and

storing in the server the association between the communications module and the arbitrary device.

19. The non-transitory machine-readable storage medium as recited in claim 16 , wherein the machine further performs operations comprising:

sending, from the server to the communications module, a communications module virtual machine code, wherein at least one processor of the communications module operates the communications module virtual machine code to operate the communications module.

20. The non-transitory machine-readable storage medium as recited in claim 16 , wherein the machine further performs operations comprising:

providing, by the server, a user interface accessible via a browser for configuring the communications module;

receiving, via the user interface, a configuration parameter for the communications module; and

sending the configuration parameter from the virtual machine to the communications module.

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 Apr 10, 2020
From: ELECTRIC IMP INCORPORATED
To: TWILIO INC.
Reel/Frame 052363/0321 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2020
From: FIENNES, HUGO
To: ELECTRIC IMP INCORPORATED
Reel/Frame 052363/0268 →
Continuity (9)
Continuation 15970084 · May 3, 2018
Continuation 15219180 · Jul 25, 2016
Continuation In Part 14659352 · Mar 16, 2015
Continuation In Part 13734976 · Jan 5, 2013
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 20200244539A1 · Jul 30, 2020