<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.recessim.com/w/index.php?action=history&amp;feed=atom&amp;title=Miltel_SpeedRead_STx</id>
	<title>Miltel SpeedRead STx - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.recessim.com/w/index.php?action=history&amp;feed=atom&amp;title=Miltel_SpeedRead_STx"/>
	<link rel="alternate" type="text/html" href="https://wiki.recessim.com/w/index.php?title=Miltel_SpeedRead_STx&amp;action=history"/>
	<updated>2026-05-04T23:04:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>https://wiki.recessim.com/w/index.php?title=Miltel_SpeedRead_STx&amp;diff=3139&amp;oldid=prev</id>
		<title>HLL: Blog post ref</title>
		<link rel="alternate" type="text/html" href="https://wiki.recessim.com/w/index.php?title=Miltel_SpeedRead_STx&amp;diff=3139&amp;oldid=prev"/>
		<updated>2025-07-12T21:10:31Z</updated>

		<summary type="html">&lt;p&gt;Blog post ref&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 21:10, 12 July 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Miltel External Pulsed-readers (Transmitter)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Miltel External Pulsed-readers (Transmitter)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;For research process, see this [https://hlltech.blogspot.com/2021/09/reverse-engineering-wireless-water.html blog post - Reverse engineering wireless water meter network]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Device=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Device=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l28&quot; &gt;Line 28:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 30:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Other Names: SpeedRead Networks, Datasense AMR&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Other Names: SpeedRead Networks, Datasense AMR&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;FCC ID: MLLSPEEDHPTX450 Possibly others as well&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;FCC ID: MLLSPEEDHPTX450 Possibly others as well&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;references /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key RECESSIM:diff::1.12:old-3138:rev-3139 --&gt;
&lt;/table&gt;</summary>
		<author><name>HLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.recessim.com/w/index.php?title=Miltel_SpeedRead_STx&amp;diff=3138&amp;oldid=prev</id>
		<title>HLL: Created page with &quot;Miltel External Pulsed-readers (Transmitter)  =Device= Device is a separated unit from the actual meter, Enclosed there’s a Battery a pcb with a PIC microcontroller (firmwar...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.recessim.com/w/index.php?title=Miltel_SpeedRead_STx&amp;diff=3138&amp;oldid=prev"/>
		<updated>2025-07-12T21:06:42Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Miltel External Pulsed-readers (Transmitter)  =Device= Device is a separated unit from the actual meter, Enclosed there’s a Battery a pcb with a PIC microcontroller (firmwar...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Miltel External Pulsed-readers (Transmitter)&lt;br /&gt;
&lt;br /&gt;
=Device=&lt;br /&gt;
Device is a separated unit from the actual meter, Enclosed there’s a Battery a pcb with a PIC microcontroller (firmware-read protected) and an FM encoder&lt;br /&gt;
Each device can be hooked up to at least 4 (possibly more) sensor, which in turn are connected to the meter&lt;br /&gt;
[https://store.abtwater.com/cdn/shop/products/IMG_0196.JPG Example Photo]&lt;br /&gt;
=Operation=&lt;br /&gt;
Each probe contains a reed switch and it is pulsed by the meter’s spinner on each full cycle. The meter can count it individually and according to the configured time, transmit this information wirelessly to either the repeater (re-transmits the same signal) or the concentrator (uploads the information to the system’s backend) installed in the area.&lt;br /&gt;
&lt;br /&gt;
=Wireless communication=&lt;br /&gt;
This device can only transmit&lt;br /&gt;
==Frequency==&lt;br /&gt;
Frequency varies according to the installation, location and use-case&lt;br /&gt;
==Modulation==&lt;br /&gt;
The data is first encoded by the microcontroller as 0 meaning a PWM wave of a given frequency, and 1 given by a PWM in another frequency&amp;lt;ref&amp;gt; [https://lists.gnu.org/archive/html/discuss-gnuradio/2017-07/msg00097.html GNU Radio Mailing list message]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
The output of the microcontroller is then fed to the frequency modulator and transmitted OTA.&lt;br /&gt;
In order to demodulate, someone would have to perform FM demod, twice &amp;lt;ref&amp;gt;[https://lists.gnu.org/archive/html/discuss-gnuradio/2017-07/msg00162.html GNU Radio Mailing list message]&amp;lt;/ref&amp;gt; (once for FM demod, and the latter for PWM demod, this can also be correlated instead) and should get the expected outcome.&lt;br /&gt;
&lt;br /&gt;
==Protocol==&lt;br /&gt;
By reverse engineering, protocol possibly contain “fields” of arbitrary data; these fields are assembled from the decoded bit stream, in such a way that the next bit is either 16 or 20 bits after the former. &lt;br /&gt;
I.E. Lets assume the demodulated bits are D0…Dn, Then “Field 1” would be comprised out of D0, D16, D36, D52, D72, etc…&lt;br /&gt;
At least the meter id can be extracted this way, possibly more data as well.&lt;br /&gt;
There is also some data stuffing involved, I suggest seing the examples in this github ticket for how to decode [https://github.com/cla01/rtlsdr-test1/issues/1 github issue with code]&lt;br /&gt;
&lt;br /&gt;
=Further information=&lt;br /&gt;
Technical information from the author in this github issue, and blog-post&lt;br /&gt;
Miltel Tech sheet - [https://www.speedreadtech.com/Product-Distribution/SpeedRead%20Stx%20Sheet%2001-08-2006.pdf], [https://www.speedreadtech.com/products/transmitter/]&lt;br /&gt;
Other Names: SpeedRead Networks, Datasense AMR&lt;br /&gt;
FCC ID: MLLSPEEDHPTX450 Possibly others as well&lt;/div&gt;</summary>
		<author><name>HLL</name></author>
		
	</entry>
</feed>