IP Library Granted Patent US 9,092,300
Granted Patent B2
US 9,092,300 · App. 13/916,496 · Granted Jul 28, 2015

Peripheral device and method for updating firmware thereof

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 9,092,300
App. No.
13/916,496
Granted
Jul 28, 2015
Kind
B2
Abstract

A peripheral device for an electronic device includes a memory configured to store at least an active firmware image and another firmware image, and circuitry configured to execute instructions provided in the firmware image. The circuitry receives, from a software application of the electronic device, commands and a firmware image included in the software application. The circuitry verifies the received firmware image file and writes the portions to a memory block different from a memory block at which the active firmware image is located. A command from the software application causes the peripheral device to specify the newly written firmware image as an active firmware image and to execute the newly active firmware image.

Claims (17)

1. A peripheral device for an electronic device, the peripheral device comprising: a memory having at least two memory blocks each configured to store a respective set of instructions, one of the memory blocks being changeably designated as an active memory block; and electrical circuitry configured to: receive an update notification from the electronic device, the update notification identifying one of the at least two memory blocks for receiving updated instructions; upon determination that the identified one memory block is not the active memory block: transmit a response to the electronic device acknowledging the update notification, receive, from the electronic device, the updated instructions targeted for the identified memory block, and write the received updated instructions to the identified one memory block; upon determination that the identified one memory block is the active memory block: transmit a response to the electronic device indicating an error, receive another update notification from the electronic device that identifies a different one of the at least two memory blocks for receiving the updated instructions, receive, from the electronic device, the updated instructions targeted for the identified different memory block, and write the received updated instructions to the identified different memory block; and designate the memory block to which the received updated instructions were written as the active memory block in response to a command from the electronic device; and a battery configured, based on the instructions in the active memory block, at least to provide power to a device other than the peripheral device.

2. The peripheral device according to claim 1 , wherein the electrical circuitry is further configured to verify the received updated instructions, wherein the verification includes to: calculate a portion checksum respectively for each of one or more updated instructions portions constituting the received updated instructions; compare the calculated portion checksum against a provided portion checksum included in said each updated instructions portion; and notify the electronic device that the calculated portion checksum matches the provided portion checksum.

3. The peripheral device according to claim 2 , wherein, if the number of updated instructions portion is more than one, the electrical circuitry is further configured to: for said each received updated instructions portion, successively update a running total checksum using the calculated updated instruction portion checksums; and upon receiving, from the electronic device, a pre-calculated total checksum and information that indicates all updated instructions portions have been received, compare the pre-calculated total checksum against the running total checksum.

4. The peripheral device according to claim 3 , wherein, the electrical circuitry is further configured to: acknowledge to the electronic device that the received updated instructions were successfully written and verified, receive another update notification identifying the memory block that was written, and successively receive the updated instructions portions again for re-verification.

5. The peripheral device according to claim 1 , wherein the electrical circuitry is further configured to be reset so that the updated instructions will be executed.

6. The peripheral device according to claim 1 , wherein the battery is further configured, based on the instructions in the active memory block, to power operation of the electronic device and to recharge a battery of the electronic device.

7. The peripheral device according to claim 6 , wherein the received updated instructions and the instructions in the active memory block respectively comprise firmware which when executed manages at least charging and discharging of the battery of the protective enclosure and of the battery of the electronic device.

8. The peripheral device according to claim 1 wherein the electronic device is a mobile telephone configured to acquire, from a remote source, an app that includes: instructions which, when executed by the mobile telephone, cause results of functions of the peripheral device to be displayed on a display of the electronic device; instructions which, when executed by the mobile telephone, cause the peripheral device to receive the updated instructions from the mobile telephone; and one or more updated instructions sets, wherein if two or more updated instructions sets are included in the app, each updated instructions set respectively includes information identifying a different one of the at least two memory blocks.

9. The peripheral device according to claim 1 , further comprising: an interface to the battery of the peripheral device; an interface to receive electrical power from an external power source; and at least one of: a bar code reader, and a magnetic strip reader configured to read information from a magnetic strip card, wherein the updated instructions and the instructions in the active memory block constitute respective firmware images, which firmware images when executed by the electrical circuitry perform: management of charging and discharging of the battery of the peripheral device with respect to a battery of the electronic device, and operation of at least one of the bar-code reader and the magnetic strip reader.

10. A method in a peripheral device for updating firmware of the peripheral device, the method comprising: receiving, at a communication circuit of the peripheral device, an update notification from a portable electronic device, the update notification identifying one of at least two memory blocks for receiving updated instructions, determining whether or not the identified one memory block is an active memory block of the peripheral device, responding, via the communication circuit, to the update notification from the portable electronic device, the response acknowledging the update notification if the identified one memory block is the active memory block, and when the response acknowledges receiving an update notification that identifies the active memory block: receiving from the electronic device an updated firmware image, including information designating a memory block of the peripheral device, writing the updated firmware image to the designated memory block upon determining that the memory block identified in the update notification is available for writing, upon receipt of a commit command from the electronic device, designating for execution the memory block to which the received updated firmware image was written, and resetting the peripheral device in order to execute the updated firmware image at the memory block designated for execution, wherein the updated firmware instructions include instructions for managing power transfer from a battery of peripheral device to a device other than the peripheral device.

11. The method according to claim 10 , further comprising: receiving, with the indication that the transmission of the updated firmware image is complete, a pre-calculated total checksum for the updated firmware image; comparing the pre-calculated total checksum with a peripheral-device calculated total checksum, and upon determining a match of the pre-calculated total checksum and the peripheral-device calculated checksum, transmitting a confirmation of the match.

12. The method according to claim 10 , wherein the responding to the update notification includes indicating an availability status of the peripheral device memory block identified in the update notification.

13. The method according to claim 12 , wherein the availability status of the peripheral device memory block identified in the update notification is indicated as not available for receiving the updated firmware image when the identified peripheral device memory block is designated as an active memory block storing firmware for current execution.

14. The method according to claim 12 , wherein, the responding to the update notification indicates an error when the identified peripheral device memory block is not available for receiving the updated firmware.

15. The method according to claim 14 , wherein, if the response to the update notification indicates the error, the electronic device transmits a secondary update notification that identifies a different peripheral device memory block for receiving the update.

16. The method according to claim 10 , further comprising: verifying the received updated firmware image by affirmatively comparing a pre-calculated checksum included with the updated firmware image against a checksum calculated by the peripheral device after receipt of the updated firmware image.

17. The method according to claim 16 , wherein the updated firmware image is received by the peripheral device in successive updated firmware image portions, each updated firmware image portion being received, verified, and successfully written to the identified memory block by the peripheral device successfully prior to processing of a subsequent updated firmware image portion.

Assignments (11)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 20, 2026
From: OTTER PRODUCTS, LLC
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 075611/0291 →
RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY AT REEL/FRAME NO. 59554/0930 Recorded May 20, 2026
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: OTTER PRODUCTS, LLC
Reel/Frame 075613/0276 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Mar 31, 2022
From: OTTER PRODUCTS, LLC
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 059554/0930 →
RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY AT REEL/FRAME NO. 51693/0592 Recorded Mar 30, 2022
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: OTTER PRODUCTS, LLC
Reel/Frame 059618/0308 →
RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY AT REEL/FRAME NO. 43681/0846 Recorded Jan 24, 2020
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: OTTER PRODUCTS, LLC
Reel/Frame 051693/0484 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 24, 2020
From: OTTER PRODUCTS, LLC
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 051693/0592 →
RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY AT REEL/FRAME NO. 33084/0596 Recorded Aug 28, 2017
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: OTTER PRODUCTS, LLC; TREEFROG DEVELOPMENTS, INC.
Reel/Frame 043700/0028 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 27, 2017
From: OTTER PRODUCTS, LLC
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 043681/0846 →
SECURITY INTEREST Recorded Jun 4, 2014
From: OTTER PRODUCTS, LLC; TREEFROG DEVELOPMENTS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 033084/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2014
From: 1 OAK TECHNOLOGIES, LLC
To: OTTER PRODUCTS, LLC
Reel/Frame 032787/0668 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2013
From: WOJCIK, JAMES JOHN; HANSEN, KIM J; STEPHANIK, JAMES
To: 1 OAK TECHNOLOGIES, LLC
Reel/Frame 030849/0378 →