The present disclosure relates to a system and method of a clearing and updating a streaming media device, e.g., Amazon Fire® TV Stick.
Customer returns or those streaming media devices whose status is suspect or unknown can be refurbished and put back into the stream of commerce. In addition to inspection, renewal, and cleaning of such devices prior to repackaging and shipment, the memory of streaming media devices need to be cleared of any previous customer data and/or previously loaded applications. Also, the firmware needs to be updated to the latest version and the devices tested to make sure they boot properly after being updated.
Previously, user multiflash and boot check for streaming media devices was often performed using a third-party tool kit. This provided little control of the process and if issues or bugs would arise, operations would have to wait for the another party to provide updates and fixes. The tool kit and previous process is also slower as only one device can be flashed or tested at a time using two separate hardware systems, with each device taking about five minutes or more to process. Additionally, logging and traceability is not automated. Entry of individual device records and results are manually entered into a database. A simpler and elegant system and method that is automated to more efficiently process and test streaming media devices with less setup time and training is needed.
The exemplary embodiments disclosed herein are directed to solving the issues relating to one or more of the problems presented in the prior art, as well as providing additional features that will become readily apparent by reference to the following detailed description when taken in conjunction with the accompanying drawings. In accordance with various embodiments, exemplary systems, methods, devices and computer program products are disclosed herein. It is understood, however, that these embodiments are presented by way of example and not limitation, and it will be apparent to those of ordinary skill in the art who read the present disclosure that various modifications to the disclosed embodiments can be made while remaining within the scope of the present disclosure.
The disclosed system and method includes a custom testing application running on a computer system with a monitor attached. The devices to be tested are connected to micro USB cables that connect to the computer system or a USB hub connected to the computer system.
The disclosed system and method is an improvement over that currently available in that it allows from anywhere from 1-16 devices to be tested simultaneously at one operator station. This significantly increases the throughput of devices through User Mutliflash and Boot Check processes and decreases the number of stations and hardware necessary. The disclosed system and method creates detailed logs that allow for traceability and troubleshooting. User firmware that is installed on the devices is verified and validated prior to flashing the devices to prevent the wrong firmware from being flashed. Results are entered into a database automatically. Setup and training are easier than previously available test stations.
To overcome the problems described above, embodiments of the present disclosure include a system including a computer system including a user interface and a monitor; a storage medium readable by the computer system and storing an application to interface the computer system and a streaming media device; and a laser scanner to scan a bar code indicating identification data of the streaming media device.
The system can further include a USB hub configured to connect one to sixteen streaming media devices to the computer system.
In an aspect, the computer system is configured to flash firmware to and boot check the streaming media device.
In an aspect, the system automatically performs detecting, validating, flashing, boot checking, and recording data when clearing and updating the streaming media device.
In another embodiment, a method includes entering a serial number of a streaming media device into a computer system; connecting the streaming media device to the computer system; flashing firmware and boot checking the streaming media device; and automatically recording a result of the flashing firmware and the boot checking into a database of the computer system.
In an aspect, the entering of the serial number of the streaming media device includes scanning a bar code on the streaming media device.
The method can further include automatically detecting the streaming media device by the computer system.
The method can further include reading a serial number of the streaming media device via a connection to the computer system; and comparing the serial number of the streaming media device entered to the serial number of the streaming media device read by the computer system to validate the serial number of the streaming media device.
In an aspect, performing the flashing firmware to the streaming media device includes comparing a version of the firmware stored on the computer system to a known latest version of the firmware stored in a database.
In an aspect, performing the flashing firmware to the streaming media device includes setting access flags on the streaming media device to place the streaming media device into a diagnostic mode.
The method can further include verifying that the streaming media device boots properly.
The method can further include comparing a version of the firmware of the streaming media device to a version of the firmware flashed to the streaming media device.
The method can further include resetting access flags on the streaming media device to restrict access to the streaming media device.
In an aspect, connecting the streaming media device includes connecting one to sixteen streaming media devices.
In an aspect, the flashing firmware and boot checking of the one to sixteen streaming media devices is performed simultaneously to each of the one to sixteen streaming media devices connected to the computer system.
In an aspect, the computer system includes a monitor showing a status of the method for the streaming media device.
In an aspect, the computer system includes a monitor showing a status of the method for each of the one to sixteen streaming media devices.
In an aspect, the automatically recording the result includes saving a data record including a model and the serial number of the streaming media device, a version of the flashed firmware, and verification that the streaming media device booted properly.
In an aspect, a non-transitory computer-readable medium includes executable instructions that when executed by a processor cause the processor to perform the steps of flashing firmware and boot checking the streaming media device and automatically recording the result.
In another embodiment, a computer system includes a USB interface; and a storage medium readable by the computer system and storing an application to interface the computer system and a streaming media device, wherein the computer system, by running the application, automatically: detects the streaming media device after the streaming media device has been connected to the USB interface, flashes firmware to the streaming media device, validates the firmware flashed to the streaming media device, verifies that the streaming media device boots properly after flashing the firmware, and records a result of running the application.
In an aspect, the USB interface includes one to sixteen connection ports to which one to sixteen streaming media devices can be connected, respectively, and by running the application, simultaneously performs the automatic steps on each of the one to sixteen streaming media devices connected to the USB interface.
The above and other features, elements, characteristics, steps, and advantages of the present invention will become more apparent from the following detailed description of preferred embodiments of the present invention with reference to the attached drawings.
In the following description, reference is made to the accompanying drawings that form a part thereof, and in which is shown by way of illustrating specific exemplary embodiments in which the disclosure may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the concepts disclosed herein, and it is to be understood that modifications to the various disclosed embodiments may be made, and other embodiments may be utilized, without departing from the scope of the present disclosure. The following detailed description is, therefore, not to be taken in a limiting sense.
A streaming media device transforms a television into a smart one. That is, the streaming media device allows streaming of video and music, playing games, and installation of applications via a television. The streaming media device provides the ability to watch TV shows and movies from streaming services in one place via one platform. The streaming media device comes in several different brands and models that connect to the internet via Wi-Fi to a local router.
The streaming media device has a USB connection to power the device and to communicate with the device. The USB interface is used to send commands and install firmware. The streaming media device also has an HDMI connector to plug into a mating connector on a TV to provide audio and video to the TV. The streaming media device can be paired to a hand held remote control device and include voice interaction capabilities to search and launch content, as well as control other smart home devices.
Like many smart and multi-media devices, used streaming media devices can be returned by consumers as potentially being defective, not working, or no longer being used. Used streaming media devices can then be renewed, refurbished, repackaged, and provided back into the stream of commerce.
The test system and method described below provides security in that it validates the correct firmware is flashed on the streaming media device under test, it increases productivity in that a single test station can now run up to 16 devices at the same time, results are automatically entered into a database, and the system is easier to setup and train operators to use.
The computer system 110 can include computing components, such as one or more processors, one or more memory devices storing software instructions executed by the processor(s), an operator interface including a keyboard, mouse, and the monitor 120, and data stored in a memory. Stored software instructions can include a program or an application for operating the system 100 along with a graphic user interface (GUI) to assist an operator. The one or more processors can be a single microprocessor or multiple microprocessors, field programmable gate arrays (FPGAs), digital signal processors (DSPs), a network, or any suitable combination of these or other components capable of executing particular sets of instructions. Computer-readable instructions can be stored on a tangible non-transitory computer-readable medium, such as a flexible disk, a hard disk, a CD-ROM (compact disk-read only memory), an MO (magneto-optical), a DVD-ROM (digital versatile disk-read only memory), a DVD RAM (digital versatile disk-random access memory), a semiconductor memory, or the cloud. The computer system 110 can include a server or network of computers. The computer system 110 can include an output device such as a printer and the monitor 120.
The computer system 110 can include a custom interface application programmed to interface with the DUTs and automatically perform the steps necessary to detect, validate, flash, boot check, and record data when clearing and updating a streaming media device. This application can include a graphical user interface (GUI) like that shown in
After being connected to the system 100, the system 100 automatically attempts to recover and detect the DUT at step S210 using a recovery tool that will allow the device to enter Fastboot mode and be detected. If the DUT is detected, then the step is passed and the application proceeds to the next step. If the DUT is not detected, then the step fails, a failure record is automatically recorded, and processing of the DUT is terminated at step S295. At step S295, the application saves the results of the method 200 in a data record generated for the DUT based on its serial number that was previously entered and saved in the computer system 110. The data record can include individual DUT information and information about the failure.
At step S215, the application reads the serial number reported by the DUT and compares that serial number to that scanned into the system 100. If the two DSNs match, then the step is passed and the application proceeds to the next step. If the DSNs do not match, then the step fails and processing of the DUT is terminated at step S295. If it has been determined that the firmware does not need to be updated on the DUT and an option selected by an operator to only perform a boot check, the method can continue at step S230 to reboot the DUT. If it has been determined that the firmware needs to be updated on the DUT, the process can continue at step S220.
At step S220, the application validates the firmware as valid prior to flashing the latest version on the DUT. This is done by comparing the firmware version stored on the test computer system to the known latest firmware version stored in a database. If the firmware is validated, as the firmware versions matching, then the step is passed and the application proceeds to the next step. If the firmware is not validated, as the firmware version stored on the test system is not the same version as stored in the database, then the step fails and processing of the DUT is terminated at step S295.
At step S225, a user image of the most recent version of the firmware is flashed to the DUT. If the firmware is flashed, then the step is passed and the application proceeds to the next step. If the firmware cannot be flashed, then the step fails and processing of the DUT is terminated at step S295.
At step S230, the DUT is rebooted. A command such as “Fastboot reboot-bootloader” is sent from the computer system 100 to the DUT to instruct the DUT to boot back into fastboot. If the DUT reboots, then the step is passed and the application proceeds to the next step. If the DUT fails to boot properly, then the step fails and processing of the DUT is terminated at step S295. The application waits for a predetermined amount of time. If the DUT is detected in Fastboot, the application detects the DUT booted and commands can be run in boot check.
At step S235, the application ensures that the DUT boots properly. There are commands for each streaming media device model that are run to verify the DUT booted properly and the firmware was installed on the DUT. If the DUT reboots properly, then the step is passed and the application proceeds to the next step. If the DUT fails to boot properly, then the step fails and processing of the DUT is terminated at step S295.
At step S240, the application validates the firmware installed on the DUT. The application sends a command to the DUT to retrieve the firmware version from the DUT. That firmware version is compared to the firmware version installed at step S225. If the firmware is validated, then the step is passed and the application proceeds to the next step. If the firmware not validated, then the step fails and processing of the DUT is terminated at step S295.
At step S245, the application erases DUT access flags. Access flags are set via commands to the DUT after the DUT is unlocked. Access flags need to be set in the DUT to be able to boot into a diagnostic mode. These flags are set during flashing at step S225. The access flags need to be removed/reset because they allow access to the DUT. The access flags are checked in the boot check process by commands to verify that the access flags have been reset to no longer allow access to the DUT. If the DUT access flags have been erased, then the step is passed and the application proceeds to the next step. If DUT access flags have not been erased, then the step fails and processing of the DUT is terminated at step S295.
At step S250, the application saves the results of the method 200 in a data record generated for the DUT based on its serial number that was previously entered, validated, and saved in the computer system 110. The data record can include individual DUT information such as model and serial number, the firmware version, and verification that the DUT booted properly.
At step S290, testing is complete. The DUT can be disconnected from the system 100 and proceed for further evaluation and processing.
Additionally, the GUI page 300 can include summary fields 340 and 350. A summary field 340 can indicate a total test time for a corresponding DUT and buttons used to start testing on the DUT and show more details of logged data for that DUT. Another summary field 350 can be used to show the status of a testing session.
The above-described embodiments of the present disclosure can be implemented in any of numerous ways. For example, the embodiments can be implemented using hardware, software, or a combination thereof. When implemented in software, the software code can be executed on any suitable computer, processor, or collection of processors, whether provided in a single computer or distributed among multiple computers. Such processors can be implemented as integrated circuits, with one or more processors in an integrated circuit component. Though, a processor can be implemented using circuitry in any suitable format.
Additionally, or alternatively, the above-described embodiments can be implemented as a non-transitory computer readable storage medium embodied thereon a program executable by a processor that performs a method of various embodiments.
Also, the various methods or processes outlined herein can be coded as software that is executable on one or more processors that employ any one of a variety of operating systems or platforms. Additionally, such software can be written using any of a number of suitable programming languages and/or programming or scripting tools, and also can be compiled as executable machine language code or intermediate code that is executed on a framework or virtual machine. Typically, the functionality of the program modules can be combined or distributed as desired in various embodiments.
Also, the embodiments of the present disclosure can be embodied as a method, of which an example has been provided. The acts performed as part of the method can be ordered in any suitable way. Accordingly, embodiments can be constructed in which acts are performed in an order different than illustrated, which can include performing some acts concurrently, even though shown as sequential acts in illustrative embodiments.
It should be understood that the foregoing description is only illustrative of the present invention. Various alternatives and modifications can be devised by those skilled in the art without departing from the present invention. Accordingly, the present invention is intended to embrace all such alternatives, modifications, and variances that fall within the scope of the appended claims.