# US 2017/0286089 A1 · Firmware of modular assembly system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0286089 A1
- Document ID: US20170286089A1
- Status: Published application
- Kind: A1
- Application number: 15/601,648
- Filed: 2017-05-22
- Published: 2017-10-05
- Earliest claimed: 2016-03-31
- Assignees: Shenzhen Bell Creative Science and Education Co., Ltd.
- Applicants: Shenzhen Bell Creative Science and Education Co., Ltd.
- Inventors: Zuobing Wang; Hongbo Qi; Jinfu Zhou; Ziwen Chen
- Web page: https://patentgrep.com/patent/US20170286089A1

## CPC

- A63H 33/005: {Motorised rolling toys}
- A63H 11/00: Self-movable toy figures
- A63H 27/12: {Helicopters (A63H27/04 takes precedence); Flying tops}
- A63H 29/22: Electric drives (power supply through track A63H18/12)
- A63H 30/04: using wireless transmission
- A63H 33/042: {Mechanical, electrical, optical, pneumatic or hydraulic arrangements; Motors}
- A63H 33/062: {with clip or snap mechanisms}
- A63H 33/26: Magnetic or electric toys (electric drives A63H29/22 {; indoor games played with small balls using magnetic power A63F7/0088, A63F7/068})
- B25J 9/08: characterised by modular constructions
- B25J 9/1617: {Cellular, reconfigurable manipulator, e.g. cebot}
- G06F 3/017: {Gesture based interaction, e.g. based on a set of recognized hand gestures (interaction based on gestures traced on a digitiser G06F3/04883)}
- G06F 3/04817: using icons (graphical or visual programming using iconic symbols G06F8/34)
- G06F 3/0482: Interaction with lists of selectable items, e.g. menus
- G06F 3/04847: Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
- G06F 3/0486: Drag-and-drop
- G06F 3/04883: for inputting data by handwriting, e.g. gesture or text
- G06F 3/167: {Audio in a user interface, e.g. using voice commands for navigating, audio feedback}
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G09B 5/00: Electrically-operated educational appliances (working with questions and answers G09B7/00; simulators G09B9/00; advertising or displaying in general G09F)
- H01R 13/6271: {Latching means integral with the housing (H01R13/6276, H01R13/6277, H01R13/6278 take precedence)}
- H01R 13/6273: {comprising two latching arms}
- H01R 24/38: having concentrically or coaxially arranged contacts
- H04L 9/0816: {Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use}
- H04L 9/0819: {Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) (network architectures or network communication protocols for key distribution in a packet data network H04L63/062)}
- H04L 9/0894: {Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage}
- H04L 9/14: using a plurality of keys or algorithms
- A63H 27/001: {Making or assembling thereof, e.g. by folding}
- A63H 2200/00: Computerized interactive toys, e.g. dolls
- B25J 9/0003: {Home robots, i.e. small robots for domestic use}
- G05B 15/02: electric
- G06F 8/30: Creation or generation of source code
- H01R 13/24: resilient; resiliently-mounted
- H01R 13/627: Snap or like fastening
- A63H: TOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
- B25J: MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES ({manipulators specially adapted for use in surgery A61B34/70; manipulators used in cleaning hollow articles B08B9/04}; manipulators associated with rolling mills B21B39/20; manipulators associated with forging machines B21J13/10; {manipulators associated with picking-up and placing mechanisms B23P19/007}; means for holding wheels or parts thereof B60B30/00; {vehicles with ground-engaging propulsion means, e.g. walking members B62D57/02, B62D57/032; devices for picking-up and depositing articles or materials between conveyors B65G47/90, B65G47/91; manipulators with gripping or holding means for transferring packages B65H67/065}; cranes B66C; {manipulators used in the protection or supervision of pipe-line installations F17D5/00; walking equipment adapted for nuclear steam-generators F22B37/006}; manipulators specially adapted for, or associated with, nuclear reactors G21C; {apparatus used for handling wafers during manufacture or treatment of semiconductor H10P72/50})
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G09B: EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS (devices for psychotechnics or for testing reaction times A61B5/16; games, sports, amusements A63; projectors, projector screens G03B)
- H01R: ELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)

## Abstract

A method for updating firmware on a control module of a modular assembly system is provided. Information related to noise sampled from the control module is obtained. A first encryption key is calculated based on the information. Firmware to be updated on the control module is received from a host of the modular assembly system. The firmware is encrypted based on at least a second encryption key. In response to determining that the received firmware can be decrypted, the decrypted firmware is loaded into the control module. At least one of the obtaining, calculating, receiving, determining, and loading is performed by the control module.

## Claims

### Claim 1

A method for updating firmware on a control module of a modular assembly system, the method comprising:
obtaining information related to noise sampled from the control module;
calculating a first encryption key based on the information;
receiving, from a host of the modular assembly system, firmware to be updated on the control module, the firmware encrypted based on at least a second encryption key;
determining that the received firmware can be decrypted based on the first encryption key; and
in response to determining that the received firmware can be decrypted, loading the decrypted firmware into the control module,
wherein at least one of the obtaining, calculating, receiving, determining, and loading is performed by the control module.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
storing the first encryption key in a persistent storage of the control module.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
in response to receiving the firmware to be updated, retrieving the first encryption key from the persistent storage.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
receiving, from the host, a message for requesting firmware update; and
in response to receiving the message, transmitting, to the host, the first encryption key.

### Claim 5 (depends on 1)

The method of claim 1, wherein the received firmware can be decrypted based on the first encryption key when the first and second encryption keys are the same.

### Claim 6 (depends on 1)

The method of claim 1, wherein the noise is sampled from power supply of the control module.

### Claim 7 (depends on 1)

The method of claim 1, wherein the obtaining further comprises:
sampling the control module to obtain an initial signal;
filtering the initial signal to obtain an filtered signal; and
computing a noise signal based on at least the initial signal and the filtered signal.

### Claim 8 (depends on 7)

The method of claim 7, wherein
the sampling is performed by analog-to-digital conversion (ADC);
the filtering is performed by Kalman filtering; and
the computing is performed by a subtraction operation.

### Claim 9 (depends on 1)

The method of claim 1, wherein the firmware to be updated on the control module is divided into a plurality of packages that are sequentially transmitted to the control module.

### Claim 10 (depends on 9)

The method of claim 9, wherein a size of each of the plurality of packages is the same.

### Claim 11

A method for encrypting firmware to be updated on a control module of a modular assembly system, the method comprising:
receiving, from the control module, an encryption key calculated based on information related to noise sampled from the control module;
encrypting firmware based on at least the encryption key; and
transmitting, to the control module, the encrypted firmware,
wherein at least one of the receiving, encrypting, and transmitting is performed by a host of the modular assembly system.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
transmitting, to the control module, a message for requesting firmware update.

### Claim 13 (depends on 11)

The method of claim 11, wherein the transmitting further comprises:
dividing the firmware into a plurality of packages; and
sequentially transmitting, to the control module, each of the plurality of packages.

### Claim 14 (depends on 13)

The method of claim 13, wherein a size of each of the plurality of packages is the same.

### Claim 15 (depends on 11)

The method of claim 11, wherein the noise is sampled from power supply of the control module.
