Abstract: “OPTIMIZING INSTALLATION OF A FIRMWARE UPDATE IN AN ELECTRONIC CONTROL UNIT” The present invention discloses the technique of optimizing installation of a firmware update in an electronic control unit (ECU). When a firmware update is received, a plurality of frequently occurring code patterns are identified and compressed. The compressed identified frequently occurring code patterns are stored in a string dictionary. A code file is created that comprises a plurality of words, wherein each word corresponds either to an index value of compressed frequently occurring code patterns in the string dictionary or an index value of an uncompressed code pattern, and allocating a memory address to each of the plurality of words. The firmware update is optimized by creating a bit map comprising a plurality of bits, wherein each bit in the bit map corresponds to a memory address of the word in the code file; and wherein the compressed code pattern in the string dictionary is only processed when a value of the bit in the bit map is ‘1’. [Fig. 3]
FORM 2
THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENTS RULES, 2003
COMPLETE SPECIFICATION (See section 10, rule 13)
“OPTIMIZING INSTALLATION OF A
FIRMWARE UPDATE IN AN ELECTRONIC
CONTROL UNIT”
MINDA CORPORATION LIMITED, of E-5/2, Chakan Industrial Area, Phase-III, M.I.D.C., Nanekarwadi,Tal: Khed, Dist.Pune-410 501, India
The following specification particularly describes the invention.
“OPTIMIZING INSTALLATION OF A FIRMWARE UPDATE IN AN ELECTRONIC CONTROL UNIT”
FIELD OF THE INVENTION
[0001] This invention relates generally to Firmware Over the Air (FOTA)
updates through Bluetooth Low Energy (BLE) enabled electronic control unit
(ECU).
BACKGROUND
[0002] The information in this section merely provide background information
related to the present disclosure and may not constitute prior art(s).
[0003] Modern intelligent vehicles have ECU containing firmware that enables various functions in the units. New firmware versions are constantly developed to remove bugs and improve functionality. Automobile manufacturers have traditionally performed firmware updates over cables but in near future they are aiming at conducting firmware updates over the air, which would allow faster updates and improved safety for the driver. This is because, without these over the air updates, vehicles are recalled at service centres even for small updates in firmware that usually have high service cost. Moreover, there is a high risk of manual flashing firmware at service centre.
[0004] With the introduction of FOTA updates, the automotive industry is shifting towards vehicle remote updates and vehicle knowledge management. Original Equipment Manufacturers (OEMs) incorporating the ability to update the vehicle ECU remotely over the air and at any phase of the vehicle's life cycle. This helps in preventing OEMs from changing production schedules because of software unavailability.
[0005] While FOTA is being considered for firmware update in ECU of the vehicles, most of such updates consumes considerable amount of time. This is because the size of files being flashed in such updates are relatively large.
Another concern is the files being flashed in such update needs to be more secured and authenticated to ensure integrity of the FOTA updates.
[0006] Therefore, there is need of the art that overcomes above mentioned problems and provide a technique for fast and more secured updates for the ECU of the vehicles with improved safety on vehicle owner’s part.
SUMMARY OF THE INVENTION
[0007] One or more shortcomings of the prior art are overcome, and additional advantages are provided by the present disclosure. Additional features and advantages are realized through the techniques of the present disclosure. Other embodiments and aspects of the disclosure are described in detail herein and are considered a part of the disclosure.
[0008] It is to be understood that the aspects and embodiments of the disclosure described above may be used in any combination with each other. Several of the aspects and embodiments may be combined together to form a further embodiment of the disclosure.
[0009] In an aspect, the present invention provides a method of optimizing installation of a firmware update in an electronic control unit (ECU). The method comprising: receiving the firmware update including a plurality of code patterns; identifying and compressing a plurality of frequently occurring code patterns from the plurality of code patterns; creating a string dictionary, the string dictionary comprising only compressed identified frequently occurring code patterns; creating a code file comprising a plurality of words, wherein each word corresponds either to an index value of compressed frequently occurring code patterns in the string dictionary or an index value of an uncompressed code pattern, and allocating a memory address to each of the plurality of words; wherein the installation of the firmware update is optimized by creating a bit map comprising a plurality of bits, wherein each bit in the bit map corresponds to a memory address of the word in the
code file; and wherein the compressed code pattern in the string dictionary is only processed when a value of the bit in the bit map is ‘1’.
[00010] In yet another aspect, the present invention provides a method, wherein compressing the plurality of frequently occurring code patterns comprises: allocating a predefined number of bits to each of the identified frequently occurring code patterns; and assigning an index value to each of the plurality of compressed frequently occurring code patterns.
[00011] In yet another aspect, the present invention provides a method, wherein processing the compressed code pattern in the string dictionary comprises decompressing the frequently occurring code pattern.
[00012] In yet another aspect, the present invention provides a method, wherein a bit value ‘0’ in the bit map indicates an index of an uncompressed string which is copied for installation as it is without being processed.
[00013] In yet another aspect, the present invention provides a method, wherein the string dictionary is shared with at least one connected network ECUs.
[00014] In yet another aspect, the present invention provides a method, which further comprises contacting a cloud server via a network device for confirming that a correct firmware update has been installed.
[00015] In an aspect, the present invention provides an apparatus for optimizing installation of a firmware update in an electronic control unit (ECU). The apparatus comprises: a memory; and a processor coupled to the memory, the processor is configured to: receive the firmware update including a plurality of code patterns; identify and compress a plurality of frequently occurring code patterns from the plurality of code patterns; create a string dictionary, the string dictionary comprising only compressed identified frequently occurring code patterns; create a code file
comprising a plurality of words, wherein each word corresponds either to an index value of compressed frequently occurring code patterns in the string dictionary or an index value of an uncompressed code pattern, and allocating a memory address to each of the plurality of words; wherein the installation of the firmware update is optimized by creating a bit map comprising a plurality of bits, wherein each bit in the bit map corresponds to a memory address of the word in the code file; and wherein the compressed code pattern in the string dictionary is only processed when a value of the bit in the bit map is ‘1’.
[00016] In another aspect, the present invention provides an apparatus, wherein the processor is configured to compress the plurality of frequently occurring code patterns by: allocating a predefined number of bits to each of the identified frequently occurring code patterns; and assigning an index value to each of the plurality of compressed frequently occurring code patterns.
[00017] In yet another aspect, the present invention provides an apparatus, wherein the processor is configured to process the compressed code pattern in the string dictionary by decompressing the frequently occurring code pattern.
[00018] In yet another aspect, the present invention provides an apparatus, wherein a bit value ‘0’ in the bit map indicates an index of an uncompressed string which is copied for installation as it is without being processed.
[00019] In yet another aspect, the present invention provides an apparatus, wherein the string dictionary is shared with at least one connected network ECUs. [00020] In another aspect, the present invention provides an apparatus, wherein the processor is further configured to contact a cloud server via a network device for confirming that a correct firmware update has been installed.
BREIF DESCRIPTION OF DRAWINGS
[00021] Further aspects and advantages of the present invention will be readily understood from the following detailed description with reference to the accompanying drawings. Reference numerals have been used to refer to identical or similar functionally similar elements. The figures together with a detailed description below, are incorporated in and form part of the specification, and serve to further illustrate the embodiments and explain various principles and advantages, in accordance with the present invention wherein:
[00022] Fig. 1 illustrates a system for FOTA updates through BLE enabled smart ECU according to an aspect of the present invention.
[00023] Fig. 2a illustrates a block diagram of the BLE enabled smart ECU system for vehicles through which FOTA updates can be flashed to a network ECU of the vehicle according to an aspect of the present invention.
[00024] Fig. 2b illustrates a block diagram of the BLE enabled smart ECU system for vehicles through which vehicle’s data can be uploaded to a cloud server according to an aspect of the present invention.
[00025] Fig. 3 illustrates a flow chart illustrating a process flow for optimizing installation of a firmware update in an electronic control unit (ECU) according to an aspect of the present invention.
[00026] Fig. 4 illustrates a block diagram of the BLE enabled smart ECU for vehicles according to an aspect of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
[00027] Referring now to the drawings, there is shown an illustrative embodiment of the invention “Optimizing installation of a firmware update in an electronic control unit”. It should be understood that the invention is susceptible to various modifications and alternative forms; specific embodiment thereof has been shown by way of example in the drawings and will be described in detail below. It will be
appreciated as the description proceeds that the invention may be realized in different embodiments.
[00028] The terms “comprises”, “comprising”, or any other variations thereof, are intended to cover a non-exclusive inclusion, such that a setup, device that comprises a list of components does not include only those components but may include other components not expressly listed or inherent to such setup or device. In other words, one or more elements in a system or apparatus proceeded by “comprises… a” does not, without more constraints, preclude the existence of other elements or additional elements in the system or apparatus or device. It could be noted with respect to the present disclosure that the terms like “a BLE enabled smart ECU”, “smart ECU”, “the ECU” are interchangeably used throughout the description and refer to same ECU. Terms like “server”, “cloud” are interchangeably used throughout the description and refer to same server as described herein. Similarly, the terms like “mobile device”, “smart phone”, “a network device” are interchangeably used throughout the description and refer to the same mobile device as described herein.
Advantageous effects of the present disclosure:
[00029] The BLE enabled smart ECU according to the present disclosure allows a vehicle owner to flash firmware or End of line (EOL) parameters through FOTA updates without recalling the vehicles to service center. The present disclosure reduces/optimizes the total installation time of updates since when these files are received from the Original Equipment Manufacturer (OEM) till the time these updates are installed on the network ECU. The present disclosure offers a secure FOTA update mechanism that encompasses embedded device security, communication channel security, authenticity of firmware, integrity of downloaded (FOTA) updates. Additionally, using the present disclosure, the network ECU of the vehicle can be updated safely anytime, anywhere. Not only the present invention saves the time at production line but also lowers the time to market for OEMs. For example, the OEM achieves reduced time to market by updating firmware while the vehicle is still on the production line. The present invention achieves these advantage(s) in a manner as described below.
[00030] Fig. 1 illustrates a system 100 for FOTA updates through BLE enabled smart ECU according to an aspect of the present invention. Broadly, the system comprises a cloud server 101, a communication/network device, e.g. a Bluetooth enabled mobile device 102, vehicle(s) 104 with BLE enabled smart ECU 103. Each of these components are interconnected with each other via suitable communication medium/means to achieve fast and secured FOTA updates at the network ECU of the vehicle.
[00031] Fig. 2a illustrates a block diagram of the BLE enabled smart ECU system 200 for vehicles through which FOTA updates can be flashed to a network ECU of the vehicle. The system 200 comprises an OEM unit 201, a mobile device 202, a smart ECU 203 interfaced with a controller/processor (not shown in the fig.), a vehicle network ECU 204. Each of these entities/components are interconnected with each other via suitable available means. The BLE enabled Smart ECU 203 will have the capability of data compression / encryption and decompression / decryption while uploading necessary information of the vehicle to a cloud/server and to flash updates from the OEM’s server to the vehicle’s network ECUs.
In operation, whenever there is a new firmware update available at the OEM’s server 201 for the network ECU 204, it is made accessible for the network ECU 203 through the user’s mobile device 202. A user of the mobile device 202 receives a pop-up message at the mobile device 202 to download the available firmware update. Upon confirmation by the user, the mobile phone starts downloading an encrypted/ compressed Over the Air (OTA) image file (s) as firmware update from OEM’s server. The smart ECU 203 receives this OTA file from the mobile device through BLE. The OTA file received at the ECU has relatively large size which causes the Smart ECU to take substantial installation time. According to an exemplary embodiment, the smart ECU further compresses/encrypts the received OTA file to reduce its size. This is performed by identifying a plurality of frequently occurring code patterns in the received OTA file and then compressing such patterns by allocating each of these a predefined number of bits (for example, 16
bits in a memory location) to each of the identified frequently occurring code patterns. The predefined number of bit allocated to such code patterns may vary depending on the type of received OTA file. Further, each of compressed frequently occurring code patterns is assigned an index number and stored in a string dictionary. This string dictionary is also maintained at network ECU(s) as well.
[00032] This compression at smart ECU 203 provides additional authentication of received OTA file that adds authenticity and integrity of the downloaded updates via secured and fast handshaking. Smart ECU further creates a code file that comprises a plurality of words. Each such word corresponds either to an index value of compressed frequently occurring code patterns in the string dictionary or an index value of an uncompressed code pattern. Each word is also assigned/ allocated a memory address to each of the plurality of words. To save installation time, a bit map is created that comprises a plurality of bits. Each bit in the bit map corresponds to a memory address of the word in the code file. In an exemplary embodiment of the present invention, a bit value may correspond either to ‘1’ or ‘0’. If the bit value is ‘1’, it indicates a word of the code file that represents an index of a compressed code pattern in the string dictionary. Thus, the string dictionary is accessed to process the compressed code. In case if the bit value is ‘0’, it indicates a word of the code file that represents an index of an uncompressed code pattern. Since, it is an uncompressed code pattern, the string dictionary need not to be accessed. Instead, this uncompressed code pattern is accessed, copied as it is without any processing, for installation.
[00033] The Smart ECU then install these updates to the network ECU of the vehicle through CAN bus. Once the flashing at the network ECU is successful, the user can receive a message at his/her mobile device indicating that flashing is successful.
[00034] Fig. 2b illustrates a block diagram of the BLE enabled smart ECU system for vehicles through which vehicle’s data can be uploaded to the cloud/server 205 for diagnostic purposes. After installation, the controller/processor of the smart
ECU 203 reads raw-data files from the vehicle network ECU 201 through Controller Area Network (CAN). For example, the raw data files may be engine parameters that the user can review, monitor and can upload the same at cloud. These raw data files are received at the smart ECU are encrypted/ compressed and transmitted to the mobile device 203 via BLE. The user receives a pop-up message at the mobile device 203 to initiate the upload. Upon confirmation by the user, the uploading process is initiated at the server/cloud 204. The user receives a message at the mobile device 203 once the upload is successful. By this process, the smart ECU 203 ensures with the cloud server 204 that correct firmware update has been installed at the vehicle.
[00035] If the user finds any bugs in the network ECU 204, the user can register the complaint and report the issue to the OEM. OEM will fix the bug and update the OTA image file into their server, or they can email OTA file to user or give update popup message on mobile device. The download/flashing may be then performed according to the process described in Fig. 1.
[00036] The compression/decompression and/or encryption/decryption process performed by the smart ECU is discussed below.
Compression technique:
[00037] As discussed in earlier figures, once the user confirms installation of received compressed OTA file for update, the ECU 203 performs further compression. This compression provides additional authentication of received OTA file that adds authenticity and integrity of the downloaded updates via secured and fast handshaking. According to the compression technique/algorithm performed at the smart ECU, a data dictionary is be maintained at both the end of sender ECU 203 and receiver or network ECU 204. Those strings which are frequently used will be stored in the data dictionary like macros, subroutine calls, delay routine, code patterns, filters etc. which will be represented as a string stored at predefined number-bit index in memory location. In an exemplary embodiment, this predefined number of bits is 16. However, the same should not be construed as the limiting
example and may vary depending on the type of OTA update file received. Receiver ECU will receive string which will indicate as compressed string or a compressed frequently code patterns.
Example:
Index [16 Bit)
Index _O String _1
Index _ 1 String _2
Index _ n String _ m
Table 1: String dictionary
Code file:
In one of the exemplary aspects of the present invention, a code file is created that includes a plurality of ‘words’. Each word is allocated a memory location and represents an index of either a compressed frequently occurring code pattern or uncompressed code pattern or raw data.
Example:
Data
1 Word 1
2 Word 2
3 Word 3
n Word n
Table 2: Code file
Bit map for string decompression:
[00038] Every bit corresponds a word location in sequential manner. Bit ‘1’
indicates the corresponding word, which is a string index and it needs to be
decompressed as per string dictionary entry. Bit ‘0’ indicates the uncompressed word, which is also a string index and it needs to be copied as it is without any processing, for installation.
Example:
[00039] Thus, in order to save the installation time, only compressed frequently occurring code patterns in the string dictionary are processed, while uncompressed data do not require such processing and can be readily installed by copying the same. In the above manner, the BLE enabled smart ECU performs the required process of compression/decompression in order to achieve desired of the present invention.
[00040] Accordingly, from the present disclosure, it is worth noted that the BLE enabled smart ECU system allows a vehicle owner to flash firmware or End of line (EOL) parameters through FOTA updates without recalling the vehicles to service center. The BLE enabled smart ECU reduces a received OTA file size, thereby reducing the amount of time it takes for installing/flashing updates.
[00041] Fig. 3 illustrates a flow chart illustrating a process flow for optimizing installation of a firmware update in an electronic control unit (ECU) according to an aspect of the present invention.
[00042] In an exemplary embodiment, at step 301 when a new OTA update file is received at the mobile device of the user configured with Smart ECU, a decision is made by the user whether he wishes to install the updates or not. Upon confirmation by the user, the mobile phone starts downloading an encrypted/ compressed OTA image file (s) as firmware update from OEM’s server. The smart
ECU 203 receives this OTA file from the mobile device through BLE. The OTA file received at the ECU has relatively large size which causes the Smart ECU to take substantial installation time. According to an exemplary embodiment, the smart ECU further compresses/encrypts the received OTA file to reduce its size. This is performed by step 302 wherein a plurality of frequently occurring code patterns in the received OTA file are identified. At step 303, these identified code patterns are then compressed by allocating each of these predefined number of bits (for example, 16 bits in a memory location) to each of the identified frequently occurring code patterns. The predefined number of bit allocated to such code patterns may vary depending on the type of received OTA file. Further, a string dictionary is created wherein each of compressed frequently occurring code patterns is stored and assigned an index number at step 304. This string dictionary is also maintained at network ECU(s) as well.
[00043] At step 305, Smart ECU further creates a code file that comprises a plurality of words. Each such word corresponds either to an index value of compressed frequently occurring code patterns in the string dictionary or an index value of an uncompressed code pattern. Each word is also assigned/ allocated a memory address to each of the plurality of words. At step 306, to save installation time, a bit map is created that comprises a plurality of bits. Each bit in the bit map corresponds to a memory address of the word in the code file. In an exemplary embodiment of the present invention, a bit value may correspond either to ‘1’ or ‘0’.
[00044] A determination is made at step 307 whether the bit value is ‘1’. If the bit value is ‘1’, it indicates a word of the code file that represents an index of a compressed code pattern in the string dictionary. Thus, the string dictionary is accessed to process the compressed code. In case if the bit value is ‘0’, it indicates a word of the code file that represents an index of an uncompressed code pattern. Since, it is an uncompressed code pattern, the string dictionary need not to be accessed. Instead, this uncompressed code pattern is accessed, copied as it is without any processing, for installation.
[00045] Fig. 4 illustrates a block diagram of the BLE enabled smart ECU for vehicles according to an aspect of the present invention.
[00046] In one of the exemplary embodiments, the control unit 400 comprises a transmitter and receiver 401, a processor or microcontroller 402, a memory 403 and a Bluetooth low energy unit 404. As an example, the data may be stored in a memory 403 configured for processing of the smart ECU. In one embodiment, the data may include all the data related to processing of the smart ECU 400, data relating to FOTA updates and already installed updates of the ECU/Network ECU. In some embodiments, the data may be stored in the memory 403 in form of various data structures.
[00047] As used herein, the processor or microcontroller 402 may refer to an application specific integrated circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group), a controller that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality. In an exemplary embodiment, the smart ECU 400 performs the functionality as described herein with respect to the present invention.
[00048] In operation, the smart ECU 400 performs a method of optimizing installation of a firmware update. The smart ECU 400 receives the firmware update from the OEM’s server via a mobile device. Such updates are stored in the memory for further processing. In particular, the smart ECU process each string of the firmware update taking bitmap as a guide for processing the received firmware update in accordance with the description as provided in Figs. 1-3.
[00049] The foregoing description of the various embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present
invention is not intended to be limited to the embodiments shown herein, and instead the claims should be accorded the widest scope consistent with the principles and novel features disclosed herein.
[00050] While the invention has been described with reference to a preferred embodiment, it is apparent that variations and modifications will occur without departing the spirit and scope of the invention. It is therefore contemplated that the present disclosure covers any and all modifications, variations or equivalents that fall within the scope of the basic underlying principles disclosed above.
We claim:
1. A method of optimizing installation of a firmware update in an electronic
control unit (ECU), comprising:
receiving the firmware update including a plurality of code patterns;
identifying and compressing a plurality of frequently occurring code patterns from the plurality of code patterns;
creating a string dictionary, the string dictionary comprising only compressed identified frequently occurring code patterns;
creating a code file comprising a plurality of words, wherein each word corresponds either to an index value of compressed frequently occurring code patterns in the string dictionary or an index value of an uncompressed code pattern, and allocating a memory address to each of the plurality of words;
wherein the installation of the firmware update is optimized by creating a bit map comprising a plurality of bits,
wherein each bit in the bit map corresponds to a memory address of the word in the code file; and
wherein the compressed code pattern in the string dictionary is processed only when a value of the bit in the bit map is ‘1’.
2. The method of optimizing installation of a firmware update as claimed in
claim 1, wherein compressing the plurality of frequently occurring code patterns
comprises:
allocating a predefined number of bits to each of the identified frequently occurring code patterns; and
assigning an index value to each of the plurality of compressed frequently occurring code patterns.
3. The method of optimizing installation of a firmware update as claimed in
claim 1, wherein processing the compressed code pattern in the string dictionary
comprises decompressing the frequently occurring code pattern.
4. The method of optimizing installation of a firmware update as claimed in claim 1, wherein a bit value ‘0’ in the bit map indicates an index of an uncompressed string which is copied for installation as it is without being processed.
5. The method of optimizing installation of a firmware update as claimed in claim 1, wherein the string dictionary is shared with at least one connected network ECUs.
6. The method of optimizing installation of a firmware update, further comprising contacting a cloud server via a network device for confirming that a correct firmware update has been installed.
7. An apparatus for optimizing installation of a firmware update in an electronic control unit (ECU), comprises:
a memory; and
a processor coupled to the memory, the processor is configured to:
receive the firmware update including a plurality of code patterns;
identify and compress a plurality of frequently occurring code patterns from the plurality of code patterns;
create a string dictionary, the string dictionary comprising only compressed identified frequently occurring code patterns;
create a code file comprising a plurality of words, wherein each word corresponds either to an index value of compressed frequently occurring code patterns in the string dictionary or an index value of an uncompressed code pattern, and allocating a memory address to each of the plurality of words;
wherein the installation of the firmware update is optimized by creating a bit map comprising a plurality of bits,
wherein each bit in the bit map corresponds to a memory address of the word in the code file; and
wherein the compressed code pattern in the string dictionary is processed only when a value of the bit in the bit map is ‘1’.
8. The apparatus for optimizing installation of a firmware update as claimed in
claim 7, wherein the processor is configured to compress the plurality of frequently
occurring code patterns by:
allocating a predefined number of bits to each of the identified frequently occurring code patterns; and
assigning an index value to each of the plurality of compressed frequently occurring code patterns.
9. The apparatus for optimizing installation of a firmware update as claimed in claim 7, wherein the processor is configured to process the compressed code pattern in the string dictionary by decompressing the frequently occurring code pattern.
10. The apparatus for optimizing installation of a firmware update as claimed in claim 7, wherein a bit value ‘0’ in the bit map indicates an index of an uncompressed string which is copied for installation as it is without being processed.
11. The apparatus for optimizing installation of a firmware update as claimed in claim 7, wherein the string dictionary is shared with at least one connected network ECUs.
12. The apparatus for optimizing installation of a firmware update as claimed in claim 7, wherein the processor is further configured to contact a cloud server via a network device for confirming that a correct firmware update has been installed.
| # | Name | Date |
|---|---|---|
| 1 | 201921004139-Response to office action [05-05-2022(online)].pdf | 2022-05-05 |
| 1 | 201921004139-STATEMENT OF UNDERTAKING (FORM 3) [01-02-2019(online)].pdf | 2019-02-01 |
| 2 | 201921004139-CLAIMS [04-02-2022(online)].pdf | 2022-02-04 |
| 2 | 201921004139-PROVISIONAL SPECIFICATION [01-02-2019(online)].pdf | 2019-02-01 |
| 3 | 201921004139-POWER OF AUTHORITY [01-02-2019(online)].pdf | 2019-02-01 |
| 3 | 201921004139-COMPLETE SPECIFICATION [04-02-2022(online)].pdf | 2022-02-04 |
| 4 | 201921004139-FORM 1 [01-02-2019(online)].pdf | 2019-02-01 |
| 4 | 201921004139-FER_SER_REPLY [04-02-2022(online)].pdf | 2022-02-04 |
| 5 | 201921004139-OTHERS [04-02-2022(online)].pdf | 2022-02-04 |
| 5 | 201921004139-DRAWINGS [01-02-2019(online)].pdf | 2019-02-01 |
| 6 | 201921004139-PETITION UNDER RULE 137 [04-02-2022(online)].pdf | 2022-02-04 |
| 6 | 201921004139-DECLARATION OF INVENTORSHIP (FORM 5) [01-02-2019(online)].pdf | 2019-02-01 |
| 7 | 201921004139-FER.pdf | 2021-10-19 |
| 7 | 201921004139-DRAWING [29-01-2020(online)].pdf | 2020-01-29 |
| 8 | 201921004139-Proof of Right [27-02-2020(online)].pdf | 2020-02-27 |
| 8 | 201921004139-CORRESPONDENCE-OTHERS [29-01-2020(online)].pdf | 2020-01-29 |
| 9 | 201921004139-COMPLETE SPECIFICATION [29-01-2020(online)].pdf | 2020-01-29 |
| 9 | Abstract1.jpg | 2020-02-03 |
| 10 | 201921004139-FORM 18 [31-01-2020(online)].pdf | 2020-01-31 |
| 11 | 201921004139-COMPLETE SPECIFICATION [29-01-2020(online)].pdf | 2020-01-29 |
| 11 | Abstract1.jpg | 2020-02-03 |
| 12 | 201921004139-CORRESPONDENCE-OTHERS [29-01-2020(online)].pdf | 2020-01-29 |
| 12 | 201921004139-Proof of Right [27-02-2020(online)].pdf | 2020-02-27 |
| 13 | 201921004139-DRAWING [29-01-2020(online)].pdf | 2020-01-29 |
| 13 | 201921004139-FER.pdf | 2021-10-19 |
| 14 | 201921004139-DECLARATION OF INVENTORSHIP (FORM 5) [01-02-2019(online)].pdf | 2019-02-01 |
| 14 | 201921004139-PETITION UNDER RULE 137 [04-02-2022(online)].pdf | 2022-02-04 |
| 15 | 201921004139-DRAWINGS [01-02-2019(online)].pdf | 2019-02-01 |
| 15 | 201921004139-OTHERS [04-02-2022(online)].pdf | 2022-02-04 |
| 16 | 201921004139-FER_SER_REPLY [04-02-2022(online)].pdf | 2022-02-04 |
| 16 | 201921004139-FORM 1 [01-02-2019(online)].pdf | 2019-02-01 |
| 17 | 201921004139-COMPLETE SPECIFICATION [04-02-2022(online)].pdf | 2022-02-04 |
| 17 | 201921004139-POWER OF AUTHORITY [01-02-2019(online)].pdf | 2019-02-01 |
| 18 | 201921004139-CLAIMS [04-02-2022(online)].pdf | 2022-02-04 |
| 18 | 201921004139-PROVISIONAL SPECIFICATION [01-02-2019(online)].pdf | 2019-02-01 |
| 19 | 201921004139-STATEMENT OF UNDERTAKING (FORM 3) [01-02-2019(online)].pdf | 2019-02-01 |
| 19 | 201921004139-Response to office action [05-05-2022(online)].pdf | 2022-05-05 |
| 1 | 05821E_05-08-2021.pdf |