Abstract:
An airborne or liquid particle sensor with integrated bootloader. A particle sensor incorporating at least one bootloader for programming or retrieval of program or data in local memory.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
       [0001]    This application claims priority to U.S. Provisional Application Ser. No. 61/786,616 filed on Mar. 15, 2013, titled PARTICLE COUNTER WITH INTEGRATED BOOTLOADER by inventor David Pariseau, the entire disclosure of which is hereby incorporated herein by reference. 
         [0002]    This application is related to and incorporates by reference U.S. Non-Provisional application Ser. No. ______, filed herewith on Mar. 15, 2014, titled PERSONAL AIR QUALITY MONITORING SYSTEM by inventors David Pariseau and Adam Giandomenico; U.S. Non-Provisional application Ser. No. ______, filed herewith on Mar. 15, 2014, titled MIXED-MODE PHOTO-AMPLIFIER FOR PARTICLE COUNTER by inventors David Pariseau and Ivan Horban; U.S. Non-Provisional application Ser. No. ______, filed herewith on Mar. 15, 2014, titled MULTIPLE PARTICLE SENSORS IN A PARTICLE COUNTER by inventor David Pariseau; U.S. Non-Provisional application Ser. No. ______, filed herewith on Mar. 15, 2014, titled INTELLIGENT MODULES IN A PARTICLE COUNTER by inventor David Pariseau; U.S. Non-Provisional application Ser. No. ______, filed herewith on Mar. 15, 2014, titled PULSE SCOPE FOR PARTICLE COUNTER by inventor David Pariseau; and U.S. Non-Provisional application Ser. No. ______, filed herewith on Mar. 15, 2014, titled PULSE DISCRIMINATOR FOR PARTICLE COUNTER by inventors David Pariseau and Ivan Horban. 
     
    
     BACKGROUND 
       [0003]    Bootloaders have been in use in some products for some time. Typically these products are high-volume devices with applications that change substantially over time (products like routers, media players, set-top boxes, etc.). Instrumentation on the other hand typically has made do with a largely static code-base that is updated only rarely, and if so, by a dedicated programming channel (JTAG, controller programming pins, etc.). Typically this also requires dedicated hardware (JTAG programmer, device programmer etc.), which typically restricts use of such an interface to factory or service center upgrades. 
         [0004]    Therefore, what is needed is a system and method for updating code-base of a device, including devices that uses instrumentation to advance in the art to improve updating of code-base of a device. 
       SUMMARY 
       [0005]    In accordance with various aspects and embodiments of the present invention, a system and method are disclosed for updating code-base of a device. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0006]    The foregoing summary as well as the following detailed description is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the invention, there is shown in the drawings exemplary constructions of the invention; however, the invention is not limited to the specific various aspects, embodiments, methods and instrumentalities disclosed in the drawings. 
           [0007]      FIG. 1  shows a device in communication with a second device using an interface in accordance with the various aspects of the present invention. 
           [0008]      FIG. 2  shows a device in communication with a second device in accordance with the various aspects of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0009]    It is noted that, as used in this description, the singular forms “a,” “an” and “the” include plural referents unless the context clearly dictates otherwise. Reference throughout this specification to “one aspect,” “another aspect,” “at least one aspect,” “various aspects,” “one embodiment,” “an embodiment,” “certain embodiments,” or similar language means that a particular aspect, feature, structure, or characteristic described in connection with the embodiment or embodiments is included in at least one aspect or embodiment of the present invention. Thus, appearances of the phrases “in accordance with one aspect,” “in accordance with various aspects,” “in accordance another aspect,” “one embodiment,” “in at least one embodiment,” “in an embodiment,” “in certain embodiments,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment. 
         [0010]    In accordance with the various aspects of the present invention, a device includes a computing device. As referred to herein, the devices may be part of a system or the system. It may be implemented to include a central processing unit (e.g., a processor), memory, input devices (e.g., keyboard and pointing devices), output devices (e.g., display devices), and storage device (e.g., disk drives). The memory and storage device are computer-readable media that may contain instructions or code that, when executed by the processor or the central processing unit, cause the device to perform certain tasks. In addition, data structures and message structures may be stored or transmitted via a data transmission medium, such as a signal on a communications link. Various communications channels may be used (e.g., the Internet, a local area network (LAN), a wide area network (WAN), or a point-to-point dial-up connection, or any other wireless channel or protocol) to create a link. 
         [0011]    In accordance with the various aspects of the present invention, the device or system may be use various computing systems or devices including personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor based systems, programmable consumer electronics, network personal computers (PCs), minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like. In accordance with the various aspects of the present invention, the device or system may also provide its services to various computing systems such as personal computers, cell phones, personal digital assistants, consumer electronics, home automation devices, and so on. 
         [0012]    In accordance with the various aspects of the present invention, the device or system may be described in the general context of computer-executable instructions, such as program modules or code, which is executed by one or more computers or devices. Generally, program modules include routines, programs, objects, components, data structures, and so on that perform particular tasks or implement particular data types. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments. For example, a user interface may be implemented on a server separate from a device or computer system that generates the data or information or collects the same through a communication channel. 
         [0013]    There is an opportunity to make use of existing communications channels to provide a bootloader interface in instruments where this does not currently occur. More than simply adding a bootloader to a product that currently doesn&#39;t support one, the intent is to use this interface to leverage a host of services and provide a different business model for the sale, service and support of these instruments. 
         [0014]    A bootloader provides the means of updating the code-base within a device. The bootloader shares an existing communication channel to provide this functionality and implements this functionality as part of the existing communications protocol or via some different or custom protocol. For example, one such bootloader is the asynchronous serial bootloader for a single microcontroller. 
         [0015]    Referring now to  FIG. 1 , a device  100  includes a microcontroller  101  that includes an interfaces  107  to an external device  110  via a microcontroller  101 &#39;s UART  105  and a level shifter  106  to provide an RS-232C type interface  107 . In accordance with one aspect of the present invention, the interface  107  is used to collect data from the device  100  to log, display or analyze remotely, perhaps on a personal computer. In accordance with another aspect of the present invention, the interface  107  is used to update the non-volatile memory image in the device  100 . The non-volatile memory includes bootloader image or code  102 , program image  103 , and non-volatile data  104 . Bootloader code  102  resides in program memory is invoked by sending a particular command over interface  107 , or sending a command at a particular time when the bootloader is active (for example immediately after power is cycled on the device  100 , or when a recessed button is pressed, or the like). 
         [0016]    After the bootloader code  102  is activated, the external device  110  sends at least one of the new program image  103 , or non-volatile data  104 , which might comprise operating parameters, tables, etc., to the device  100 . In accordance with various aspects of the present invention, the bootloader allows writing of at least one program image. This allows the device  100 &#39;s internal firmware to be updated without accessing the device  100 &#39;s internals or providing a dedicated external programming interface. In accordance with at least one aspect of the present invention, external interface  107  is a network cable connected to a router or a wireless communication device (not shown) that is in communication with an external device, which could reside anywhere in the world and linked over a broadband network to the device  100  through the router. 
         [0017]    In accordance with some aspects of the present and certain embodiments,  FIG. 2  shows a particle counter  200  (also referred to as “particle counter system”) that includes at least one particle sensor, two microcontrollers  210  and  220 , two external non-volatile memories  219  and  229 , and at least one external communication interface  241 . The particle counter  200  interfaces to an external device  240  over the interface  241 . During typical operation the interface  241  is used to retrieve logged data from the particle counter  200  to display, log or analyze at, for example, the external device  240 . In accordance with one aspect of the present invention, the interface  241  is a wireless connection (not shown). In accordance with a further aspect of the present invention, the interface  241  is a wired connection, such as a USB. 
         [0018]    In accordance with one aspect, the interface  241  is a link that is also used to read and/or write to the microcontroller non-volatile memories  212 ,  213 ,  222 ,  223  and/or the external non-volatile memories  218  and  228 . In order to do so bootloader mode would be initiated on the particle counter  200 . For example, a special command (or command sequence) is sent over the USB interface  241  to the microcontroller  210 . On receiving this command, or these commands, the microcontroller  210  implements the USB interface  241 . The microcontroller  210  alerts the microcontroller  220 , to which it is communicatively coupled to, over an internal link  230  as to the request for a bootload session. Accordingly, both microcontrollers  210  and  220  enter bootload mode. 
         [0019]    In this mode the microcontroller  210 , implementing the interface  241  receives commands from the device  240  requesting read/write operations to the various non-volatile memory areas  212 ,  213 ,  218 ,  222 ,  223 , and  228 . The microcontroller  210  directly implements any such operations to its internal memory areas  212  and  213  or to its external memory device  218  and responds with status and/or data over the interface  241 . The microcontroller  210  passes any requests for access to the memory areas for the microcontroller  220  over the internal link  230 . That microcontroller  220  implements access to these areas and responds over the internal link  230  with the status and/or data for such accesses. The microcontroller  210  relays any such responses and/or data over the external link  241 . Here, the external device  240  reads/writes the various non-volatile memory areas within the particle counter  200 . 
         [0020]    In accordance with other aspects and embodiments, there are more or fewer microcontrollers in the particle counter  200  and some or all of the application use soft-processors on programmable logic, or via custom ASICs. 
         [0021]    In certain embodiments, the bootloader is implemented such that the data communicated (e.g., read/written) to the various memory areas is encrypted, to protect valuable intellectual property from the original equipment manufacturer. 
         [0022]    After the above a bootloader has been implemented in a particle counting instrument, such as to allow non-volatile memory areas to be read and/or written from an external interface, a variety of business processes are enabled. These include but are not limited to the following: 
         [0023]    Sale of various instrument firmware options. In accordance with various aspects, a base unit can be sold to a client with firmware options available for purchase at some later date. The client can purchase these when they need the functionality offered by a particular option, and the update can be downloaded to the unit or device via a remote interface (online image), so that the unit or device can be upgraded without having to be shipped to a service center. This allows a client to buy just the instrument they need today with the confidence that this unit can grow as they require over time, without investing in possible future options at the time of purchase. 
         [0024]    Firmware subscription service. In accordance with various aspects, in addition to selling a base instrument a company can now sell a subscription service for that instrument (like is currently done for many engineering software products). The client would purchase an annual subscription for the product, which would entitle them to all upgrades that were created for their product over that period. The unit might download such updates (on request or automatically) when connected to a local computer. In accordance with various aspects and embodiments, the unit or device has wireless interfaces installed and update automatically or in accordance with defined rules for updating. 
         [0025]    Remote diagnostics and troubleshooting. In accordance with some aspects, diagnostics or troubleshooting of complex errors or issues in the field is complicated given the firmware image installed in an instrument or device. The ability for service personnel to be able to upload the current image in the instrument, download diagnostic firmware to the instrument to run a more in-depth or targeted analysis of the subsystem in question, and then replace the original image as needed, might provide for a more timely and cost-effective resolution of a customer issue that might not result in the unit being returned to the factory or a service center for resolution. 
         [0026]    Assisted calibration and service. In accordance with some aspects, an instrument or a device needs calibration. In many cases service centers that offer calibration services do so without the involvement of the original equipment manufacturer (OEM), which can reduce the quality or repeatability of the calibration. It also means that the OEM cannot analyze the instrument in question for failures and issues within it, to date. Having an online bootloader allows a service center to download, from the OEM for each instrument, the calibration image. This would allow the OEM to do the following: 
         [0027]    retrieve statistical data from every instrument on each calibration cycle; 
         [0028]    this would allow issues to be identified and flagged for this instrument; 
         [0029]    this would allow issues for a product family to be identified or flagged; 
         [0030]    this would provide valuable data for future products; 
         [0031]    have more control over the quality and consistency of calibration operations; and 
         [0032]    allow end-users (with suitable equipment) to calibrate their instruments themselves. 
         [0033]    Application customization. In accordance with various aspects, an interface that allows access to an instrument&#39;s memories allows for user-customization. Sophisticated user-interfaces might be customized to include facility maps, complex recipes, etc. that could be created on a personal computer or imported from pre-generated drawings and then downloaded to on-board memories. In accordance with various aspects, if the on-board instrument programming is done as an API, then the user could redesign the look-and-feel of the system and provide for a customized and highly tailored user interface designed to suit their particular needs. 
         [0034]    While various embodiments have been described above, it should be understood that they have been presented by way of example only, not limitation, and various changes in form and details may be made. Any portion of the device, instrument, apparatus and/or methods described herein may be combined in any combination, except mutually exclusive combinations. The aspects and embodiments described herein can include various combinations and/or sub-combinations of the functions, components and/or features of the different embodiments described. For example, multiple, distributed processing systems can be configured to operate in parallel. 
         [0035]    Although the present invention has been described in detail with reference to certain embodiments, one skilled in the art will appreciate that the present invention can be practiced by other than the described embodiments, which have been presented for purposes of illustration and not of limitation. Therefore, the scope of the appended claims should not be limited to the description of the embodiments contained herein. 
         [0036]    It will be apparent that various aspects of the present invention as related to certain embodiments may be implemented in software, hardware, application logic, or a combination of software, hardware, and application logic. The software, application logic and/or hardware may reside on a server, an electronic device, or be a service. If desired, part of the software, application logic and/or hardware may reside on an electronic device and part of the software, application logic and/or hardware may reside on a remote location, such as server. 
         [0037]    In accordance with the aspects disclosed in the teachings of the present invention and certain embodiments, a program or code may be noted as running on a device, an instrument, a system, or a computing device, all of which are an article of manufacture. Additional examples of an article of manufacture include: a server, a mainframe computer, a mobile telephone, a multimedia-enabled smartphone, a tablet computer, a personal digital assistant, a personal computer, a laptop, or other special purpose computer each having one or more processors (e.g., a Central Processing Unit, a Graphical Processing Unit, or a microprocessor) that is configured to execute a computer readable program code (e.g., an algorithm, hardware, firmware, and/or software) to receive data, transmit data, store data, or perform tasks and methods. Furthermore, an article of manufacture (e.g., device) includes a non-transitory computer readable medium having a series of instructions, such as computer readable program steps or code, which is encoded therein. In certain aspects and embodiments, the non-transitory computer readable medium includes one or more data repositories, memory, and storage, including non-volatile memory. The non-transitory computer readable medium includes corresponding computer readable program or code and may include one or more data repositories. Processors access the computer readable program code encoded on the corresponding non-transitory computer readable mediums and execute one or more corresponding instructions. Other hardware and software components and structures are also contemplated. 
         [0038]    Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Although any methods and materials similar or equivalent to those described herein can also be used in the practice of the present invention, representative illustrative methods and materials are described herein. 
         [0039]    All publications and patents cited in this specification are herein incorporated by reference as if each individual publication or patent were specifically and individually indicated to be incorporated by reference and are incorporated herein by reference to disclose and describe the methods and/or system in connection with which the publications are cited. The citation of any publication is for its disclosure prior to the filing date and should not be construed as an admission that the present invention is not entitled to antedate such publication by virtue of prior invention. Further, the dates of publication provided may be different from the actual publication dates which may need to be independently confirmed. 
         [0040]    All statements herein reciting principles, aspects, and embodiments of the invention as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents and equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure. The scope of the present invention, therefore, is not intended to be limited to the exemplary embodiments shown and described herein. Rather, the scope and spirit of present invention is embodied by the appended claims.