<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: keyboardTester.Click</title>
    <description>The latest articles on DEV Community by keyboardTester.Click (@keyboard-testerclick).</description>
    <link>https://dev.to/keyboard-testerclick</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3900833%2F44a760e2-ccf3-437b-8a6c-992cc014d5ba.jpg</url>
      <title>DEV Community: keyboardTester.Click</title>
      <link>https://dev.to/keyboard-testerclick</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/keyboard-testerclick"/>
    <language>en</language>
    <item>
      <title>Your 1080p Webcam Is Probably Streaming at 720p — Here's How to Prove It (and Fix It)</title>
      <dc:creator>keyboardTester.Click</dc:creator>
      <pubDate>Sun, 12 Jul 2026 17:34:09 +0000</pubDate>
      <link>https://dev.to/keyboard-testerclick/your-1080p-webcam-is-probably-streaming-at-720p-heres-how-to-prove-it-and-fix-it-655</link>
      <guid>https://dev.to/keyboard-testerclick/your-1080p-webcam-is-probably-streaming-at-720p-heres-how-to-prove-it-and-fix-it-655</guid>
      <description>&lt;p&gt;The number printed on your webcam's box is a capability, not a promise. What actually reaches Zoom, Meet, or Teams is whatever the camera hands over &lt;em&gt;right now&lt;/em&gt; — and for a lot of "1080p" webcams, that is 1280×720 or worse.&lt;/p&gt;

&lt;p&gt;You can check it in about ten seconds, no install: open the &lt;a href="https://keyboardtester.click/camera-resolution-test.php" rel="noopener noreferrer"&gt;camera resolution test&lt;/a&gt;, allow camera access, select a 1080p target, and read the width × height the browser reports back. Browser delivery is exactly what the web clients of Zoom, Meet, and Teams consume, so this readout is the honest baseline.&lt;/p&gt;

&lt;p&gt;Full guide with the resolution table, fix ladder, and FAQ:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://keyboardtester.click/blog/how-to-check-webcam-resolution-really-1080p.php" rel="noopener noreferrer"&gt;How to Check Webcam Resolution (Is It Really 1080p?)&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a "1080p" camera delivers 720p
&lt;/h2&gt;

&lt;p&gt;Before blaming the hardware, four things silently cap resolution:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Low light.&lt;/strong&gt; Tiny webcam sensors starve in dim rooms; the camera raises gain, adds noise, and many models drop frame rate or resolution to keep the image usable. Same camera, sharp at noon, mush at night.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;USB bandwidth.&lt;/strong&gt; USB 2.0 tops out at 480 Mbps (&lt;a href="https://www.usb.org/document-library/usb-20-specification" rel="noopener noreferrer"&gt;USB-IF spec&lt;/a&gt;). Uncompressed 1080p30 needs roughly 1 Gbps (1920 × 1080 × 2 bytes × 30 fps — plain arithmetic). Cameras cope by compressing or silently stepping down to 720p, and a shared hub makes it worse. A direct rear-panel USB 3.0 port is the clean test.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Windows picked a lower default "media type".&lt;/strong&gt; Settings &amp;gt; Bluetooth &amp;amp; devices &amp;gt; Cameras &amp;gt; your camera &amp;gt; set Media type to the highest resolution instead of "Let Windows choose" — the fix traced in a &lt;a href="https://learn.microsoft.com/en-us/answers/questions/5546070/low-quality-camera-in-teams-desktop" rel="noopener noreferrer"&gt;Microsoft Q&amp;amp;A thread on low-quality Teams video&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The app itself.&lt;/strong&gt; See below — the caps are documented, by design.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The apps cap you on purpose
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zoom:&lt;/strong&gt; in group meetings, HD 720p applies to the active-speaker layout and requires a paid account; Full HD 1080p must be enabled by Zoom Support and needs an i7 quad-core or better with virtual backgrounds off (&lt;a href="https://support.zoom.com/hc/en/article?id=zm_kb&amp;amp;sysparm_article=KB0066166" rel="noopener noreferrer"&gt;Zoom Support&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Meet:&lt;/strong&gt; send resolution is selectable at 360p, 720p, or 1080p — and 360p "uses less data, but your camera will send a lower quality picture" (&lt;a href="https://support.google.com/meet/answer/9302964" rel="noopener noreferrer"&gt;Google Meet Help&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft Teams:&lt;/strong&gt; "always conservative on bandwidth utilization", delivering HD "in under 1.5 Mbps"; on the minimum bandwidth tier, meeting video runs at up to 240p (&lt;a href="https://learn.microsoft.com/en-us/microsoftteams/prepare-network" rel="noopener noreferrer"&gt;Microsoft Learn&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So even a genuinely healthy 1080p webcam is often streamed below its spec. The point of checking first is knowing which side of the pipeline to fix.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fixes, in order of cost
&lt;/h2&gt;

&lt;p&gt;Light on your face first (free, biggest visible win), direct USB port second, turn HD on in the app (Zoom: Settings &amp;gt; Video &amp;gt; HD; Meet: Settings &amp;gt; Video &amp;gt; Send resolution), fix the Windows media type, and only then think about new hardware. After each change, re-run the &lt;a href="https://keyboardtester.click/camera-resolution-test.php" rel="noopener noreferrer"&gt;webcam resolution check&lt;/a&gt; and confirm the number moved.&lt;/p&gt;

&lt;p&gt;For the rest of the pre-call routine: a &lt;a href="https://keyboardtester.click/webcamtesterindex.php" rel="noopener noreferrer"&gt;full webcam test&lt;/a&gt; for framing and device info, the &lt;a href="https://keyboardtester.click/webcam-mirror.php" rel="noopener noreferrer"&gt;webcam mirror&lt;/a&gt; to fix lighting the way the camera sees it, and a &lt;a href="https://keyboardtester.click/mic-tester.php" rel="noopener noreferrer"&gt;microphone check&lt;/a&gt; so you sound as good as you look.&lt;/p&gt;

&lt;p&gt;Everything runs in the browser with standard &lt;code&gt;getUserMedia&lt;/code&gt; constraints — which are, fittingly, &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Media_Capture_and_Streams_API/Constraints" rel="noopener noreferrer"&gt;preferences rather than guarantees&lt;/a&gt;. That's the whole story of webcam resolution in one API design decision.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>remotework</category>
      <category>hardware</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Why the Same FOV Feels Different Across Games (HFOV vs. VFOV)</title>
      <dc:creator>keyboardTester.Click</dc:creator>
      <pubDate>Sat, 11 Jul 2026 21:03:10 +0000</pubDate>
      <link>https://dev.to/keyboard-testerclick/why-the-same-fov-feels-different-across-games-hfov-vs-vfov-2blf</link>
      <guid>https://dev.to/keyboard-testerclick/why-the-same-fov-feels-different-across-games-hfov-vs-vfov-2blf</guid>
      <description>&lt;p&gt;You copy &lt;strong&gt;90 FOV&lt;/strong&gt; from one game into another. The number matches, but the second game looks zoomed in. Or you move a setup from a 4:3 guide to a 16:9 monitor and suddenly see far more at the sides.&lt;/p&gt;

&lt;p&gt;The problem is not your eyes. A FOV number is incomplete unless it also says:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which axis it measures — horizontal (HFOV) or vertical (VFOV);&lt;/li&gt;
&lt;li&gt;which aspect ratio the number uses as its reference;&lt;/li&gt;
&lt;li&gt;which camera state it describes — hip-fire, ADS, a vehicle camera, or a weapon viewmodel.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full illustrated guide and current game-convention table are here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://keyboardtester.click/blog/why-same-fov-feels-different-across-games.php" rel="noopener noreferrer"&gt;Why the Same FOV Feels Different Across Games&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  HFOV and VFOV are different angles
&lt;/h2&gt;

&lt;p&gt;HFOV measures the visible world from left to right. VFOV measures it from top to bottom. A widescreen monitor is wider than it is tall, so the two degree values cannot be equal while describing the same camera.&lt;/p&gt;

&lt;p&gt;On a 16:9 display:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;90° horizontal&lt;/strong&gt; is about &lt;strong&gt;58.72° vertical&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;90° vertical&lt;/strong&gt; is about &lt;strong&gt;121.28° horizontal&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is why copying a bare &lt;code&gt;90&lt;/code&gt; between two games can create a dramatic mismatch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why 90 at 4:3 becomes 106.26 at 16:9
&lt;/h2&gt;

&lt;p&gt;Source-style games often express horizontal FOV against a 4:3 reference, even when the player uses a widescreen display. Preserve the vertical view while moving that camera to 16:9 and the actual horizontal angle expands.&lt;/p&gt;

&lt;p&gt;For a centered rectilinear camera with aspect ratio &lt;code&gt;A&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HFOV = 2 × atan(tan(VFOV / 2) × A)
VFOV = 2 × atan(tan(HFOV / 2) / A)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Starting from 90° horizontal at 4:3:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;90 H at 4:3 = 73.74 V = 106.26 H at 16:9
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Do not multiply the angle by &lt;code&gt;16/9&lt;/code&gt;. Perspective is based on the tangent of half the angle, so linear scaling gives the wrong answer.&lt;/p&gt;

&lt;p&gt;You can run the conversion without doing the trigonometry by hand in the free &lt;a href="https://keyboardtester.click/fov-calculator.php" rel="noopener noreferrer"&gt;FOV calculator&lt;/a&gt;. Use Custom mode when transferring an exact source convention.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why game presets still need labels
&lt;/h2&gt;

&lt;p&gt;Different games expose different camera conventions:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Game&lt;/th&gt;
&lt;th&gt;What the number means&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Counter-Strike 2&lt;/td&gt;
&lt;td&gt;The normal world view uses a Source-style 4:3 horizontal base; 90 becomes about 106.26 H at 16:9.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Valorant&lt;/td&gt;
&lt;td&gt;The normal PC world camera is fixed at 103° horizontal on a 16:9 base.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Apex Legends&lt;/td&gt;
&lt;td&gt;The 70–110 slider uses a Source-style 4:3 horizontal base.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Battlefield 2042&lt;/td&gt;
&lt;td&gt;The on-foot slider is explicitly vertical, 50–105.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;There is another trap: a weapon-viewmodel FOV can change how large the gun looks without changing how much of the world the camera shows. Two screenshots can therefore feel different while the environment framing is identical.&lt;/p&gt;

&lt;h2&gt;
  
  
  A reliable cross-game matching workflow
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Record the source game, slider value, resolution, aspect ratio, camera state, axis and reference ratio.&lt;/li&gt;
&lt;li&gt;Normalize the source value to VFOV. It is a convenient bridge when moving between aspect ratios.&lt;/li&gt;
&lt;li&gt;Convert that VFOV to the target game's expected convention.&lt;/li&gt;
&lt;li&gt;Match the same camera state — hip-fire to hip-fire, not hip-fire to ADS.&lt;/li&gt;
&lt;li&gt;Validate with fixed landmarks near the screen edges, not the weapon model.&lt;/li&gt;
&lt;li&gt;Save the result with its labels, for example &lt;code&gt;73.74 V / 106.26 H at 16:9&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The same rule applies to aim trainers: choose the correct game profile or FOV scale, resolution, aspect ratio and scoped state before copying the value.&lt;/p&gt;

&lt;p&gt;The key idea is simple: &lt;strong&gt;match the projection, not the number&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For the worked examples, current game notes, diagrams and FAQ, read the &lt;a href="https://keyboardtester.click/blog/why-same-fov-feels-different-across-games.php" rel="noopener noreferrer"&gt;complete canonical FOV guide&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>gaming</category>
      <category>gamedev</category>
      <category>math</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Mouse Spinning Out? What It Is, How to Test It, and Fixes</title>
      <dc:creator>keyboardTester.Click</dc:creator>
      <pubDate>Sat, 11 Jul 2026 20:08:03 +0000</pubDate>
      <link>https://dev.to/keyboard-testerclick/mouse-spinning-out-what-it-is-how-to-test-it-and-fixes-4kif</link>
      <guid>https://dev.to/keyboard-testerclick/mouse-spinning-out-what-it-is-how-to-test-it-and-fixes-4kif</guid>
      <description>&lt;p&gt;The short version: when your crosshair whips to the ceiling or the screen spins past the target during a hard flick in CS2 or Valorant, that is &lt;strong&gt;sensor spin-out&lt;/strong&gt; — your mouse sensor hit its maximum tracking speed (rated in IPS, inches per second) and stopped tracking reliably for a moment. It is a hardware speed ceiling, not your aim, and not cursor drift.&lt;/p&gt;

&lt;p&gt;You can watch it happen in about a minute, no install: hold the button and draw fast, tight circles in the &lt;a href="https://keyboardtester.click/mouse-spin-test.php" rel="noopener noreferrer"&gt;360° spin counter&lt;/a&gt;. The live rotation count is the tell — if the &lt;strong&gt;count freezes mid-spin&lt;/strong&gt; while your hand is still circling, the sensor just gave up. (Direction flicker is only a secondary hint, and a cursor pinned at the screen edge is a false positive, not spin-out.)&lt;/p&gt;

&lt;p&gt;Full guide with the in-game confirmation routine, comparison table, and FAQ:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://keyboardtester.click/blog/mouse-spinning-out-sensor-spin-out-test-fix.php" rel="noopener noreferrer"&gt;Mouse Spinning Out? What It Is, How to Test It, and Fixes&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Spin-out vs drift vs jitter
&lt;/h2&gt;

&lt;p&gt;These three get mixed up constantly, and the fixes are completely different:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Problem&lt;/th&gt;
&lt;th&gt;What you see&lt;/th&gt;
&lt;th&gt;When it happens&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Spin-out&lt;/td&gt;
&lt;td&gt;View whips/spins past the target&lt;/td&gt;
&lt;td&gt;Only during very fast flicks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Drift&lt;/td&gt;
&lt;td&gt;Cursor creeps while the mouse is untouched&lt;/td&gt;
&lt;td&gt;At idle&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jitter&lt;/td&gt;
&lt;td&gt;Tiny unstable shake&lt;/td&gt;
&lt;td&gt;At rest or during slow, smooth moves&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If your pointer moves while your hand is off the mouse, that is drift — run the &lt;a href="https://keyboardtester.click/mouse-drift-test.php" rel="noopener noreferrer"&gt;idle mouse drift test&lt;/a&gt; instead. Spin-out only ever shows up at high physical speed, because slow and medium movement stays far below the sensor's ceiling.&lt;/p&gt;

&lt;p&gt;DPI is not the cause either: DPI is resolution (counts per inch), while spin-out is about tracking speed. Lowering DPI makes the glitch look smaller on screen but does not raise the sensor's speed limit.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix ladder, easiest first
&lt;/h2&gt;

&lt;p&gt;Work down this list and stop when the spin counter stops plateauing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Put the mouse on a proper cloth pad.&lt;/strong&gt; Glass, glossy laminate, and worn hybrid pads degrade tracking headroom more than anything else.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clean the sensor lens&lt;/strong&gt; — a single hair or dust clump across the aperture reliably causes early tracking failure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Update mouse firmware&lt;/strong&gt; and vendor software; several sensors shipped with tracking bugs fixed in later firmware.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Change USB port&lt;/strong&gt; (prefer a rear motherboard port) and, for wireless, use the dongle extender close to the pad.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check polling rate stability&lt;/strong&gt; with a &lt;a href="https://keyboardtester.click/polling-rate-test.php" rel="noopener noreferrer"&gt;polling rate check&lt;/a&gt; — an unstable connection can masquerade as tracking failure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If it still spins out, the sensor itself is the ceiling.&lt;/strong&gt; Ratings vary enormously: Razer lists the DeathAdder Essential at up to 220 IPS (~5.6 m/s of hand speed), while the Viper V3 Pro's Focus Pro 35K Gen-2 is rated at 750 IPS (~19 m/s) — effectively impossible to exceed by hand. Budget sensors from a decade ago can and do get out-flicked by low-sens players.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After any fix, re-run the &lt;a href="https://keyboardtester.click/mouse-spin-test.php" rel="noopener noreferrer"&gt;spin counter&lt;/a&gt; and confirm the count climbs smoothly through your fastest circles, then verify buttons and wheel still behave in a &lt;a href="https://keyboardtester.click/mouse-test.php" rel="noopener noreferrer"&gt;full mouse test&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Everything runs in the browser with standard pointer events, so it works on any mouse without installing anything.&lt;/p&gt;

</description>
      <category>gaming</category>
      <category>hardware</category>
      <category>mouse</category>
      <category>troubleshooting</category>
    </item>
    <item>
      <title>Accelerometer vs Gyroscope: What's the Difference? (Test Both in Your Browser)</title>
      <dc:creator>keyboardTester.Click</dc:creator>
      <pubDate>Fri, 10 Jul 2026 15:27:07 +0000</pubDate>
      <link>https://dev.to/keyboard-testerclick/accelerometer-vs-gyroscope-whats-the-difference-test-both-in-your-browser-1671</link>
      <guid>https://dev.to/keyboard-testerclick/accelerometer-vs-gyroscope-whats-the-difference-test-both-in-your-browser-1671</guid>
      <description>&lt;p&gt;The short version: an &lt;strong&gt;accelerometer&lt;/strong&gt; measures linear acceleration plus gravity, so it answers "which way is down, and am I being moved?". A &lt;strong&gt;gyroscope&lt;/strong&gt; measures angular velocity, so it answers "how fast am I rotating around each axis?". Your phone fuses both into one stable orientation estimate.&lt;/p&gt;

&lt;p&gt;You can verify each sensor in about a minute, no app install: run the &lt;a href="https://keyboardtester.click/accelerometer-test.php" rel="noopener noreferrer"&gt;browser accelerometer test&lt;/a&gt; with the phone flat on a table (Z should read about 9.8 m/s²), then rotate the phone in the &lt;a href="https://keyboardtester.click/gyroscope-test.php" rel="noopener noreferrer"&gt;gyroscope test&lt;/a&gt; and watch alpha, beta, and gamma move.&lt;/p&gt;

&lt;p&gt;Full guide with the fix list and FAQ:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://keyboardtester.click/blog/accelerometer-vs-gyroscope-difference-test.php" rel="noopener noreferrer"&gt;Accelerometer vs Gyroscope: What's the Difference? (Test Both in Your Browser)&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The comparison at a glance
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Accelerometer&lt;/th&gt;
&lt;th&gt;Gyroscope&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Measures&lt;/td&gt;
&lt;td&gt;Linear acceleration + gravity&lt;/td&gt;
&lt;td&gt;Rotation rate (angular velocity)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Units&lt;/td&gt;
&lt;td&gt;m/s²&lt;/td&gt;
&lt;td&gt;deg/s or rad/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reading at rest&lt;/td&gt;
&lt;td&gt;~9.8 m/s² on the "down" axis&lt;/td&gt;
&lt;td&gt;~0 on all axes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Answers&lt;/td&gt;
&lt;td&gt;"Which way is down? Am I being moved?"&lt;/td&gt;
&lt;td&gt;"How fast am I turning right now?"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Weakness alone&lt;/td&gt;
&lt;td&gt;Jittery moment to moment&lt;/td&gt;
&lt;td&gt;Drifts over time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Typical jobs&lt;/td&gt;
&lt;td&gt;Auto-rotate, step counting, lift-to-wake, shake gestures&lt;/td&gt;
&lt;td&gt;Gyro aiming, AR anchoring, video stabilization, panoramas&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Neither sensor is good enough alone. Accelerometer-only orientation jitters as you walk; gyroscope-only orientation drifts as small rate errors accumulate. Phones fuse the two (plus the magnetometer for heading) into the alpha/beta/gamma angles that browsers report through DeviceOrientationEvent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test the accelerometer (60 seconds)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;a href="https://keyboardtester.click/accelerometer-test.php" rel="noopener noreferrer"&gt;accelerometer test&lt;/a&gt; on your phone.&lt;/li&gt;
&lt;li&gt;Lay the phone flat and still: expect roughly +9.8 m/s² on Z and near zero on X and Y.&lt;/li&gt;
&lt;li&gt;Tilt the phone and watch gravity shift between axes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Failure patterns are just as clear. All axes stuck at zero usually means denied motion permission or a dead sensor. One axis pinned to a fixed value in every orientation is a hardware fault. Values jumping past 100 m/s² while the phone rests on a table point to a calibration or driver problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test the gyroscope
&lt;/h2&gt;

&lt;p&gt;Open the &lt;a href="https://keyboardtester.click/gyroscope-test.php" rel="noopener noreferrer"&gt;rotate-your-phone gyroscope test&lt;/a&gt; and rotate the phone around each axis. Alpha tracks flat spinning (like a compass needle), beta tracks front-to-back tilt, and gamma tracks left-to-right tilt. The on-screen 3D cube should follow your hand smoothly, without lag, jumps, or frozen angles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auto-rotate broken? Work down this list
&lt;/h2&gt;

&lt;p&gt;Most "broken accelerometer" reports are software, not hardware:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Check the rotation lock (Android Quick Settings auto-rotate; iPhone Portrait Orientation Lock).&lt;/li&gt;
&lt;li&gt;Restart the phone to clear stuck sensor services.&lt;/li&gt;
&lt;li&gt;Recalibrate with a figure-8 motion, then rest the phone on a flat surface.&lt;/li&gt;
&lt;li&gt;Try safe mode on Android to rule out a third-party app forcing orientation.&lt;/li&gt;
&lt;li&gt;On Samsung, dial &lt;code&gt;*#0*#&lt;/code&gt; and open the Sensor panel for live values.&lt;/li&gt;
&lt;li&gt;If the browser test and the diagnostic panel still show flat or frozen values, the IMU chip or board connection has likely failed, often after a drop or screen replacement.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One boundary case worth knowing: if motion readings are fine but the screen taps itself or has dead spots, the problem is the digitizer, not the motion sensors. A &lt;a href="https://keyboardtester.click/touch-screen-test.php" rel="noopener noreferrer"&gt;touch screen test&lt;/a&gt; maps phantom taps and dead zones so you do not blame the wrong component.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related browser checks
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://keyboardtester.click/vibration-test.php" rel="noopener noreferrer"&gt;Vibration test&lt;/a&gt; for the haptic motor&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://keyboardtester.click/blog/does-my-phone-have-a-gyroscope-test.php" rel="noopener noreferrer"&gt;Does my phone have a gyroscope?&lt;/a&gt; for a 10-second existence check plus PUBG/CODM/Pokemon GO gyro settings&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything runs in the browser through standard DeviceMotion and DeviceOrientation APIs, so it works on Android and iPhone without installing anything.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>hardware</category>
      <category>testing</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Monitor Gamma Test: Fix Washed-Out or Too-Dark Screens</title>
      <dc:creator>keyboardTester.Click</dc:creator>
      <pubDate>Fri, 10 Jul 2026 14:22:40 +0000</pubDate>
      <link>https://dev.to/keyboard-testerclick/monitor-gamma-test-fix-washed-out-or-too-dark-screens-cmk</link>
      <guid>https://dev.to/keyboard-testerclick/monitor-gamma-test-fix-washed-out-or-too-dark-screens-cmk</guid>
      <description>&lt;p&gt;If a monitor looks washed out, crushed in dark scenes, or strangely different from another screen, gamma is one of the first things worth checking. Brightness changes the whole screen. Contrast changes the range. Gamma changes how the middle tones are distributed between black and white.&lt;/p&gt;

&lt;p&gt;Most normal SDR workflows still target gamma 2.2. That does not mean every display should be forced blindly to the same setting, but it gives you a useful baseline before you start changing sharpness, color temperature, RGB range, HDR, or game-specific sliders.&lt;/p&gt;

&lt;p&gt;Use the full guide and live checker here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://keyboardtester.click/blog/monitor-gamma-test-fix-washed-out-dark-screen.php" rel="noopener noreferrer"&gt;Monitor Gamma Test: Check Gamma 2.2 and Fix Washed-Out or Too-Dark Screens&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick gamma check
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;a href="https://keyboardtester.click/monitor-gamma-test.php" rel="noopener noreferrer"&gt;monitor gamma test&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Reset browser zoom to 100 percent.&lt;/li&gt;
&lt;li&gt;Sit at your normal viewing distance.&lt;/li&gt;
&lt;li&gt;Look at the midtone pattern, not the black or white extremes.&lt;/li&gt;
&lt;li&gt;Check whether the 2.2 area blends more naturally than the lower or higher gamma references.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the lower gamma side blends too easily, the display may be lifting midtones and making the picture look pale. If the higher gamma side blends too easily, the display may be hiding shadow detail and making the screen look too dark.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to adjust first
&lt;/h2&gt;

&lt;p&gt;Start with the least destructive controls:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set the monitor picture mode to Standard, sRGB, or Custom instead of a vivid gaming mode.&lt;/li&gt;
&lt;li&gt;Turn off dynamic contrast, black equalizer, eye saver, and HDR for the test.&lt;/li&gt;
&lt;li&gt;Confirm the GPU output range is correct, especially HDMI RGB full vs limited.&lt;/li&gt;
&lt;li&gt;Adjust the monitor gamma preset one step at a time.&lt;/li&gt;
&lt;li&gt;Recheck with black level, contrast, and sharpness tests before changing color calibration.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This matters because several display problems look similar. A washed-out screen can be a gamma issue, a limited-range mismatch, a black-level issue, or an aggressive image preset. A too-dark screen can be high gamma, black crush, local dimming, or HDR tone mapping.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related checks
&lt;/h2&gt;

&lt;p&gt;If the gamma test suggests the monitor is close but the picture still feels wrong, run these next:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://keyboardtester.click/black-level-test.php" rel="noopener noreferrer"&gt;Black level test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://keyboardtester.click/color-range-test.php" rel="noopener noreferrer"&gt;Color range test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://keyboardtester.click/contrast-test.php" rel="noopener noreferrer"&gt;Contrast test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://keyboardtester.click/monitor-sharpness-test.php" rel="noopener noreferrer"&gt;Monitor sharpness test&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gamma is not a full calibration report, but it is a fast way to separate a real midtone problem from a simple brightness or contrast mistake.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>hardware</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How Does a Computer Mouse Work? Ball, Optical &amp; Laser</title>
      <dc:creator>keyboardTester.Click</dc:creator>
      <pubDate>Wed, 08 Jul 2026 11:22:33 +0000</pubDate>
      <link>https://dev.to/keyboard-testerclick/how-does-a-computer-mouse-work-ball-optical-laser-i2p</link>
      <guid>https://dev.to/keyboard-testerclick/how-does-a-computer-mouse-work-ball-optical-laser-i2p</guid>
      <description>&lt;p&gt;A computer mouse does not usually tell the computer where it is on the screen. It reports movement since the last update: a little left, a little right, a little up, a little down. The operating system or game turns those tiny X/Y deltas into cursor or camera movement.&lt;/p&gt;

&lt;p&gt;The full illustrated version is here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://keyboardtester.click/blog/how-computer-mouse-works-ball-optical-laser.php" rel="noopener noreferrer"&gt;How Does a Computer Mouse Work? Ball, Optical &amp;amp; Laser&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the compact technical version.&lt;/p&gt;

&lt;h2&gt;
  
  
  The common idea: movement becomes X/Y reports
&lt;/h2&gt;

&lt;p&gt;A normal USB mouse sends HID-style reports containing button states, X movement, Y movement, and wheel movement. Bluetooth mice send the same kind of information through a wireless stack. That is why a basic mouse works across Windows, macOS, Linux, Chromebooks, and many tablets without a custom driver.&lt;/p&gt;

&lt;p&gt;Those movement values are counts, not inches. Your DPI/CPI setting, OS pointer speed, acceleration curve, browser/game input path, and polling rate decide how those counts feel.&lt;/p&gt;

&lt;h2&gt;
  
  
  How a ball mouse works
&lt;/h2&gt;

&lt;p&gt;The old mechanical mouse was beautifully literal:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A rubber ball touches the desk.&lt;/li&gt;
&lt;li&gt;Moving the mouse rotates the ball.&lt;/li&gt;
&lt;li&gt;Two rollers touch the ball at right angles: one for X, one for Y.&lt;/li&gt;
&lt;li&gt;Each roller spins a slotted encoder wheel.&lt;/li&gt;
&lt;li&gt;A light sensor counts pulses from those slots.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;More pulses means more cursor movement. The order of the light changes tells direction.&lt;/p&gt;

&lt;p&gt;The failure mode was just as mechanical: the ball picked up dust, skin oil, hair, and fibers from the desk, then transferred that dirt to the rollers. Once a roller got coated, it slipped instead of turning cleanly, and the cursor skipped or stuck.&lt;/p&gt;

&lt;h2&gt;
  
  
  How an optical mouse works
&lt;/h2&gt;

&lt;p&gt;An optical mouse removes the ball. It lights the surface with an LED, focuses a tiny patch of the surface onto an image sensor, and compares frame after frame.&lt;/p&gt;

&lt;p&gt;These are not normal camera photos. They are tiny, low-detail, high-speed texture samples. The mouse cares about contrast, cloth weave, dust, edges, and microscopic surface detail. If that texture shifts between frames, the processor estimates the movement and reports X/Y counts.&lt;/p&gt;

&lt;p&gt;That explains why a simple cloth mousepad can track better than a glossy white desk. The sensor needs stable texture.&lt;/p&gt;

&lt;h2&gt;
  
  
  How a laser mouse works
&lt;/h2&gt;

&lt;p&gt;A laser mouse is still an optical-style imaging mouse. The major difference is the light source: laser or infrared illumination instead of a visible red LED.&lt;/p&gt;

&lt;p&gt;Laser illumination can reveal finer surface detail, so it can work on more difficult office surfaces. That is useful for travel mice.&lt;/p&gt;

&lt;p&gt;But more detail is not automatically better. Some laser implementations can over-read cloth texture or dust, causing jitter, positive acceleration, inconsistent high-speed tracking, or a higher lift-off distance. Modern sensors are better, but laser is not automatically the best gaming choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why glass is hard
&lt;/h2&gt;

&lt;p&gt;Normal optical sensors need visible surface texture. Clear glass often gives too little stable detail, or reflects light in a way that does not produce useful frame-to-frame texture.&lt;/p&gt;

&lt;p&gt;Darkfield-style tracking solves a specific glass problem by reading tiny particles, scratches, and imperfections. Great for office portability; not a magic advantage over a top optical gaming sensor on a proper pad.&lt;/p&gt;

&lt;h2&gt;
  
  
  DPI, polling rate, lift-off distance, and jitter
&lt;/h2&gt;

&lt;p&gt;The spec-sheet terms measure different parts of the chain:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Term&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DPI / CPI&lt;/td&gt;
&lt;td&gt;Movement counts reported per inch of real mouse travel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Polling rate&lt;/td&gt;
&lt;td&gt;How often the mouse sends reports to the computer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lift-off distance&lt;/td&gt;
&lt;td&gt;How high the mouse can be lifted before tracking stops&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Acceleration&lt;/td&gt;
&lt;td&gt;Output changes with speed, not just distance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jitter&lt;/td&gt;
&lt;td&gt;Tiny unstable movement when the pointer should be still or smooth&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Higher DPI is not automatically more accurate. It often just makes the pointer faster. Higher polling rate lowers the report interval, but only helps if the whole input path is stable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test your own mouse
&lt;/h2&gt;

&lt;p&gt;After you understand the mechanism, the useful question is: how does &lt;em&gt;your&lt;/em&gt; mouse behave on &lt;em&gt;your&lt;/em&gt; surface?&lt;/p&gt;

&lt;p&gt;Use a browser workflow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://keyboardtester.click/mouse-test.php" rel="noopener noreferrer"&gt;Mouse button and scroll test&lt;/a&gt; for left, middle, right, and wheel input&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://keyboardtester.click/mouse_sensitivity_DPI_tester.php" rel="noopener noreferrer"&gt;Mouse DPI tester&lt;/a&gt; for real CPI/DPI&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://keyboardtester.click/polling-rate-test.php" rel="noopener noreferrer"&gt;Mouse polling rate test&lt;/a&gt; for report frequency&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://keyboardtester.click/mouse-lod-test.php" rel="noopener noreferrer"&gt;Mouse lift-off distance test&lt;/a&gt; for LOD behavior&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://keyboardtester.click/mouse-drift-test.php" rel="noopener noreferrer"&gt;Mouse drift test&lt;/a&gt; for unwanted movement at rest&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://keyboardtester.click/mouse-speed-acceleration-test.php" rel="noopener noreferrer"&gt;Mouse acceleration test&lt;/a&gt; for non-linear movement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The short answer: ball mice measure roller movement, optical mice compare surface images, and laser mice are optical-style mice with different illumination. The best modern default is usually a good optical sensor on a good mousepad, while laser or darkfield tracking is useful when the desk surface is the hard part.&lt;/p&gt;

</description>
      <category>hardware</category>
      <category>gaming</category>
      <category>webdev</category>
      <category>tools</category>
    </item>
    <item>
      <title>No Ruler? Your Wallet Is Already a Precision Measuring Tool</title>
      <dc:creator>keyboardTester.Click</dc:creator>
      <pubDate>Tue, 07 Jul 2026 10:59:39 +0000</pubDate>
      <link>https://dev.to/keyboard-testerclick/no-ruler-your-wallet-is-already-a-precision-measuring-tool-364a</link>
      <guid>https://dev.to/keyboard-testerclick/no-ruler-your-wallet-is-already-a-precision-measuring-tool-364a</guid>
      <description>&lt;p&gt;You need to measure something &lt;em&gt;right now&lt;/em&gt; - a parcel, a screw, the gap a cable has to fit through - and the one drawer that should hold a ruler doesn't. Here's the useful part: the things already in your pocket are manufactured to published standard sizes, which makes them measuring references you can trust.&lt;/p&gt;

&lt;p&gt;I wrote the full guide (coins table, paper sizes, phone AR accuracy, the on-screen ruler math) here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://keyboardtester.click/blog/how-to-measure-without-a-ruler.php" rel="noopener noreferrer"&gt;How to Measure Without a Ruler: 8 Accurate Methods&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the compact developer-friendly version.&lt;/p&gt;

&lt;h2&gt;
  
  
  The one number worth memorizing: 85.6 mm
&lt;/h2&gt;

&lt;p&gt;Every payment card on Earth follows &lt;strong&gt;ISO/IEC 7810, format ID-1&lt;/strong&gt;. Credit cards, debit cards, most national IDs and hotel key cards are all exactly:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;85.6 mm x 53.98 mm&lt;/strong&gt; (3.370 x 2.125 in), ~0.76 mm thick, ~3 mm corner radius.&lt;/p&gt;

&lt;p&gt;That makes any wallet a certified gauge. The long edge is a touch over 8.5 cm; the diagonal is about 101 mm (basically 10 cm). To measure with it, count in card units and mark each step with a fingernail: an object two card-lengths long is ~171 mm. Two stacked cards (~1.5 mm) even work as a feeler gauge.&lt;/p&gt;

&lt;p&gt;The card matters for a second reason: it's the reference that lets you calibrate a &lt;em&gt;screen&lt;/em&gt; ruler - more on that below.&lt;/p&gt;

&lt;h2&gt;
  
  
  The reference stack, from exact to rough
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Reference&lt;/th&gt;
&lt;th&gt;Size&lt;/th&gt;
&lt;th&gt;Good for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Bank card (ISO ID-1)&lt;/td&gt;
&lt;td&gt;85.6 x 53.98 mm&lt;/td&gt;
&lt;td&gt;Calibrating everything; objects under ~9 cm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;US quarter&lt;/td&gt;
&lt;td&gt;24.26 mm&lt;/td&gt;
&lt;td&gt;A hair under 1 inch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;US penny&lt;/td&gt;
&lt;td&gt;19.05 mm&lt;/td&gt;
&lt;td&gt;Exactly 0.75 in across&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;€2 coin&lt;/td&gt;
&lt;td&gt;25.75 mm&lt;/td&gt;
&lt;td&gt;~1 inch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Any US bill&lt;/td&gt;
&lt;td&gt;156 x 66.3 mm&lt;/td&gt;
&lt;td&gt;Mid-range lengths&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A4 paper&lt;/td&gt;
&lt;td&gt;210 x 297 mm&lt;/td&gt;
&lt;td&gt;Short edge is exactly 21 cm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Adult thumb&lt;/td&gt;
&lt;td&gt;~1 in / 2.5 cm&lt;/td&gt;
&lt;td&gt;The literal "rule of thumb" - calibrate yours once&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Coins are minted to tight tolerances and wear at the design, not the rim, so old coins still measure true. Line four US quarters edge to edge and you get ~97 mm.&lt;/p&gt;

&lt;h2&gt;
  
  
  The developer-relevant part: "1 cm actual size" is a lie without calibration
&lt;/h2&gt;

&lt;p&gt;If you've ever built a UI and reached for physical units, you already know the trap. CSS defines absolute lengths against an assumed &lt;strong&gt;96 pixels per inch&lt;/strong&gt; - a number inherited from 1990s desktop displays. Real panels range from ~92 PPI (a 24" 1080p monitor) to 160+ (laptops) to 350-500+ (phones).&lt;/p&gt;

&lt;p&gt;So a &lt;code&gt;width: 1cm&lt;/code&gt; box is over 2.5 cm on that office monitor and well under 1 cm on a phone. No web page can render a true centimeter on every screen without measuring the display first. Any "actual size ruler" that skips calibration is guessing.&lt;/p&gt;

&lt;p&gt;The fix is to derive the ruler from a measured &lt;code&gt;pixelsPerMm&lt;/code&gt; instead of a fixed pixel count:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Card overlay is dragged until it matches a real ISO ID-1 card held to the screen.&lt;/span&gt;
&lt;span class="c1"&gt;// cardWidthPx = on-screen width the user matched to the physical card.&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;CARD_MM&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;85.6&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pixelsPerMm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;cardWidthPx&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nx"&gt;CARD_MM&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Now 1 cm is honest on THIS display:&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;oneCmPx&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;pixelsPerMm&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Store &lt;code&gt;pixelsPerMm&lt;/code&gt; in &lt;code&gt;localStorage&lt;/code&gt;, and recalibrate whenever browser zoom, the monitor, or OS display scaling changes - each of those changes how many physical pixels a CSS pixel covers.&lt;/p&gt;

&lt;p&gt;That's exactly what the free &lt;a href="https://keyboardtester.click/online-ruler.php" rel="noopener noreferrer"&gt;on-screen ruler&lt;/a&gt; on our site does: hold a card to the glass, drag until the outline matches, and it reads true to about &lt;strong&gt;±0.5 mm&lt;/strong&gt; for your specific display - in cm or inches, no install.&lt;/p&gt;

&lt;h2&gt;
  
  
  Phone AR apps: fine for furniture, wrong for screws
&lt;/h2&gt;

&lt;p&gt;Apple's Measure app and ARCore-based Android apps lay virtual tape over the camera feed. Treat the output as an &lt;strong&gt;estimate&lt;/strong&gt;: roughly 3-5% error in good light on textured surfaces (a 2 m sofa reads 1.94-2.06 m). Great for rooms and boxes, useless for a 12 mm thread. Measure a span two or three times and only trust it when the attempts agree.&lt;/p&gt;

&lt;h2&gt;
  
  
  Printable rulers: only at 100% scale
&lt;/h2&gt;

&lt;p&gt;PDF rulers work on one non-negotiable condition: the print dialog must be &lt;strong&gt;100% / actual size&lt;/strong&gt;. "Fit to page" silently rescales by several percent, and a ruler that's 5-10% short is worse than none. Verify every printout by laying a card on it - if the card doesn't read 85.6 mm, reprint.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Grab any bank card - it's exactly &lt;strong&gt;85.6 x 53.98 mm&lt;/strong&gt;, everywhere.&lt;/li&gt;
&lt;li&gt;Coins and A4 paper cover the sizes a card is too short for.&lt;/li&gt;
&lt;li&gt;Phone AR is an estimate (~3-5%); printable rulers only work at verified 100%.&lt;/li&gt;
&lt;li&gt;For real cm/mm precision, &lt;a href="https://keyboardtester.click/online-ruler.php" rel="noopener noreferrer"&gt;calibrate a screen ruler&lt;/a&gt; with the card once - it's accurate to about half a millimeter.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Same first-principles trick shows up elsewhere in hardware: measuring your &lt;a href="https://keyboardtester.click/blog/how-to-check-mouse-dpi.php" rel="noopener noreferrer"&gt;actual mouse DPI&lt;/a&gt; is the same idea - move a known distance, count what the sensor reports, calculate the truth.&lt;/p&gt;

&lt;p&gt;Full version with the complete coin/paper tables, the photo-ratio scaling trick and the accuracy breakdown: &lt;a href="https://keyboardtester.click/blog/how-to-measure-without-a-ruler.php" rel="noopener noreferrer"&gt;How to Measure Without a Ruler: 8 Accurate Methods&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>productivity</category>
      <category>tools</category>
    </item>
    <item>
      <title>Stop Copying Pro Deadzone Values - Measure Yours in 10 Seconds</title>
      <dc:creator>keyboardTester.Click</dc:creator>
      <pubDate>Mon, 06 Jul 2026 17:52:18 +0000</pubDate>
      <link>https://dev.to/keyboard-testerclick/stop-copying-pro-deadzone-values-measure-yours-in-10-seconds-1dec</link>
      <guid>https://dev.to/keyboard-testerclick/stop-copying-pro-deadzone-values-measure-yours-in-10-seconds-1dec</guid>
      <description>&lt;p&gt;Every deadzone thread ends the same way: someone posts the values their favorite pro uses, everyone copies them, and half the copiers end up with either a camera that pans on its own or aim that feels like it wades through mud.&lt;/p&gt;

&lt;p&gt;Both failures come from the same mistake: &lt;strong&gt;a deadzone is a measurement, not a preference.&lt;/strong&gt; The right value depends on how much &lt;em&gt;your&lt;/em&gt; stick moves when you are not touching it - and that is a number you can record in about 10 seconds.&lt;/p&gt;

&lt;p&gt;I published the full guide (value tables, per-game settings locations, outer deadzone, Hall effect vs TMR) here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://keyboardtester.click/blog/controller-deadzone-explained-test-best-settings.php" rel="noopener noreferrer"&gt;Controller Deadzone Explained: Test Yours &amp;amp; Best Settings&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the compact version.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a deadzone actually is
&lt;/h2&gt;

&lt;p&gt;Analog sticks report a position between -1 and +1 on each axis, and they are never perfectly quiet. Even a brand-new stick rests at something like 0.01-0.03 instead of exactly zero, because potentiometer sticks read position through a resistive wiper that always carries a little electrical noise.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;deadzone&lt;/strong&gt; tells the game to treat everything inside a threshold as "not moving." Four terms cover almost every settings screen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inner deadzone&lt;/strong&gt; - the circle around center where input is ignored. This is the drift-masking control, and the one worth tuning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Outer deadzone&lt;/strong&gt; - the rim threshold where the game reads "100% deflection." Tightening it helps a worn stick that never quite reaches full range.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Axial vs radial&lt;/strong&gt; - radial clips the stick vector by distance from center; axial clips each axis separately, which can snap subtle diagonals onto straight lines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deadzone vs response curve&lt;/strong&gt; - the deadzone decides &lt;em&gt;when&lt;/em&gt; input starts counting; the curve decides &lt;em&gt;how fast&lt;/em&gt; it ramps up after that. If aim feels wrong mid-travel rather than near center, tune the curve instead.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Measure it instead of guessing
&lt;/h2&gt;

&lt;p&gt;The measurement takes a minute in any browser via the Gamepad API - no game restarts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Connect the controller (USB or Bluetooth), open the &lt;a href="https://keyboardtester.click/gamepad-test.php" rel="noopener noreferrer"&gt;controller deadzone test&lt;/a&gt;, and press any button - browsers only expose a gamepad after a real input.&lt;/li&gt;
&lt;li&gt;Put the controller on a flat surface, take both thumbs off the sticks, and run the timed 10-second drift test. Recording resting magnitude over several seconds gives a stable verdict instead of a flickering live number.&lt;/li&gt;
&lt;li&gt;Read the verdict. At or below 0.05 at rest, the stick is healthy. Between 0.05 and 0.12 it reports mild drift and suggests the deadzone that would mask it - about 1.3x what it recorded. Above 0.12 it still suggests a value, but flags the stick for repair.&lt;/li&gt;
&lt;li&gt;Preview the suggestion with the on-page slider: the resting dot should sit inside the deadzone ring and the readout should hold at zero. That is your number.&lt;/li&gt;
&lt;li&gt;Write it down as a percentage (0.07 = 7%) and carry it into your game's deadzone slider.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The slider in the tester is a sandbox applied to the tool's own readouts - it does not change your controller, OS, or any game. The value that affects gameplay lives in each game's settings.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a good value?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Situation&lt;/th&gt;
&lt;th&gt;Starting value&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Healthy stick (rest &amp;lt;= 0.05)&lt;/td&gt;
&lt;td&gt;~0.05 (5%)&lt;/td&gt;
&lt;td&gt;Swallows sensor noise without delaying real input&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mild drift (0.05-0.12 at rest)&lt;/td&gt;
&lt;td&gt;The drift test's suggestion&lt;/td&gt;
&lt;td&gt;~1.3x resting drift - silences it with the least responsiveness lost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heavy drift (above 0.12)&lt;/td&gt;
&lt;td&gt;Suggested value, short-term only&lt;/td&gt;
&lt;td&gt;Near 0.20+ fine aim goes mushy; the module is worn&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Competitive shooters&lt;/td&gt;
&lt;td&gt;Smallest value that stays silent at rest&lt;/td&gt;
&lt;td&gt;Every extra percent delays when a micro-flick registers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Two things people get wrong:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A bigger deadzone does not add input lag.&lt;/strong&gt; It is a distance threshold, not a delay - nothing is buffered. It can still &lt;em&gt;feel&lt;/em&gt; slower because the stick must travel further before the game sees anything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A deadzone never fixes drift permanently.&lt;/strong&gt; It masks the false input while the wear keeps progressing. A stick that needed 0.08 in spring may need 0.15 by autumn. If the suggestion keeps climbing month over month, it is time for a stick-module repair or a Hall-effect/TMR controller - contactless sticks rest near zero for years, which is why new enthusiast pads advertise "zero deadzone" at all.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where the setting actually lives
&lt;/h2&gt;

&lt;p&gt;There is no single deadzone switch. Consoles mostly leave it to each game; PC adds system-wide layers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fortnite:&lt;/strong&gt; Settings &amp;gt; Controller &amp;gt; Sensitivity (separate left/right stick percentages)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CoD/Warzone:&lt;/strong&gt; Settings &amp;gt; Controller &amp;gt; Gameplay (min slider = the drift-masking one)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rocket League:&lt;/strong&gt; Settings &amp;gt; Controls (numeric, default 0.50, plus a separate dodge deadzone)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Steam (any PC game):&lt;/strong&gt; Steam Input per-game controller layout - custom inner &lt;em&gt;and&lt;/em&gt; outer deadzone per stick&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PS5:&lt;/strong&gt; only the DualSense Edge exposes deadzones (custom profiles); the standard DualSense has no console-wide setting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Switch:&lt;/strong&gt; no deadzone setting - but stick recalibration re-centers the stick, which often removes the false input directly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One warning: &lt;strong&gt;layers stack.&lt;/strong&gt; If Steam Input applies a deadzone and the game applies its own on top, the pad feels far number than either value suggests. Pick one layer to own the deadzone - usually the game's slider - and zero the rest.&lt;/p&gt;

&lt;h2&gt;
  
  
  The forgotten half: outer deadzone
&lt;/h2&gt;

&lt;p&gt;Worn sticks also fail at the rim: left/right reach full speed but diagonals never quite hit 100%, so sprint stutters only on angled input. You can see this with a circularity sweep in the same &lt;a href="https://keyboardtester.click/gamepad-test.php" rel="noopener noreferrer"&gt;browser gamepad tester&lt;/a&gt; - hold full deflection and rotate a complete circle. 0-5% error is excellent (typical of Hall-effect sticks), 8-15% is normal for stock DualSense/Xbox pads, 15-20%+ points at a worn module. If corners fall short, lower the game's outer deadzone so full output triggers before the physical rim.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Hands off the sticks, run a &lt;a href="https://keyboardtester.click/gamepad-test.php" rel="noopener noreferrer"&gt;10-second drift test&lt;/a&gt; in the browser.&lt;/li&gt;
&lt;li&gt;Healthy stick: keep ~0.05. Drifting stick: set just above your measured resting drift (~1.3x).&lt;/li&gt;
&lt;li&gt;Enter that number in the game (or Steam Input) - one layer only.&lt;/li&gt;
&lt;li&gt;If the number keeps growing, stop tuning and fix the hardware - the &lt;a href="https://keyboardtester.click/blog/controller-stick-drift-test-ps5-xbox-switch.php" rel="noopener noreferrer"&gt;stick drift guide&lt;/a&gt; covers cleaning, recalibration, and repair-vs-RMA.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Full version with the per-game table, anti-deadzone, and the Hall effect/TMR explanation: &lt;a href="https://keyboardtester.click/blog/controller-deadzone-explained-test-best-settings.php" rel="noopener noreferrer"&gt;Controller Deadzone Explained: Test Yours &amp;amp; Best Settings&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>gaming</category>
      <category>hardware</category>
    </item>
    <item>
      <title>Why Is the Keyboard QWERTY? The Real History Behind the Layout</title>
      <dc:creator>keyboardTester.Click</dc:creator>
      <pubDate>Sun, 05 Jul 2026 08:33:54 +0000</pubDate>
      <link>https://dev.to/keyboard-testerclick/why-is-the-keyboard-qwerty-the-real-history-behind-the-layout-98</link>
      <guid>https://dev.to/keyboard-testerclick/why-is-the-keyboard-qwerty-the-real-history-behind-the-layout-98</guid>
      <description>&lt;p&gt;Most people use a keyboard every day without asking why the first six letters are &lt;strong&gt;QWERTY&lt;/strong&gt; instead of A, B, C, D.&lt;/p&gt;

&lt;p&gt;The short answer is not the old myth that QWERTY was designed only to slow typists down. The better answer is more practical: early typewriter mechanics, telegraph-operator feedback, Remington's commercial success, trained typists, office habits, and later computer compatibility all reinforced the same layout until replacing it became expensive.&lt;/p&gt;

&lt;p&gt;I published the full researched guide here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://keyboardtester.click/blog/why-is-the-keyboard-qwerty-history-layouts-testing.php" rel="noopener noreferrer"&gt;Why Is the Keyboard QWERTY? History, Layouts &amp;amp; Testing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the compact version.&lt;/p&gt;

&lt;h2&gt;
  
  
  The keyboard started as a typewriter control
&lt;/h2&gt;

&lt;p&gt;Before it was a computer accessory, the keyboard was the control surface of a mechanical writing machine.&lt;/p&gt;

&lt;p&gt;Early typewriters had to solve very physical problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to choose a letter&lt;/li&gt;
&lt;li&gt;how to strike ink onto paper&lt;/li&gt;
&lt;li&gt;how to move the paper&lt;/li&gt;
&lt;li&gt;how to keep nearby metal typebars from interfering with each other&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Christopher Latham Sholes, Carlos Glidden, Samuel Soule, and collaborators worked on early typewriter designs in the 1860s. Their work did not instantly produce the modern keyboard, but it created the commercial path that led to QWERTY.&lt;/p&gt;

&lt;h2&gt;
  
  
  The QWERTY myth is too simple
&lt;/h2&gt;

&lt;p&gt;The popular story says QWERTY was created to slow typists down so typewriters would not jam.&lt;/p&gt;

&lt;p&gt;That is not a good one-sentence history.&lt;/p&gt;

&lt;p&gt;Yes, early mechanisms mattered. But a layout that made everyone slow would not have been useful in a real office. The Computer History Museum explains the point more carefully: QWERTY helped speed typing by limiting interference between keys commonly struck in sequence.&lt;/p&gt;

&lt;p&gt;Smithsonian also notes that telegraph operators may have influenced the layout. Early users were not just typing prose; some were transcribing code and needed practical key positions for their work.&lt;/p&gt;

&lt;p&gt;Then Remington mattered. Once Remington machines, typing schools, office training, and hiring practices grew around QWERTY, the layout had a network effect. Businesses wanted machines that matched trained typists. Typists wanted jobs on machines they already knew.&lt;/p&gt;

&lt;p&gt;That is how a design choice becomes a standard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Computers inherited typewriter habits
&lt;/h2&gt;

&lt;p&gt;Modern keyboards still carry typewriter language:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shift&lt;/strong&gt; comes from shifting the type mechanism for uppercase letters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Return&lt;/strong&gt; comes from carriage return.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tab&lt;/strong&gt; comes from tabulation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Caps Lock&lt;/strong&gt; descends from mechanical shift-lock behavior.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Early computers did not begin with friendly keyboards. Many workflows used punched cards, paper tape, and batch processing. Direct keyboard input became important as computers became interactive.&lt;/p&gt;

&lt;p&gt;By the time teletypes, electric typewriters, terminals, and the IBM PC shaped mainstream computing, QWERTY was already the familiar default. The keyboard was no longer only for letters; it became a command interface for shortcuts, navigation, games, software, and operating systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  QWERTY is dominant, but not universal
&lt;/h2&gt;

&lt;p&gt;Other layouts exist for good reasons.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dvorak&lt;/strong&gt; was designed in the 1930s to reduce finger travel and put more common letters on the home row. &lt;strong&gt;Colemak&lt;/strong&gt; changes fewer keys than Dvorak and keeps more shortcut familiarity.&lt;/p&gt;

&lt;p&gt;Regional layouts adapted QWERTY for local languages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AZERTY in many French-speaking regions&lt;/li&gt;
&lt;li&gt;QWERTZ in many German-speaking regions&lt;/li&gt;
&lt;li&gt;Arabic, Japanese, Korean, Russian, and other layouts with input methods, native legends, or script-specific behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is why keyboard testing should respect both the physical keyboard and the active OS layout.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to test the keyboard in front of you
&lt;/h2&gt;

&lt;p&gt;The practical endpoint of keyboard history is your current hardware.&lt;/p&gt;

&lt;p&gt;Start with the &lt;a href="https://keyboardtester.click/" rel="noopener noreferrer"&gt;free Keyboard Tester&lt;/a&gt;. Press every key once and confirm that the browser sees it. Then branch out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use the &lt;a href="https://keyboardtester.click/keyboard_tester_different_languages.php" rel="noopener noreferrer"&gt;language keyboard tester hub&lt;/a&gt; for non-English layouts.&lt;/li&gt;
&lt;li&gt;Use the &lt;a href="https://keyboardtester.click/keyboard-shortcut-identifier.php" rel="noopener noreferrer"&gt;Keyboard Shortcut Identifier&lt;/a&gt; for modifier and command behavior.&lt;/li&gt;
&lt;li&gt;Use the &lt;a href="https://keyboardtester.click/key-repeat-rate-test.php" rel="noopener noreferrer"&gt;Key Repeat Rate Test&lt;/a&gt; if held keys repeat too quickly or too slowly.&lt;/li&gt;
&lt;li&gt;Use the &lt;a href="https://keyboardtester.click/keyboard-sound-test.php" rel="noopener noreferrer"&gt;Keyboard Sound Test&lt;/a&gt; if you want to compare switch noise or detect chatter clues.&lt;/li&gt;
&lt;li&gt;Use the &lt;a href="https://keyboardtester.click/keyboard-polling-rate-test.php" rel="noopener noreferrer"&gt;Keyboard Polling Rate Test&lt;/a&gt; when gaming timing claims matter.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Old typewriters jammed metal arms. Modern keyboards fail in different ways: ghosting limits, switch chatter, wireless delay, debounce behavior, repeat settings, firmware bugs, or worn stabilizers.&lt;/p&gt;

&lt;p&gt;QWERTY is inherited. Reliability is something you can test.&lt;/p&gt;

&lt;p&gt;Full guide and source notes:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://keyboardtester.click/blog/why-is-the-keyboard-qwerty-history-layouts-testing.php" rel="noopener noreferrer"&gt;Why Is the Keyboard QWERTY? History, Layouts &amp;amp; Testing&lt;/a&gt;&lt;/p&gt;

</description>
      <category>keyboard</category>
      <category>history</category>
      <category>qwerty</category>
      <category>hardware</category>
    </item>
    <item>
      <title>Why Does My Monitor Look Blurry? The 5 Real Causes (with a Live In-Browser Sharpness Test)</title>
      <dc:creator>keyboardTester.Click</dc:creator>
      <pubDate>Sat, 04 Jul 2026 08:26:34 +0000</pubDate>
      <link>https://dev.to/keyboard-testerclick/why-does-my-monitor-look-blurry-the-5-real-causes-with-a-live-in-browser-sharpness-test-2eoc</link>
      <guid>https://dev.to/keyboard-testerclick/why-does-my-monitor-look-blurry-the-5-real-causes-with-a-live-in-browser-sharpness-test-2eoc</guid>
      <description>&lt;p&gt;Your text looks soft. Edges look gritty. The whole screen seems very slightly out of focus, like someone smeared a thin layer of Vaseline over it. Before you RMA the panel: it is almost certainly not broken. In the overwhelming majority of cases a &lt;strong&gt;setting between your GPU and your pixels is off&lt;/strong&gt;, and the display is being forced to interpolate.&lt;/p&gt;

&lt;p&gt;I wrote the full walkthrough here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://keyboardtester.click/blog/why-is-my-monitor-blurry-sharpness-scaling-oled-fringing.php" rel="noopener noreferrer"&gt;Why Does My Monitor Look Blurry? Scaling, Resolution &amp;amp; OLED Text Fringing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is the honest short version, with the five real causes and how to confirm each one by eye.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 5 real reasons a monitor looks blurry
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;You are not on native resolution.&lt;/strong&gt; An LCD/OLED has one physical grid of pixels. Feed it any other resolution and it has to scale, smearing every edge. This is the single most common cause.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wrong OS / DPI scaling.&lt;/strong&gt; Native resolution but a scaling factor (125%, 150%) that forces the OS to resample UI and text. Fractional scaling on some platforms is especially soft.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The monitor is over-sharpening.&lt;/strong&gt; Many monitors ship with a Sharpness OSD setting cranked well above neutral, adding fake haloed edges that read as "gritty" rather than "crisp."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chroma subsampling / cable bandwidth.&lt;/strong&gt; When the signal drops to 4:2:2 or 4:2:0 instead of 4:4:4 (often a cable or refresh-rate bandwidth limit), colored text and fine edges get fuzzy while photos still look fine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OLED text fringing.&lt;/strong&gt; Many OLEDs use a non-RGB sub-pixel layout (RGBW, triangular, or diamond). Text renderers that assume vertical RGB stripes then add colored fringes on the edges of letters. It is a layout quirk, not a dead panel.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The fastest first move: look, do not guess
&lt;/h2&gt;

&lt;p&gt;The quickest way to narrow it down is to put a known-good reference pattern on the screen and &lt;em&gt;look&lt;/em&gt; at it. I built a free, no-install one for exactly this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://keyboardtester.click/monitor-sharpness-test.php" rel="noopener noreferrer"&gt;Monitor Sharpness Test&lt;/a&gt;&lt;/strong&gt; renders a 1-pixel grid, a color-fringing panel, and a sub-pixel ruler right in the browser.&lt;/p&gt;

&lt;p&gt;One thing I want to be straight about, because it changes how you use it: &lt;strong&gt;this test is not a meter.&lt;/strong&gt; It does not read your resolution, it has no sharpness number, no DPR readout, and no score. What it gives you is a reference your eyes can judge:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If the &lt;strong&gt;1px grid&lt;/strong&gt; shimmers, shows moire, or looks uneven, you are almost certainly being scaled (cause 1 or 2).&lt;/li&gt;
&lt;li&gt;If you see &lt;strong&gt;red/green fringing&lt;/strong&gt; on high-contrast edges, that is the chroma-subsampling or OLED sub-pixel pattern (cause 4 or 5).&lt;/li&gt;
&lt;li&gt;If edges look &lt;strong&gt;haloed and over-crunchy&lt;/strong&gt;, suspect the monitor's Sharpness OSD (cause 3).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then you go fix the actual setting where it lives — confirm &lt;strong&gt;native resolution and scaling in your OS Display settings&lt;/strong&gt;, drop the monitor &lt;strong&gt;Sharpness toward neutral&lt;/strong&gt;, check your &lt;strong&gt;cable/refresh combo&lt;/strong&gt; for 4:4:4 — and come back to the grid to verify the fix by eye. The tool shows you &lt;em&gt;where&lt;/em&gt; the blur is; your OS is where you &lt;em&gt;fix&lt;/em&gt; it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The OLED question everyone asks
&lt;/h2&gt;

&lt;p&gt;"Is OLED text fringing a defect?" Almost never. It is the predictable result of a non-standard sub-pixel layout meeting a text renderer that expects vertical RGB stripes. You usually cannot eliminate it, but you can reduce it: match native resolution, avoid fractional scaling, and on some systems adjust text anti-aliasing/ClearType. The &lt;a href="https://keyboardtester.click/color-test.php" rel="noopener noreferrer"&gt;color test patterns&lt;/a&gt; help you separate a sub-pixel fringe (follows edges) from an actual panel problem.&lt;/p&gt;

&lt;p&gt;While you have the diagnostics open, two more are worth a pass so you are not chasing the wrong ghost:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://keyboardtester.click/blog/dead-pixel-test-check-monitor.php" rel="noopener noreferrer"&gt;Dead Pixel Test&lt;/a&gt; — rule out a stuck/dead pixel that a soft image can hide.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://keyboardtester.click/blog/blacks-look-gray-on-monitor-rgb-range-fix.php" rel="noopener noreferrer"&gt;Blacks look gray?&lt;/a&gt; — the RGB-range (Full vs Limited) fix, which is a &lt;em&gt;different&lt;/em&gt; washed-out symptom people confuse with blur.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://keyboardtester.click/blog/oled-burn-in-test-image-retention-vs-permanent.php" rel="noopener noreferrer"&gt;OLED Burn-In Test&lt;/a&gt; — if it is an OLED and part of the image is faint, that is retention, not focus.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quick takeaway
&lt;/h2&gt;

&lt;p&gt;A blurry monitor is a settings problem far more often than a hardware one. Walk the five causes in order — native resolution, OS scaling, monitor sharpness, chroma/bandwidth, OLED sub-pixel — and use a reference grid so you are judging with your eyes instead of guessing. Fix the setting, re-check the grid, done.&lt;/p&gt;

&lt;p&gt;Full guide: &lt;a href="https://keyboardtester.click/blog/why-is-my-monitor-blurry-sharpness-scaling-oled-fringing.php" rel="noopener noreferrer"&gt;Why Does My Monitor Look Blurry? Scaling, Resolution &amp;amp; OLED Text Fringing&lt;/a&gt;&lt;/p&gt;

</description>
      <category>monitor</category>
      <category>display</category>
      <category>oled</category>
      <category>troubleshooting</category>
    </item>
    <item>
      <title>Jitter Click vs Butterfly Click: Which Is Faster (and Which Gets You Banned)?</title>
      <dc:creator>keyboardTester.Click</dc:creator>
      <pubDate>Tue, 30 Jun 2026 19:07:10 +0000</pubDate>
      <link>https://dev.to/keyboard-testerclick/jitter-click-vs-butterfly-click-which-is-faster-and-which-gets-you-banned-4ca9</link>
      <guid>https://dev.to/keyboard-testerclick/jitter-click-vs-butterfly-click-which-is-faster-and-which-gets-you-banned-4ca9</guid>
      <description>&lt;p&gt;If you want a higher CPS for PvP, you eventually hit the same fork in the road: &lt;strong&gt;jitter click or butterfly click?&lt;/strong&gt; One vibrates a tensed arm to fire a single button fast, the other alternates two fingers across the same button. They reach different speeds, cost you different things, and carry different anti-cheat risk.&lt;/p&gt;

&lt;p&gt;I wrote the full breakdown here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://keyboardtester.click/blog/jitter-click-vs-butterfly-click-which-is-faster.php" rel="noopener noreferrer"&gt;Jitter Click vs Butterfly Click: Which Is Faster (and Which Gets You Banned)?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is the short, honest version.&lt;/p&gt;

&lt;h2&gt;
  
  
  The two techniques in one paragraph each
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Jitter clicking&lt;/strong&gt; holds roughly &lt;strong&gt;10-14 CPS&lt;/strong&gt; by tensing your forearm and wrist so the muscle tremor presses the button very fast. It is a single-finger technique, so it leaves your aim hand doing two jobs at once - and that is exactly why aim tends to shake while you jitter. It is also the most RSI-adjacent of the fast-clicking styles; if your wrist hurts, stop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Butterfly clicking&lt;/strong&gt; commonly sustains &lt;strong&gt;15-25 CPS&lt;/strong&gt; by alternating two fingers on the same mouse button. It is faster and usually steadier for aim because the clicking work is spread across two fingers instead of a whole tensed arm. The trade is that some mice register the rapid alternation as a &lt;em&gt;double click&lt;/em&gt;, which can both inflate your real CPS and look suspicious to anti-cheat.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which is actually faster?
&lt;/h2&gt;

&lt;p&gt;Butterfly, on raw CPS. Two alternating fingers beat one vibrating finger almost every time, and the 15-25 range sits clearly above jitter's 10-14. But "faster on a counter" is not the same as "better in a fight." Jitter keeps one finger free; butterfly can desync your double-click and your aim if your mouse debounces aggressively.&lt;/p&gt;

&lt;p&gt;The honest answer is: &lt;strong&gt;measure both on your own hand and your own mouse.&lt;/strong&gt; Open the &lt;a href="https://keyboardtester.click/mouse_speed_tester.php" rel="noopener noreferrer"&gt;click speed tester&lt;/a&gt;, run a timed 10-second test jittering, then run another butterflying, and compare your real CPS, peak CPS, and how consistent each run is. The numbers people quote online are not your numbers.&lt;/p&gt;

&lt;h2&gt;
  
  
  The ban question (this is the part people get wrong)
&lt;/h2&gt;

&lt;p&gt;The technique itself is usually fine. On most major servers, including Hypixel, &lt;strong&gt;jitter and butterfly clicking by hand are allowed.&lt;/strong&gt; What gets you banned is automation: &lt;strong&gt;autoclickers, click macros, and any tool that turns one physical input into many outputs&lt;/strong&gt; are against the rules basically everywhere.&lt;/p&gt;

&lt;p&gt;The grey zone is sustained speed. Hypixel's Watchdog can flag long stretches above roughly &lt;strong&gt;20 CPS&lt;/strong&gt;, and butterfly clicking that registers as machine-gun double clicks can look like an autoclicker even when you are clicking legitimately. Practical guidance: keep ranked clicking under ~20 CPS, never run software that multiplies clicks, and if your mouse is double-firing, fix the hardware rather than risk the flag.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make sure your CPS is real, not a faulty switch
&lt;/h2&gt;

&lt;p&gt;A high butterfly number can be a lie. Worn or bouncing switches &lt;strong&gt;double-fire&lt;/strong&gt; - one physical click registers as two a few milliseconds apart - which pads your CPS with presses you never made and is exactly the pattern anti-cheat hates.&lt;/p&gt;

&lt;p&gt;Before you trust a big number, run the &lt;a href="https://keyboardtester.click/ghost-click-detector.php" rel="noopener noreferrer"&gt;ghost click detector&lt;/a&gt; to see whether single clicks are silently registering as doubles. If they are, that is a switch problem, not a skill stat.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where this fits with the rest of CPS
&lt;/h2&gt;

&lt;p&gt;Fast clicking is a small family of techniques. There is a third one worth knowing: the &lt;a href="https://keyboardtester.click/blog/drag-click-test-low-cps-fix.php" rel="noopener noreferrer"&gt;drag click guide&lt;/a&gt; explains how some mice reach 20+ CPS in a single swipe across the button. If you are benchmarking generally, the &lt;a href="https://keyboardtester.click/blog/click-speed-test-measure-cps.php" rel="noopener noreferrer"&gt;click speed test guide&lt;/a&gt; is the parent overview, the &lt;a href="https://keyboardtester.click/blog/right-click-cps-test-why-right-click-is-slower.php" rel="noopener noreferrer"&gt;right click CPS test&lt;/a&gt; explains why your secondary button is slower, and the keyboard side lives in the &lt;a href="https://keyboardtester.click/blog/keyboard-cps-test-how-fast-can-you-press-spacebar.php" rel="noopener noreferrer"&gt;keyboard CPS test&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick takeaway
&lt;/h2&gt;

&lt;p&gt;Butterfly clicking is faster (15-25 CPS) than jitter clicking (10-14 CPS) and usually kinder to your aim, but it is the one more likely to read as double clicks. By hand, both are allowed on major servers; autoclickers and macros are not, and sustained 20+ CPS can trip detection. Measure your own clean CPS, confirm there is no chatter, and pick the style your hand and your mouse can hold honestly.&lt;/p&gt;

&lt;p&gt;Full guide: &lt;a href="https://keyboardtester.click/blog/jitter-click-vs-butterfly-click-which-is-faster.php" rel="noopener noreferrer"&gt;Jitter Click vs Butterfly Click: Which Is Faster (and Which Gets You Banned)?&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gaming</category>
      <category>minecraft</category>
      <category>tools</category>
      <category>mouse</category>
    </item>
    <item>
      <title>How to Change Your Mouse DPI Without Losing Your Aim</title>
      <dc:creator>keyboardTester.Click</dc:creator>
      <pubDate>Tue, 30 Jun 2026 16:00:09 +0000</pubDate>
      <link>https://dev.to/keyboard-testerclick/how-to-change-your-mouse-dpi-without-losing-your-aim-1lej</link>
      <guid>https://dev.to/keyboard-testerclick/how-to-change-your-mouse-dpi-without-losing-your-aim-1lej</guid>
      <description>&lt;p&gt;Original full guide: &lt;a href="https://keyboardtester.click/blog/change-mouse-dpi-without-losing-aim.php" rel="noopener noreferrer"&gt;How to change your mouse DPI without losing your aim&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Changing mouse DPI is easy. Keeping your aim after the change is the part people get wrong.&lt;/p&gt;

&lt;p&gt;The mistake is treating DPI as a magic performance setting. DPI only describes how many counts the mouse reports for each inch of physical movement. If you raise DPI without adjusting in-game sensitivity, the same hand movement moves the crosshair farther. That feels like "my aim is broken" even when the mouse is working normally.&lt;/p&gt;

&lt;p&gt;The practical fix is to preserve your effective sensitivity.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Rule
&lt;/h2&gt;

&lt;p&gt;Use this formula:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;old DPI x old sensitivity = new DPI x new sensitivity
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;new sensitivity = old DPI x old sensitivity / new DPI
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Old DPI: 800&lt;/li&gt;
&lt;li&gt;Old in-game sensitivity: 1.50&lt;/li&gt;
&lt;li&gt;New DPI: 1600
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;800 x 1.50 / 1600 = 0.75
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you move from 800 DPI at 1.50 sensitivity to 1600 DPI at 0.75 sensitivity, your eDPI stays the same. Your hand travel should feel much closer to the old setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;Many players switch mouse settings for the wrong reason:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A guide says 1600 DPI has lower latency.&lt;/li&gt;
&lt;li&gt;A new mouse defaults to a different DPI step.&lt;/li&gt;
&lt;li&gt;A game profile resets after reinstalling.&lt;/li&gt;
&lt;li&gt;Windows pointer speed was changed by accident.&lt;/li&gt;
&lt;li&gt;A mouse app silently applies a profile.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result is usually the same: the cursor or crosshair feels too fast, too slow, or inconsistent.&lt;/p&gt;

&lt;p&gt;Before you retrain your aim, convert the sensitivity first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Workflow
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Write down your current mouse DPI.&lt;/li&gt;
&lt;li&gt;Write down your current in-game sensitivity.&lt;/li&gt;
&lt;li&gt;Pick the new DPI.&lt;/li&gt;
&lt;li&gt;Calculate the matching new sensitivity.&lt;/li&gt;
&lt;li&gt;Test the same physical swipe on your desk.&lt;/li&gt;
&lt;li&gt;Only then fine-tune for comfort.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can do the conversion with the &lt;a href="https://keyboardtester.click/mouse-dpi-calculator.php" rel="noopener noreferrer"&gt;mouse DPI calculator&lt;/a&gt; or the &lt;a href="https://keyboardtester.click/edpi-calculator.php" rel="noopener noreferrer"&gt;eDPI calculator&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you are not sure what DPI your mouse is actually using, run a physical check with the &lt;a href="https://keyboardtester.click/mouse_sensitivity_DPI_tester.php" rel="noopener noreferrer"&gt;mouse DPI tester&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do Not Ignore Windows Settings
&lt;/h2&gt;

&lt;p&gt;For desktop use, Windows pointer speed can also change how the cursor feels. For games, behavior depends on the game engine. Some games use raw mouse input, while others may still be affected by OS pointer settings.&lt;/p&gt;

&lt;p&gt;That is why I would not change everything at once.&lt;/p&gt;

&lt;p&gt;Change one layer, test it, then move to the next:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;mouse hardware DPI&lt;/li&gt;
&lt;li&gt;mouse vendor software profile&lt;/li&gt;
&lt;li&gt;Windows pointer speed&lt;/li&gt;
&lt;li&gt;in-game sensitivity&lt;/li&gt;
&lt;li&gt;raw input setting, if the game has one&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you change three of those at the same time, you will not know which one caused the problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  What To Test After The Change
&lt;/h2&gt;

&lt;p&gt;After converting DPI and sensitivity, do a short practical test instead of jumping straight into ranked matches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;move the mouse across the same desk distance as before&lt;/li&gt;
&lt;li&gt;check whether a 180-degree turn still lands naturally&lt;/li&gt;
&lt;li&gt;try small target corrections&lt;/li&gt;
&lt;li&gt;test tracking on a moving target&lt;/li&gt;
&lt;li&gt;play one unranked round before committing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your aim still feels off, do not immediately blame DPI. Also check mouse acceleration, polling rate, surface friction, and whether the game has separate scoped sensitivity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Good DPI Ranges
&lt;/h2&gt;

&lt;p&gt;There is no universal best DPI.&lt;/p&gt;

&lt;p&gt;For many players:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;400 to 800 DPI feels stable for low-sensitivity FPS setups.&lt;/li&gt;
&lt;li&gt;800 to 1600 DPI is a practical middle range.&lt;/li&gt;
&lt;li&gt;1600+ DPI can work well if you lower in-game sensitivity to keep eDPI controlled.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The best value is the one that gives you consistent physical control, not the largest number on the mouse box.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Takeaway
&lt;/h2&gt;

&lt;p&gt;Do not rebuild your aim every time you change DPI.&lt;/p&gt;

&lt;p&gt;Keep the relationship between DPI and sensitivity stable, verify the real setting, and test one layer at a time. That gives you a cleaner switch and a much better chance of keeping the muscle memory you already built.&lt;/p&gt;

&lt;p&gt;Full guide with examples, calculator links, and troubleshooting notes:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://keyboardtester.click/blog/change-mouse-dpi-without-losing-aim.php" rel="noopener noreferrer"&gt;How to change your mouse DPI without losing your aim&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mouse</category>
      <category>gaming</category>
      <category>productivity</category>
      <category>tools</category>
    </item>
  </channel>
</rss>
