<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sigrok.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kuzavas</id>
	<title>sigrok - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://sigrok.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kuzavas"/>
	<link rel="alternate" type="text/html" href="https://sigrok.org/wiki/Special:Contributions/Kuzavas"/>
	<updated>2026-04-10T14:57:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=7843</id>
		<title>Hantek DDS-3X25</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=7843"/>
		<updated>2013-12-22T16:03:22Z</updated>

		<summary type="html">&lt;p&gt;Kuzavas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hantek DDS-3X25 top.jpg|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.hantek.com/english/produce_list.asp?unid=68 Hantek DDS-3X25] is a 25MHz PC-based function generator. It has no external controls, requiring a USB connection to a computer.&lt;br /&gt;
&lt;br /&gt;
See [[Hantek DDS-3X25/Info]] for more details (such as lsusb -vvv output) about the device.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* FPGA: Xylinx Spartan? 144 pins (20 MHz clock)&lt;br /&gt;
* Microcontroller: STM32F103C6(T6A) Mainstream Performance line, ARM Cortex-M3 MCU with 32 Kbytes Flash, 72 MHz CPU, motor control, USB and CAN (8 MHz? clock)&lt;br /&gt;
* Output amplifier: LMH6702 1.7 GHz, Ultra Low Distortion, Wideband Op Amp.&lt;br /&gt;
* Sync signal output is connected without any buffer or amplifier.&lt;br /&gt;
* COUNT IN is connected through TL3016 ULTRA-FAST LOW-POWER PRECISION COMPARATOR.&lt;br /&gt;
* Isolated untregulated DC-DC converter MORNSUN A0505S-2W, ±5V, ±200mA&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Hantek DDS-3X25 bottom.jpg&lt;br /&gt;
Hantek DDS-3X25 front.jpg&lt;br /&gt;
Hantek DDS-3X25 back.jpg&lt;br /&gt;
Hantek DDS-3X25 PCB top.png&lt;br /&gt;
Hantek DDS-3X25 PCB bottom.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
==== Waveform samples ====&lt;br /&gt;
&lt;br /&gt;
When sending a waveform to the device, a series of samples denote voltage. These are 12-bit values packed in padded 16-bit integers, sent in network order (most significant part first):&lt;br /&gt;
&lt;br /&gt;
* bits 0-9 are the value, with encoding as shown below&lt;br /&gt;
* bit 10 &lt;br /&gt;
* bit 11 is the sign: 1 for positive, 0 for negative&lt;br /&gt;
* bit 12 controls the &amp;quot;sync out&amp;quot; port: 1 is on, 0 is off&lt;br /&gt;
* bits 13 is always 1, bits 14-15 are always 0&lt;br /&gt;
&lt;br /&gt;
The value is encoded as 2048 - (voltage * 585). Negative values have all sign and value bits complemented (reversed).&lt;br /&gt;
&lt;br /&gt;
==== 0xA0: configure ====&lt;br /&gt;
&lt;br /&gt;
Configures the device. The payload is 6 bytes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
| Mode&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| 1 = Reset external trigger (send only once)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| 1 = External trigger mode enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| External trigger: 0 = falling, 1 = rising&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| 0 = continuous, 1 = single wave&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| Counter reset: 0 = leave, 1 = reset&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Measurement: 0 = frequency, 1 = counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Output: 0 = pattern generator, 1 = programmable output&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| Digital I/O pins, bits 0-7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| Bits 0-3 = digital I/O pins bits 8-11, bits 4-7 unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| Clock divider, based on 48KHz clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
THe response is 10 bytes:&lt;br /&gt;
&lt;br /&gt;
* the first 2 bytes are always 0&lt;br /&gt;
* in frequency measurement mode:&lt;br /&gt;
** four bytes for the current frequency measurement, in network order. Multiply by 2 to get the actual frequency readout.&lt;br /&gt;
** four bytes for a &amp;quot;tick counter&amp;quot; in network order. This has the number of ticks per second, and is used to derive the frequency. &amp;#039;&amp;#039;Assuming a 100Mhz clock, this counter differs up to 4.17% at 8Mhz from the derived frequency --  investigate.&amp;#039;&amp;#039;&lt;br /&gt;
* in counter mode:&lt;br /&gt;
** four bytes for the current counter, in network order.&lt;br /&gt;
** four bytes denoting the smoothed out frequency, identical to the first four bytes in frequency measurement mode.&lt;br /&gt;
&lt;br /&gt;
==== 0xA1: point transfer indicator ====&lt;br /&gt;
&lt;br /&gt;
The payload is 2 bytes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0-7&lt;br /&gt;
| Bits 0-7 of the waveform point count&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0-3&lt;br /&gt;
| Bits 8-11 of the waveform point count&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 4-6&lt;br /&gt;
| Unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 7&lt;br /&gt;
| 0=transfer end, 1=transfer start&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is a 1-byte response: 0xcc&lt;br /&gt;
&lt;br /&gt;
==== 0xA2: unknown ====&lt;br /&gt;
&lt;br /&gt;
* 6-byte payload: 0000 0000 3000&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
When setting &amp;quot;close output power on&amp;quot;, i.e. save configuration to memory:&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
==== 0xA3: unknown ====&lt;br /&gt;
&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0x02&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://bitbucket.org/kuzavas/dds3x25/src Hantek DDS-3X25 access library written in Python] (incomplete)&lt;br /&gt;
* [http://www.soasystem.com/eng/goltek/synch.htm Hantek DDS-3X25 In-Synch (In-Phase) Signal]&lt;br /&gt;
* [http://www.soasystem.com/eng/goltek/phaprop.htm Hantek DDS-3X25 Phase Profile Concept and File Format]&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Function generator]]&lt;br /&gt;
[[Category:Planned]]&lt;/div&gt;</summary>
		<author><name>Kuzavas</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=7834</id>
		<title>Hantek DDS-3X25</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=7834"/>
		<updated>2013-12-19T14:39:35Z</updated>

		<summary type="html">&lt;p&gt;Kuzavas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hantek DDS-3X25 top.jpg|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.hantek.com/english/produce_list.asp?unid=68 Hantek DDS-3X25] is a 25MHz PC-based function generator. It has no external controls, requiring a USB connection to a computer.&lt;br /&gt;
&lt;br /&gt;
See [[Hantek DDS-3X25/Info]] for more details (such as lsusb -vvv output) about the device.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* FPGA: Xylinx Spartan? 144 pins (20 MHz clock)&lt;br /&gt;
* Microcontroller: STM32F103C6(T6A) Mainstream Performance line, ARM Cortex-M3 MCU with 32 Kbytes Flash, 72 MHz CPU, motor control, USB and CAN (8 MHz? clock)&lt;br /&gt;
* Output amplifier: LMH6702 1.7 GHz, Ultra Low Distortion, Wideband Op Amp.&lt;br /&gt;
* Sync signal output is connected without any buffer or amplifier.&lt;br /&gt;
* COUNT IN is connected through TL3016 ULTRA-FAST LOW-POWER PRECISION COMPARATOR.&lt;br /&gt;
* Isolated untregulated DC-DC converter MORNSUN A0505S-2W, ±5V, ±200mA&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Hantek DDS-3X25 bottom.jpg&lt;br /&gt;
Hantek DDS-3X25 front.jpg&lt;br /&gt;
Hantek DDS-3X25 back.jpg&lt;br /&gt;
Hantek DDS-3X25 PCB top.png&lt;br /&gt;
Hantek DDS-3X25 PCB bottom.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
==== Waveform samples ====&lt;br /&gt;
&lt;br /&gt;
When sending a waveform to the device, a series of samples denote voltage. These are 12-bit values packed in padded 16-bit integers, sent in network order (most significant part first):&lt;br /&gt;
&lt;br /&gt;
* bits 0-9 are the value, with encoding as shown below&lt;br /&gt;
* bit 10 &lt;br /&gt;
* bit 11 is the sign: 1 for positive, 0 for negative&lt;br /&gt;
* bit 12 controls the &amp;quot;sync out&amp;quot; port: 1 is on, 0 is off&lt;br /&gt;
* bits 13 is always 1, bits 14-15 are always 0&lt;br /&gt;
&lt;br /&gt;
The value is encoded as 2048 - (voltage * 585). Negative values have all sign and value bits complemented (reversed).&lt;br /&gt;
&lt;br /&gt;
==== 0xA0: configure ====&lt;br /&gt;
&lt;br /&gt;
Configures the device. The payload is 6 bytes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
| Mode&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| 1 = Reset external trigger (send only once)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| 1 = External trigger mode enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| External trigger: 0 = falling, 1 = rising&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| 0 = continuous, 1 = single wave&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| Counter reset: 0 = leave, 1 = reset&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Measurement: 0 = frequency, 1 = counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Output: 0 = pattern generator, 1 = programmable output&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| Digital I/O pins, bits 0-7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| Bits 0-3 = digital I/O pins bits 8-11, bits 4-7 unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| Clock divider, based on 48KHz clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
THe response is 10 bytes:&lt;br /&gt;
&lt;br /&gt;
* the first 2 bytes are always 0&lt;br /&gt;
* in frequency measurement mode:&lt;br /&gt;
** four bytes for the current frequency measurement, in network order. Multiply by 2 to get the actual frequency readout.&lt;br /&gt;
** four bytes for a &amp;quot;tick counter&amp;quot; in network order. This has the number of ticks per second, and is used to derive the frequency. &amp;#039;&amp;#039;Assuming a 100Mhz clock, this counter differs up to 4.17% at 8Mhz from the derived frequency --  investigate.&amp;#039;&amp;#039;&lt;br /&gt;
* in counter mode:&lt;br /&gt;
** four bytes for the current counter, in network order.&lt;br /&gt;
** four bytes denoting the smoothed out frequency, identical to the first four bytes in frequency measurement mode.&lt;br /&gt;
&lt;br /&gt;
==== 0xA1: point transfer indicator ====&lt;br /&gt;
&lt;br /&gt;
The payload is 2 bytes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0-7&lt;br /&gt;
| Bits 0-7 of the waveform point count&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0-3&lt;br /&gt;
| Bits 8-11 of the waveform point count&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 4-6&lt;br /&gt;
| Unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 7&lt;br /&gt;
| 0=transfer end, 1=transfer start&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is a 1-byte response: 0xcc&lt;br /&gt;
&lt;br /&gt;
==== 0xA2: unknown ====&lt;br /&gt;
&lt;br /&gt;
* 6-byte payload: 0000 0000 3000&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
When setting &amp;quot;close output power on&amp;quot;, i.e. save configuration to memory:&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
==== 0xA3: unknown ====&lt;br /&gt;
&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0x02&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Function generator]]&lt;br /&gt;
[[Category:Planned]]&lt;/div&gt;</summary>
		<author><name>Kuzavas</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=7833</id>
		<title>Hantek DDS-3X25</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=7833"/>
		<updated>2013-12-19T14:39:21Z</updated>

		<summary type="html">&lt;p&gt;Kuzavas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hantek DDS-3X25 top.jpg|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.hantek.com/english/produce_list.asp?unid=68 Hantek DDS-3X25] is a 25MHz PC-based function generator. It has no external controls, requiring a USB connection to a computer.&lt;br /&gt;
&lt;br /&gt;
See [[Hantek DDS-3X25/Info]] for more details (such as lsusb -vvv output) about the device.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* FPGA: Xylinx Spartan? 144 pins(20 MHz clock)&lt;br /&gt;
* Microcontroller: STM32F103C6(T6A) Mainstream Performance line, ARM Cortex-M3 MCU with 32 Kbytes Flash, 72 MHz CPU, motor control, USB and CAN (8 MHz? clock)&lt;br /&gt;
* Output amplifier: LMH6702 1.7 GHz, Ultra Low Distortion, Wideband Op Amp.&lt;br /&gt;
* Sync signal output is connected without any buffer or amplifier.&lt;br /&gt;
* COUNT IN is connected through TL3016 ULTRA-FAST LOW-POWER PRECISION COMPARATOR.&lt;br /&gt;
* Isolated untregulated DC-DC converter MORNSUN A0505S-2W, ±5V, ±200mA&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Hantek DDS-3X25 bottom.jpg&lt;br /&gt;
Hantek DDS-3X25 front.jpg&lt;br /&gt;
Hantek DDS-3X25 back.jpg&lt;br /&gt;
Hantek DDS-3X25 PCB top.png&lt;br /&gt;
Hantek DDS-3X25 PCB bottom.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
==== Waveform samples ====&lt;br /&gt;
&lt;br /&gt;
When sending a waveform to the device, a series of samples denote voltage. These are 12-bit values packed in padded 16-bit integers, sent in network order (most significant part first):&lt;br /&gt;
&lt;br /&gt;
* bits 0-9 are the value, with encoding as shown below&lt;br /&gt;
* bit 10 &lt;br /&gt;
* bit 11 is the sign: 1 for positive, 0 for negative&lt;br /&gt;
* bit 12 controls the &amp;quot;sync out&amp;quot; port: 1 is on, 0 is off&lt;br /&gt;
* bits 13 is always 1, bits 14-15 are always 0&lt;br /&gt;
&lt;br /&gt;
The value is encoded as 2048 - (voltage * 585). Negative values have all sign and value bits complemented (reversed).&lt;br /&gt;
&lt;br /&gt;
==== 0xA0: configure ====&lt;br /&gt;
&lt;br /&gt;
Configures the device. The payload is 6 bytes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
| Mode&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| 1 = Reset external trigger (send only once)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| 1 = External trigger mode enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| External trigger: 0 = falling, 1 = rising&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| 0 = continuous, 1 = single wave&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| Counter reset: 0 = leave, 1 = reset&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Measurement: 0 = frequency, 1 = counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Output: 0 = pattern generator, 1 = programmable output&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| Digital I/O pins, bits 0-7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| Bits 0-3 = digital I/O pins bits 8-11, bits 4-7 unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| Clock divider, based on 48KHz clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
THe response is 10 bytes:&lt;br /&gt;
&lt;br /&gt;
* the first 2 bytes are always 0&lt;br /&gt;
* in frequency measurement mode:&lt;br /&gt;
** four bytes for the current frequency measurement, in network order. Multiply by 2 to get the actual frequency readout.&lt;br /&gt;
** four bytes for a &amp;quot;tick counter&amp;quot; in network order. This has the number of ticks per second, and is used to derive the frequency. &amp;#039;&amp;#039;Assuming a 100Mhz clock, this counter differs up to 4.17% at 8Mhz from the derived frequency --  investigate.&amp;#039;&amp;#039;&lt;br /&gt;
* in counter mode:&lt;br /&gt;
** four bytes for the current counter, in network order.&lt;br /&gt;
** four bytes denoting the smoothed out frequency, identical to the first four bytes in frequency measurement mode.&lt;br /&gt;
&lt;br /&gt;
==== 0xA1: point transfer indicator ====&lt;br /&gt;
&lt;br /&gt;
The payload is 2 bytes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0-7&lt;br /&gt;
| Bits 0-7 of the waveform point count&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0-3&lt;br /&gt;
| Bits 8-11 of the waveform point count&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 4-6&lt;br /&gt;
| Unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 7&lt;br /&gt;
| 0=transfer end, 1=transfer start&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is a 1-byte response: 0xcc&lt;br /&gt;
&lt;br /&gt;
==== 0xA2: unknown ====&lt;br /&gt;
&lt;br /&gt;
* 6-byte payload: 0000 0000 3000&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
When setting &amp;quot;close output power on&amp;quot;, i.e. save configuration to memory:&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
==== 0xA3: unknown ====&lt;br /&gt;
&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0x02&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Function generator]]&lt;br /&gt;
[[Category:Planned]]&lt;/div&gt;</summary>
		<author><name>Kuzavas</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=7832</id>
		<title>Hantek DDS-3X25</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=7832"/>
		<updated>2013-12-19T14:31:30Z</updated>

		<summary type="html">&lt;p&gt;Kuzavas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hantek DDS-3X25 top.jpg|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.hantek.com/english/produce_list.asp?unid=68 Hantek DDS-3X25] is a 25MHz PC-based function generator. It has no external controls, requiring a USB connection to a computer.&lt;br /&gt;
&lt;br /&gt;
See [[Hantek DDS-3X25/Info]] for more details (such as lsusb -vvv output) about the device.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* FPGA: Xylinx Spartan? (20 MHz clock)&lt;br /&gt;
* Microcontroller: STM32F103C6(T6A) Mainstream Performance line, ARM Cortex-M3 MCU with 32 Kbytes Flash, 72 MHz CPU, motor control, USB and CAN (8 MHz? clock)&lt;br /&gt;
* Output amplifier: LMH6702 1.7 GHz, Ultra Low Distortion, Wideband Op Amp.&lt;br /&gt;
* Sync signal output is connected without any buffer or amplifier.&lt;br /&gt;
* COUNT IN is connected through TL3016 ULTRA-FAST LOW-POWER PRECISION COMPARATOR.&lt;br /&gt;
* Isolated untregulated DC-DC converter MORNSUN A0505S-2W, ±5V, ±200mA&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Hantek DDS-3X25 bottom.jpg&lt;br /&gt;
Hantek DDS-3X25 front.jpg&lt;br /&gt;
Hantek DDS-3X25 back.jpg&lt;br /&gt;
Hantek DDS-3X25 PCB top.png&lt;br /&gt;
Hantek DDS-3X25 PCB bottom.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
==== Waveform samples ====&lt;br /&gt;
&lt;br /&gt;
When sending a waveform to the device, a series of samples denote voltage. These are 12-bit values packed in padded 16-bit integers, sent in network order (most significant part first):&lt;br /&gt;
&lt;br /&gt;
* bits 0-9 are the value, with encoding as shown below&lt;br /&gt;
* bit 10 &lt;br /&gt;
* bit 11 is the sign: 1 for positive, 0 for negative&lt;br /&gt;
* bit 12 controls the &amp;quot;sync out&amp;quot; port: 1 is on, 0 is off&lt;br /&gt;
* bits 13 is always 1, bits 14-15 are always 0&lt;br /&gt;
&lt;br /&gt;
The value is encoded as 2048 - (voltage * 585). Negative values have all sign and value bits complemented (reversed).&lt;br /&gt;
&lt;br /&gt;
==== 0xA0: configure ====&lt;br /&gt;
&lt;br /&gt;
Configures the device. The payload is 6 bytes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
| Mode&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| 1 = Reset external trigger (send only once)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| 1 = External trigger mode enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| External trigger: 0 = falling, 1 = rising&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| 0 = continuous, 1 = single wave&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| Counter reset: 0 = leave, 1 = reset&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Measurement: 0 = frequency, 1 = counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Output: 0 = pattern generator, 1 = programmable output&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| Digital I/O pins, bits 0-7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| Bits 0-3 = digital I/O pins bits 8-11, bits 4-7 unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| Clock divider, based on 48KHz clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
THe response is 10 bytes:&lt;br /&gt;
&lt;br /&gt;
* the first 2 bytes are always 0&lt;br /&gt;
* in frequency measurement mode:&lt;br /&gt;
** four bytes for the current frequency measurement, in network order. Multiply by 2 to get the actual frequency readout.&lt;br /&gt;
** four bytes for a &amp;quot;tick counter&amp;quot; in network order. This has the number of ticks per second, and is used to derive the frequency. &amp;#039;&amp;#039;Assuming a 100Mhz clock, this counter differs up to 4.17% at 8Mhz from the derived frequency --  investigate.&amp;#039;&amp;#039;&lt;br /&gt;
* in counter mode:&lt;br /&gt;
** four bytes for the current counter, in network order.&lt;br /&gt;
** four bytes denoting the smoothed out frequency, identical to the first four bytes in frequency measurement mode.&lt;br /&gt;
&lt;br /&gt;
==== 0xA1: point transfer indicator ====&lt;br /&gt;
&lt;br /&gt;
The payload is 2 bytes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0-7&lt;br /&gt;
| Bits 0-7 of the waveform point count&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0-3&lt;br /&gt;
| Bits 8-11 of the waveform point count&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 4-6&lt;br /&gt;
| Unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 7&lt;br /&gt;
| 0=transfer end, 1=transfer start&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is a 1-byte response: 0xcc&lt;br /&gt;
&lt;br /&gt;
==== 0xA2: unknown ====&lt;br /&gt;
&lt;br /&gt;
* 6-byte payload: 0000 0000 3000&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
When setting &amp;quot;close output power on&amp;quot;, i.e. save configuration to memory:&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
==== 0xA3: unknown ====&lt;br /&gt;
&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0x02&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Function generator]]&lt;br /&gt;
[[Category:Planned]]&lt;/div&gt;</summary>
		<author><name>Kuzavas</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=7829</id>
		<title>Hantek DDS-3X25</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=7829"/>
		<updated>2013-12-19T10:11:25Z</updated>

		<summary type="html">&lt;p&gt;Kuzavas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hantek DDS-3X25 top.jpg|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.hantek.com/english/produce_list.asp?unid=68 Hantek DDS-3X25] is a 25MHz PC-based function generator. It has no external controls, requiring a USB connection to a computer.&lt;br /&gt;
&lt;br /&gt;
See [[Hantek DDS-3X25/Info]] for more details (such as lsusb -vvv output) about the device.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* FPGA: ? (20 MHz clock)&lt;br /&gt;
* Microcontroller: STM32F103C6(T6A) Mainstream Performance line, ARM Cortex-M3 MCU with 32 Kbytes Flash, 72 MHz CPU, motor control, USB and CAN (8 MHz? clock)&lt;br /&gt;
* Output amplifier: LMH6702 1.7 GHz, Ultra Low Distortion, Wideband Op Amp.&lt;br /&gt;
* Sync signal output is connected without any buffer or amplifier.&lt;br /&gt;
* COUNT IN is connected through TL3016 ULTRA-FAST LOW-POWER PRECISION COMPARATOR.&lt;br /&gt;
* Isolated untregulated DC-DC converter MORNSUN A0505S-2W, ±5V, ±200mA&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Hantek DDS-3X25 bottom.jpg&lt;br /&gt;
Hantek DDS-3X25 front.jpg&lt;br /&gt;
Hantek DDS-3X25 back.jpg&lt;br /&gt;
Hantek DDS-3X25 PCB top.png&lt;br /&gt;
Hantek DDS-3X25 PCB bottom.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
==== Waveform samples ====&lt;br /&gt;
&lt;br /&gt;
When sending a waveform to the device, a series of samples denote voltage. These are 12-bit values packed in padded 16-bit integers, sent in network order (most significant part first):&lt;br /&gt;
&lt;br /&gt;
* bits 0-9 are the value, with encoding as shown below&lt;br /&gt;
* bit 10 &lt;br /&gt;
* bit 11 is the sign: 1 for positive, 0 for negative&lt;br /&gt;
* bit 12 controls the &amp;quot;sync out&amp;quot; port: 1 is on, 0 is off&lt;br /&gt;
* bits 13 is always 1, bits 14-15 are always 0&lt;br /&gt;
&lt;br /&gt;
The value is encoded as 2048 - (voltage * 585). Negative values have all sign and value bits complemented (reversed).&lt;br /&gt;
&lt;br /&gt;
==== 0xA0: configure ====&lt;br /&gt;
&lt;br /&gt;
Configures the device. The payload is 6 bytes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
| Mode&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| 1 = Reset external trigger (send only once)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| 1 = External trigger mode enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| External trigger: 0 = falling, 1 = rising&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| 0 = continuous, 1 = single wave&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| Counter reset: 0 = leave, 1 = reset&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Measurement: 0 = frequency, 1 = counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Output: 0 = pattern generator, 1 = programmable output&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| Digital I/O pins, bits 0-7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| Bits 0-3 = digital I/O pins bits 8-11, bits 4-7 unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| Clock divider, based on 48KHz clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
THe response is 10 bytes:&lt;br /&gt;
&lt;br /&gt;
* the first 2 bytes are always 0&lt;br /&gt;
* in frequency measurement mode:&lt;br /&gt;
** four bytes for the current frequency measurement, in network order. Multiply by 2 to get the actual frequency readout.&lt;br /&gt;
** four bytes for a &amp;quot;tick counter&amp;quot; in network order. This has the number of ticks per second, and is used to derive the frequency. &amp;#039;&amp;#039;Assuming a 100Mhz clock, this counter differs up to 4.17% at 8Mhz from the derived frequency --  investigate.&amp;#039;&amp;#039;&lt;br /&gt;
* in counter mode:&lt;br /&gt;
** four bytes for the current counter, in network order.&lt;br /&gt;
** four bytes denoting the smoothed out frequency, identical to the first four bytes in frequency measurement mode.&lt;br /&gt;
&lt;br /&gt;
==== 0xA1: point transfer indicator ====&lt;br /&gt;
&lt;br /&gt;
The payload is 2 bytes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0-7&lt;br /&gt;
| Bits 0-7 of the waveform point count&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0-3&lt;br /&gt;
| Bits 8-11 of the waveform point count&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 4-6&lt;br /&gt;
| Unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 7&lt;br /&gt;
| 0=transfer end, 1=transfer start&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is a 1-byte response: 0xcc&lt;br /&gt;
&lt;br /&gt;
==== 0xA2: unknown ====&lt;br /&gt;
&lt;br /&gt;
* 6-byte payload: 0000 0000 3000&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
When setting &amp;quot;close output power on&amp;quot;, i.e. save configuration to memory:&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
==== 0xA3: unknown ====&lt;br /&gt;
&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0x02&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Function generator]]&lt;br /&gt;
[[Category:Planned]]&lt;/div&gt;</summary>
		<author><name>Kuzavas</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=7828</id>
		<title>Hantek DDS-3X25</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=7828"/>
		<updated>2013-12-19T10:10:59Z</updated>

		<summary type="html">&lt;p&gt;Kuzavas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hantek DDS-3X25 top.jpg|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.hantek.com/english/produce_list.asp?unid=68 Hantek DDS-3X25] is a 25MHz PC-based function generator. It has no external controls, requiring a USB connection to a computer.&lt;br /&gt;
&lt;br /&gt;
See [[Hantek DDS-3X25/Info]] for more details (such as lsusb -vvv output) about the device.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* FPGA: ? (20 MHz clock)&lt;br /&gt;
* Microcontroller: STM32F103C6(T6A) Mainstream Performance line, ARM Cortex-M3 MCU with 32 Kbytes Flash, 72 MHz CPU, motor control, USB and CAN (8 MHz? clock)&lt;br /&gt;
* Output amplifier: LMH6702 1.7 GHz, Ultra Low Distortion, Wideband Op Amp.&lt;br /&gt;
* Sync signal is connected without any buffer or amplifier.&lt;br /&gt;
* COUNT IN is connected through TL3016 ULTRA-FAST LOW-POWER PRECISION COMPARATOR.&lt;br /&gt;
* Isolated untregulated DC-DC converter MORNSUN A0505S-2W, ±5V, ±200mA&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Hantek DDS-3X25 bottom.jpg&lt;br /&gt;
Hantek DDS-3X25 front.jpg&lt;br /&gt;
Hantek DDS-3X25 back.jpg&lt;br /&gt;
Hantek DDS-3X25 PCB top.png&lt;br /&gt;
Hantek DDS-3X25 PCB bottom.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
==== Waveform samples ====&lt;br /&gt;
&lt;br /&gt;
When sending a waveform to the device, a series of samples denote voltage. These are 12-bit values packed in padded 16-bit integers, sent in network order (most significant part first):&lt;br /&gt;
&lt;br /&gt;
* bits 0-9 are the value, with encoding as shown below&lt;br /&gt;
* bit 10 &lt;br /&gt;
* bit 11 is the sign: 1 for positive, 0 for negative&lt;br /&gt;
* bit 12 controls the &amp;quot;sync out&amp;quot; port: 1 is on, 0 is off&lt;br /&gt;
* bits 13 is always 1, bits 14-15 are always 0&lt;br /&gt;
&lt;br /&gt;
The value is encoded as 2048 - (voltage * 585). Negative values have all sign and value bits complemented (reversed).&lt;br /&gt;
&lt;br /&gt;
==== 0xA0: configure ====&lt;br /&gt;
&lt;br /&gt;
Configures the device. The payload is 6 bytes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
| Mode&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| 1 = Reset external trigger (send only once)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| 1 = External trigger mode enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| External trigger: 0 = falling, 1 = rising&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| 0 = continuous, 1 = single wave&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| Counter reset: 0 = leave, 1 = reset&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Measurement: 0 = frequency, 1 = counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Output: 0 = pattern generator, 1 = programmable output&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| Digital I/O pins, bits 0-7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| Bits 0-3 = digital I/O pins bits 8-11, bits 4-7 unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| Clock divider, based on 48KHz clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
THe response is 10 bytes:&lt;br /&gt;
&lt;br /&gt;
* the first 2 bytes are always 0&lt;br /&gt;
* in frequency measurement mode:&lt;br /&gt;
** four bytes for the current frequency measurement, in network order. Multiply by 2 to get the actual frequency readout.&lt;br /&gt;
** four bytes for a &amp;quot;tick counter&amp;quot; in network order. This has the number of ticks per second, and is used to derive the frequency. &amp;#039;&amp;#039;Assuming a 100Mhz clock, this counter differs up to 4.17% at 8Mhz from the derived frequency --  investigate.&amp;#039;&amp;#039;&lt;br /&gt;
* in counter mode:&lt;br /&gt;
** four bytes for the current counter, in network order.&lt;br /&gt;
** four bytes denoting the smoothed out frequency, identical to the first four bytes in frequency measurement mode.&lt;br /&gt;
&lt;br /&gt;
==== 0xA1: point transfer indicator ====&lt;br /&gt;
&lt;br /&gt;
The payload is 2 bytes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0-7&lt;br /&gt;
| Bits 0-7 of the waveform point count&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0-3&lt;br /&gt;
| Bits 8-11 of the waveform point count&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 4-6&lt;br /&gt;
| Unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 7&lt;br /&gt;
| 0=transfer end, 1=transfer start&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is a 1-byte response: 0xcc&lt;br /&gt;
&lt;br /&gt;
==== 0xA2: unknown ====&lt;br /&gt;
&lt;br /&gt;
* 6-byte payload: 0000 0000 3000&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
When setting &amp;quot;close output power on&amp;quot;, i.e. save configuration to memory:&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
==== 0xA3: unknown ====&lt;br /&gt;
&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0x02&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Function generator]]&lt;br /&gt;
[[Category:Planned]]&lt;/div&gt;</summary>
		<author><name>Kuzavas</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=7827</id>
		<title>Hantek DDS-3X25</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=7827"/>
		<updated>2013-12-19T10:10:11Z</updated>

		<summary type="html">&lt;p&gt;Kuzavas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hantek DDS-3X25 top.jpg|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.hantek.com/english/produce_list.asp?unid=68 Hantek DDS-3X25] is a 25MHz PC-based function generator. It has no external controls, requiring a USB connection to a computer.&lt;br /&gt;
&lt;br /&gt;
See [[Hantek DDS-3X25/Info]] for more details (such as lsusb -vvv output) about the device.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
FPGA: ? (20 MHz clock)&lt;br /&gt;
&lt;br /&gt;
Microcontroller: STM32F103C6(T6A) Mainstream Performance line, ARM Cortex-M3 MCU with 32 Kbytes Flash, 72 MHz CPU, motor control, USB and CAN (8 MHz? clock)&lt;br /&gt;
&lt;br /&gt;
Output amplifier: LMH6702 1.7 GHz, Ultra Low Distortion, Wideband Op Amp.&lt;br /&gt;
Sync signal is connected without any buffer or amplifier.&lt;br /&gt;
COUNT IN is connected through TL3016 ULTRA-FAST LOW-POWER PRECISION COMPARATOR.&lt;br /&gt;
&lt;br /&gt;
Isolated untregulated DC-DC converter MORNSUN A0505S-2W, ±5V, ±200mA&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Hantek DDS-3X25 bottom.jpg&lt;br /&gt;
Hantek DDS-3X25 front.jpg&lt;br /&gt;
Hantek DDS-3X25 back.jpg&lt;br /&gt;
Hantek DDS-3X25 PCB top.png&lt;br /&gt;
Hantek DDS-3X25 PCB bottom.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
==== Waveform samples ====&lt;br /&gt;
&lt;br /&gt;
When sending a waveform to the device, a series of samples denote voltage. These are 12-bit values packed in padded 16-bit integers, sent in network order (most significant part first):&lt;br /&gt;
&lt;br /&gt;
* bits 0-9 are the value, with encoding as shown below&lt;br /&gt;
* bit 10 &lt;br /&gt;
* bit 11 is the sign: 1 for positive, 0 for negative&lt;br /&gt;
* bit 12 controls the &amp;quot;sync out&amp;quot; port: 1 is on, 0 is off&lt;br /&gt;
* bits 13 is always 1, bits 14-15 are always 0&lt;br /&gt;
&lt;br /&gt;
The value is encoded as 2048 - (voltage * 585). Negative values have all sign and value bits complemented (reversed).&lt;br /&gt;
&lt;br /&gt;
==== 0xA0: configure ====&lt;br /&gt;
&lt;br /&gt;
Configures the device. The payload is 6 bytes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
| Mode&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| 1 = Reset external trigger (send only once)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| 1 = External trigger mode enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| External trigger: 0 = falling, 1 = rising&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| 0 = continuous, 1 = single wave&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| Counter reset: 0 = leave, 1 = reset&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Measurement: 0 = frequency, 1 = counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Output: 0 = pattern generator, 1 = programmable output&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| Digital I/O pins, bits 0-7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| Bits 0-3 = digital I/O pins bits 8-11, bits 4-7 unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| Clock divider, based on 48KHz clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
THe response is 10 bytes:&lt;br /&gt;
&lt;br /&gt;
* the first 2 bytes are always 0&lt;br /&gt;
* in frequency measurement mode:&lt;br /&gt;
** four bytes for the current frequency measurement, in network order. Multiply by 2 to get the actual frequency readout.&lt;br /&gt;
** four bytes for a &amp;quot;tick counter&amp;quot; in network order. This has the number of ticks per second, and is used to derive the frequency. &amp;#039;&amp;#039;Assuming a 100Mhz clock, this counter differs up to 4.17% at 8Mhz from the derived frequency --  investigate.&amp;#039;&amp;#039;&lt;br /&gt;
* in counter mode:&lt;br /&gt;
** four bytes for the current counter, in network order.&lt;br /&gt;
** four bytes denoting the smoothed out frequency, identical to the first four bytes in frequency measurement mode.&lt;br /&gt;
&lt;br /&gt;
==== 0xA1: point transfer indicator ====&lt;br /&gt;
&lt;br /&gt;
The payload is 2 bytes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0-7&lt;br /&gt;
| Bits 0-7 of the waveform point count&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0-3&lt;br /&gt;
| Bits 8-11 of the waveform point count&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 4-6&lt;br /&gt;
| Unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| 7&lt;br /&gt;
| 0=transfer end, 1=transfer start&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is a 1-byte response: 0xcc&lt;br /&gt;
&lt;br /&gt;
==== 0xA2: unknown ====&lt;br /&gt;
&lt;br /&gt;
* 6-byte payload: 0000 0000 3000&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
When setting &amp;quot;close output power on&amp;quot;, i.e. save configuration to memory:&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
==== 0xA3: unknown ====&lt;br /&gt;
&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0x02&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Function generator]]&lt;br /&gt;
[[Category:Planned]]&lt;/div&gt;</summary>
		<author><name>Kuzavas</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=6170</id>
		<title>Hantek DDS-3X25</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=6170"/>
		<updated>2013-04-05T22:11:05Z</updated>

		<summary type="html">&lt;p&gt;Kuzavas: /* 0xA1: point transfer indicator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hantek DDS-3X25 top.jpg|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.hantek.com/english/produce_list.asp?unid=68 Hantek DDS-3X25] is a 25MHz PC-based function generator. It has no external controls, requiring a USB connection to a computer.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
TODO.&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Hantek DDS-3X25 bottom.jpg&lt;br /&gt;
Hantek DDS-3X25 front.jpg&lt;br /&gt;
Hantek DDS-3X25 back.jpg&lt;br /&gt;
Hantek DDS-3X25 PCB top.png&lt;br /&gt;
Hantek DDS-3X25 PCB bottom.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
==== Waveform samples ====&lt;br /&gt;
&lt;br /&gt;
When sending a waveform to the device, a series of samples denote voltage. These are 12-bit values packed in padded 16-bit integers, sent in network order (most significant part first):&lt;br /&gt;
&lt;br /&gt;
* bits 0-9 are the value, with encoding as shown below&lt;br /&gt;
* bit 10 &lt;br /&gt;
* bit 11 is the sign: 1 for positive, 0 for negative&lt;br /&gt;
* bit 12 controls the &amp;quot;sync out&amp;quot; port: 1 is on, 0 is off&lt;br /&gt;
* bits 13 is always 1, bits 14-15 are always 0&lt;br /&gt;
&lt;br /&gt;
The value is encoded as 2048 - (voltage * 585). Negative values have all sign and value bits complemented (reversed).&lt;br /&gt;
&lt;br /&gt;
==== 0xA0: configure ====&lt;br /&gt;
&lt;br /&gt;
Configures the device. The payload is 6 bytes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
| Mode&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| 1 = Reset external trigger (send only once)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| 1 = External trigger mode enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| External trigger: 0 = falling, 1 = rising&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| 0 = continuous, 1 = single wave&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| Counter reset: 0 = leave, 1 = reset&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Measurement: 0 = frequency, 1 = counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Output: 0 = pattern generator, 1 = programmable output&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| Digital I/O pins, bits 0-7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| Bits 0-3 = digital I/O pins bits 8-11, bits 4-7 unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| Clock divider, based on 48KHz clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
THe response is 10 bytes:&lt;br /&gt;
&lt;br /&gt;
* the first 2 bytes are always 0&lt;br /&gt;
* in frequency measurement mode:&lt;br /&gt;
** four bytes for the current frequency measurement, in network order. Multiply by 2 to get the actual frequency readout.&lt;br /&gt;
** four bytes for a &amp;quot;tick counter&amp;quot; in network order. This has the number of ticks per second, and is used to derive the frequency. &amp;#039;&amp;#039;Assuming a 100Mhz clock, this counter differs up to 4.17% at 8Mhz from the derived frequency --  investigate.&amp;#039;&amp;#039;&lt;br /&gt;
* in counter mode:&lt;br /&gt;
** four bytes for the current counter, in network order.&lt;br /&gt;
** four bytes denoting the smoothed out frequency, identical to the first four bytes in frequency measurement mode.&lt;br /&gt;
&lt;br /&gt;
==== 0xA1: point transfer indicator ====&lt;br /&gt;
&lt;br /&gt;
Byte 1: bits 0-7 - point count LSB&lt;br /&gt;
&lt;br /&gt;
Byte 2: bits 0-3 - point count MSB, bit 7 - 0=transfer end, 1=transfer start&lt;br /&gt;
&lt;br /&gt;
Point count is 12 bits.&lt;br /&gt;
&lt;br /&gt;
* 1-byte response: 0xcc&lt;br /&gt;
&lt;br /&gt;
==== 0xA2: unknown ====&lt;br /&gt;
&lt;br /&gt;
* 6-byte payload: 0000 0000 3000&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
When setting &amp;quot;close output power on&amp;quot;, i.e. save configuration to memory:&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
==== 0xA3: unknown ====&lt;br /&gt;
&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0x02&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Function generator]]&lt;br /&gt;
[[Category:Planned]]&lt;/div&gt;</summary>
		<author><name>Kuzavas</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=6169</id>
		<title>Hantek DDS-3X25</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=6169"/>
		<updated>2013-04-05T22:10:48Z</updated>

		<summary type="html">&lt;p&gt;Kuzavas: /* 0xA1: unknown */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hantek DDS-3X25 top.jpg|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.hantek.com/english/produce_list.asp?unid=68 Hantek DDS-3X25] is a 25MHz PC-based function generator. It has no external controls, requiring a USB connection to a computer.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
TODO.&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Hantek DDS-3X25 bottom.jpg&lt;br /&gt;
Hantek DDS-3X25 front.jpg&lt;br /&gt;
Hantek DDS-3X25 back.jpg&lt;br /&gt;
Hantek DDS-3X25 PCB top.png&lt;br /&gt;
Hantek DDS-3X25 PCB bottom.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
==== Waveform samples ====&lt;br /&gt;
&lt;br /&gt;
When sending a waveform to the device, a series of samples denote voltage. These are 12-bit values packed in padded 16-bit integers, sent in network order (most significant part first):&lt;br /&gt;
&lt;br /&gt;
* bits 0-9 are the value, with encoding as shown below&lt;br /&gt;
* bit 10 &lt;br /&gt;
* bit 11 is the sign: 1 for positive, 0 for negative&lt;br /&gt;
* bit 12 controls the &amp;quot;sync out&amp;quot; port: 1 is on, 0 is off&lt;br /&gt;
* bits 13 is always 1, bits 14-15 are always 0&lt;br /&gt;
&lt;br /&gt;
The value is encoded as 2048 - (voltage * 585). Negative values have all sign and value bits complemented (reversed).&lt;br /&gt;
&lt;br /&gt;
==== 0xA0: configure ====&lt;br /&gt;
&lt;br /&gt;
Configures the device. The payload is 6 bytes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
| Mode&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| 1 = Reset external trigger (send only once)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| 1 = External trigger mode enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| External trigger: 0 = falling, 1 = rising&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| 0 = continuous, 1 = single wave&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| Counter reset: 0 = leave, 1 = reset&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Measurement: 0 = frequency, 1 = counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Output: 0 = pattern generator, 1 = programmable output&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| Digital I/O pins, bits 0-7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| Bits 0-3 = digital I/O pins bits 8-11, bits 4-7 unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| Clock divider, based on 48KHz clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
THe response is 10 bytes:&lt;br /&gt;
&lt;br /&gt;
* the first 2 bytes are always 0&lt;br /&gt;
* in frequency measurement mode:&lt;br /&gt;
** four bytes for the current frequency measurement, in network order. Multiply by 2 to get the actual frequency readout.&lt;br /&gt;
** four bytes for a &amp;quot;tick counter&amp;quot; in network order. This has the number of ticks per second, and is used to derive the frequency. &amp;#039;&amp;#039;Assuming a 100Mhz clock, this counter differs up to 4.17% at 8Mhz from the derived frequency --  investigate.&amp;#039;&amp;#039;&lt;br /&gt;
* in counter mode:&lt;br /&gt;
** four bytes for the current counter, in network order.&lt;br /&gt;
** four bytes denoting the smoothed out frequency, identical to the first four bytes in frequency measurement mode.&lt;br /&gt;
&lt;br /&gt;
==== 0xA1: point transfer indicator ====&lt;br /&gt;
&lt;br /&gt;
Byte 1: bits 0-7 - point count LSB&lt;br /&gt;
Byte 2: bits 0-3 - point count MSB, bit 7 - 0=transfer end, 1=transfer start&lt;br /&gt;
Point count is 12 bits.&lt;br /&gt;
&lt;br /&gt;
* 1-byte response: 0xcc&lt;br /&gt;
&lt;br /&gt;
==== 0xA2: unknown ====&lt;br /&gt;
&lt;br /&gt;
* 6-byte payload: 0000 0000 3000&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
When setting &amp;quot;close output power on&amp;quot;, i.e. save configuration to memory:&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0xcd&lt;br /&gt;
&lt;br /&gt;
==== 0xA3: unknown ====&lt;br /&gt;
&lt;br /&gt;
* no payload&lt;br /&gt;
* 1-byte response: 0x02&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Function generator]]&lt;br /&gt;
[[Category:Planned]]&lt;/div&gt;</summary>
		<author><name>Kuzavas</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=6164</id>
		<title>Hantek DDS-3X25</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=Hantek_DDS-3X25&amp;diff=6164"/>
		<updated>2013-04-05T21:51:37Z</updated>

		<summary type="html">&lt;p&gt;Kuzavas: /* 0xA0: configure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Hantek DDS-3X25 top.jpg|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.hantek.com/english/produce_list.asp?unid=68 Hantek DDS-3X25] is a 25MHz PC-based function generator. It has no external controls, requiring a USB connection to a computer.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
TODO.&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Hantek DDS-3X25 bottom.jpg&lt;br /&gt;
Hantek DDS-3X25 front.jpg&lt;br /&gt;
Hantek DDS-3X25 back.jpg&lt;br /&gt;
Hantek DDS-3X25 PCB top.png&lt;br /&gt;
Hantek DDS-3X25 PCB bottom.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
==== 0xA0: configure ====&lt;br /&gt;
&lt;br /&gt;
Configures the device. The payload is 6 bytes as below:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Byte&lt;br /&gt;
! style=&amp;quot;width: 3em;&amp;quot; | Bit&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|&lt;br /&gt;
| Mode&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| 1 = Reset external trigger (send only once)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| 1 = External trigger mode enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| External trigger: 0 = falling, 1 = rising&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| 0 = continuous, 1 = single wave&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| Counter reset: 0 = leave, 1 = reset&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Measurement: 0 = frequency, 1 = counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
| Output: 0 = pattern generator, 1 = programmable output&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| Digital I/O pins, bits 0-7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| Bits 0-3 = digital I/O pins bits 8-11, bits 4-7 unused&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| Clock divider, based on 48KHz clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Function generator]]&lt;br /&gt;
[[Category:Planned]]&lt;/div&gt;</summary>
		<author><name>Kuzavas</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=UNI-T_UT61E&amp;diff=6128</id>
		<title>UNI-T UT61E</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=UNI-T_UT61E&amp;diff=6128"/>
		<updated>2013-04-01T20:25:08Z</updated>

		<summary type="html">&lt;p&gt;Kuzavas: /* Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox multimeter&lt;br /&gt;
| image           = [[File:Old_ver_front.png|180px]]&lt;br /&gt;
| name            = UNI-T UT61E&lt;br /&gt;
| status          = supported&lt;br /&gt;
| source_code_dir = &lt;br /&gt;
| counts          = 22000&lt;br /&gt;
| categories      = CAT II (600V) / CAT III (300V)&lt;br /&gt;
| connectivity    = [[Device_cables#UNI-T_UT-D02|RS232]] / [[Device_cables#UNI-T_UT-D04|USB]]&lt;br /&gt;
| measurements    = voltage, current, resistance, capacitance, frequency, duty cycle, diode, continuity&lt;br /&gt;
| features        = autorange, true-rms, data hold, min/max, relative, bargraph, backlight&lt;br /&gt;
| website         = [http://www.uni-trend.com/UT61e.html uni-trend.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;UNI-T UT61E&amp;#039;&amp;#039;&amp;#039; is a 22000 counts, CAT II (600V) / CAT III (300V) handheld digital multimeter with RS232 or USB connectivity.&lt;br /&gt;
&lt;br /&gt;
See [[UNI-T UT61E/Info]] for more details (such as &amp;#039;&amp;#039;&amp;#039;lsusb -vvv&amp;#039;&amp;#039;&amp;#039; output) about the device.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
* [[Cyrustek ES51922]] multimeter chip (ES51922A actually, as per various photos: [http://i492.photobucket.com/albums/rr283/DarkShadower/IMAG0005.jpg 1], [http://www.eevblog.com/forum/product-reviews-photos-and-discussion/uni-t-ut61e-multimeter-teardown-photos/?action=dlattach;attach=19985;image;PHPSESSID=14790b9893bed7edb7d8c0505b195ed8 2], [http://img848.imageshack.us/img848/3784/dscf0150w.jpg 3], [http://we.easyelectronics.ru/uploads/images/00/05/21/2011/11/18/553300.jpg 4])&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Older version:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Old ver.JPG&lt;br /&gt;
File:Old ver front.JPG&lt;br /&gt;
File:Old ver back.JPG&lt;br /&gt;
File:Old ver batt.JPG&lt;br /&gt;
File:Old ver lcd.JPG&lt;br /&gt;
File:Old ver cables.JPG&lt;br /&gt;
File:Old_ver_pcb.JPG&lt;br /&gt;
File:Old ver es51922a.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Newer version:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:New ver.JPG&lt;br /&gt;
File:New ver front.JPG&lt;br /&gt;
File:New ver back.JPG&lt;br /&gt;
File:New ver backb.JPG&lt;br /&gt;
File:New ver batt.JPG&lt;br /&gt;
File:New ver frontCover.JPG&lt;br /&gt;
File:New ver Knob.JPG&lt;br /&gt;
File:New ver lcd.JPG&lt;br /&gt;
File:New ver pcb front.JPG&lt;br /&gt;
File:New ver pcb back.JPG&lt;br /&gt;
File:New ver es51922a.JPG&lt;br /&gt;
File:New ver ad737.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
See [[Multimeter_ICs#Cyrustek ES51922]] for the DMM IC protocol.&lt;br /&gt;
&lt;br /&gt;
Depending on the cable, additional decoding is needed, though.&lt;br /&gt;
&lt;br /&gt;
TODO: Serial cable vs. the two USB HID based cables.&lt;br /&gt;
&lt;br /&gt;
The transmission of the measurement data cannot be disabled, the respective Cyrustek ES51922 pin (111, &amp;#039;&amp;#039;&amp;#039;RS232&amp;#039;&amp;#039;&amp;#039;) is tied to GND (i.e. transmission is always enabled) on this multimeter.&amp;lt;sup&amp;gt;[http://www.steffenvogel.de/2011/01/25/inner-workings-of-uni-trend-ut61e-digital-multimeter/]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.uni-trend.com/manual2/UT61English.pdf Manual]&lt;br /&gt;
* [http://www.uni-trend.com/Web%20site/DMM%20Software/UT61E_setup%20v2.00.exe Vendor software]&lt;br /&gt;
* [http://www-user.tu-chemnitz.de/~heha/hs_freeware/UNI-T/ Henrik Haftmann: DMM.exe etc.] (Windows software for various UNI-T DMMs, and lots of device/protocol info)&lt;br /&gt;
* [http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/hid-ser.en.htm Henrik Haftmann: Hoitek HE2325U info]&lt;br /&gt;
* [http://www-user.tu-chemnitz.de/~heha/hs_freeware/UNI-T/UT61E.LOG Henrik Haftmann: UT61E log and protocol docs]&lt;br /&gt;
* [http://diyftw.de/wiki/doku.php?id=projekte:ut61e diyftw.de: Uni-Trend UT61E (UT-D04 linux treiber)] (device info, Linux software using HIDAPI: [http://diyftw.de/wiki/lib/exe/fetch.php?media=projekte:ut61e-linux-sw-0.02.tar.gz ut61e-linux-sw-0.02.tar.gz])&lt;br /&gt;
* [http://www.steffenvogel.de/2009/11/29/uni-trend-ut61e-digital-multimeter/ Steffen Vogel: UNI-TREND UT61E Digital Multimeter] (device info, Linux software for serial port: [http://static.steffenvogel.de/wp-content/uploads/2009/11/dmmut61e-0.01.tar.gz dmmut61e-0.01.tar.gz])&lt;br /&gt;
* [https://bitbucket.org/kuzavas/dmm_es51922 Multimeter data parsing utility] complete implementation written in Python&lt;br /&gt;
* [http://www.steffenvogel.de/2011/01/25/inner-workings-of-uni-trend-ut61e-digital-multimeter/ Steffen Vogel: Inner workings of UNI-TREND UT61E Digital Multimeter] (teardown)&lt;br /&gt;
* [http://erste.de/UT61/index.html erste.de: UT61 - USB Multimeter unter Linux auslesen] (info on the Hoitek HE2325U (clone?) and how suspend/resume fixes some issues with it)&lt;br /&gt;
* [http://translate.google.de/translate?sl=auto&amp;amp;tl=en&amp;amp;js=n&amp;amp;prev=_t&amp;amp;hl=de&amp;amp;ie=UTF-8&amp;amp;layout=2&amp;amp;eotf=1&amp;amp;u=http%3A%2F%2Fwe.easyelectronics.ru%2FACE%2Fdorabotka-napilnikom-multimetra-ut61e.html&amp;amp;act=url easyelectronics.ru: Refinement of a file multimeter UT61E]&lt;br /&gt;
* [http://translate.google.de/translate?sl=pl&amp;amp;tl=en&amp;amp;u=http%3A%2F%2Fflodins.info%2Fmoim-zdaniem%2F81-multimetr-uni-t-ut61e flodins.info: Multimeter UNI-T UT61E]&lt;br /&gt;
* [http://www.eevblog.com/forum/product-reviews-photos-and-discussion/uni-t-ut61e-multimeter-teardown-photos/?action=dlattach;attach=20302;PHPSESSID=14790b9893bed7edb7d8c0505b195ed8 UNI-T UT61E schematics: ut61e sch.pdf]&lt;br /&gt;
* Teardowns: [http://www.eevblog.com/forum/product-reviews-photos-and-discussion/uni-t-ut61e-multimeter-teardown-photos/msg45069/#msg45069 1], [http://www.eevblog.com/forum/product-reviews-photos-and-discussion/uni-t-ut61e-multimeter-teardown-photos/msg113968/#msg113968 2], [http://www.eevblog.com/forum/product-reviews-photos-and-discussion/uni-t-ut61e-multimeter-teardown-photos/msg86347/#msg86347 3], [http://www.eevblog.com/forum/product-reviews-photos-and-discussion/uni-t-ut61e-multimeter-teardown-photos/msg86378/#msg86378 4], [http://www.eevblog.com/forum/product-reviews-photos-and-discussion/uni-t-ut61e-multimeter-teardown-photos/msg86802/#msg86802 5], [http://www.eevblog.com/forum/product-reviews-photos-and-discussion/uni-t-ut61e-multimeter-teardown-photos/msg82784/#msg82784 6]&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Multimeter]]&lt;br /&gt;
[[Category:Supported]]&lt;/div&gt;</summary>
		<author><name>Kuzavas</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=Multimeter_ICs&amp;diff=6127</id>
		<title>Multimeter ICs</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=Multimeter_ICs&amp;diff=6127"/>
		<updated>2013-04-01T20:22:09Z</updated>

		<summary type="html">&lt;p&gt;Kuzavas: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists some information about ICs commonly used in various multimeters (DMMs).&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
Many multimeters use a special-purpose multimeter IC internally. This table lists those chips, as they&amp;#039;re often directly responsible for the protocol and data format of the PC logging functionality of a multimeter.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sortable sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Vendor&lt;br /&gt;
! Device&lt;br /&gt;
! Builtin PC interface&lt;br /&gt;
! Comments&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.cyrustek.com.tw Cyrustek]&lt;br /&gt;
| [http://www.cyrustek.com.tw/spec/ES51922.pdf ES51922]&lt;br /&gt;
| RS232, TX only, 19230 baud, 7o1&lt;br /&gt;
| Data is sent via the &amp;#039;&amp;#039;&amp;#039;SDO&amp;#039;&amp;#039;&amp;#039; pin. Data logging can be en/disabled via &amp;#039;&amp;#039;&amp;#039;RS232&amp;#039;&amp;#039;&amp;#039; pin. Parsing utilities listed in [[Cyrustek ES51922]].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.ic-fortune.com/eng/new_product3_3.asp Fortune Semiconductor]&lt;br /&gt;
| [http://www.ic-fortune.com/upload/Download/FS9721_LP3-DS-20_EN.pdf FS9721_LP3]&lt;br /&gt;
| RS232, TX only, 2400 baud, 8n1&lt;br /&gt;
| Data is sent via the &amp;#039;&amp;#039;&amp;#039;TXD&amp;#039;&amp;#039;&amp;#039; pin. Data logging can be en/disabled via &amp;#039;&amp;#039;&amp;#039;ENTX&amp;#039;&amp;#039;&amp;#039; pin.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.ic-fortune.com/eng/new_product3_3.asp Fortune Semiconductor]&lt;br /&gt;
| [http://www.ic-fortune.com/upload/Download/FS9922-DMM4-DS-11_EN.pdf FS9922_DMM4]&lt;br /&gt;
| RS232, TX only, 2400 baud, 8n1 (?)&lt;br /&gt;
| Data is sent via the &amp;#039;&amp;#039;&amp;#039;TXD&amp;#039;&amp;#039;&amp;#039; pin. Data logging can be en/disabled via &amp;#039;&amp;#039;&amp;#039;TXEN&amp;#039;&amp;#039;&amp;#039; pin (?) and the &amp;#039;&amp;#039;&amp;#039;REL/RS232&amp;#039;&amp;#039;&amp;#039; pin (?).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Intersil&lt;br /&gt;
| ICL7106&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Intersil&lt;br /&gt;
| ICL7136&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Intersil&lt;br /&gt;
| ICL7139/ICL7149&lt;br /&gt;
| none (?)&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| MASTECH&lt;br /&gt;
| M343-01&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Maxim&lt;br /&gt;
| MAX130/131&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Maxim&lt;br /&gt;
| MAX133/134&lt;br /&gt;
| ?&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Metex&lt;br /&gt;
| KS57C2016&lt;br /&gt;
| ?&lt;br /&gt;
| Possibly a relabel&amp;#039;d Samsung KS57C2016 4-bit microcontroller.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [http://semicon.njr.co.jp/eng/ New Japan Radio]&lt;br /&gt;
| [http://www.datasheetcatalog.com/datasheets_pdf/N/J/U/9/NJU9207.shtml NJU9207]&lt;br /&gt;
| none&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fortune Semiconductor FS9721_LP3 =&lt;br /&gt;
&lt;br /&gt;
[[File:Voltcraft vc820 fs9721 lp3.jpg|thumb|right|FS9721_LP3 on [[Voltcraft VC-820]].]]&lt;br /&gt;
[[File:Tp4000zc_chip.jpg|thumb|right|FS9721_LP3 (?) on [[TekPower TP4000ZC]].]]&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
The chip periodically sends 14-byte packets at 2400 baud, 8n1.&lt;br /&gt;
The upper nibble of each byte indicates the byte number. The payload is composed of the lower nibbles, and is a 1-1 mapping of the LCD segments. The downside to this protocol structure is that transmission errors in the LSB nibbles cannot be detected. There is no checksum or CRC in the packet. The 4 user-defined bits can have different meaning on different multimeters using this IC.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Packet structure:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Byte&lt;br /&gt;
! Bits 7-4&lt;br /&gt;
! Bit 3&lt;br /&gt;
! Bit 2&lt;br /&gt;
! Bit 1&lt;br /&gt;
! Bit 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; | 0x1&lt;br /&gt;
| AC&lt;br /&gt;
| DC&lt;br /&gt;
| Auto&lt;br /&gt;
| RS232&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; | 0x2&lt;br /&gt;
| Negative&lt;br /&gt;
| 1A&lt;br /&gt;
| 1B&lt;br /&gt;
| 1C&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; | 0x3&lt;br /&gt;
| 1D&lt;br /&gt;
| 1E&lt;br /&gt;
| 1F&lt;br /&gt;
| 1G&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; | 0x4&lt;br /&gt;
| DP1&lt;br /&gt;
| 2A&lt;br /&gt;
| 2B&lt;br /&gt;
| 2C&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; | 0x5&lt;br /&gt;
| 2D&lt;br /&gt;
| 2E&lt;br /&gt;
| 2F&lt;br /&gt;
| 2G&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; | 0x6&lt;br /&gt;
| DP2&lt;br /&gt;
| 3A&lt;br /&gt;
| 3B&lt;br /&gt;
| 3C&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; | 0x7&lt;br /&gt;
| 3D&lt;br /&gt;
| 3E&lt;br /&gt;
| 3F&lt;br /&gt;
| 3G&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; | 0x8&lt;br /&gt;
| DP3&lt;br /&gt;
| 4A&lt;br /&gt;
| 4B&lt;br /&gt;
| 4C&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; | 0x9&lt;br /&gt;
| 4D&lt;br /&gt;
| 4E&lt;br /&gt;
| 4F&lt;br /&gt;
| 4G&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; | 0xa&lt;br /&gt;
| u&lt;br /&gt;
| n&lt;br /&gt;
| k&lt;br /&gt;
| Diode&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; | 0xb&lt;br /&gt;
| m&lt;br /&gt;
| %&lt;br /&gt;
| M&lt;br /&gt;
| Beep&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; | 0xc&lt;br /&gt;
| Farads&lt;br /&gt;
| Ohms&lt;br /&gt;
| Rel&lt;br /&gt;
| Hold&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; | 0xd&lt;br /&gt;
| A&lt;br /&gt;
| V&lt;br /&gt;
| Hz&lt;br /&gt;
| Low battery&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; | 0xe&lt;br /&gt;
| User bit 3&lt;br /&gt;
| User bit 2&lt;br /&gt;
| User bit 1&lt;br /&gt;
| User bit 0&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Segment lettering:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{{7seg|C|B|G|F|A|E|D}}&lt;br /&gt;
&lt;br /&gt;
= Fortune Semiconductor FS9721B =&lt;br /&gt;
&lt;br /&gt;
TODO.&lt;br /&gt;
&lt;br /&gt;
= Fortune Semiconductor FS9922-DMM3 =&lt;br /&gt;
&lt;br /&gt;
TODO.&lt;br /&gt;
&lt;br /&gt;
= Fortune Semiconductor FS9922-DMM4 =&lt;br /&gt;
&lt;br /&gt;
[[File:Uni-t ut61d fs9922-dmm4.jpg|thumb|right|FS9922-DMM4 in a [[UNI-T UT61D]].]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.ic-fortune.com/eng/ Fortune Semiconductor] FS9922-DMM4 ([http://www.ic-fortune.com/upload/Download/FS9922-DMM4-DS-11_EN.pdf datasheet]) is a widely used 6000-count auto-ranging DMM chip: it takes input from the various controls on the front panel, drives the LCD display, and can communicate its readings via a serial port.&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
= Metex 14-byte ASCII =&lt;br /&gt;
&lt;br /&gt;
[[File:Mastech mas345 mastech m343-01.jpg|thumb|right|MASTECH M343-01 in a [[MASTECH MAS345]].]]&lt;br /&gt;
[[File:Rs_22_168_ics5.jpg|thumb|right|Metex KS57C2016 in a [[RadioShack 22-168]].]]&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
Various multimeters from Metex (and rebadged ones) use this common 14-byte packet based ASCII protocol. The actual multimeter ICs in the devices have different names (e.g. &amp;quot;MASTECH M343-01&amp;quot; or &amp;quot;Metex KS57C2016&amp;quot;) but they all use the same common protocol format.&lt;br /&gt;
&lt;br /&gt;
The serial port settings can vary from device to device, e.g. &amp;#039;&amp;#039;&amp;#039;600&amp;#039;&amp;#039;&amp;#039;/&amp;#039;&amp;#039;&amp;#039;1200&amp;#039;&amp;#039;&amp;#039; baud, &amp;#039;&amp;#039;&amp;#039;7n2&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;RTS low&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;DTR high&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Every time the host sends a (any?) character to the DMM (most software packages send a &amp;#039;&amp;#039;&amp;#039;D&amp;#039;&amp;#039;&amp;#039;/&amp;#039;&amp;#039;&amp;#039;0x44&amp;#039;&amp;#039;&amp;#039;), it returns &amp;#039;&amp;#039;&amp;#039;14 ASCII bytes&amp;#039;&amp;#039;&amp;#039; containing the measurement mode, value, and units. Even with continuous packet requests, the IC will only send a packet when a new measurement is available.&lt;br /&gt;
&lt;br /&gt;
There is no additional other information about the multimeter status returned in the packets (e.g. no low-battery bit, no relative/min/max/hold bits, and so on).&lt;br /&gt;
&lt;br /&gt;
=== Packet structure ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Byte(s)&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1-2&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Measuring mode&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;DC&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;AC&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;OH&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;CA&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;TE&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;DI&amp;#039;&amp;#039;&amp;#039;, ...)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Always a space&amp;#039;&amp;#039;&amp;#039; (?)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Sign&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;&amp;#039;-&amp;#039;&amp;#039;&amp;#039;&amp;#039; or &amp;#039; &amp;#039;, i.e. a minus or a space)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-9&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Decimal point and current measurement value&amp;#039;&amp;#039;&amp;#039; (Examples: &amp;#039;&amp;#039;&amp;#039;10.00&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;0L&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;3.999&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10-13&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Unit&amp;#039;&amp;#039;&amp;#039; (Examples: &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039;, mV, &amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;mA&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;kOhm&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;MOhm&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;nF&amp;#039;&amp;#039;&amp;#039;, ...)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Carriage return&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;13&amp;#039;&amp;#039;&amp;#039;/&amp;#039;&amp;#039;&amp;#039;0x0d&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example packets ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;alternategrey sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!01&lt;br /&gt;
!02&lt;br /&gt;
!03&lt;br /&gt;
!04&lt;br /&gt;
!05&lt;br /&gt;
!06&lt;br /&gt;
!07&lt;br /&gt;
!08&lt;br /&gt;
!09&lt;br /&gt;
!10&lt;br /&gt;
!11&lt;br /&gt;
!12&lt;br /&gt;
!13&lt;br /&gt;
!14&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| D&lt;br /&gt;
| C&lt;br /&gt;
| &lt;br /&gt;
| -&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| .&lt;br /&gt;
| 0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| V&lt;br /&gt;
| \r&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| C&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| .&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| A&lt;br /&gt;
| \r&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| A&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 0&lt;br /&gt;
| .&lt;br /&gt;
| 0&lt;br /&gt;
| 7&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| n&lt;br /&gt;
| F&lt;br /&gt;
| \r&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| O&lt;br /&gt;
| H&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| O&lt;br /&gt;
| .&lt;br /&gt;
| L&lt;br /&gt;
| &lt;br /&gt;
| M&lt;br /&gt;
| O&lt;br /&gt;
| h&lt;br /&gt;
| m&lt;br /&gt;
| \r&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kuzavas</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=UNI-T_UT61E&amp;diff=6126</id>
		<title>UNI-T UT61E</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=UNI-T_UT61E&amp;diff=6126"/>
		<updated>2013-04-01T20:17:02Z</updated>

		<summary type="html">&lt;p&gt;Kuzavas: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox multimeter&lt;br /&gt;
| image           = [[File:Old_ver_front.png|180px]]&lt;br /&gt;
| name            = UNI-T UT61E&lt;br /&gt;
| status          = supported&lt;br /&gt;
| source_code_dir = &lt;br /&gt;
| counts          = 22000&lt;br /&gt;
| categories      = CAT II (600V) / CAT III (300V)&lt;br /&gt;
| connectivity    = [[Device_cables#UNI-T_UT-D02|RS232]] / [[Device_cables#UNI-T_UT-D04|USB]]&lt;br /&gt;
| measurements    = voltage, current, resistance, capacitance, frequency, duty cycle, diode, continuity&lt;br /&gt;
| features        = autorange, true-rms, data hold, min/max, relative, bargraph, backlight&lt;br /&gt;
| website         = [http://www.uni-trend.com/UT61e.html uni-trend.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;UNI-T UT61E&amp;#039;&amp;#039;&amp;#039; is a 22000 counts, CAT II (600V) / CAT III (300V) handheld digital multimeter with RS232 or USB connectivity.&lt;br /&gt;
&lt;br /&gt;
See [[UNI-T UT61E/Info]] for more details (such as &amp;#039;&amp;#039;&amp;#039;lsusb -vvv&amp;#039;&amp;#039;&amp;#039; output) about the device.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
* [[Cyrustek ES51922]] multimeter chip (ES51922A actually, as per various photos: [http://i492.photobucket.com/albums/rr283/DarkShadower/IMAG0005.jpg 1], [http://www.eevblog.com/forum/product-reviews-photos-and-discussion/uni-t-ut61e-multimeter-teardown-photos/?action=dlattach;attach=19985;image;PHPSESSID=14790b9893bed7edb7d8c0505b195ed8 2], [http://img848.imageshack.us/img848/3784/dscf0150w.jpg 3], [http://we.easyelectronics.ru/uploads/images/00/05/21/2011/11/18/553300.jpg 4])&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Older version:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Old ver.JPG&lt;br /&gt;
File:Old ver front.JPG&lt;br /&gt;
File:Old ver back.JPG&lt;br /&gt;
File:Old ver batt.JPG&lt;br /&gt;
File:Old ver lcd.JPG&lt;br /&gt;
File:Old ver cables.JPG&lt;br /&gt;
File:Old_ver_pcb.JPG&lt;br /&gt;
File:Old ver es51922a.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Newer version:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:New ver.JPG&lt;br /&gt;
File:New ver front.JPG&lt;br /&gt;
File:New ver back.JPG&lt;br /&gt;
File:New ver backb.JPG&lt;br /&gt;
File:New ver batt.JPG&lt;br /&gt;
File:New ver frontCover.JPG&lt;br /&gt;
File:New ver Knob.JPG&lt;br /&gt;
File:New ver lcd.JPG&lt;br /&gt;
File:New ver pcb front.JPG&lt;br /&gt;
File:New ver pcb back.JPG&lt;br /&gt;
File:New ver es51922a.JPG&lt;br /&gt;
File:New ver ad737.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
See [[Multimeter_ICs#Cyrustek ES51922]] for the DMM IC protocol.&lt;br /&gt;
&lt;br /&gt;
Depending on the cable, additional decoding is needed, though.&lt;br /&gt;
&lt;br /&gt;
TODO: Serial cable vs. the two USB HID based cables.&lt;br /&gt;
&lt;br /&gt;
The transmission of the measurement data cannot be disabled, the respective Cyrustek ES51922 pin (111, &amp;#039;&amp;#039;&amp;#039;RS232&amp;#039;&amp;#039;&amp;#039;) is tied to GND (i.e. transmission is always enabled) on this multimeter.&amp;lt;sup&amp;gt;[http://www.steffenvogel.de/2011/01/25/inner-workings-of-uni-trend-ut61e-digital-multimeter/]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.uni-trend.com/manual2/UT61English.pdf Manual]&lt;br /&gt;
* [http://www.uni-trend.com/Web%20site/DMM%20Software/UT61E_setup%20v2.00.exe Vendor software]&lt;br /&gt;
* [http://www-user.tu-chemnitz.de/~heha/hs_freeware/UNI-T/ Henrik Haftmann: DMM.exe etc.] (Windows software for various UNI-T DMMs, and lots of device/protocol info)&lt;br /&gt;
* [http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/hid-ser.en.htm Henrik Haftmann: Hoitek HE2325U info]&lt;br /&gt;
* [http://www-user.tu-chemnitz.de/~heha/hs_freeware/UNI-T/UT61E.LOG Henrik Haftmann: UT61E log and protocol docs]&lt;br /&gt;
* [http://diyftw.de/wiki/doku.php?id=projekte:ut61e diyftw.de: Uni-Trend UT61E (UT-D04 linux treiber)] (device info, Linux software using HIDAPI: [http://diyftw.de/wiki/lib/exe/fetch.php?media=projekte:ut61e-linux-sw-0.02.tar.gz ut61e-linux-sw-0.02.tar.gz])&lt;br /&gt;
* [http://www.steffenvogel.de/2009/11/29/uni-trend-ut61e-digital-multimeter/ Steffen Vogel: UNI-TREND UT61E Digital Multimeter] (device info, Linux software for serial port: [http://static.steffenvogel.de/wp-content/uploads/2009/11/dmmut61e-0.01.tar.gz dmmut61e-0.01.tar.gz])&lt;br /&gt;
* [http://www.steffenvogel.de/2011/01/25/inner-workings-of-uni-trend-ut61e-digital-multimeter/ Steffen Vogel: Inner workings of UNI-TREND UT61E Digital Multimeter] (teardown)&lt;br /&gt;
* [http://erste.de/UT61/index.html erste.de: UT61 - USB Multimeter unter Linux auslesen] (info on the Hoitek HE2325U (clone?) and how suspend/resume fixes some issues with it)&lt;br /&gt;
* [http://translate.google.de/translate?sl=auto&amp;amp;tl=en&amp;amp;js=n&amp;amp;prev=_t&amp;amp;hl=de&amp;amp;ie=UTF-8&amp;amp;layout=2&amp;amp;eotf=1&amp;amp;u=http%3A%2F%2Fwe.easyelectronics.ru%2FACE%2Fdorabotka-napilnikom-multimetra-ut61e.html&amp;amp;act=url easyelectronics.ru: Refinement of a file multimeter UT61E]&lt;br /&gt;
* [http://translate.google.de/translate?sl=pl&amp;amp;tl=en&amp;amp;u=http%3A%2F%2Fflodins.info%2Fmoim-zdaniem%2F81-multimetr-uni-t-ut61e flodins.info: Multimeter UNI-T UT61E]&lt;br /&gt;
* [http://www.eevblog.com/forum/product-reviews-photos-and-discussion/uni-t-ut61e-multimeter-teardown-photos/?action=dlattach;attach=20302;PHPSESSID=14790b9893bed7edb7d8c0505b195ed8 UNI-T UT61E schematics: ut61e sch.pdf]&lt;br /&gt;
* Teardowns: [http://www.eevblog.com/forum/product-reviews-photos-and-discussion/uni-t-ut61e-multimeter-teardown-photos/msg45069/#msg45069 1], [http://www.eevblog.com/forum/product-reviews-photos-and-discussion/uni-t-ut61e-multimeter-teardown-photos/msg113968/#msg113968 2], [http://www.eevblog.com/forum/product-reviews-photos-and-discussion/uni-t-ut61e-multimeter-teardown-photos/msg86347/#msg86347 3], [http://www.eevblog.com/forum/product-reviews-photos-and-discussion/uni-t-ut61e-multimeter-teardown-photos/msg86378/#msg86378 4], [http://www.eevblog.com/forum/product-reviews-photos-and-discussion/uni-t-ut61e-multimeter-teardown-photos/msg86802/#msg86802 5], [http://www.eevblog.com/forum/product-reviews-photos-and-discussion/uni-t-ut61e-multimeter-teardown-photos/msg82784/#msg82784 6]&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Multimeter]]&lt;br /&gt;
[[Category:Supported]]&lt;/div&gt;</summary>
		<author><name>Kuzavas</name></author>
	</entry>
</feed>