{"id":61,"date":"2024-07-04T00:39:28","date_gmt":"2024-07-04T00:39:28","guid":{"rendered":"https:\/\/paulhansel.com\/?p=61"},"modified":"2026-03-09T04:37:33","modified_gmt":"2026-03-09T04:37:33","slug":"popping-the-tire-pressure-monitoring-relearn-tool-bubble","status":"publish","type":"post","link":"https:\/\/paulhansel.com\/?p=61","title":{"rendered":"Popping the tire pressure monitoring relearn tool bubble"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>[2026-03-01]: Ever thought about how these could be used for surveillance? These guys did! <a href=\"https:\/\/www.darkreading.com\/ics-ot-security\/tire-pressure-sensors-silent-tracking\">https:\/\/www.darkreading.com\/ics-ot-security\/tire-pressure-sensors-silent-tracking<\/a><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>[2024-07-06: Updated to include simulation results and more scope traces.]<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you own a car, you\u2019ve no doubt encountered this mystery at least once. The tire pressure monitoring system tells you your flat tire is on the driver\u2019s side front, but it\u2019s actually on the passenger side rear.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is a relatively modern car ownership pain point. The law that mandated tire pressure sensors be installed on every passenger car was <a href=\"https:\/\/www.schradertpms.com\/en\/driver-education\/everything-you-need-know-about-tread-act\">only passed in 2007<\/a>. Before then, only upmarket cars had tire pressure sensors, and they were often based on tire rotation rate. [A tire low on air will have a slightly smaller radius, so it\u2019ll try to spin faster than other tires.] Congress decided that the national rate of accidents due to tire blowouts was too high, so they asked Detroit to do something or face fines.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Such was the birth of Tire Pressure Monitoring Systems, or TPMS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Today\u2019s typical solution is simple and cheap: exactly what a struggling auto OEM needs to hit the compliance goal. It\u2019s almost an exact copy-paste of the technology found in fobs used for keyless door unlocking \u2013 but instead of four variously placed active RF sensors for the fob, there\u2019s just one transceiver for the whole TPMS.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><br>&#8212;&#8212;<\/td><td>Wireless key fob system<\/td><td>Tire pressure sensor system<\/td><\/tr><tr><td>Easily replaceable battery?<\/td><td>Yup<\/td><td>Not for most people<\/td><\/tr><tr><td>315 or 433 MHz wireless system-on-chip?<\/td><td>Check<\/td><td>Check<\/td><\/tr><tr><td>Encryption &amp; key exchange?<\/td><td>Check<\/td><td>No need!<\/td><\/tr><tr><td>Atmospheric pressure sensor<\/td><td>Nope<\/td><td>Check<\/td><\/tr><tr><td>Time of flight proximity sensor<\/td><td>Check<\/td><td>Nope<\/td><\/tr><tr><td>Integrated re-learn feature<\/td><td>Check<\/td><td>Nope<\/td><\/tr><tr><td>Battery lifetime<\/td><td>3 years<\/td><td>5-10 years<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Table of qualities contrasting tire pressure monitoring systems with keyless security systems.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">We return to the mystery of today. Why does a supercomputer with a million times the processing power of the Apollo guidance system \u2013 my car \u2013 put all the tire pressures in the wrong position? As a driver highly concerned about safety, I\u2019d rather know which tire has an all-too-hip stainless steel straw in its  inner sidewall without having to look under each wheel on the shoulder of I-95.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There\u2019s an easy answer: the tire guy decided not to bother reprogramming the tire pressure sensor map because most of his customers don\u2019t bother reading it and would never notice. Few time managers would allocate 10 minutes of a 45 minute job where you\u2019re only making $10-20 to do something 99% of your customers don\u2019t want. Trying to track down a slow leak when the tire map is all mixed up is almost pointless, but most consumers don\u2019t bother \u2013 they just drive until the slow leak is a fast leak, and only then get the tire replaced.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I reasoned that having a mismatched TPMS map doesn\u2019t really affect my car\u2019s safety or usability. People drove for more than 50 years without these sensors at all, let alone a perfect map of which tires were at which pressure. If most people only find it useful to get early warning of a super-flat tire, I probably don\u2019t need the precision. I\u2019ll just get over it, right? Ordinarily, this is where the story would have ended. But not in China\u2019s America.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"781\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/entries-1024x781.png\" alt=\"Screenshot of eBay listings for $0.99 EL50448 re-learn tools\" class=\"wp-image-63\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/entries-1024x781.png 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/entries-300x229.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/entries-768x586.png 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/entries.png 1150w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The siren call of cheap eBay listings wailed in the distance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The consumer in me complains, \u201cit\u2019s only $1, there\u2019s nothing to lose!\u201d The minimalist urges caution; who needs another piece of plastic garbage? But my engineering and economics training brought more questions to the fore: how can these tools possibly be so cheap given the sophistication of what they\u2019re supposed to do? And given how cheap they are, why isn\u2019t there\u2026 an iPhone app or software-defined radio widget that does the same thing?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I had to know the answer. Those eBay drop-shippers needed to boost their new accounts\u2019 transaction counts before they resold them. All too happily, we made a market.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09886-1024x684.jpg\" alt=\"Photo of EL50448 box on a table\" class=\"wp-image-64\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09886-1024x684.jpg 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09886-300x200.jpg 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09886-768x513.jpg 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09886-1536x1026.jpg 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09886-2048x1368.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-3a88641f wp-block-group-is-layout-flex\">\n<h2 class=\"wp-block-heading\">EL50448 Curse of Re-Education<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to the tire pressure page on the dash<\/li>\n\n\n\n<li>Hold the check button on the steering wheel a while time until the relearn menu comes up<\/li>\n\n\n\n<li>Go to the front left (driver\u2019s side front) tire, point the relearn tool\u2019s antenna directly at the TPMS sensor in the wheel, and press the tool\u2019s button until the car honks.<\/li>\n\n\n\n<li>Go to the right front (passenger side front) and repeat.<\/li>\n\n\n\n<li>Go to the rear right (passenger side rear) and repeat.<\/li>\n\n\n\n<li>Go to the rear left (driver side rear) and repeat.<\/li>\n\n\n\n<li>Exalt in your newly certified tire pressure display.<\/li>\n<\/ol>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Supposedly, I work full-time on things like wireless protocols, sensor networks, power saving modes, enumeration and authentication.<code> [Reminder that the ideas and content here are only my own.]<\/code> This stuff should be right up my alley. But seeing a nominally complicated re-pairing device selling on eBay for $1 gives me \u201cTemu Microwave Oven for $5\u201d vibes.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09887-1024x684.jpg\" alt=\"EL50448 unboxed on a table, showing box, instruction paper, EL50448.\" class=\"wp-image-65\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09887-1024x684.jpg 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09887-300x200.jpg 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09887-768x513.jpg 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09887-1536x1026.jpg 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09887-2048x1368.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">After quickly checking that it worked on the car (it did!), I cracked it open.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09895-1024x684.jpg\" alt=\"Beginning to tear down the EL50448, starting with the battery compartment.\" class=\"wp-image-67\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09895-1024x684.jpg 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09895-300x200.jpg 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09895-768x513.jpg 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09895-1536x1026.jpg 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09895-2048x1368.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Not a bad design, mechanically speaking. With two plastic clamshell pieces, featuring snap lock positioners, the PCB is held in place and its button pressed solidly into position. A rubber gasket retains the ferrite coil antenna in the plastic antenna housing.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09896-1024x684.jpg\" alt=\"Internal photo of the top of the EL50448 PCBA. There are several large capacitors and some small ICs and wires.\" class=\"wp-image-68\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09896-1024x684.jpg 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09896-300x200.jpg 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09896-768x513.jpg 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09896-1536x1026.jpg 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09896-2048x1368.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The BOM is impressively small. In order of disassembly, quoted around 100k qty, with some guessing:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Printed paper manual: $0.04<\/li>\n\n\n\n<li>Printed paper box: $0.02<\/li>\n\n\n\n<li>Rubber casing: $0.05<\/li>\n\n\n\n<li>Injection molded &amp; silkscreened battery compartment cover: $0.03<\/li>\n\n\n\n<li>Injection molded &amp; silkscreened rear case: $0.08<\/li>\n\n\n\n<li>Injection molded &amp; silkscreened front case: $0.08<\/li>\n\n\n\n<li>2x plastic screws: $0.02<\/li>\n\n\n\n<li>30x20mm PCB: $0.10<\/li>\n\n\n\n<li>Ferrite stick: $0.40<\/li>\n\n\n\n<li>Copper wire for antenna: $0.05<\/li>\n\n\n\n<li>Red + green LEDs: $0.06<\/li>\n\n\n\n<li>NPN J3Y: $0.05<\/li>\n\n\n\n<li>NPN BLP11: $0.15<\/li>\n\n\n\n<li>PNP ALP11: $0.07<\/li>\n\n\n\n<li>Voltage regulator(s): $0.10<\/li>\n\n\n\n<li>Button: $0.05<\/li>\n\n\n\n<li>Capacitors: $0.10<\/li>\n\n\n\n<li>Timer chip: $0.05<\/li>\n\n\n\n<li>Solder paste: $0.02<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09897-1024x684.jpg\" alt=\"Internal photo of the back side of the EL50448 PCBA showing the user interface button and lights.\" class=\"wp-image-69\" style=\"width:528px;height:auto\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09897-1024x684.jpg 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09897-300x200.jpg 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09897-768x513.jpg 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09897-1536x1026.jpg 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09897-2048x1368.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Just over a buck fifty. These sellers are either getting a large quantity discount or are flooding the market to farm eBay seller points. <code>[With free shipping at $1, I would be surprised if they\u2019re not also harvesting names and mailing addresses.]<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09900-1024x684.jpg\" alt=\"Photo of the EL50448's ferrite-core coil antenna with a grommet.\" class=\"wp-image-70\" style=\"width:620px;height:auto\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09900-1024x684.jpg 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09900-300x200.jpg 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09900-768x513.jpg 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09900-1536x1026.jpg 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09900-2048x1368.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">EE hats back on. There\u2019s something strange here. I don\u2019t really see any complicated radio-frequency antenna matching networks or a programmable DFN\/BGA packaged system-on-chip. There\u2019s just an 8-SOIC timer chip or microcontroller, some voltage regulation, a few transistors and capacitors, and a ferrite coil antenna.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s a photo of a keyfob PCBA for comparison:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/IMG_1189-1024x768.jpg\" alt=\"Photo of the internal PCB of a keyfob from a late 2010s Chevrolet.\" class=\"wp-image-71\" style=\"width:528px;height:auto\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/IMG_1189-1024x768.jpg 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/IMG_1189-300x225.jpg 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/IMG_1189-768x576.jpg 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/IMG_1189-1536x1152.jpg 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/IMG_1189-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s leave the internal scoping for later and peek at the output spectrum with an RTL-SDR (software defined radio receiver).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09902-1024x684.jpg\" alt=\"RTL-SDR plugged into a laptop running GQRX, observing the output of the EL50448.\" class=\"wp-image-72\" style=\"width:620px;height:auto\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09902-1024x684.jpg 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09902-300x200.jpg 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09902-768x513.jpg 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09902-1536x1026.jpg 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09902-2048x1368.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Laptop with EL50448 and RTL-SDR with another ferrite stick coil antenna.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"557\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/315_2-1024x557.png\" alt=\"Screenshot from GQRX showing keyfob signals next to large noise signal from EL50448 in the 315 MHz band.\" class=\"wp-image-74\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/315_2-1024x557.png 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/315_2-300x163.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/315_2-768x418.png 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/315_2-1536x835.png 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/315_2.png 1909w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">315 MHz EL50448<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/433-1024x576.png\" alt=\"Screenshot from GQRX showing keyfob signals next to large noise signal from EL50448 in the 433 MHz band.\" class=\"wp-image-75\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/433-1024x576.png 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/433-300x169.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/433-768x432.png 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/433-1536x864.png 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/433.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">433 MHz EL50448<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">What would you say is happening here? It sure doesn\u2019t look like a meaningful modulated signal to me. I\u2019d say it\u2019s just noise. Solid noise for 5 seconds, then 5 seconds of noise split up into a bunch of equal on\/off sections.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But it works!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"557\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/315-1-1024x557.png\" alt=\"Screenshot from GQRX showing the EL50448 successfully waking up a TPMS sensor in the 315 MHz band.\" class=\"wp-image-76\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/315-1-1024x557.png 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/315-1-300x163.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/315-1-768x418.png 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/315-1-1536x835.png 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/315-1.png 1909w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">EL50448 triggering enumeration of TPMS sensor, sampled 20cm from tire with a dipole<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"557\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-18-02-21_2-1024x557.png\" alt=\"Screenshot from GQRX showing the EL50448 successfully waking up a TPMS sensor in the 315 MHz band, from the far field where the EL50448 is not as powerful but the TPMS sensor still is.\" class=\"wp-image-77\" style=\"width:528px;height:auto\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-18-02-21_2-1024x557.png 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-18-02-21_2-300x163.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-18-02-21_2-768x418.png 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-18-02-21_2-1536x835.png 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-18-02-21_2.png 1909w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">EL50448 triggering enumeration of TPMS sensor, sampled 150cm from tire with a dipole<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Two other alternatives the internet provides for the TPMS re-learning procedure help with context.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; Option A: With each tire fully inflated, install, deflate, and then re-inflate the tires one at a time starting from the drivers\u2019 side front.<br>&#8211; Option B: With all tires below 40 PSI, pressurize them one at a time to 45 PSI, starting from the driver\u2019s side front, then release them to standard driving pressure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Each honk during the re-learn procedure signals that the car has registered another sensor\u2019s presence. In embedded jargon, this is referred to as enumeration. In plain English: it identified itself by transmitting the unique numerical signature it sends with each pressure measurement.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There\u2019s no secret code being transmitted. The TPMS sensor simply follows a few simple rules to save power:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>1. Unless any other condition is true, it transmits nothing and sits silently.<br>2. If the pressure measurement crosses 10 PSI towards 0, it enumerates itself.<br>3. If the pressure measurement crosses 45 PSI towards 50 PSI, it enumerates itself.<br>4. If the car\u2019s TPMS transceiver requests an update via the 315 MHz band, all sensors in the area enumerate.<br>5. If the radio front-end detects a signal over a certain power spectral density on the 315 MHz band for a second or two, it enumerates.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#5 seems to be an option that the EL50448 exploits. The original manufacturer of this part <a href=\"https:\/\/www.orange-electronic.com\/en\/product_t5.html\">refers to it as a &#8220;TPMS trigger,<\/a>&#8221; not a re-learn tool.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">But how does it really work?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">How exactly the tool creates this broad-spectrum noise with so few parts is not clear. <a href=\"https:\/\/www.amazon.com\/ATEQ-Universal-Sensor-Activator-Trigger\/dp\/B08DT6G2CY#customerReviews\">From Amazon reviews<\/a>, the device seems to work reliably only with a brand-new 9V battery. To any EE, that&#8217;s a red flag that the design is marginal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here was my best guess of the schematic. I couldn&#8217;t find exact SPICE models of each part, but on the board Q8 seemed to be <a href=\"https:\/\/assets.nexperia.com\/documents\/spice-model\/BCX56-16.txt\">BCX56-16<\/a>, Q7 <a href=\"https:\/\/www.nexperia.com\/products\/bipolar-transistors\/general-purpose-and-low-vcesat-bipolar-transistors\/single-bipolar-transistors\/single-bipolar-transistors-100-v\/BCX53-16.html\">BCX53-16<\/a>, and Q1 <a href=\"https:\/\/pdf1.alldatasheet.net\/datasheet-pdf\/view-marking\/226239\/BILIN\/S8050.html\">S8050<\/a>. L1 is represented as a lumped-element circuit with parasitics R3, C3, and R4. I found SPICE models of each transistor: <a href=\"https:\/\/groups.io\/g\/LTspice\/topic\/transistor_models\/97224582\" data-type=\"link\" data-id=\"https:\/\/groups.io\/g\/LTspice\/topic\/transistor_models\/97224582\">S8050<\/a>, <a href=\"https:\/\/assets.nexperia.com\/documents\/spice-model\/BCX53-16.txt\">BCX53-16<\/a>, <a href=\"https:\/\/assets.nexperia.com\/documents\/spice-model\/BCX56-16.txt\">BCX56-16<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The SPICE model I made for this circuit is <a href=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/tpms_trigger.asc\">can be downloaded here<\/a>; just put those transistor model files in the same directory.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"927\" height=\"472\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-5.png\" alt=\"\" class=\"wp-image-123\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-5.png 927w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-5-300x153.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-5-768x391.png 768w\" sizes=\"auto, (max-width: 927px) 100vw, 927px\" \/><figcaption class=\"wp-element-caption\">Schematic of the RF drive circuit; R2\/C3\/R3 are guesses of parasitics.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">To figure it out in the voltage\/time domain, I scoped the board with a DSO5034A. The signal&#8217;s source is an unmarked timer IC, U2. It puts out a normal looking 127 kHz square wave around 50% duty cycle with a peak-peak around 3.9V.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09910-1024x684.jpg\" alt=\"\" class=\"wp-image-112\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09910-1024x684.jpg 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09910-300x200.jpg 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09910-768x513.jpg 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09910-1536x1026.jpg 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09910-2048x1368.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Well-adjusted 3.9V \/ 125 kHz square wave from timer IC (U2), AC coupling<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Q1&#8217;s base is driven by that square wave through a 1K\/10K voltage divider, which reduces its amplitude to 1.16V &#8211; just under Q1&#8217;s saturation voltage. We can already see some oscillations from further down the signal path:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09911-1024x684.jpg\" alt=\"\" class=\"wp-image-114\" style=\"width:543px;height:auto\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09911-1024x684.jpg 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09911-300x200.jpg 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09911-768x513.jpg 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09911-1536x1026.jpg 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09911-2048x1368.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Signal at Q1 base from resistor divider<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">At Q1&#8217;s collector, we see the first major distortion of the signal. No longer a square wave, the trace rises rapidly to 6V from 0V, then has a slow exponential rise to the collector bias voltage of 9V, before cycling back to 0V. Oscillations are visible at the rising and falling edges.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09912-1024x684.jpg\" alt=\"\" class=\"wp-image-113\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09912-1024x684.jpg 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09912-300x200.jpg 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09912-768x513.jpg 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09912-1536x1026.jpg 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09912-2048x1368.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Q1 collector \/ Q7 base \/ Q8 base signal<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The shared emitter of the coupled NPN (Q8) and PNP (Q7) looks similar: a highly modified 125 kHz square wave with some distortion and ringing. The oscillations before the 9V-&gt;0V falling edge are almost entirely gone, while the oscillation before the rising edge has grown from &lt;1V peak-peak to nearly 2V peak-peak. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09926-1024x684.jpg\" alt=\"\" class=\"wp-image-110\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09926-1024x684.jpg 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09926-300x200.jpg 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09926-768x513.jpg 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09926-1536x1026.jpg 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09926-2048x1368.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Q7\/Q8 emitter signal. <\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Zooming into the oscillations reveals a non-sinusoidal 159 MHz wave. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09928-1024x684.jpg\" alt=\"\" class=\"wp-image-111\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09928-1024x684.jpg 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09928-300x200.jpg 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09928-768x513.jpg 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09928-1536x1026.jpg 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09928-2048x1368.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Q8 emitter: 159ish MHz oscillations before the rising edge of the 125 kHz signal. There may be higher frequencies present here, but this 300 MHz scope can\u2019t resolve them accurately. <\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">It seems the harmonics from U2&#8217;s square wave are amplified, shaped, and filtered into the tank circuit formed by C1\/L1. Here\u2019s a scope trace sampled from the last 5 seconds of the wire shared between C14 and the antenna:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09918-1024x684.jpg\" alt=\"Scope showing 33 Hz on-off envelope for noise from EL50448.\" class=\"wp-image-78\" style=\"width:541px;height:auto\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09918-1024x684.jpg 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09918-300x200.jpg 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09918-768x513.jpg 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09918-1536x1026.jpg 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09918-2048x1368.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">33 Hz on-off modulated segment of EL50448 transmission<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09923-1024x684.jpg\" alt=\"Close up of one 33 Hz ON cycle.\" class=\"wp-image-79\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09923-1024x684.jpg 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09923-300x200.jpg 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09923-768x513.jpg 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09923-1536x1026.jpg 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09923-2048x1368.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">One modulation cycle of the EL50448 33 Hz signal<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">That signal is measured at the high side of the antenna, L1. I took a measurement of L1&#8217;s input return loss with a nanoVNA after removing it from the PCB. This antenna has resonant peaks around 100, 280, 350, and 450 MHz. Surely the NanoVNA could give a useful inductance value at those frequencies, right? Nope, it computed -6 nH at 450 MHz. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"442\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/ant_s11.png\" alt=\"Scalar S_11 parameter plot of EL50448 antenna, showing dips at 110 MHz, 220 MHz, 330 MHz, and 440 MHz.\" class=\"wp-image-86\" style=\"width:250px;height:auto\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/ant_s11.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/ant_s11-204x300.png 204w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><figcaption class=\"wp-element-caption\">NanoVNA scalar S_11 reading of the ferrite coil antenna.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Well, could I just go off the known dimensions of the antenna? It&#8217;s a 30x10mm diameter cylinder with around 50 turns of 28 AWG enameled wire near the center. There must be a calculator.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As it happens, <a href=\"https:\/\/www.osengr.org\/Articles\/Ferrite-Rod-Inductance.pdf\">modeling ferrite rod coil antennas is<\/a> not trivial. A guess that seemed to encourage oscillation was 250 nH series L, 0.3 ohms series R, 6K parallel R, and 20 pF parallel C.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"927\" height=\"472\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-5.png\" alt=\"\" class=\"wp-image-123\" style=\"width:620px;height:auto\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-5.png 927w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-5-300x153.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-5-768x391.png 768w\" sizes=\"auto, (max-width: 927px) 100vw, 927px\" \/><figcaption class=\"wp-element-caption\">Schematic of the RF drive circuit; R2\/C3\/R3 are guesses of parasitics. <a href=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/tpms_trigger.asc\">Model link<\/a>.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">At the end of the day, the creators of this device likely also converged on the coil parameters by trial and error. They were given a budget of less than $5 of parts and made it work. LTspice doesn&#8217;t have much in the way of ferrite simulation, so <a href=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/tpms_trigger.asc\">this model<\/a> is as good as we&#8217;re going to get.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"529\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-1-1024x529.png\" alt=\"\" class=\"wp-image-119\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-1-1024x529.png 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-1-300x155.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-1-768x397.png 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-1.png 1412w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">LTspice time domain plot of simulation. <\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In this simulation, Q1 V_be never reached 1.16V or even varied by more than 500 mV. Nevertheless, the simulation does seem to show some resonant behavior at multiples of 20\/50\/100 MHz, though the amplitude is super low.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"529\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-4-1024x529.png\" alt=\"\" class=\"wp-image-122\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-4-1024x529.png 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-4-300x155.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-4-768x397.png 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/image-4.png 1412w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">20-1000 MHz spectrum, FFT of signals simulated by LTSpice, relevant peaks highlighted.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">So here&#8217;s the breakdown:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The timer IC U2 generates a 125 kHz signal at 50% duty cycle. <\/li>\n\n\n\n<li>This is divided down to an amplitude of 1.2V via R1\/R12.<\/li>\n\n\n\n<li>This signal drives the base of NPN transistor Q1. <\/li>\n\n\n\n<li>Q1&#8217;s emitter is grounded; its collector is shorted to Q7 and Q8&#8217;s bases and is pulled up to 9V via a 2K resistor.<\/li>\n\n\n\n<li>Q7 and Q8 form a common push-pull drive circuit; Q7 has its collector grounded and Q8 has its collector directly attached to 9V. Both transistors&#8217; emitters are shorted together to a common output.<\/li>\n\n\n\n<li>The push-pull output drives a 10 nF 250V film capacitor, a resonant ferrite stick coil antenna, and a 100 nF ceramic capacitor all in series. These likely form a low-Q oscillator with a broad tuning range.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">I concluded my reverse engineering effort here mostly because I didn&#8217;t want to write a thesis on low-Q ferrite resonator behavior.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fin<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Could you build a <a href=\"https:\/\/wiki.gnuradio.org\/index.php\/Tutorials\">GNUradio<\/a> app to replicate the EL50448&#8217;s behavior with a transmit-enabled SDR yourself? Almost certainly. Just create a white <a href=\"https:\/\/wiki.gnuradio.org\/index.php\/Noise_Source\">noise source<\/a> at 0 Hz with 20 MHz bandwidth, mix it into a 315 or 433 MHz carrier, and transmit away. Just don&#8217;t violate the FCC rules.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The difficult part would be making sure the range is short enough to only enumerate a single TPMS sensor at once. An ordinary dipole won\u2019t fall off with distance as fast as the EL50448&#8217;s stick antenna. You might need a ferrite-core coil, but that might not match well with your SDR\u2019s 50 ohm output to the coil. All in all, it&#8217;s hard to beat the $1 eBay solution.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Gallery<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"596\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-55-39-1024x596.png\" alt=\"\" class=\"wp-image-87\" style=\"width:541px;height:auto\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-55-39-1024x596.png 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-55-39-300x174.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-55-39-768x447.png 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-55-39-1536x893.png 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-55-39.png 1606w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">10-50 MHz spectrum emitted from EL50448 (LimeSDR with dipole)<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"596\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-56-22-1024x596.png\" alt=\"\" class=\"wp-image-88\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-56-22-1024x596.png 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-56-22-300x174.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-56-22-768x447.png 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-56-22-1536x893.png 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-56-22.png 1606w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">130-180 MHz spectrum emitted from EL50448<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"596\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-57-31-1024x596.png\" alt=\"\" class=\"wp-image-89\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-57-31-1024x596.png 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-57-31-300x174.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-57-31-768x447.png 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-57-31-1536x893.png 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-29-23-57-31.png 1606w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">285-45 MHz MHz spectrum emitted from EL50448<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"596\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-01-48-1024x596.png\" alt=\"\" class=\"wp-image-90\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-01-48-1024x596.png 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-01-48-300x174.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-01-48-768x447.png 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-01-48-1536x893.png 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-01-48.png 1606w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">430-480 MHz spectrum emitted from EL50448<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"596\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-02-13-1024x596.png\" alt=\"\" class=\"wp-image-91\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-02-13-1024x596.png 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-02-13-300x174.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-02-13-768x447.png 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-02-13-1536x893.png 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-02-13.png 1606w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"596\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-03-01-1024x596.png\" alt=\"\" class=\"wp-image-92\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-03-01-1024x596.png 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-03-01-300x174.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-03-01-768x447.png 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-03-01-1536x893.png 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-03-01.png 1606w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">570-620 MHz spectrum emitted from EL50448<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"596\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-06-20-1024x596.png\" alt=\"\" class=\"wp-image-93\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-06-20-1024x596.png 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-06-20-300x174.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-06-20-768x447.png 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-06-20-1536x893.png 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/Screenshot-from-2024-06-30-00-06-20.png 1606w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">925-975 MHz spectrum emitted from EL50448<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"720\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/tool_thermal.png\" alt=\"\" class=\"wp-image-95\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/tool_thermal.png 960w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/tool_thermal-300x225.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/tool_thermal-768x576.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><figcaption class=\"wp-element-caption\">The high-side NPN transistor Q8 seemed to be doing most of the dissipation.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09915-1024x684.jpg\" alt=\"\" class=\"wp-image-97\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09915-1024x684.jpg 1024w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09915-300x200.jpg 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09915-768x513.jpg 768w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09915-1536x1026.jpg 1536w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/DSC09915-2048x1368.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Q8&#8217;s collector has some other high-frequency components.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"442\" height=\"442\" src=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/ant_smith.png\" alt=\"Scalar plot of EL50448 antenna S_11, showing nearly perfect 50 ohm match near 110 MHz and slightly worse matches at harmonics of 110 MHz.\" class=\"wp-image-85\" style=\"width:433px;height:auto\" srcset=\"https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/ant_smith.png 442w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/ant_smith-300x300.png 300w, https:\/\/paulhansel.com\/wp-content\/uploads\/2024\/07\/ant_smith-150x150.png 150w\" sizes=\"auto, (max-width: 442px) 100vw, 442px\" \/><figcaption class=\"wp-element-caption\">NanoVNA Smith chart S_11 reading of the ferrite coil antenna. Green triangle is at 100 MHz. <\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>[2026-03-01]: Ever thought about how these could be used for surveillance? These guys did! https:\/\/www.darkreading.com\/ics-ot-security\/tire-pressure-sensors-silent-tracking [2024-07-06: Updated to include simulation results and more scope traces.] If you own a car, you\u2019ve no doubt encountered this mystery at least once. The tire pressure monitoring system tells you your flat tire is on the driver\u2019s side front, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[8,7,6,9],"class_list":["post-61","post","type-post","status-publish","format-standard","hentry","category-reverse-engineering","tag-automotive","tag-ham-radio","tag-rf","tag-tpms"],"_links":{"self":[{"href":"https:\/\/paulhansel.com\/index.php?rest_route=\/wp\/v2\/posts\/61","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paulhansel.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/paulhansel.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/paulhansel.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/paulhansel.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=61"}],"version-history":[{"count":19,"href":"https:\/\/paulhansel.com\/index.php?rest_route=\/wp\/v2\/posts\/61\/revisions"}],"predecessor-version":[{"id":607,"href":"https:\/\/paulhansel.com\/index.php?rest_route=\/wp\/v2\/posts\/61\/revisions\/607"}],"wp:attachment":[{"href":"https:\/\/paulhansel.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=61"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/paulhansel.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=61"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/paulhansel.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=61"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}