<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hardware &amp; Devices &#8211; QModMaster</title>
	<atom:link href="https://qmodmaster.com/hardware/feed/" rel="self" type="application/rss+xml" />
	<link>https://qmodmaster.com</link>
	<description>A powerful, portable, and cross-platform Modbus master for industrial automation and PLC testing.</description>
	<lastBuildDate>Fri, 16 Oct 2026 03:16:01 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://qmodmaster.com/wp-content/uploads/2026/04/favicon-150x150.png</url>
	<title>Hardware &amp; Devices &#8211; QModMaster</title>
	<link>https://qmodmaster.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Solis Inverter Modbus: Register Offset Trap</title>
		<link>https://qmodmaster.com/solis-inverter-modbus-register-offset/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 03:16:01 +0000</pubDate>
				<category><![CDATA[Hardware & Devices]]></category>
		<guid isPermaLink="false">https://qmodmaster.com/solis-inverter-modbus-register-offset/</guid>

					<description><![CDATA[Solis Inverter Modbus: Register Offset Trap You&#8217;ve got your Solis inverter wired to a USB-to-RS485 adapter, QModMaster is talking to it (wrong slave address gives timeouts, the right one answers) — but every register read comes back Exception Code 02: Illegal Address. The wiring is fine, the baud rate is fine, and the slave ID...]]></description>
										<content:encoded><![CDATA[<h1 class="wp-block-heading">Solis Inverter Modbus: Register Offset Trap</h1>

<p class="wp-block-paragraph">You&#8217;ve got your Solis inverter wired to a USB-to-RS485 adapter, QModMaster is talking to it (wrong slave address gives timeouts, the right one answers) — but every register read comes back <strong>Exception Code 02: Illegal Address</strong>. The wiring is fine, the baud rate is fine, and the slave ID is right. The trap is in the register address itself, and it&#8217;s documented by a real Solis owner&#8217;s debugging session on the <a href="https://diysolarforum.com/threads/solis-ginlong-modbus-comms.47711/" rel="nofollow noopener" target="_blank">DIY Solar Forum</a>: <strong>Solis&#8217;s official documentation lists register addresses like 33025 with the note &#8220;no further offset or other conversion is required&#8221; — and it means it literally. Type the full address.</strong></p>

<h2 class="wp-block-heading">The trap: 33025 means 33025, not 3025</h2>

<p class="wp-block-paragraph">Most Modbus tools and tutorials teach you to strip the leading digit off 3xxxx/4xxxx addresses: &#8220;input register 33025&#8221; becomes protocol address 3024 (or 3025, depending on the tool&#8217;s convention). For Solis inverters, that habit breaks everything. The forum poster (RHI-5K-48ES-5G) got Illegal Address errors on every read until he typed the complete address: <strong>a 3-register read of 33025–33027 immediately returned a live hh:mm:ss clock value from the inverter</strong>.</p>

<p class="wp-block-paragraph">So in QModMaster: enter <code>33025</code> in the address field — don&#8217;t subtract 1, don&#8217;t strip the leading 3, don&#8217;t convert. If the manual&#8217;s address table says 33000, you read 33000. Trust the manual&#8217;s literal numbers.</p>

<h2 class="wp-block-heading">Baseline settings that must be right first</h2>

<p class="wp-block-paragraph">From the same real-world session, the working baseline for talking to a Solis inverter over its COM connector:</p>

<ul class="wp-block-list"><li><strong>Mode:</strong> Modbus RTU over RS485 (2-core cable to the COM connector&#8217;s A/B pins).</li><li><strong>Serial:</strong> 9600 bps, 8 data bits, 1 stop bit, no parity (8N1).</li><li><strong>Slave address:</strong> must match the address set on the inverter itself. A wrong slave ID gives timeouts; the right ID with a wrong register gives Illegal Address — that difference is actually a useful diagnostic.</li><li><strong>Function code:</strong> 0x04 (Read Input Registers) for the 3xxxx measurement registers.</li></ul>

<p class="wp-block-paragraph"><strong>Always confirm these against your own Solis manual</strong> — settings and pinouts can vary between models and firmware generations.</p>

<h2 class="wp-block-heading">Watch the byte order on multi-register values</h2>

<p class="wp-block-paragraph">The forum session also surfaced a second quirk: some multi-byte values came back looking byte-swapped until interpreted the other way round (the poster saw an unfeasibly large decimal where a small value was expected, and the swap theory led to the breakthrough). If your single-register reads are fine but 32-bit values look wrong, try the swapped byte/word interpretation in QModMaster&#8217;s View menu before assuming the address is wrong — and cross-check the expected byte order in your Solis documentation.</p>

<h2 class="wp-block-heading">The hardware you need</h2>

<p class="wp-block-paragraph"><a href="https://qmodmaster.com/go/usb-rs485" rel="nofollow sponsored">USB-to-RS485 adapter (Amazon)</a> — the forum poster&#8217;s setup used a USB-RS485 serial adapter straight to a laptop. A dependable FTDI-based adapter is the safest first purchase; unstable adapters mimic the exact &#8220;timeout vs Illegal Address&#8221; confusion this page helps you avoid.</p>

<h2 class="wp-block-heading">FAQ</h2>

<p class="wp-block-paragraph"><strong>QModMaster says &#8220;Illegal Address&#8221; on my Solis inverter but the wiring seems fine. What&#8217;s wrong?</strong><br>Almost certainly the address format: type the full address from the Solis manual (e.g. 33025), not a stripped or minus-1 variant. The official Solis documentation states no offset or conversion is required — take it literally.</p>

<p class="wp-block-paragraph"><strong>How do I tell a wiring problem from an addressing problem?</strong><br>Change the slave address to a wrong value: timeouts mean the wiring/serial settings are wrong; the correct slave ID with wrong register addresses gives Illegal Address (exception 02). That distinction tells you which half of the setup to fix.</p>

<p class="wp-block-paragraph"><strong>My 32-bit Solis values are huge nonsense numbers. Offset problem?</strong><br>Probably not an offset — single registers reading fine points to byte/word order instead. Try the swapped interpretation in QModMaster&#8217;s View menu and verify against your manual.</p>

<h2 class="wp-block-heading">Related Guides</h2>

<ul class="wp-block-list"><li><a href="https://qmodmaster.com/qmodmaster-tutorial/">QModMaster tutorial: your first register read</a></li><li><a href="https://qmodmaster.com/usb-to-rs485-adapter-buying-guide/">USB-to-RS485 adapter buying guide</a></li></ul>

<p class="wp-block-paragraph"><em>The full-address finding (33025–33027 returning live data) comes from a real owner&#8217;s debugging thread on the DIY Solar Forum (Solis/Ginlong Modbus Comms). Solis register tables, serial settings, and pinouts vary by model — always confirm against your own inverter&#8217;s manual. qmodmaster.com is an independent community resource for the upstream QModMaster project (LGPLv3) and is not affiliated with Solis.</em></p>

<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"QModMaster says Illegal Address on my Solis inverter but the wiring seems fine. What is wrong?","acceptedAnswer":{"@type":"Answer","text":"Almost certainly the address format: type the full address from the Solis manual (for example 33025), not a stripped or minus-1 variant. The official Solis documentation states no offset or conversion is required."}},{"@type":"Question","name":"How do I tell a Solis wiring problem from an addressing problem?","acceptedAnswer":{"@type":"Answer","text":"Set a wrong slave address: timeouts indicate a wiring or serial-settings problem, while the correct slave ID with wrong register addresses returns Illegal Address (exception 02). That distinction tells you which half of the setup to fix."}},{"@type":"Question","name":"My 32-bit Solis values are huge nonsense numbers. Is it an offset problem?","acceptedAnswer":{"@type":"Answer","text":"If single registers read fine, it is more likely byte or word order than an offset. Try the swapped interpretation in QModMaster's View menu and verify the expected byte order against your manual."}}]}</script>

<style>.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin:0 auto!important;padding:56px 24px 72px!important}</style>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Read Carlo Gavazzi EM24 with QModMaster (Watch the Word Order!)</title>
		<link>https://qmodmaster.com/carlo-gavazzi-em24-qmodmaster/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 03:15:59 +0000</pubDate>
				<category><![CDATA[Hardware & Devices]]></category>
		<guid isPermaLink="false">https://qmodmaster.com/carlo-gavazzi-em24-qmodmaster/</guid>

					<description><![CDATA[Read Carlo Gavazzi EM24 with QModMaster (Watch the Word Order!) You&#8217;ve got the Carlo Gavazzi EM24 energy meter wired up, QModMaster returns registers without errors — and the numbers are nonsense. Voltage reads as millions of volts, or the power figure is off by a factor of 65,536. Before you rewire anything: the EM24 uses...]]></description>
										<content:encoded><![CDATA[<h1 class="wp-block-heading">Read Carlo Gavazzi EM24 with QModMaster (Watch the Word Order!)</h1>

<p class="wp-block-paragraph">You&#8217;ve got the Carlo Gavazzi EM24 energy meter wired up, QModMaster returns registers without errors — and the numbers are nonsense. Voltage reads as millions of volts, or the power figure is off by a factor of 65,536. Before you rewire anything: <strong>the EM24 uses little-endian word order (low word at the lower address)</strong>, the opposite of what most Modbus devices use. That single reversed assumption is the #1 cause of wrong EM24 readings, and it&#8217;s documented in the EM24 register-map reference used by the <a href="https://github.com/remcom/victron-grid-meter-esphome" rel="nofollow noopener" target="_blank">victron-grid-meter-esphome project</a>, which emulates an EM24 over Modbus TCP: <em>&#8220;All multi-register values use little-endian word order (low word at lower address)&#8221;</em>.</p>

<h2 class="wp-block-heading">What &#8220;little-endian word order&#8221; means in practice</h2>

<p class="wp-block-paragraph">A 32-bit value spans two 16-bit registers. On most devices the <em>high</em> word sits at the lower address (big-endian words: high word first). On the EM24 it&#8217;s flipped — the <em>low</em> word comes first:</p>

<pre class="wp-block-code"><code>Registers at 0x0000, 0x0001 hold a 32-bit voltage value
  0x0000 = LOW word    (EM24: low word at lower address)
  0x0001 = HIGH word

  value = LOW + HIGH × 65536        (then apply the scale)

Wrong assumption (big-endian words):
  value = HIGH + LOW × 65536        → garbage / millions</code></pre>

<p class="wp-block-paragraph">So if you decode EM24 registers the &#8220;normal&#8221; way, every 32-bit reading — voltage, current, power, energy — comes out wrong. It&#8217;s not a wiring problem and it&#8217;s not a bad meter. It&#8217;s the word order.</p>

<h2 class="wp-block-heading">Step 1: Prove your link with the Model ID register</h2>

<p class="wp-block-paragraph">Before touching multi-register values, read a single 16-bit register that has a known answer. The EM24 register map lists <strong>address 0x000B as the Model ID</strong>, which should read <strong>1648</strong> (EM24DINAV23XE1X). In QModMaster:</p>

<ul class="wp-block-list"><li>Function code 0x03 or 0x04 (the EM24 map supports both for reads), Unit ID matching your meter&#8217;s slave address.</li><li>Read <strong>1 register at address 0x000B</strong>.</li><li>Expect <strong>1648</strong>. If you get it, your link, baud rate, and addressing are all correct — anything weird after this point is data interpretation, not communication.</li></ul>

<h2 class="wp-block-heading">Step 2: Read voltage and test both word orders</h2>

<p class="wp-block-paragraph">Now read <strong>2 registers starting at 0x0000</strong> (Voltage L1, int32, scale ÷10 V) and display them as raw hex (QModMaster&#8217;s View menu lets you switch the display format). Then decode both ways by hand:</p>

<pre class="wp-block-code"><code>Example: registers read back as 0x0000 = 0x08FC, 0x0001 = 0x0000

Little-endian words (correct for EM24):
  value = 0x08FC + 0x0000 × 65536 = 2300  →  2300 ÷ 10 = 230.0 V  ✓

Big-endian words (wrong for EM24):
  value = 0x0000 + 0x08FC × 65536 = 587,202,560  → garbage  ✗</code></pre>

<p class="wp-block-paragraph">Whichever decoding matches your multimeter / the meter display is your answer. For the EM24, it will be the little-endian one. Apply the same low-word-first rule to every 32-bit register.</p>

<h2 class="wp-block-heading">EM24 register map (Ethernet model, excerpt)</h2>

<p class="wp-block-paragraph">From the community-documented EM24 register map — <strong>confirm every address against your own Carlo Gavazzi manual</strong>, as variants differ:</p>

<figure class="wp-block-table"><table><thead><tr><th>Address</th><th>Field</th><th>Type</th><th>Scale</th></tr></thead><tbody><tr><td>0x0000–0x0001</td><td>Voltage L1</td><td>int32</td><td>÷10 V</td></tr><tr><td>0x000B</td><td>Model ID</td><td>uint16</td><td>expect 1648</td></tr><tr><td>0x000C–0x000D</td><td>Current L1</td><td>int32</td><td>÷1000 A</td></tr><tr><td>0x0012–0x0013</td><td>Active power L1</td><td>int32</td><td>÷10 W (positive = import)</td></tr><tr><td>0x0028–0x0029</td><td>Total active power</td><td>int32</td><td>÷10 W</td></tr><tr><td>0x0033</td><td>Frequency</td><td>uint16</td><td>÷10 Hz</td></tr><tr><td>0x0034–0x0035</td><td>Energy import total</td><td>int32</td><td>÷10 kWh</td></tr></tbody></table></figure>

<p class="wp-block-paragraph">Per-phase registers step by 2 per phase: L1 at the base address, L2 at base+2, L3 at base+4. Power is signed (negative = exporting); current is always a positive magnitude with direction taken from the power sign.</p>

<h2 class="wp-block-heading">Wiring the meter to your PC</h2>

<p class="wp-block-paragraph"><a href="https://qmodmaster.com/go/usb-rs485" rel="nofollow sponsored">USB-to-RS485 adapter (Amazon)</a> — to read an EM24 over its serial port you&#8217;ll need a USB-to-RS485 adapter on the PC side. Get an FTDI-based one; flaky adapters are the classic source of intermittent Modbus timeouts.</p>

<h2 class="wp-block-heading">FAQ</h2>

<p class="wp-block-paragraph"><strong>My EM24 voltage reads in the millions. Is the meter broken?</strong><br>No — you&#8217;re decoding with big-endian word order. The EM24 puts the low word first. Re-decode as low + high × 65536 and the value will snap to something sensible.</p>

<p class="wp-block-paragraph"><strong>How do I confirm my communication settings are right before worrying about word order?</strong><br>Read address 0x000B (Model ID). It should return 1648 on an EM24DINAV23XE1X. If it does, your link is fine and any wrong values are an interpretation problem.</p>

<p class="wp-block-paragraph"><strong>Does the word order apply to energy registers too?</strong><br>Yes — every multi-register (32-bit) value on the EM24 uses little-endian word order, including power and energy. Single 16-bit registers (like 0x000B and 0x0033) are unaffected.</p>

<h2 class="wp-block-heading">Related Guides</h2>

<ul class="wp-block-list"><li><a href="https://qmodmaster.com/qmodmaster-tutorial/">QModMaster tutorial: your first register read</a></li><li><a href="https://qmodmaster.com/usb-to-rs485-adapter-buying-guide/">USB-to-RS485 adapter buying guide</a></li></ul>

<p class="wp-block-paragraph"><em>The little-endian word order and register map above are documented in the remcom/victron-grid-meter-esphome project (an EM24 Modbus TCP emulation whose register table mirrors the meter). Register addresses, scales, and word order can vary between EM24 variants — always confirm against your Carlo Gavazzi manual. qmodmaster.com is an independent community resource for the upstream QModMaster project (LGPLv3) and is not affiliated with Carlo Gavazzi.</em></p>

<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"My EM24 voltage reads in the millions. Is the meter broken?","acceptedAnswer":{"@type":"Answer","text":"No. You are decoding with big-endian word order, but the EM24 puts the low word at the lower address. Re-decode as low_word + high_word × 65536, then apply the scale, and the value will be sensible."}},{"@type":"Question","name":"How do I confirm my EM24 communication settings before worrying about word order?","acceptedAnswer":{"@type":"Answer","text":"Read address 0x000B (Model ID). It should return 1648 on an EM24DINAV23XE1X. If it does, your link is fine and any wrong values are a data-interpretation problem, not communication."}},{"@type":"Question","name":"Does the EM24 word order apply to energy registers too?","acceptedAnswer":{"@type":"Answer","text":"Yes. Every multi-register 32-bit value on the EM24 uses little-endian word order, including power and energy. Single 16-bit registers like 0x000B (Model ID) and 0x0033 (frequency) are unaffected."}}]}</script>

<style>.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin:0 auto!important;padding:56px 24px 72px!important}</style>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Verify Deye Inverter Registers with QModMaster</title>
		<link>https://qmodmaster.com/deye-inverter-qmodmaster-verify/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 03:15:57 +0000</pubDate>
				<category><![CDATA[Hardware & Devices]]></category>
		<guid isPermaLink="false">https://qmodmaster.com/deye-inverter-qmodmaster-verify/</guid>

					<description><![CDATA[Verify Deye Inverter Registers with QModMaster Writing a Home Assistant register definition for a Deye inverter from the Modbus manual alone is how garbage sensors get born. The advice from the Deye Modbus TCP integration project (leonelfaugusto/deye-modbus-tcp) is blunt: use a Modbus client like QModMaster to verify every register against the live inverter before writing...]]></description>
										<content:encoded><![CDATA[<h1 class="wp-block-heading">Verify Deye Inverter Registers with QModMaster</h1>

<p class="wp-block-paragraph">Writing a Home Assistant register definition for a Deye inverter from the Modbus manual alone is how garbage sensors get born. The advice from the Deye Modbus TCP integration project (leonelfaugusto/deye-modbus-tcp) is blunt: <strong>use a Modbus client like QModMaster to verify every register against the live inverter before writing the definition</strong>. This page shows you exactly how to do that verification pass, including the temperature offset trap that catches almost everyone once.</p>

<h2 class="wp-block-heading">Before you open QModMaster: the Deye preconditions</h2>

<p class="wp-block-paragraph">Deye inverters are usually reached through an RS485 bridge (e.g. a Waveshare RS485-to-WiFi/ETH module) in Modbus TCP mode. The integration&#8217;s tested setup pins down the preconditions — verify each on your hardware first:</p>

<ul class="wp-block-list"><li><strong>Inverter Modbus SN = 01.</strong> Set under &#8220;Advanced Function&#8221; on the inverter display — this is the slave ID your Modbus client must use.</li><li><strong>Baud rate 9600 bps, 8N1.</strong> It must match on <em>both</em> the bridge and the inverter.</li><li><strong>Bridge in Modbus TCP ⇄ Modbus RTU mode, not Transparent.</strong> Transparent mode passes raw frames and the framing is different — your reads will fail or decode as garbage.</li></ul>

<h2 class="wp-block-heading">QModMaster connection settings</h2>

<p class="wp-block-paragraph">Go to <strong>Options → Modbus TCP</strong> and set:</p>

<figure class="wp-block-table"><table><thead><tr><th>QModMaster field</th><th>Value</th></tr></thead><tbody><tr><td>Slave IP</td><td>Your bridge&#8217;s IP address (the integration&#8217;s example default is 10.10.20.102 — use your own)</td></tr><tr><td>TCP Port</td><td>Your bridge&#8217;s Modbus TCP port (the integration&#8217;s example default is 8899)</td></tr><tr><td>Unit ID</td><td>1 (matches Modbus SN = 01 on the inverter)</td></tr></tbody></table></figure>

<p class="wp-block-paragraph">Use function code <strong>0x03 (Read Holding Registers)</strong> — Deye&#8217;s sensor map lives in holding registers, per the integration&#8217;s register definitions.</p>

<h2 class="wp-block-heading">Verify registers one at a time, against the inverter screen</h2>

<p class="wp-block-paragraph">Don&#8217;t bulk-scan the whole map in one go. Read each register individually, apply its scale factor, and compare the result with the value shown on the inverter&#8217;s display:</p>

<ul class="wp-block-list"><li>Read a register and note the <strong>raw</strong> value.</li><li>Apply the scale multiplier from the manual (e.g. 0.1).</li><li>Stand in front of the inverter (or open its local monitoring page) and compare. If the numbers disagree, your address, function code, or scale is wrong — not the inverter.</li><li>Pay attention to signed vs unsigned: power and current values that can go negative are typically <code>int16</code>; reading them as unsigned flips the sign.</li></ul>

<h2 class="wp-block-heading">The temperature offset trap: subtract 1000 first</h2>

<p class="wp-block-paragraph">This is the Deye-specific gotcha that makes temperatures read as hundreds of degrees. Some Deye temperature registers (the integration documents this for registers like 100/101 on supported models) encode the value with an <strong>offset of 1000</strong>:</p>

<pre class="wp-block-code"><code>real_value = (raw - 1000) × scale</code></pre>

<p class="wp-block-paragraph">Concrete example from the integration docs: raw <code>1250</code> with scale <code>0.1</code> → <code>(1250 − 1000) × 0.1 = 25.0 °C</code>. If your QModMaster read shows a raw value around 1200–1400 on a temperature register, don&#8217;t panic — subtract 1000 first, then scale. When writing your HA definition, flag these addresses as temperature registers so the offset is applied automatically. Which addresses carry the offset depends on your exact inverter model and firmware — <strong>confirm against your Deye Modbus manual</strong>.</p>

<h2 class="wp-block-heading">Connecting over RS485 instead of a bridge?</h2>

<p class="wp-block-paragraph"><a href="https://qmodmaster.com/go/usb-rs485" rel="nofollow sponsored">USB-to-RS485 adapter (Amazon)</a> — if you skip the network bridge and wire the inverter&#8217;s RS485 terminals straight to your PC, a dependable FTDI-based adapter is the first thing to buy; cheap adapters are a classic source of intermittent Modbus timeouts.</p>

<h2 class="wp-block-heading">FAQ</h2>

<p class="wp-block-paragraph"><strong>QModMaster returns values but they&#8217;re all wrong-looking. Where do I start?</strong><br>Check function code first (0x03 holding registers for Deye sensor data), then signed vs unsigned interpretation, then the scale factor — and for temperature registers, the −1000 offset. One of those four explains nearly every &#8220;wrong value&#8221; report.</p>

<p class="wp-block-paragraph"><strong>My temperature reads ~125 °C. Is the inverter overheating?</strong><br>Almost certainly not — you&#8217;re seeing the raw value before the offset is applied. (1250 − 1000) × 0.1 = 25.0 °C is the correct decoding.</p>

<p class="wp-block-paragraph"><strong>Reads work in QModMaster but my HA definition shows nothing.</strong><br>Your HA config is asking for different addresses, a different Unit ID, or reading in blocks with gaps the bridge can&#8217;t serve. Since QModMaster proves the hardware path works, the bug is in the definition — re-verify each address against what QModMaster returned.</p>

<h2 class="wp-block-heading">Related Guides</h2>

<ul class="wp-block-list"><li><a href="https://qmodmaster.com/qmodmaster-tutorial/">QModMaster tutorial: your first register read</a></li><li><a href="https://qmodmaster.com/usb-to-rs485-adapter-buying-guide/">USB-to-RS485 adapter buying guide</a></li></ul>

<p class="wp-block-paragraph"><em>Verification workflow and the temperature-offset formula are documented in the leonelfaugusto/deye-modbus-tcp project README. Register addresses, scales, and which registers carry the offset vary by Deye model and firmware — always confirm against your inverter&#8217;s Modbus manual. qmodmaster.com is an independent community resource for the upstream QModMaster project (LGPLv3) and is not affiliated with Deye or the integration&#8217;s authors.</em></p>

<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"QModMaster returns values from my Deye inverter but they all look wrong. Where do I start?","acceptedAnswer":{"@type":"Answer","text":"Check function code first (0x03 holding registers for Deye sensor data), then signed vs unsigned interpretation, then the scale factor — and for temperature registers, the minus-1000 offset. One of those four explains nearly every wrong-value report."}},{"@type":"Question","name":"My Deye inverter temperature reads about 125 °C in QModMaster. Is it overheating?","acceptedAnswer":{"@type":"Answer","text":"Almost certainly not. Deye encodes some temperature registers with an offset of 1000: real_value = (raw - 1000) × scale. A raw 1250 with scale 0.1 is 25.0 °C."}},{"@type":"Question","name":"Reads work in QModMaster but my Home Assistant definition shows nothing. Why?","acceptedAnswer":{"@type":"Answer","text":"QModMaster proves the hardware path works, so the bug is in the HA definition: different addresses, a different Unit ID, or read blocks with gaps the bridge cannot serve. Re-verify each address against what QModMaster returned."}}]}</script>

<style>.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin:0 auto!important;padding:56px 24px 72px!important}</style>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Test Sungrow Inverter Modbus with QModMaster</title>
		<link>https://qmodmaster.com/sungrow-inverter-qmodmaster-test/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 03:15:55 +0000</pubDate>
				<category><![CDATA[Hardware & Devices]]></category>
		<guid isPermaLink="false">https://qmodmaster.com/sungrow-inverter-qmodmaster-test/</guid>

					<description><![CDATA[Test Sungrow Inverter Modbus with QModMaster If you&#8217;re wiring a Sungrow SH-series inverter into Home Assistant and the sensors come up empty, don&#8217;t start by rewriting your YAML. The troubleshooting guide of the popular Sungrow Modbus integration (mkaiser) recommends the same first step: check whether the Modbus connection works at all, using QModMaster — their...]]></description>
										<content:encoded><![CDATA[<h1 class="wp-block-heading">Test Sungrow Inverter Modbus with QModMaster</h1>

<p class="wp-block-paragraph">If you&#8217;re wiring a Sungrow SH-series inverter into Home Assistant and the sensors come up empty, don&#8217;t start by rewriting your YAML. The <a href="https://github.com/mkaiser/sungrow-shx-inverter-modbus-home-assistant/blob/HEAD/doc/help.md" rel="nofollow noopener" target="_blank">troubleshooting guide of the popular Sungrow Modbus integration (mkaiser)</a> recommends the same first step: <strong>check whether the Modbus connection works at all, using QModMaster</strong> — their Check #3. This page walks you through that pre-check so you can tell a hardware problem from a configuration problem in five minutes.</p>

<h2 class="wp-block-heading">Step 0: Ping the inverter before you touch Modbus</h2>

<p class="wp-block-paragraph">Before opening QModMaster, confirm the inverter is actually on your network. Find its IP in your router&#8217;s DHCP client list (or set a DHCP reservation so it doesn&#8217;t move), then ping it:</p>

<pre class="wp-block-code"><code>ping 192.168.1.50   # replace with your inverter's IP</code></pre>

<p class="wp-block-paragraph">If the ping fails, stop — no Modbus client can reach a host the PC can&#8217;t see. Fix the network first (cable, switch, Wi-Fi credentials on the dongle), then come back.</p>

<h2 class="wp-block-heading">Step 1: Use the internal LAN port, not the WiNet-S dongle</h2>

<p class="wp-block-paragraph">This is the single most common Sungrow gotcha. Recent Sungrow inverters ship with a WiNet-S dongle whose main job is talking to Sungrow&#8217;s iSolarCloud servers — its local Modbus access is a low-priority side feature, and some registers available on the internal LAN port simply aren&#8217;t exposed through it. The integration&#8217;s troubleshooting guide (Check #1) <strong>strongly recommends the inverter&#8217;s internal LAN port</strong> and treats the WiNet-S as a usual suspect for flaky Modbus. Connect the cable directly to the internal port, then make sure the inverter picks up an IP — some units only get an address on a cold boot, so a full power cycle (AC off, wait, battery/DC off, wait, then back on) can be necessary.</p>

<h2 class="wp-block-heading">Step 2: Set the QModMaster TCP parameters</h2>

<p class="wp-block-paragraph">In QModMaster, go to <strong>Options → Modbus TCP</strong> and set the TCP options, then fill in these connection parameters. Each one must match your own setup — the integration&#8217;s guide maps them directly to your Home Assistant <code>secrets.yaml</code> values:</p>

<figure class="wp-block-table"><table><thead><tr><th>QModMaster field</th><th>Value to use</th><th>Where it comes from</th></tr></thead><tbody><tr><td>Slave IP</td><td>Your inverter&#8217;s LAN IP</td><td>Your router / inverter display</td></tr><tr><td>TCP Port</td><td>502</td><td>Standard Modbus TCP port</td></tr><tr><td>Unit ID</td><td>Your Modbus slave number</td><td>Your inverter config (e.g. <code>sungrow_modbus_slave</code> in secrets.yaml)</td></tr></tbody></table></figure>

<p class="wp-block-paragraph">Note: 502 is the standard Modbus TCP port. If your setup routes Modbus through a gateway or bridge on a different port, use that port instead — <strong>always confirm against your own device manual and configuration</strong>.</p>

<h2 class="wp-block-heading">Step 3: Read a register and sanity-check the value</h2>

<p class="wp-block-paragraph">With the TCP settings in place, request a read (function code 0x04, Read Input Registers) of a register your inverter actually supports and compare the result with what the inverter display shows. A sensible number means the link is healthy and the problem is in your Home Assistant configuration (entity mapping, scan interval, wrong Unit ID there). A timeout or an exception response means the problem is below Home Assistant — go back to Steps 0–2.</p>

<p class="wp-block-paragraph">Two Sungrow-specific notes from the integration&#8217;s guide: users with single-phase inverters (SH3.RS style) report that only a <em>subset</em> of the documented registers answer — register availability is decided by Sungrow&#8217;s firmware, and no client-side tweak can unlock more. And if nothing answers at all after a firmware update, power-cycle the inverter as described in Step 1.</p>

<h2 class="wp-block-heading">Do you need an adapter at all?</h2>

<p class="wp-block-paragraph">This pre-check runs over your LAN (Modbus TCP) — no serial hardware needed. If instead you plan to reach the inverter over its RS485 terminals, you&#8217;ll need a USB-to-RS485 adapter on the PC side:</p>

<p class="wp-block-paragraph"><a href="https://qmodmaster.com/go/usb-rs485" rel="nofollow sponsored">USB-to-RS485 adapter (Amazon)</a> — grab a reliable FTDI-based adapter before you start debugging; flaky adapters cause half the &#8220;mystery timeouts&#8221; in Modbus troubleshooting.</p>

<h2 class="wp-block-heading">FAQ</h2>

<p class="wp-block-paragraph"><strong>QModMaster times out but the inverter pings fine. What now?</strong><br>Check three things: you&#8217;re on the internal LAN port (not WiNet-S), the Unit ID matches your inverter&#8217;s slave number, and the inverter actually has an IP (cold-boot it if it was only recently plugged in). A ping only proves the network stack is up, not that Modbus TCP is listening.</p>

<p class="wp-block-paragraph"><strong>I can read some registers but not others. Is my setup broken?</strong><br>Probably not. Sungrow&#8217;s firmware decides which registers exist — single-phase models expose fewer than three-phase ones. Match your expectations to your model&#8217;s register table, not the other way round.</p>

<p class="wp-block-paragraph"><strong>QModMaster reads fine, but Home Assistant shows nothing. What&#8217;s the difference?</strong><br>Then the link is healthy and the bug is in your HA config: wrong Unit ID there, wrong register addresses, or a scan interval the inverter can&#8217;t keep up with. Fix it in the YAML, not on the wire.</p>

<h2 class="wp-block-heading">Related Guides</h2>

<ul class="wp-block-list"><li><a href="https://qmodmaster.com/qmodmaster-tutorial/">QModMaster tutorial: your first register read</a></li><li><a href="https://qmodmaster.com/usb-to-rs485-adapter-buying-guide/">USB-to-RS485 adapter buying guide</a></li></ul>

<p class="wp-block-paragraph"><em>Connection parameters here are adapted from the mkaiser Sungrow-SHx Modbus Home Assistant integration troubleshooting doc (Check #3). Exact Unit IDs and register availability vary by model and firmware — always confirm against your inverter&#8217;s manual and your own configuration. qmodmaster.com is an independent community resource for the upstream QModMaster project (LGPLv3) and is not affiliated with Sungrow or the integration&#8217;s authors.</em></p>

<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"QModMaster times out but the inverter pings fine. What now?","acceptedAnswer":{"@type":"Answer","text":"Check you are using the inverter's internal LAN port rather than the WiNet-S dongle, that the Unit ID matches the inverter's Modbus slave number, and that the inverter actually has an IP address (cold-boot it if needed). Ping only proves the network stack is up, not that Modbus TCP is listening."}},{"@type":"Question","name":"I can read some registers but not others on my Sungrow inverter. Is my setup broken?","acceptedAnswer":{"@type":"Answer","text":"Probably not. Register availability is decided by Sungrow's firmware; single-phase models expose a smaller subset than three-phase models. Match your expectations to your model's register table."}},{"@type":"Question","name":"QModMaster reads fine but Home Assistant shows nothing. What is wrong?","acceptedAnswer":{"@type":"Answer","text":"The link is healthy and the bug is in your Home Assistant configuration: a wrong Unit ID, wrong register addresses, or a scan interval the inverter cannot keep up with. Fix it in the YAML, not on the wire."}}]}</script>

<style>.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin:0 auto!important;padding:56px 24px 72px!important}</style>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Waveshare Gateway: ModbusTCP Mode vs Transparent Mode (8899)</title>
		<link>https://qmodmaster.com/waveshare-gateway-tcp-vs-transparent-mode/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 03:15:42 +0000</pubDate>
				<category><![CDATA[Hardware & Devices]]></category>
		<guid isPermaLink="false">https://qmodmaster.com/waveshare-gateway-tcp-vs-transparent-mode/</guid>

					<description><![CDATA[Waveshare Gateway: ModbusTCP Mode vs Transparent Mode (8899) Waveshare&#8217;s RS-485-to-Ethernet gateways ship with two completely different operating modes, and picking the wrong one is why your QModMaster connection either works perfectly or fails in confusing ways. This guide explains ModbusTCP conversion mode (port 502) vs transparent transmission mode (port 8899), which one to choose, and...]]></description>
										<content:encoded><![CDATA[<h1 class="wp-block-heading">Waveshare Gateway: ModbusTCP Mode vs Transparent Mode (8899)</h1>

<p class="wp-block-paragraph">Waveshare&#8217;s RS-485-to-Ethernet gateways ship with two completely different operating modes, and picking the wrong one is why your QModMaster connection either works perfectly or fails in confusing ways. This guide explains <strong>ModbusTCP conversion mode (port 502)</strong> vs <strong>transparent transmission mode (port 8899)</strong>, which one to choose, and exactly how to configure QModMaster for each.</p>

<h2 class="wp-block-heading">Mode 1: ModbusTCP conversion mode (port 502)</h2>

<p class="wp-block-paragraph">In conversion mode the gateway is a <strong>protocol translator</strong>. On the Ethernet side it speaks real Modbus TCP — it parses the 7-byte MBAP header, reads the <strong>Unit ID byte</strong>, and rebuilds the request as a Modbus RTU frame on the RS-485 bus addressed to that slave. Replies travel the reverse path. This is the mode that makes multi-slave setups work: each Unit ID in your TCP request reaches a different RTU device (see our <a href="/qmodmaster-tcp-gateway-multiple-slaves/">Unit ID gateway guide</a> for the details).</p>

<p class="wp-block-paragraph">Choose conversion mode when your master software speaks <strong>native Modbus TCP</strong> — which includes QModMaster&#8217;s TCP mode. The Home Assistant community documents this split clearly: integrations use <code>type: tcp</code> against Waveshare gateways in conversion mode, while <code>type: rtuovertcp</code> is reserved for transparent bridges (see the <a href="https://github.com/jrx-code/ha-toshiba-modbus" rel="nofollow noopener" target="_blank">ha-toshiba-modbus docs</a>, which spell out exactly this mapping).</p>

<h2 class="wp-block-heading">Mode 2: Transparent transmission mode (port 8899)</h2>

<p class="wp-block-paragraph">In transparent mode the gateway is a <strong>dumb pipe</strong>: raw RS-485 bytes go in one end and come out the other, wrapped in nothing but a TCP stream. There is no MBAP header, no Unit ID parsing, no protocol conversion. Whatever bytes your software sends to port 8899 appear verbatim on the RS-485 bus.</p>

<p class="wp-block-paragraph">This is the mode behind the well-known <strong>port 8899</strong> in the Home Assistant world — Waveshare gateways in transparent mode are reached as &#8220;raw RTU over TCP&#8221;, which is why HA configs use <code>rtuovertcp</code> for them (documented in the <a href="https://github.com/stuartj1-1981/Solis-Local" rel="nofollow noopener" target="_blank">Solis-Local gateway docs</a>: TCP⇔RTU conversion vs transparent raw-RTU-over-TCP). Choose transparent mode when your master only speaks <strong>Modbus RTU</strong> and you want the Ethernet link to behave exactly like a very long serial cable.</p>

<h2 class="wp-block-heading">How to connect each mode from QModMaster</h2>

<p class="wp-block-paragraph">Here is the part that trips everyone up: <strong>QModMaster only offers two modes — RTU (serial port) and TCP. It has no native RTU-over-TCP option.</strong> So the correct QModMaster setup depends entirely on the gateway mode:</p>

<ul class="wp-block-list"><li><strong>Gateway in ModbusTCP conversion mode → QModMaster in TCP mode.</strong> Enter the gateway IP, port <strong>502</strong>, and set the <strong>Slave ID</strong> field to the Unit ID of the device you want (this fills the MBAP Unit ID byte). This is the straightforward, recommended combination for QModMaster users.</li><li><strong>Gateway in transparent mode (8899) → QModMaster in RTU mode via a virtual serial port.</strong> Since QModMaster can&#8217;t send raw RTU frames over TCP by itself, install a virtual COM port driver that maps a virtual serial port to the gateway&#8217;s <strong>IP:8899</strong>, then open that virtual port in QModMaster&#8217;s RTU mode with the correct baud/parity settings. The gateway then acts as a transparent serial extension.</li></ul>

<p class="wp-block-paragraph">The most common misconfiguration: the gateway sits in transparent mode on 8899 while QModMaster connects in TCP mode to 502 — QModMaster sends MBAP-framed requests into a pipe that forwards the bytes raw, the slaves see garbage framing, and nothing answers. Match the QModMaster mode to the gateway mode and the problem disappears.</p>

<div class="rm-cta">
<p class="wp-block-paragraph"><strong>Need a gateway that does both modes cleanly?</strong> Check current options in our <a href="/go/rs485-gateway/" rel="nofollow sponsored">RS-485 gateway picks</a> — look for explicit ModbusTCP↔RTU conversion <em>and</em> transparent mode support in the specs.</p>
</div>

<div class="rm-faq">
<h2 class="wp-block-heading">Frequently asked questions</h2>

<h3 class="wp-block-heading">Which Waveshare gateway mode should I use with QModMaster?</h3>
<p class="wp-block-paragraph">ModbusTCP conversion mode (port 502) with QModMaster in TCP mode — it&#8217;s the only combination QModMaster supports natively, and it&#8217;s the only one that forwards Unit IDs to multiple slaves.</p>

<h3 class="wp-block-heading">Can QModMaster do RTU-over-TCP directly?</h3>
<p class="wp-block-paragraph">No. QModMaster offers RTU (serial) and TCP modes only. For a transparent-mode gateway on port 8899, use a virtual COM port driver to expose the gateway as a serial port, then use QModMaster&#8217;s RTU mode.</p>

<h3 class="wp-block-heading">Why does QModMaster connect but every read times out?</h3>
<p class="wp-block-paragraph">Classic mode mismatch: QModMaster in TCP mode talking to a gateway in transparent mode (or vice versa). Verify which mode the gateway is actually in — its web UI or DIP switches — and match QModMaster accordingly.</p>
</div>

<script type="application/ld+json">
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Which Waveshare gateway mode should I use with QModMaster?","acceptedAnswer":{"@type":"Answer","text":"ModbusTCP conversion mode (port 502) with QModMaster in TCP mode — it's the only combination QModMaster supports natively, and it's the only one that forwards Unit IDs to multiple slaves."}},{"@type":"Question","name":"Can QModMaster do RTU-over-TCP directly?","acceptedAnswer":{"@type":"Answer","text":"No. QModMaster offers RTU (serial) and TCP modes only. For a transparent-mode gateway on port 8899, use a virtual COM port driver to expose the gateway as a serial port, then use QModMaster's RTU mode."}},{"@type":"Question","name":"Why does QModMaster connect but every read times out?","acceptedAnswer":{"@type":"Answer","text":"Classic mode mismatch: QModMaster in TCP mode talking to a gateway in transparent mode (or vice versa). Verify which mode the gateway is actually in — its web UI or DIP switches — and match QModMaster accordingly."}}]}
</script>

<div class="related-guides">
<h2 class="wp-block-heading">Related guides</h2>
<ul class="wp-block-list"><li><a href="/qmodmaster-rtu-over-tcp-explained/">QModMaster RTU-over-TCP Explained</a></li><li><a href="/qmodmaster-tcp-gateway-multiple-slaves/">QModMaster via Modbus TCP Gateway: Multiple Slaves Unit ID Guide</a></li><li><a href="/qmodmaster-tutorial/">QModMaster Tutorial: First Read in 10 Minutes</a></li><li><a href="/download/">Download QModMaster (LGPLv3, free)</a></li></ul>
</div>

<style>
.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin:0 auto!important;padding:56px 24px 72px!important}
.rm-cta{background:#f6f8fb;border:1px solid #e2e8f0;border-left:4px solid #1a73e8;border-radius:8px;padding:18px 22px;margin:28px 0}
.rm-faq{margin:36px 0}
.rm-faq h3{font-size:1.05rem;margin:18px 0 6px}
.related-guides{background:#fafbfc;border:1px solid #e2e8f0;border-radius:8px;padding:20px 24px;margin:36px 0}
.related-guides ul{margin:8px 0 0 20px}
</style>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Read Your Growatt Inverter with QModMaster via Modbus</title>
		<link>https://qmodmaster.com/growatt-inverter-qmodmaster-read/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 03:00:05 +0000</pubDate>
				<category><![CDATA[Hardware & Devices]]></category>
		<guid isPermaLink="false">https://qmodmaster.com/growatt-inverter-qmodmaster-read/</guid>

					<description><![CDATA[Read Your Growatt Inverter with QModMaster via Modbus This is a first-read walkthrough for Growatt solar inverters using QModMaster, the free open-source (LGPLv3) Modbus master simulator from the upstream project. The settings below come from a community-tested setup — a Growatt SPH10000TL3 BH-UP read through a PUSR gateway, with function code 0x04 starting at address...]]></description>
										<content:encoded><![CDATA[<h1 class="wp-block-heading">Read Your Growatt Inverter with QModMaster via Modbus</h1>

<p class="wp-block-paragraph">This is a first-read walkthrough for Growatt solar inverters using QModMaster, the free open-source (LGPLv3) Modbus master simulator from the upstream project. The settings below come from a community-tested setup — a Growatt SPH10000TL3 BH-UP read through a PUSR gateway, with function code 0x04 starting at address 1000 — not from a manual, and that is the point: these are values someone actually got data back with.</p>

<div style="background:#fff8e6;border-left:4px solid #e0a100;padding:16px 20px;margin:24px 0;border-radius:4px"><strong>⚠️ Model disclaimer:</strong> register maps differ between Growatt series (MIC, MIN, TL-X, SPH…). The parameters on this page were verified on an <strong>SPH10000TL3 BH-UP</strong>; always confirm against your own model&#8217;s documentation before trusting an address.</div>

<div style="background:#f0f7ff;border-left:4px solid #2271b1;padding:16px 20px;margin:24px 0;border-radius:4px"><strong>☀️ Solar DIY purchase #1:</strong> if you don&#8217;t have a way to reach the RS485 bus yet, a USB-to-RS485 adapter is where every Growatt Modbus project starts — <a href="https://qmodmaster.com/go/usb-rs485" target="_blank" rel="noopener nofollow sponsored">get one here</a>.</div>

<h2 class="wp-block-heading">What You Need</h2>

<ul class="wp-block-list"><li>A Growatt inverter with an RS485/Modbus port. Community reports cover the SPH10000TL3 BH-UP and the MIN 4600 TL-XH; older TLS units have been reported as not answering Modbus at all.</li>

<li>One connection path: a USB-to-RS485 adapter wired from your PC to the inverter, <strong>or</strong> a serial-to-TCP gateway on your LAN (community members used the PUSR USR-TCP232-410S and the USR-DR164).</li>

<li>QModMaster from the upstream project, installed on a computer that can reach the adapter or gateway.</li></ul>

<h2 class="wp-block-heading">Wire It Up</h2>

<ul class="wp-block-list"><li><strong>SPH series:</strong> use the RS485-1 port and set the port mode to <strong>VPP</strong> in the inverter settings — this is the configuration the community-tested setup used. (One SPH owner found the usable A/B pair inside the SYS COM connector on pins 3/4. Always power everything off before opening connectors.)</li>

<li>Keep the RS485 run short and properly shielded; 9600 baud is the forgiving starting point — higher baud rates get picky about cable quality fast.</li>

<li><strong>Gateway path:</strong> set the PUSR to working mode <strong>TCP Server / ModbusTCP</strong> and note the IP address your router assigns it (pin it with a DHCP reservation so it doesn&#8217;t move).</li></ul>

<h2 class="wp-block-heading">QModMaster Settings: The Verified First Read</h2>

<p class="wp-block-paragraph">These are the exact settings a community member used to verify the link before writing any Home Assistant config (&#8220;Verify the connection with qModMaster… read with function code 0x04 address 1000 decimal and try to read&#8221;):</p>

<ul class="wp-block-list"><li><strong>1.</strong> Options → Modbus TCP. IP address = your gateway&#8217;s IP, port = <strong>502</strong>.</li>

<li><strong>2.</strong> Set Unit ID = <strong>1</strong>.</li>

<li><strong>3.</strong> Press <strong>Connect</strong>.</li>

<li><strong>4.</strong> Function Code = <strong>Read Input Registers (0x04)</strong>.</li>

<li><strong>5.</strong> Start Address = <strong>1000</strong> (decimal). Number of Registers: start with 10 and expand once it works.</li>

<li><strong>6.</strong> Press <strong>Scan</strong>. If values come back, you are reading the inverter. If you get timeouts instead, see the <a href="https://qmodmaster.com/modbus-no-response-timeout-fix/">no-response fix guide</a>.</li></ul>

<h2 class="wp-block-heading">Community-Tested Registers (SPH10000TL3 BH-UP)</h2>

<p class="wp-block-paragraph">Once the first read works, these addresses were verified in a working Home Assistant configuration against the same inverter — all read with function code 04, slave 1. Probe each one in QModMaster before trusting it:</p>

<div style="overflow-x:auto;margin:24px 0"><table style="width:100%;border-collapse:collapse;font-size:15px"><thead><tr style="background:#f5f5f5"><th style="border:1px solid #ddd;padding:10px 12px;text-align:left">Address (FC04)</th><th style="border:1px solid #ddd;padding:10px 12px;text-align:left">Value</th><th style="border:1px solid #ddd;padding:10px 12px;text-align:left">Type</th><th style="border:1px solid #ddd;padding:10px 12px;text-align:left">Scale</th></tr></thead><tbody><tr><td style="border:1px solid #ddd;padding:10px 12px"><code>1</code></td><td style="border:1px solid #ddd;padding:10px 12px">Total PV power</td><td style="border:1px solid #ddd;padding:10px 12px"><code>uint32</code></td><td style="border:1px solid #ddd;padding:10px 12px">×0.1 → W</td></tr><tr><td style="border:1px solid #ddd;padding:10px 12px"><code>3</code></td><td style="border:1px solid #ddd;padding:10px 12px">PV1 voltage</td><td style="border:1px solid #ddd;padding:10px 12px"><code>uint16</code></td><td style="border:1px solid #ddd;padding:10px 12px">×0.1 → V</td></tr><tr><td style="border:1px solid #ddd;padding:10px 12px"><code>5</code></td><td style="border:1px solid #ddd;padding:10px 12px">PV1 power</td><td style="border:1px solid #ddd;padding:10px 12px"><code>uint32</code></td><td style="border:1px solid #ddd;padding:10px 12px">×0.1 → W</td></tr><tr><td style="border:1px solid #ddd;padding:10px 12px"><code>7</code></td><td style="border:1px solid #ddd;padding:10px 12px">PV2 voltage</td><td style="border:1px solid #ddd;padding:10px 12px"><code>uint16</code></td><td style="border:1px solid #ddd;padding:10px 12px">×0.1 → V</td></tr><tr><td style="border:1px solid #ddd;padding:10px 12px"><code>9</code></td><td style="border:1px solid #ddd;padding:10px 12px">PV2 power</td><td style="border:1px solid #ddd;padding:10px 12px"><code>uint32</code></td><td style="border:1px solid #ddd;padding:10px 12px">×0.1 → W</td></tr><tr><td style="border:1px solid #ddd;padding:10px 12px"><code>1009</code></td><td style="border:1px solid #ddd;padding:10px 12px">Battery discharging power</td><td style="border:1px solid #ddd;padding:10px 12px"><code>uint32</code></td><td style="border:1px solid #ddd;padding:10px 12px">×0.1 → W</td></tr><tr><td style="border:1px solid #ddd;padding:10px 12px"><code>1011</code></td><td style="border:1px solid #ddd;padding:10px 12px">Battery charging power</td><td style="border:1px solid #ddd;padding:10px 12px"><code>uint32</code></td><td style="border:1px solid #ddd;padding:10px 12px">×0.1 → W</td></tr><tr><td style="border:1px solid #ddd;padding:10px 12px"><code>1014</code></td><td style="border:1px solid #ddd;padding:10px 12px">Battery SOC</td><td style="border:1px solid #ddd;padding:10px 12px"><code>uint16</code></td><td style="border:1px solid #ddd;padding:10px 12px">% (no scale)</td></tr><tr><td style="border:1px solid #ddd;padding:10px 12px"><code>1021</code></td><td style="border:1px solid #ddd;padding:10px 12px">Grid import power</td><td style="border:1px solid #ddd;padding:10px 12px"><code>uint32</code></td><td style="border:1px solid #ddd;padding:10px 12px">×0.1 → W</td></tr><tr><td style="border:1px solid #ddd;padding:10px 12px"><code>1029</code></td><td style="border:1px solid #ddd;padding:10px 12px">Grid export power</td><td style="border:1px solid #ddd;padding:10px 12px"><code>uint32</code></td><td style="border:1px solid #ddd;padding:10px 12px">×0.1 → W</td></tr><tr><td style="border:1px solid #ddd;padding:10px 12px"><code>1037</code></td><td style="border:1px solid #ddd;padding:10px 12px">Local load power</td><td style="border:1px solid #ddd;padding:10px 12px"><code>uint32</code></td><td style="border:1px solid #ddd;padding:10px 12px">×0.1 → W</td></tr></tbody></table></div>

<p class="wp-block-paragraph">Again: these held true for an SPH10000TL3 BH-UP. MIC, MIN, and TL-X series may use different maps — your model&#8217;s manual is the authority, QModMaster is the lie detector.</p>

<h2 class="wp-block-heading">Carry It Into Home Assistant</h2>

<p class="wp-block-paragraph">Once an address returns sane data in QModMaster, copy it straight into your Modbus config: <code>type: tcp</code>, <code>host:</code> your gateway IP, <code>port: 502</code>, <code>slave: 1</code>, <code>input_type: input</code>, <code>address:</code> the verified address, <code>data_type</code> per the table above. This &#8220;QModMaster first&#8221; method — the bisection framework plus the complete field-to-YAML mapping — is documented on the hub page: <a href="https://qmodmaster.com/test-modbus-with-qmodmaster-before-home-assistant/">Test Modbus with QModMaster Before Home Assistant</a>.</p>

<h2 class="wp-block-heading">Gotchas</h2>

<ul class="wp-block-list"><li>The inverter has to be producing — expect data to flow when the sun is shining, not at midnight.</li>

<li>On SPH models the RS485 port must be in <strong>VPP</strong> mode (not Battery) for Modbus to answer.</li>

<li>A MIN 4600 TL-XH was reported working with a sub-€2 USB-to-RS485 adapter — you don&#8217;t need expensive hardware for a first read.</li>

<li>If QModMaster times out too, the problem is the link, not your config: check A/B wiring, gateway mode (TCP Server / ModbusTCP), and Unit ID 1.</li></ul>

<h2 class="wp-block-heading">FAQ</h2>

<h3 class="wp-block-heading">Which Growatt models does this work for?</h3>

<p class="wp-block-paragraph">Community reports confirm the SPH10000TL3 BH-UP (via PUSR gateway) and the MIN 4600 TL-XH (via USB-to-RS485 adapter). Older TLS units have been reported as not answering Modbus at all. Register maps differ by series — check your model&#8217;s manual.</p>

<h3 class="wp-block-heading">Direct USB adapter or TCP gateway?</h3>

<p class="wp-block-paragraph">Both work. A cheap USB-to-RS485 adapter is enough for a first read from a PC; a PUSR gateway puts the inverter on your LAN so Home Assistant can poll it continuously.</p>

<h3 class="wp-block-heading">What serial parameters should I use for a direct RTU connection?</h3>

<p class="wp-block-paragraph">The community-tested path used a TCP gateway, so baud rate never entered the picture. For direct RS485, start at 9600 8N1 and match whatever your inverter&#8217;s port is configured for — your model&#8217;s manual is the authority here.</p>

<h3 class="wp-block-heading">QModMaster connects but reads return timeouts. Now what?</h3>

<p class="wp-block-paragraph">Work the physical layer: swap A/B, confirm the gateway is in TCP Server / ModbusTCP mode, confirm Unit ID 1, and on SPH models confirm the port is in VPP mode. The <a href="https://qmodmaster.com/modbus-no-response-timeout-fix/">timeout fix guide</a> walks through this systematically.</p>

<h2 class="wp-block-heading">Related Guides</h2>

<ul class="wp-block-list"><li><a href="https://qmodmaster.com/test-modbus-with-qmodmaster-before-home-assistant/">Test Modbus with QModMaster Before Home Assistant</a></li>

<li><a href="https://qmodmaster.com/qmodmaster-tutorial/">QModMaster Tutorial: First Connection Step by Step</a></li>

<li><a href="https://qmodmaster.com/usb-to-rs485-adapter-buying-guide/">USB-to-RS485 Adapter Buying Guide</a></li>

<li><a href="https://qmodmaster.com/modbus-float-wrong-value-byte-order-fix/">Modbus Float Shows Wrong Value: Byte Order Fix</a></li></ul>

<script type="application/ld+json">
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Which Growatt models can be read with QModMaster over Modbus?","acceptedAnswer":{"@type":"Answer","text":"Community reports confirm the Growatt SPH10000TL3 BH-UP (via PUSR TCP gateway) and the MIN 4600 TL-XH (via USB-to-RS485 adapter). Older TLS units have been reported as not answering Modbus at all. Register maps differ by series, so check your model's manual."}},{"@type":"Question","name":"Should I use a USB-to-RS485 adapter or a TCP gateway for my Growatt inverter?","acceptedAnswer":{"@type":"Answer","text":"Both work. A cheap USB-to-RS485 adapter is enough for a first read from a PC; a PUSR gateway puts the inverter on your LAN so Home Assistant can poll it continuously."}},{"@type":"Question","name":"What QModMaster settings read a Growatt inverter?","acceptedAnswer":{"@type":"Answer","text":"In the community-tested setup: Options > Modbus TCP with the gateway IP and port 502, Unit ID 1, function code Read Input Registers (0x04), start address 1000 decimal, then Scan. The SPH inverter's RS485 port must be in VPP mode."}},{"@type":"Question","name":"QModMaster connects but register reads time out. What should I check?","acceptedAnswer":{"@type":"Answer","text":"Check the physical layer: swap A/B wiring, confirm the PUSR gateway is in TCP Server / ModbusTCP mode, confirm Unit ID 1, and on SPH models confirm the RS485 port is in VPP mode."}}]}
</script>

<style>
.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin:0 auto!important;padding:56px 24px 72px!important}
table code{background:#f0f0f0;padding:1px 5px;border-radius:3px;font-size:13px}
</style>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Read an Eastron SDM230 Energy Meter with QModMaster</title>
		<link>https://qmodmaster.com/eastron-sdm230-qmodmaster/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 02:59:45 +0000</pubDate>
				<category><![CDATA[Hardware & Devices]]></category>
		<guid isPermaLink="false">https://qmodmaster.com/eastron-sdm230-qmodmaster/</guid>

					<description><![CDATA[Read an Eastron SDM230 Energy Meter with QModMaster The Eastron SDM230 is a single-phase DIN-rail energy meter that publishes voltage, current, active power, power factor and cumulative kWh over RS-485 using Modbus RTU. It is one of the most common meters in home-energy monitoring projects, and it is an ideal first device to read with...]]></description>
										<content:encoded><![CDATA[<h1 class="wp-block-heading">Read an Eastron SDM230 Energy Meter with QModMaster</h1>
<p class="wp-block-paragraph">The Eastron SDM230 is a single-phase DIN-rail energy meter that publishes voltage, current, active power, power factor and cumulative kWh over RS-485 using <strong>Modbus RTU</strong>. It is one of the most common meters in home-energy monitoring projects, and it is an ideal first device to read with QModMaster (free, open source, LGPLv3) because its register map is simple and well documented.</p>
<p class="wp-block-paragraph">The parameters below come from Eastron&#8217;s SDM230 Modbus protocol document via the Ubidots help article &#8220;Connect Eastron SDM230 to Ubidots over Modbus RTU&#8221;, which states its table was verified against that document (their note, August 2026). <strong>Eastron has changed register maps between hardware revisions</strong> (SDM230-Modbus, SDM230M, V2, V3) — confirm your exact variant against the current document before trusting an address in production.</p>
<h2 class="wp-block-heading">Step 1 — Wire the meter and set the serial parameters</h2>
<p class="wp-block-paragraph">Connect the SDM230 to your power network per the datasheet, then connect the meter&#8217;s RS-485 <strong>A and B</strong> terminals to your USB-to-RS485 adapter. Practical wiring rules from the evidence source:</p>
<ul class="wp-block-list">
<li>Terminate the bus with <strong>120 Ω at both physical ends only</strong>.</li>
<li>Run the RS-485 pair in a <strong>separate conduit</strong> from the power conductors.</li>
<li>If the meter does not answer, <strong>swap A and B</strong> — the labelling is not standardised between vendors.</li>
</ul>
<div class="qm-table-wrap">
<table class="qm-table">
<thead><tr><th>Setting</th><th>Factory default</th><th>Holding register</th></tr></thead>
<tbody>
<tr><td>Baud rate</td><td><strong>9600</strong></td><td>40029 (0x001C)</td></tr>
<tr><td>Parity</td><td><strong>None</strong></td><td>40019 (0x0012)</td></tr>
<tr><td>Stop bits</td><td><strong>1</strong></td><td>40019 (0x0012)</td></tr>
<tr><td>Slave ID</td><td><strong>1</strong></td><td>40021 (0x0014)</td></tr>
</tbody>
</table>
</div>
<p class="wp-block-paragraph">All four are changeable from the meter&#8217;s front panel (or by writing the holding registers shown), but the master has to match all four <strong>exactly</strong>. Set them on the bench before the meter goes into the panel — it is far harder once it is behind a cover.</p>
<h2 class="wp-block-heading">Step 2 — The SDM230 register map (from the evidence source)</h2>
<p class="wp-block-paragraph">All measurements live in <strong>input registers</strong>, read with <strong>function code 04</strong>. Holding registers (4xxxx) hold configuration only — baud rate, parity, node address, register order — and are read with FC03 / written with FC16. Every value is a 32-bit IEEE-754 float across two registers:</p>
<div class="qm-table-wrap">
<table class="qm-table">
<thead><tr><th>Parameter</th><th>Register</th><th>Decimal address</th><th>Unit</th></tr></thead>
<tbody>
<tr><td>Line to neutral volts</td><td>30001</td><td>0</td><td>V</td></tr>
<tr><td>Current</td><td>30007</td><td>6</td><td>A</td></tr>
<tr><td>Active power</td><td>30013</td><td>12</td><td>W</td></tr>
<tr><td>Apparent power</td><td>30019</td><td>18</td><td>VA</td></tr>
<tr><td>Reactive power</td><td>30025</td><td>24</td><td>VAr</td></tr>
<tr><td>Power factor</td><td>30031</td><td>30</td><td>—</td></tr>
<tr><td>Phase angle</td><td>30037</td><td>36</td><td>°</td></tr>
<tr><td>Frequency</td><td>30071</td><td>70</td><td>Hz</td></tr>
<tr><td>Import active energy</td><td>30073</td><td>72</td><td>kWh</td></tr>
<tr><td>Export active energy</td><td>30075</td><td>74</td><td>kWh</td></tr>
<tr><td>Import reactive energy</td><td>30077</td><td>76</td><td>kVArh</td></tr>
<tr><td>Export reactive energy</td><td>30079</td><td>78</td><td>kVArh</td></tr>
<tr><td>Total active energy</td><td>30343</td><td>342</td><td>kWh</td></tr>
<tr><td>Total reactive energy</td><td>30345</td><td>344</td><td>kVArh</td></tr>
</tbody>
</table>
</div>
<p class="wp-block-paragraph">Note the two address columns: the meter&#8217;s documentation numbers registers as <strong>30001</strong>, but the protocol-level (0-based) address of that register is <strong>0</strong>. QModMaster&#8217;s Start Address field takes the decimal address — so you enter <strong>0</strong>, not 30001. The full story is in our <a href="https://qmodmaster.com/modbus-register-address-offset-guide/">Modbus register address offset guide</a>.</p>
<h2 class="wp-block-heading">Step 3 — First read in QModMaster: line voltage</h2>
<ul class="wp-block-list">
<li>In QModMaster, select <strong>Modbus RTU</strong> mode.</li>
<li>Choose your adapter&#8217;s <strong>serial port</strong> and set <strong>9600 baud, 8 data bits, no parity, 1 stop bit</strong> (unless you changed the meter from factory defaults).</li>
<li>Set <strong>Slave ID</strong> to <strong>1</strong> (the factory default).</li>
<li>Select <strong>FC04 — Read Input Registers</strong>.</li>
<li>Set <strong>Start Address</strong> to <strong>0</strong>, <strong>Quantity</strong> to <strong>2</strong> — this reads &#8220;Line to neutral volts&#8221; (register 30001).</li>
<li>Click <strong>Connect / Read</strong>, then use the <strong>View menu</strong> to switch the display to <strong>Float</strong>: the two raw registers combine into one IEEE-754 value.</li>
</ul>
<p class="wp-block-paragraph">On a live single-phase circuit you should see something near your mains voltage (e.g. ~230 V in Europe). Next, read <strong>current</strong> (Start Address <strong>6</strong>, Quantity 2) and <strong>active power</strong> (Start Address <strong>12</strong>, Quantity 2) the same way. For lifetime energy, read Start Address <strong>342</strong>, Quantity 2 (total active energy, kWh).</p>
<h2 class="wp-block-heading">Step 4 — When the readings are wrong</h2>
<ul class="wp-block-list">
<li><strong>Garbage values or NaN:</strong> this is the signature of a <strong>byte/word order mismatch</strong>, not a wiring fault. The SDM230 sends the most significant register first by default. If QModMaster assumes the opposite order, swap the two 16-bit words before reinterpreting as a float, or change the meter&#8217;s &#8220;Register Order&#8221; holding register to match your master. Details: <a href="https://qmodmaster.com/modbus-float-wrong-value-byte-order-fix/">Modbus float wrong value — byte order fix</a>.</li>
<li><strong>No response at all:</strong> the master must match baud, parity, stop bits and slave ID exactly. Try swapping A/B, check that the slave ID is still 1 (or the value you set), and confirm the bus is terminated with 120 Ω at both ends.</li>
<li><strong>Plausible but wrong values:</strong> double-check the offset — entering 30001 instead of 0 in the Start Address field reads the wrong register. See the <a href="https://qmodmaster.com/modbus-register-address-offset-guide/">address offset guide</a>.</li>
</ul>
<div class="qm-cta"><strong>Bench gear for this test:</strong> you need a USB-to-RS485 adapter to talk to the SDM230 (<a href="https://qmodmaster.com/go/usb-rs485" target="_blank" rel="noopener nofollow sponsored">the adapter I use for QModMaster tests</a>), and a handheld multimeter is handy for sanity-checking the meter&#8217;s voltage reading (<a href="https://qmodmaster.com/go/multimeter" target="_blank" rel="noopener nofollow sponsored">see the multimeter</a>).</div>
<h2 class="wp-block-heading">Frequently asked questions</h2>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Is the Eastron SDM230 single-phase only?",
      "acceptedAnswer": { "@type": "Answer", "text": "Yes. The SDM230 is a single-phase meter measuring one line-to-neutral circuit. For three-phase installations, Eastron's SDM630 exposes the same style of IEEE-754 input registers with per-phase values." }
    },
    {
      "@type": "Question",
      "name": "Does the SDM230 use input registers or holding registers?",
      "acceptedAnswer": { "@type": "Answer", "text": "Both, for different things. All measurements are input registers (3xxxx), read with function code 04. Holding registers (4xxxx) hold configuration only — baud rate, parity, node address and register order — read with function code 03 and written with function code 16." }
    },
    {
      "@type": "Question",
      "name": "Why does QModMaster show garbage instead of the voltage?",
      "acceptedAnswer": { "@type": "Answer", "text": "The meter returns a 32-bit IEEE-754 float split across two 16-bit registers, most significant register first by default. Switch QModMaster's View to Float. If you still get NaN or tiny numbers, it is a word-order mismatch: swap the two registers' order or change the meter's Register Order holding register." }
    },
    {
      "@type": "Question",
      "name": "Which Modbus register holds total energy on the SDM230?",
      "acceptedAnswer": { "@type": "Answer", "text": "Total active energy is register 30343, decimal address 342, in kWh. Like every other value it is a 32-bit float across two registers: in QModMaster read FC04, Start Address 342, Quantity 2, displayed as Float." }
    },
    {
      "@type": "Question",
      "name": "Can I put several SDM230 meters on one RS-485 bus?",
      "acceptedAnswer": { "@type": "Answer", "text": "Yes. Modbus allows node addresses 1 to 247; the practical limit for one SDM230 segment is 32 nodes over up to 1200 m. Give every meter a unique slave ID, keep the baud rate identical across the bus, and terminate with 120 Ω at the two physical ends only." }
    }
  ]
}
</script>
<h2 class="wp-block-heading">Related Guides</h2>
<ul class="wp-block-list">
<li><a href="https://qmodmaster.com/modbus-float-wrong-value-byte-order-fix/">Modbus Float Wrong Value — Byte Order Fix</a></li>
<li><a href="https://qmodmaster.com/usb-to-rs485-adapter-buying-guide/">USB to RS485 Adapter Buying Guide</a></li>
<li><a href="https://qmodmaster.com/qmodmaster-tutorial/">QModMaster Tutorial: First Steps with Modbus</a></li>
<li><a href="https://qmodmaster.com/modbus-register-address-offset-guide/">Modbus Register Address Offset Guide (the −1 problem)</a></li>
</ul>
<style>
.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin:0 auto!important;padding:56px 24px 72px!important}
.qm-table-wrap{overflow-x:auto;margin:1.4em 0}
.qm-table{width:100%;border-collapse:collapse;font-size:15px}
.qm-table th,.qm-table td{border:1px solid #d5d5d5;padding:10px 14px;text-align:left;vertical-align:top}
.qm-table th{background:#f4f6f8;font-weight:700}
.qm-table tbody tr:nth-child(even){background:#fafbfc}
.qm-cta{background:#fff8e6;border:1px solid #e6c96a;padding:16px 20px;margin:1.8em 0;border-radius:6px}
</style>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Test Your SMA Sunny Boy Inverter Over Modbus with QModMaster</title>
		<link>https://qmodmaster.com/sma-sunny-boy-qmodmaster/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 02:59:37 +0000</pubDate>
				<category><![CDATA[Hardware & Devices]]></category>
		<guid isPermaLink="false">https://qmodmaster.com/sma-sunny-boy-qmodmaster/</guid>

					<description><![CDATA[Test Your SMA Sunny Boy Inverter Over Modbus with QModMaster Before wiring a home automation system into your SMA Sunny Boy inverter, test the connection with a standalone Modbus master. QModMaster is free, open source (LGPLv3), and does exactly one job well: it lets you talk to a Modbus device manually and see the raw...]]></description>
										<content:encoded><![CDATA[<h1 class="wp-block-heading">Test Your SMA Sunny Boy Inverter Over Modbus with QModMaster</h1>
<p class="wp-block-paragraph">Before wiring a home automation system into your SMA Sunny Boy inverter, test the connection with a standalone Modbus master. QModMaster is free, open source (LGPLv3), and does exactly one job well: it lets you talk to a Modbus device manually and see the raw values. The approach below follows a working field report from the openHAB community, where a user tested a <strong>SMA Sunny Boy 3.6</strong> with a tool like QModMaster before building their permanent integration. I use QModMaster for first contact and hand over to openHAB, Home Assistant, or similar once the registers check out.</p>
<p class="wp-block-paragraph">Fair warning: nothing here replaces your inverter&#8217;s manual. SMA firmware and model variants differ, and register maps change between generations. <strong>Treat your SMA documentation as the authority, and the addresses below as a reported example.</strong></p>
<h2 class="wp-block-heading">Step 1 — Enable Modbus on the inverter</h2>
<p class="wp-block-paragraph">SMA inverters ship with the Modbus interface available, but it must be <strong>enabled in the inverter&#8217;s settings</strong> before anything can connect. Depending on your model this can require installer or technician privileges, so check the official SMA documentation for the exact menu path on your unit.</p>
<ul class="wp-block-list">
<li>Confirm Modbus is <strong>enabled</strong> and the inverter is listening on <strong>port 502</strong> (the standard Modbus TCP port).</li>
<li>Note the inverter&#8217;s <strong>IP address</strong> on your local network and the configured <strong>slave (unit) ID</strong>.</li>
<li>Watch out for firmware updates: several users in the field report that a <strong>firmware update disabled the Modbus interface</strong>, and the inverter&#8217;s embedded web server can get overloaded by aggressive polling. Keep your test traffic light, and if the inverter goes quiet, re-check the Modbus enable setting and restart the unit.</li>
</ul>
<h2 class="wp-block-heading">Step 2 — What one working setup looked like</h2>
<p class="wp-block-paragraph">The openHAB community report that verified this approach used a <strong>SMA Sunny Boy 3.6</strong>. These are the connection values that worked in that report — not a datasheet, but real-world numbers that give you a sane starting point:</p>
<div class="qm-table-wrap">
<table class="qm-table">
<thead><tr><th>Parameter</th><th>Reported value</th><th>Notes</th></tr></thead>
<tbody>
<tr><td>Transport</td><td>Modbus TCP</td><td>SMA inverters are networked devices — no serial cable needed</td></tr>
<tr><td>Port</td><td>502</td><td>Standard Modbus TCP port</td></tr>
<tr><td>Slave (unit) ID</td><td>3</td><td>Reported ID; yours may differ — check inverter settings</td></tr>
<tr><td>Function</td><td>Read Holding Registers (FC03)</td><td>Register block read as &#8220;holding&#8221;</td></tr>
<tr><td>Register block</td><td>30509–30549</td><td>Poller range in the report</td></tr>
<tr><td>Daily yield</td><td>Register 30535 (uint32)</td><td>Data point in the report</td></tr>
<tr><td>Power delivery</td><td>Register 30776</td><td>Second poller block 30760–30800</td></tr>
</tbody>
</table>
</div>
<p class="wp-block-paragraph">Source: <a href="https://community.openhab.org/t/modbus-binding-with-sunny-boy-sma-inverter/81847?page=10" rel="noopener nofollow" target="_blank">openHAB community thread &#8220;Modbus binding with Sunny Boy SMA inverter&#8221;</a> (page 10). Your manual may list different registers — confirm before building anything permanent.</p>
<h2 class="wp-block-heading">Step 3 — First read in QModMaster</h2>
<ul class="wp-block-list">
<li>Open QModMaster, set <strong>Modbus TCP</strong> mode, and enter the inverter&#8217;s <strong>IP address</strong> and <strong>port 502</strong>.</li>
<li>Set <strong>Slave ID</strong> to the value configured on your inverter (3 in the report above).</li>
<li>Select <strong>FC03 — Read Holding Registers</strong>.</li>
<li>Set <strong>Start Address</strong> to the SMA register number <strong>minus 1</strong> (see the offset trap below). For register 30535, enter <strong>30534</strong>.</li>
<li>Set <strong>Quantity</strong> to a small block (e.g. 8–40 registers) and hit <strong>Connect / Read</strong>.</li>
<li>If the register holds a 32-bit value like daily yield, use QModMaster&#8217;s <strong>View menu</strong> to display it as an unsigned 32-bit number.</li>
</ul>
<h2 class="wp-block-heading">The −1 address offset trap: SMA vs QModMaster</h2>
<p class="wp-block-paragraph">This is where most first reads fail. SMA&#8217;s documentation numbers registers starting at <strong>1</strong> (e.g. register 30535), but QModMaster&#8217;s <strong>Start Address</strong> field is <strong>0-based</strong>. Convert by subtracting 1:</p>
<div class="qm-callout"><strong>Rule of thumb:</strong> SMA manual address − 1 = value to enter in QModMaster. Example: manual register <strong>30535</strong> → QModMaster Start Address <strong>30534</strong>. If your read returns plausible but wrong values, try the neighboring address before suspecting the hardware.</div>
<p class="wp-block-paragraph">Address numbering is a <strong>tool convention, not the wire protocol</strong> — different software counts from different bases. The full explanation is in our <a href="https://qmodmaster.com/modbus-register-address-offset-guide/">Modbus register address offset guide</a>.</p>
<h2 class="wp-block-heading">Step 4 — Verify your first read</h2>
<ul class="wp-block-list">
<li><strong>Sanity-check values:</strong> daily yield should grow during daylight and stay flat at night; instantaneous power should track sunlight (zero at night). Implausible but non-zero numbers usually mean an address offset problem.</li>
<li><strong>Read a second block:</strong> if 30535 works, try the power block around 30776 to confirm your addressing is consistent.</li>
<li><strong>No response at all?</strong> Confirm Modbus is still enabled on the inverter (firmware updates can flip it off), that port 502 is reachable from your machine, and that the slave ID matches. As a last resort, restart the inverter — that fixed a similar outage in the field report.</li>
<li><strong>Timeouts or dropped connections?</strong> Slow down: long, heavy poll loops have knocked SMA web interfaces offline in reported cases. QModMaster is for <strong>manual tests</strong>, not 24/7 polling — hand over to <a href="https://qmodmaster.com/test-modbus-with-qmodmaster-before-home-assistant/">your home automation platform</a> for the permanent job.</li>
</ul>
<div class="qm-cta"><strong>Also testing RS-485 devices?</strong> Your inverter speaks Modbus TCP, but meters and sensors often need a serial bus. For those, you need a USB-to-RS485 adapter — <a href="https://qmodmaster.com/go/usb-rs485" target="_blank" rel="noopener nofollow sponsored">see the adapter I use for QModMaster bench tests</a>.</div>
<h2 class="wp-block-heading">Frequently asked questions</h2>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Does the SMA Sunny Boy use Modbus TCP or Modbus RTU?",
      "acceptedAnswer": { "@type": "Answer", "text": "Modbus TCP. SMA Sunny Boy inverters are networked devices that expose Modbus on TCP port 502. In QModMaster, select Modbus TCP mode and enter the inverter's IP address — no serial adapter is needed for the inverter itself." }
    },
    {
      "@type": "Question",
      "name": "What slave ID does the SMA Sunny Boy use?",
      "acceptedAnswer": { "@type": "Answer", "text": "A community-verified setup on a Sunny Boy 3.6 used slave ID 3, but the ID is configurable in the inverter's settings. Check your unit's configuration and treat 3 as a starting point, not a universal value." }
    },
    {
      "@type": "Question",
      "name": "Why did Modbus stop working after a firmware update?",
      "acceptedAnswer": { "@type": "Answer", "text": "Several users report that SMA firmware updates can disable the Modbus interface. Re-check the Modbus enable setting in the inverter after any update, and restart the inverter if it stops responding on port 502." }
    },
    {
      "@type": "Question",
      "name": "Which address do I enter in QModMaster for an SMA register?",
      "acceptedAnswer": { "@type": "Answer", "text": "QModMaster's Start Address is 0-based, while SMA documentation numbers registers from 1. Subtract 1 from the manual's register number: register 30535 becomes Start Address 30534." }
    },
    {
      "@type": "Question",
      "name": "Can QModMaster replace my home automation polling?",
      "acceptedAnswer": { "@type": "Answer", "text": "No. QModMaster is a manual test tool for verifying registers and wiring. Continuous polling belongs in openHAB, Home Assistant, or your SCADA system — aggressive test polling has been reported to overload the inverter's embedded web server." }
    }
  ]
}
</script>
<h2 class="wp-block-heading">Related Guides</h2>
<ul class="wp-block-list">
<li><a href="https://qmodmaster.com/modbus-register-address-offset-guide/">Modbus Register Address Offset Guide (the −1 problem)</a></li>
<li><a href="https://qmodmaster.com/test-modbus-with-qmodmaster-before-home-assistant/">Test Modbus with QModMaster Before Wiring It into Home Assistant</a></li>
<li><a href="https://qmodmaster.com/qmodmaster-tutorial/">QModMaster Tutorial: First Steps with Modbus</a></li>
</ul>
<style>
.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin:0 auto!important;padding:56px 24px 72px!important}
.qm-table-wrap{overflow-x:auto;margin:1.4em 0}
.qm-table{width:100%;border-collapse:collapse;font-size:15px}
.qm-table th,.qm-table td{border:1px solid #d5d5d5;padding:10px 14px;text-align:left;vertical-align:top}
.qm-table th{background:#f4f6f8;font-weight:700}
.qm-table tbody tr:nth-child(even){background:#fafbfc}
.qm-callout{background:#f0f7ff;border-left:4px solid #2271b1;padding:14px 18px;margin:1.4em 0;border-radius:4px}
.qm-cta{background:#fff8e6;border:1px solid #e6c96a;padding:16px 20px;margin:1.8em 0;border-radius:6px}
</style>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Modbus RTU to TCP Gateway Guide (2026)</title>
		<link>https://qmodmaster.com/modbus-rtu-tcp-gateway-guide/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 02:19:21 +0000</pubDate>
				<category><![CDATA[Hardware & Devices]]></category>
		<guid isPermaLink="false">https://qmodmaster.com/modbus-rtu-tcp-gateway-guide/</guid>

					<description><![CDATA[Modbus RTU to TCP Gateway Guide (2026) A Modbus RTU to TCP gateway (also called a serial server or serial device server) lets Modbus RTU devices on an RS485 bus appear as if they were Modbus TCP devices on your network. In one sentence: it translates between serial RTU frames and TCP packets, so your...]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">Modbus RTU to TCP Gateway Guide (2026)</h1>



<p class="wp-block-paragraph">A <strong>Modbus RTU to TCP gateway</strong> (also called a serial server or serial device server) lets Modbus RTU devices on an RS485 bus appear as if they were Modbus TCP devices on your network. In one sentence: it translates between serial RTU frames and TCP packets, so your PC can reach serial field devices over Ethernet or Wi-Fi instead of being tethered by a USB cable.</p>



<h2 class="wp-block-heading">When Do You Need a Gateway?</h2>



<ul class="wp-block-list"><li><strong>Remote equipment:</strong> the PLC, sensor, or meter is in another building or on the plant floor, and running a USB cable (or RS485 cable back to your desk) is impractical.</li><li><strong>Ethernet modernization:</strong> you&#8217;re migrating a legacy serial installation to IP networking but the field devices are still Modbus RTU.</li><li><strong>Multiple consumers:</strong> several PCs or applications need to poll the same serial devices over the LAN, which a single USB adapter can&#8217;t share.</li><li><strong>Rack-mounted testing:</strong> you commission cabinets from a control room rather than standing at each cabinet with a laptop.</li></ul>



<h2 class="wp-block-heading">How a Gateway Works</h2>



<p class="wp-block-paragraph">The gateway has an RS485 port on the field side and an Ethernet (sometimes Wi-Fi) port on the network side. It continuously listens on the RS485 bus, wraps RTU request/response frames into TCP segments (Modbus TCP adds a 7-byte MBAP header), and routes them to the configured IP address and port — typically port 502. From QModMaster&#8217;s perspective, it&#8217;s just another Modbus TCP slave.</p>



<div class="cta-box">
<p><strong>Recommended hardware:</strong> Need a gateway for your setup? <a href="https://qmodmaster.com/go/rs485-gateway">See Modbus RTU to TCP gateways on Amazon</a> — check current prices and make sure the listing supports Modbus gateway mode, not just serial passthrough.</p>
</div>



<h2 class="wp-block-heading">What to Look For When Buying</h2>



<h3 class="wp-block-heading">True Modbus gateway mode vs raw passthrough</h3>



<p class="wp-block-paragraph">Two operating modes exist. <strong>Modbus gateway mode</strong> understands the Modbus protocol: it converts RTU to Modbus TCP frames, so QModMaster talks standard Modbus TCP. <strong>Raw serial passthrough</strong> just tunnels serial bytes over TCP, which requires the PC-side software to speak raw serial-over-TCP — QModMaster can&#8217;t use that. Always confirm <strong>Modbus gateway mode</strong> (sometimes labeled &#8220;Modbus TCP to RTU&#8221; or &#8220;Modbus protocol conversion&#8221;).</p>



<h3 class="wp-block-heading">Baud rate and serial parameters</h3>



<p class="wp-block-paragraph">The gateway must support the baud rate and parity/stop-bit combination your devices use. Common rates (9600, 19200, 115200) are universal; if your devices run an odd rate, check the spec sheet. Most gateways are configured through a built-in web interface.</p>



<h3 class="wp-block-heading">Power supply and mounting</h3>



<p class="wp-block-paragraph">Cabinet installations favor <strong>DIN-rail mounting</strong> with <strong>DC terminal power</strong> (often 9–36V). <strong>PoE (Power over Ethernet)</strong> models reduce wiring to a single cable but cost more — check whether your switch actually provides PoE before paying the premium. Desk/lab use can be a simple wall-powered box.</p>



<h2 class="wp-block-heading">Example Products (As Starting Points)</h2>



<p class="wp-block-paragraph">Two widely available product families, offered as examples only — not endorsements, and we list no prices because they change constantly. Check the vendor&#8217;s site for current specs and pricing:</p>



<ul class="wp-block-list"><li><strong>PUSR USR-TCP232 series</strong> — a long-running family of serial-to-Ethernet modules from PUSR (also sold under the USR-IOT brand), including DIN-rail models with Modbus gateway firmware. Check the vendor site for the exact model and firmware version that supports Modbus gateway mode.</li><li><strong>Waveshare RS485-to-Ethernet modules</strong> — compact industrial modules from Waveshare with a web configuration interface and Modbus gateway support on recent firmware. Confirm the firmware revision on the vendor&#8217;s site before buying.</li></ul>



<h2 class="wp-block-heading">Connecting QModMaster Through a Gateway</h2>



<p class="wp-block-paragraph">Once the gateway is on the network and its RS485 port is wired to the bus, the QModMaster side is straightforward:</p>



<ol class="wp-block-list"><li>In QModMaster, select <strong>Modbus TCP</strong> as the connection type (not RTU/serial).</li><li>Enter the gateway&#8217;s <strong>IP address and port</strong> (commonly 502, but check the gateway&#8217;s web config — some default to 8899 or similar).</li><li>Set the <strong>slave address</strong> to the address of the target device on the RTU bus behind the gateway.</li><li>Use function codes and register addresses exactly as you would for a direct RTU connection — the gateway handles the RTU/TCP frame conversion transparently.</li></ol>



<p class="wp-block-paragraph">If reads time out, suspect the gateway&#8217;s serial parameters (baud/parity must match the bus), its gateway-mode setting (must be Modbus, not raw passthrough), and any firewall between your PC and the gateway&#8217;s IP. Our <a href="https://qmodmaster.com/modbus-no-response-timeout-fix/">timeout troubleshooting guide</a> covers the rest.</p>



<h2 class="wp-block-heading">Frequently Asked Questions</h2>



<h3 class="wp-block-heading">What is a Modbus RTU to TCP gateway?</h3>



<p class="wp-block-paragraph">A hardware device that bridges an RS485/Modbus RTU serial bus to an Ethernet network. It converts RTU frames to Modbus TCP packets (and back), letting software like QModMaster reach serial field devices over IP instead of a directly attached USB adapter.</p>



<h3 class="wp-block-heading">Does QModMaster work through a gateway?</h3>



<p class="wp-block-paragraph">Yes. Set QModMaster to Modbus TCP mode and point it at the gateway&#8217;s IP and port; use the field device&#8217;s slave address as usual. The gateway must run in Modbus gateway mode — raw serial passthrough will not work with QModMaster.</p>



<h3 class="wp-block-heading">Gateway vs USB to RS485 adapter — which should I buy?</h3>



<p class="wp-block-paragraph">Buy a <strong>USB to RS485 adapter</strong> for bench testing and direct, single-PC access — it&#8217;s cheaper and simpler (see our <a href="https://qmodmaster.com/usb-to-rs485-adapter-buying-guide/">adapter buying guide</a>). Buy a <strong>gateway</strong> when devices are remote, must be shared over the LAN, or you&#8217;re modernizing a serial installation to Ethernet.</p>



<h3 class="wp-block-heading">Why do my gateway reads time out?</h3>



<p class="wp-block-paragraph">Check three things in order: the gateway&#8217;s serial parameters match the bus (baud/parity/stop bits), the gateway is in Modbus gateway mode (not raw passthrough), and no firewall blocks the TCP port. Then work through the slave-side checks in our <a href="https://qmodmaster.com/modbus-no-response-timeout-fix/">timeout fix guide</a>.</p>



<script type="application/ld+json">
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"What is a Modbus RTU to TCP gateway?","acceptedAnswer":{"@type":"Answer","text":"A hardware device that bridges an RS485/Modbus RTU serial bus to Ethernet. It converts RTU frames to Modbus TCP packets and back, letting software like QModMaster reach serial field devices over IP."}},{"@type":"Question","name":"Does QModMaster work through a gateway?","acceptedAnswer":{"@type":"Answer","text":"Yes. Set QModMaster to Modbus TCP mode and point it at the gateway's IP and port, using the field device's slave address. The gateway must run in Modbus gateway mode; raw serial passthrough does not work with QModMaster."}},{"@type":"Question","name":"Gateway vs USB to RS485 adapter — which should I buy?","acceptedAnswer":{"@type":"Answer","text":"Buy a USB to RS485 adapter for bench testing and single-PC access — cheaper and simpler. Buy a gateway when devices are remote, shared over the LAN, or you are modernizing a serial installation to Ethernet."}},{"@type":"Question","name":"Why do my gateway reads time out?","acceptedAnswer":{"@type":"Answer","text":"Check that the gateway's serial parameters match the bus, that it is in Modbus gateway mode rather than raw passthrough, and that no firewall blocks the TCP port. Then check the slave-side settings."}}]}
</script>



<h2 class="wp-block-heading">Related Guides</h2>



<ul class="wp-block-list"><li><a href="https://qmodmaster.com/usb-to-rs485-adapter-buying-guide/">USB to RS485 Adapter Buying Guide for Modbus (2026)</a></li><li><a href="https://qmodmaster.com/qmodmaster-tutorial/">QModMaster Tutorial</a></li><li><a href="https://qmodmaster.com/modbus-no-response-timeout-fix/">Modbus No-Response Timeout Fix</a></li><li><a href="https://qmodmaster.com/rs485-rts-control-guide/">RS485 RTS Control Guide</a></li><li><a href="https://qmodmaster.com/free-modbus-master-software/">Free Modbus Master Software</a></li><li><a href="https://qmodmaster.com/download/">Download QModMaster</a></li></ul>


<style>.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin:0 auto!important;padding:56px 24px 72px!important}.wp-block-table table{border-collapse:collapse;width:100%;margin:1em 0}.wp-block-table th,.wp-block-table td{border:1px solid #ddd;padding:10px;text-align:left}.wp-block-table th{background:#f5f7fa}.cta-box{background:#f0f6ff;border-left:4px solid #2271b1;padding:16px 20px;margin:1.5em 0;border-radius:4px}.verdict-box{background:#f0faf0;border-left:4px solid #2e7d32;padding:16px 20px;margin:1.5em 0;border-radius:4px}.checklist{background:#fffbe6;border:1px solid #e6d96c;padding:16px 20px;margin:1.5em 0;border-radius:4px}</style>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>USB to RS485 Adapter Buying Guide for Modbus (2026)</title>
		<link>https://qmodmaster.com/usb-to-rs485-adapter-buying-guide/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 02:19:19 +0000</pubDate>
				<category><![CDATA[Hardware & Devices]]></category>
		<guid isPermaLink="false">https://qmodmaster.com/usb-to-rs485-adapter-buying-guide/</guid>

					<description><![CDATA[USB to RS485 Adapter Buying Guide for Modbus (2026) QModMaster talks Modbus RTU over a serial port — but modern PCs don&#8217;t have serial ports. A USB to RS485 adapter is the piece of hardware that bridges that gap: it plugs into USB on one end and gives you the A/B (D+/D−) screw terminals your...]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">USB to RS485 Adapter Buying Guide for Modbus (2026)</h1>



<p class="wp-block-paragraph">QModMaster talks Modbus RTU over a serial port — but modern PCs don&#8217;t have serial ports. A <strong>USB to RS485 adapter</strong> is the piece of hardware that bridges that gap: it plugs into USB on one end and gives you the A/B (D+/D−) screw terminals your Modbus RTU devices expect on the other.</p>



<h2 class="wp-block-heading">Why You Need One</h2>



<p class="wp-block-paragraph">Without a USB-to-RS485 adapter, QModMaster has no physical path to your RS485 bus. It&#8217;s that simple: <strong>no adapter, no connection</strong>. The adapter is the single most failure-prone link in the chain — a flaky adapter will make QModMaster time out, report &#8220;no response,&#8221; or drop bytes even when every setting (baud rate, parity, slave address) is correct. Choosing a decent adapter is the cheapest insurance for stable Modbus RTU debugging.</p>



<div class="cta-box">
<p><strong>Recommended hardware:</strong> Looking for a reliable adapter right now? <a href="https://qmodmaster.com/go/usb-rs485">See USB to RS485 adapters on Amazon</a> — check current prices and reviews before buying.</p>
</div>



<h2 class="wp-block-heading">Chip Comparison: FTDI vs CH340 vs CP2102 vs PL2303</h2>



<p class="wp-block-paragraph">The chip inside the adapter matters more than the brand printed on the case. These four chips cover nearly everything sold online:</p>



<figure class="wp-block-table"><table><thead><tr><th>Chip</th><th>Driver stability</th><th>Windows 11 compatibility</th><th>Typical price band</th><th>Notes</th></tr></thead><tbody><tr><td><strong>FTDI FT232R</strong></td><td>Excellent</td><td>Fully supported</td><td>Highest</td><td>Industry reference chip; rock-solid drivers, but counterfeit chips exist — buy from reputable sellers (fake FTDI chips can be disabled by official drivers)</td></tr><tr><td><strong>CH340</strong></td><td>Good</td><td>Supported (vendor driver needed)</td><td>Lowest</td><td>Hugely popular in the maker world; needs the vendor driver installed, then works fine for most Modbus RTU polling</td></tr><tr><td><strong>CP2102</strong></td><td>Very good</td><td>Fully supported</td><td>Mid-range</td><td>Silicon Labs chip with mature drivers; a solid middle ground between FTDI price and CH340 cost</td></tr><tr><td><strong>PL2303</strong></td><td>Variable</td><td>Mixed — older HX/RA revisions are unsupported by current drivers</td><td>Low to mid</td><td>Works if you get a genuine, current-revision chip; many cheap adapters ship old revisions that refuse to load modern drivers</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Prices move around and vary by seller — check current prices on Amazon before deciding. As a rule of thumb, FTDI-based adapters cost several times more than CH340-based ones, with CP2102 in between.</p>



<h2 class="wp-block-heading">Auto Flow Control vs Manual RTS</h2>



<p class="wp-block-paragraph">RS485 is half-duplex: the adapter must switch between transmitting and receiving. <strong>Automatic flow-control adapters</strong> do this in hardware with no software support needed — they just work in QModMaster. <strong>Manual-RTS adapters</strong> require QModMaster to toggle the RTS line to enable the transmitter; QModMaster supports this through its RTS Control settings, so you must configure it correctly.</p>



<p class="wp-block-paragraph">If you want zero configuration headaches, pick an auto flow-control adapter. If you already own a manual-RTS adapter, read our <a href="https://qmodmaster.com/rs485-rts-control-guide/">RS485 RTS Control Guide</a> to set QModMaster&#8217;s RTS timing correctly and stop intermittent timeouts.</p>



<h2 class="wp-block-heading">Isolated Adapters for Industrial Sites</h2>



<p class="wp-block-paragraph">On a workbench, a basic non-isolated adapter is fine. On an <strong>industrial site</strong> — with long cable runs, motors, and ground-potential differences — an <strong>optically isolated</strong> adapter (typically 1500V+ isolation) protects your laptop&#8217;s USB port from voltage spikes and kills ground-loop noise that corrupts Modbus frames. If the device cabinet and your PC are on different power feeds, isolation is strongly recommended.</p>



<h2 class="wp-block-heading">Terminal Types and Cable Connections</h2>



<p class="wp-block-paragraph">Almost all adapters use <strong>screw terminals</strong> labeled A and B (sometimes D+ and D−). Prefer adapters with clearly labeled, generous terminals that accept twisted-pair cable without crimping. Some models add a GND terminal — use it for the shield wire on long runs. Watch out for adapters that only expose pins or a DB9-style header; you&#8217;ll need a terminal breakout anyway.</p>



<h2 class="wp-block-heading">Pitfalls to Avoid</h2>



<ul class="wp-block-list"><li><strong>Counterfeit FTDI chips:</strong> the cheapest &#8220;FTDI&#8221; adapters are often fakes, and official FTDI drivers can disable them. Buy from sellers with a track record.</li><li><strong>Obsolete PL2303 revisions:</strong> ancient PL2303HX chips will not load on Windows 11. Confirm the chip revision or skip PL2303 entirely.</li><li><strong>Missing driver for CH340:</strong> CH340 needs the vendor driver (download from the manufacturer site, not random forums). Without it, the adapter won&#8217;t appear as a COM port.</li><li><strong>No surge protection on the bench, fine — in the field, not fine:</strong> a non-isolated adapter on a noisy industrial bus is a recipe for corrupted reads and fried ports.</li></ul>



<div class="verdict-box">
<p><strong>Our verdict:</strong> For a workbench or lab, a <strong>CH340 or CP2102 adapter with automatic flow control</strong> is the best value — cheap, stable, and zero RTS configuration. For industrial commissioning, step up to an <strong>isolated FTDI-based adapter</strong> and let the hardware absorb the noise. Either way, match the driver to the chip before blaming QModMaster for timeouts — see our <a href="https://qmodmaster.com/modbus-no-response-timeout-fix/">no-response timeout fix guide</a> if reads still fail after the adapter is installed correctly.</p>
</div>



<div class="cta-box">
<p><strong>Ready to pick one up?</strong> <a href="https://qmodmaster.com/go/usb-rs485">Browse USB to RS485 adapters on Amazon</a> — check current prices, reviews, and whether the listing states the chip model before you order.</p>
</div>



<h2 class="wp-block-heading">Frequently Asked Questions</h2>



<h3 class="wp-block-heading">Do I need a USB to RS485 adapter to use QModMaster?</h3>



<p class="wp-block-paragraph">Yes, for Modbus RTU over a serial bus. QModMaster is software — it needs a physical RS485 transceiver between your PC&#8217;s USB port and the A/B bus lines. The only exception is Modbus TCP, which runs over Ethernet and needs no adapter.</p>



<h3 class="wp-block-heading">Which chip is best for QModMaster: FTDI, CH340, CP2102, or PL2303?</h3>



<p class="wp-block-paragraph">All four work when genuine and correctly drivered. FTDI offers the most mature drivers at the highest price; CH340 is the cheapest and very popular but needs the vendor driver installed; CP2102 sits in the middle; PL2303 is fine only with a current genuine chip revision — old revisions don&#8217;t load on Windows 11.</p>



<h3 class="wp-block-heading">What is automatic flow control and do I need it?</h3>



<p class="wp-block-paragraph">RS485 is half-duplex, so something must switch the adapter between sending and receiving. Adapters with automatic flow control do it in hardware — no setup. Manual-RTS adapters need QModMaster&#8217;s RTS Control configured correctly. Automatic is simpler; see our <a href="https://qmodmaster.com/rs485-rts-control-guide/">RTS control guide</a> if you use manual RTS.</p>



<h3 class="wp-block-heading">Why does QModMaster time out even with a brand-new adapter?</h3>



<p class="wp-block-paragraph">Most often the adapter has no driver loaded (check Device Manager for a warning icon), or a manual-RTS adapter is waiting on RTS settings. Verify the COM port appears in Windows, confirm baud/parity/stop bits match the slave, and work through our <a href="https://qmodmaster.com/modbus-no-response-timeout-fix/">timeout troubleshooting guide</a>.</p>



<script type="application/ld+json">
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Do I need a USB to RS485 adapter to use QModMaster?","acceptedAnswer":{"@type":"Answer","text":"Yes, for Modbus RTU over a serial bus. QModMaster is software and needs a physical RS485 transceiver between your PC's USB port and the A/B bus lines. Modbus TCP over Ethernet needs no adapter."}},{"@type":"Question","name":"Which chip is best for QModMaster: FTDI, CH340, CP2102, or PL2303?","acceptedAnswer":{"@type":"Answer","text":"All four work when genuine and correctly drivered. FTDI has the most mature drivers at the highest price, CH340 is the cheapest but needs the vendor driver, CP2102 sits in the middle, and PL2303 is fine only with a current genuine chip revision."}},{"@type":"Question","name":"What is automatic flow control and do I need it?","acceptedAnswer":{"@type":"Answer","text":"RS485 is half-duplex, so something must switch the adapter between sending and receiving. Auto flow-control adapters do it in hardware with no setup; manual-RTS adapters require QModMaster's RTS Control to be configured correctly."}},{"@type":"Question","name":"Why does QModMaster time out even with a brand-new adapter?","acceptedAnswer":{"@type":"Answer","text":"Most often the adapter has no driver loaded, or a manual-RTS adapter needs RTS settings. Check Device Manager, confirm the COM port, match baud/parity/stop bits with the slave, then follow the timeout troubleshooting guide."}}]}
</script>



<h2 class="wp-block-heading">Related Guides</h2>



<ul class="wp-block-list"><li><a href="https://qmodmaster.com/modbus-rtu-tcp-gateway-guide/">Modbus RTU to TCP Gateway Guide (2026)</a></li><li><a href="https://qmodmaster.com/rs485-rts-control-guide/">RS485 RTS Control Guide</a></li><li><a href="https://qmodmaster.com/modbus-no-response-timeout-fix/">Modbus No-Response Timeout Fix</a></li><li><a href="https://qmodmaster.com/qmodmaster-tutorial/">QModMaster Tutorial</a></li><li><a href="https://qmodmaster.com/free-modbus-master-software/">Free Modbus Master Software</a></li><li><a href="https://qmodmaster.com/download/">Download QModMaster</a></li></ul>


<style>.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin:0 auto!important;padding:56px 24px 72px!important}.wp-block-table table{border-collapse:collapse;width:100%;margin:1em 0}.wp-block-table th,.wp-block-table td{border:1px solid #ddd;padding:10px;text-align:left}.wp-block-table th{background:#f5f7fa}.cta-box{background:#f0f6ff;border-left:4px solid #2271b1;padding:16px 20px;margin:1.5em 0;border-radius:4px}.verdict-box{background:#f0faf0;border-left:4px solid #2e7d32;padding:16px 20px;margin:1.5em 0;border-radius:4px}.checklist{background:#fffbe6;border:1px solid #e6d96c;padding:16px 20px;margin:1.5em 0;border-radius:4px}</style>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
