question: How was it decided that wireless mouse drivers need to weigh in at hundreds of megabytes?
comment: It's probably mostly two things: 1. Dependencies. A full .NET framework, or whatever they used to make it. Which may not be necessary on your particular system, but they'll still include it because some people will need it, and telling users "go to URL_0 and download this" doesn't look very professional, and is going to confuse some people. 2. High res graphics. Because a plain UI is too boring in this day and age, and a low res image would look wrong on a 4K screen, so it's likely that whatever images and animations are included are in high res to make sure it looks as shiny as possible, and doesn't make people regret spending $80 on a mouse.
passages: Computer mice are another common USB HID class device. USB HID mice can range from single-button simple devices to multi-button compound devices. Most modern operating systems ship with drivers for standard HID mouse designs (the most common modern mouse design has two dedicated buttons and a mouse wheel that doubles as the third button); mice with extended functionality require custom drivers from the manufacturer.
   One of the benefits of a well-defined specification like the USB HID class is the abundance of device drivers available in most modern operating systems. The USB HID class devices and their basic functions are defined in USB-IF documentation without any specific software in mind. Because of these generic descriptions, it is easy for operating system designers to include functioning drivers for devices such as keyboards, mice, and other generic human interface devices. The inclusion of these generic drivers allows for faster deployment of devices and easier installation by end-users.
  
  Section::::Logical specifications.
  
  Section::::Logical specifications.:Functional characteristics.
   A.b also defined a small set of standardized device classes. These included monitors, keyboards, "locators" (pointing devices like mice and joysticks), battery monitors, and "text devices" (modems, etc.). Depending on how much intelligence the device needed, the interface in the device could leave almost all of the work to the driver. This allows A.b to scale down to price points low enough for devices like mice.
   Mouse vendors also use other extended formats, often without providing public documentation. The Typhoon mouse uses 6-byte packets which can appear as a sequence of two standard 3-byte packets, such that an ordinary PS/2 driver can handle them. For 3-D (or 6-degree-of-freedom) input, vendors have made many extensions both to the hardware and to software. In the late 1990s, Logitech created ultrasound based tracking which gave 3D input to a few millimeters accuracy, which worked well as an input device but failed as a profitable product. In 2008, Motion4U introduced its "OptiBurst" system using IR tracking for use as a Maya (graphics software) plugin.
   A brief hardware roundup in July 2010 by SemiAccurate found that Gigabyte Technology had introduced working UAS drivers for their boards using NEC/Renesas chips, and that—on the hardware level at least—"the LucidPort USB 300 and USB302, Symwave SW6315, Texas Instruments TUSB9260 and the VLI VL700 controllers all support UASP, while as far as we could find, the ASMedia ASM1051 and ASM1051E as well as the Fujitsu MB86C30A doesn’t."
   Modern non-Bluetooth and non-WiFi wireless mice use USB receivers. Some of these can be stored inside the mouse for safe transport while not in use, while other, newer mice use newer "nano" receivers, designed to be small enough to remain plugged into a laptop during transport, while still being large enough to easily remove.
  
  Section::::Multiple-mouse systems.
   BULLET::::- Mouse – Only the X-axis, Y-axis, and the first 3 buttons will be available. Any additional features on the mouse will not function.
  
  One common usage of boot mode is during the first moments of a computer's boot up sequence. Directly configuring a computer's BIOS is often done using only boot mode.
  
  Sometimes a message will appear informing the user that the device has installed the correct driver and is now usable.
  
  Section::::HID standard.:HID definition of a device.
   The USB HID class specifications allow for myriad other devices under the USB HID class. Some examples are automobile simulation controllers, exercise machines, telephony devices, thermometers, audio controls and medical instrumentation. Even uninterruptible power supplies and software protection dongles declare themselves under this class, despite the fact they often have no human interface at all. Any device can be a USB HID class device as long as a designer meets the USB HID class logical specifications. This is not to say that there is no need to ship drivers for these devices, nor that an operating system will immediately recognize the device. This only means that the device can declare itself under the human interface device class.
   Different tools are available to help adopters quickly learn and integrate DASH7 ( Raspberry Pi shield, Arduino, ARM mbed library, etc.) ...
  
  Section::::History.
  
  Upon receiving awards for the U.S. Department of Defense’s RFID III contract for ISO 18000-7 devices, several companies – Savi Technology, Evigia Systems, and Identec Solutions – started a more formalized process for determining conformance with the ISO 18000-7 standard and interoperability across vendors. ISO has no provision for testing equipment for compliance with its standards.
   Visi On required Mouse Systems-compatible mice; Microsoft-compatible PC mice, which over time became the standard, were introduced later (in May 1983). Visi On used two mouse drivers. First, loaded in text mode, made mouse registers accessible to the embedded driver, which translated coordinates to cursor position. This internal driver, built-in as a subroutine into VISIONXT.EXE, required Mouse Systems PC-Mouse pointing device. It is not compatible with the Microsoft Mouse standard.
   InputSprocket was one of the most widely used of the Game Sprockets, and drivers were supplied for many devices that worked on the Mac. This was greatly expanded by mapping InputSprocket onto the similar Human Interface Device system that is part of the USB standard. This meant that almost any USB input device would work to at least some level with InputSprocket without any effort on the part of the developer or the user.
  
  Section::::Description.:SoundSprocket.
   A DOLLx8 embedded network uses its own specific interface system named DOLLx8 Dataport that via DOLLx8 eMaster unit connects to external RS-232 and from there to USB directly, but requires the installation of a separate DOLLx8 driver. DOLLx8 runs on its own internal clock system that allows the DOLLx8 Dataport bus speed to be independent of the RS-232 baud speed set on the PC side, and can thus be determined by the user. With DOLLx8, USB works as a virtual communication port and can be set to a maximum speed of 128,000 Kbps.
  
  Section::::MISOLIMA.
   The host periodically polls the device's interrupt IN endpoint during operation. When the device has data to send it forms a report and sends it as a reply to the poll token. Common devices such as keyboards and mice send reports that are compliant with standards set by the USB Implementers Forum (USB-IF). When a vendor makes a custom USB HID class device, the reports formed by the device need to match the report description given during enumeration and the driver installed on the host system. In this way it is possible for the USB HID class to be extremely flexible.
   Peripheral devices in computing can also be connected wirelessly, as part of a Wi-Fi network or directly via an optical or radio-frequency (RF) peripheral interface. Originally these units used bulky, highly local transceivers to mediate between a computer and a keyboard and mouse; however, more recent generations have used smaller, higher-performance devices. Radio-frequency interfaces, such as Bluetooth or Wireless USB, provide greater ranges of efficient use, usually up to 10 feet, but distance, physical obstacles, competing signals, and even human bodies can all degrade the signal quality. Concerns about the security of wireless keyboards arose at the end of 2007, when it was revealed that Microsoft's implementation of encryption in some of its 27 MHz models was highly insecure.
   While the electrical interface and the format of the data transmitted by commonly available mice is currently standardized on USB, in the past it varied between different manufacturers. A bus mouse used a dedicated interface card for connection to an IBM PC or compatible computer.
   In 1986 Apple first implemented the Apple Desktop Bus allowing the daisy-chaining (linking together) of up to 16 devices, including mice and other devices on the same bus with no configuration whatsoever. Featuring only a single data pin, the bus used a purely polled approach to computer/device communications and survived as the standard on mainstream models (including a number of non-Apple workstations) until 1998 when iMac joined the industry-wide switch to using USB. Beginning with the Bronze Keyboard PowerBook G3 in May 1999, Apple dropped the external ADB port in favor of USB, but retained an internal ADB connection in the PowerBook G4 for communication with its built-in keyboard and trackpad until early 2005.
   Microsoft Mouse and Keyboard Center supports USB devices; it does not support (automatically detect and configure) PS/2, Bluetooth, and some older USB devices, as detailed in the following sections. Most are still supported in the latest corresponding versions of IntelliType Pro and IntelliPoint.
  
  Section::::Vulnerabilites.
  
  Microsoft Released Microsoft Mouse and Keyboard Center 3.2.116 Package with Major Cryptographic Security Issues Including Hash Collision Vulnerability. The Vulnerable Package Was Available Nearly a Month on the Official Microsoft Hardware Website, a Security Researcher Contacted Microsoft about it and it was Fixed Immediately in an Updated Package Release. 
  
  Section::::Unsupported Mice.
   Standard device emulation has its limitations. When emulating a USB keyboard, mouse, and monitor it is impossible for most KVM's to simulate various types of I/O devices specifically. As a result, KVM switches will sometimes offer inconsistent performance and even sometimes unsolved compatibility issues with the shared keyboard, mouse, and other devices. The intent of Dynamic Device Mapping is to resolve the issues that standard device mapping sometimes faces.
  
  Section::::Applications for USB DDM.
  
  BULLET::::- Sharing Touchscreen Monitor among connected systems
  
  BULLET::::- Integrated Multi-vendor Self-service Kiosk systems
  
  BULLET::::- Secured user login by sharing USB Smart card or fingerprint/Biometrics scanner/reader"
  
  Section::::See also.
   Mouse use in DOS applications became more common after the introduction of the Microsoft Mouse, largely because Microsoft provided an open standard for communication between applications and mouse driver software. Thus, any application written to use the Microsoft standard could use a mouse with a driver that implements the same API, even if the mouse hardware itself was incompatible with Microsoft's. This driver provides the state of the buttons and the distance the mouse has moved in units that its documentation calls "mickeys", as does the Allegro library.
  
  Section::::Connectivity and communication protocols.:Early mice.
   According to the HID specification, a device is described, during the report mode, as a set of controls or group of controls.
  
  Controls are matched by a field containing the data, and another containing a usage tag.
  
  Each usage tag is described in the spec as the constructor suggested use of the data described in the report mode.
  
  Section::::Other protocols using HID.
   Operating systems sometimes apply acceleration, referred to as "ballistics", to the motion reported by the mouse. For example, versions of Windows prior to Windows XP doubled reported values above a configurable threshold, and then optionally doubled them again above a second configurable threshold. These doublings applied separately in the X and Y directions, resulting in very nonlinear response.
  
  Section::::Mousepads.
  
  Engelbart's original mouse did not require a mousepad; the mouse had two large wheels which could roll on virtually any surface. However, most subsequent mechanical mice starting with the steel roller ball mouse have required a mousepad for optimal performance.
   The USB HID class requires that every device describes how it will communicate with the host device in order to accurately predict and define all current and future human interface devices. During enumeration the device describes how its reports are to be structured so that the host device can properly prepare to receive this information.
   Livescribe developed a Penlet SDK to allow application development for the smartpen. The SDK was based on Java, and applications ran directly on the pen itself. Applications could display text and menus, as well as produce audio feedback. A Desktop SDK for Microsoft and Macintosh operating systems was also promised, to allow developers to access files stored on the pen.
   Section::::Connectivity and communication protocols.:USB.
  
  The industry-standard USB (Universal Serial Bus) protocol and its connector have become widely used for mice; it is among the most popular types.
  
  Section::::Connectivity and communication protocols.:Cordless or wireless.
  
  Cordless or wireless mice transmit data via infrared radiation (see IrDA) or radio (including Bluetooth and Wi-Fi). The receiver is connected to the computer through a serial or USB port, or can be built in (as is sometimes the case with Bluetooth and WiFi).
   Also in some cases third-party companies wrote special multi-function drivers that would combine the capabilities of several standard DOS drivers and TSRs into a single very compact program that used just a few kilobytes of memory. For example, the functions of mouse driver, CD-ROM driver, ANSI support, DOSKEY command recall, and disk caching would all be combined together in one program, consuming just 1 - 2 kilobytes of conventional memory for normal driver/interrupt access, and storing the rest of the multi-function program code in EMS or XMS memory.
  
  Section::::DOS extenders.
  
raw_presuppositions: Wireless mouse drivers all need to weigh in at hundreds of megabytes,
raw_corrections: The size of wireless mouse drivers can account for its dependences and graphics.