<?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=Andysan</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=Andysan"/>
	<link rel="alternate" type="text/html" href="https://sigrok.org/wiki/Special:Contributions/Andysan"/>
	<updated>2026-04-19T06:15:08Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14929</id>
		<title>RDTech TC66C</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14929"/>
		<updated>2020-03-06T23:35:44Z</updated>

		<summary type="html">&lt;p&gt;Andysan: /* Poll data format */  Specify endianness.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox energy meter&lt;br /&gt;
| image               = [[File:UM24C_display.jpg|180px]]&lt;br /&gt;
| name                = RDTech TC66C&lt;br /&gt;
| status              = planned&lt;br /&gt;
| connectivity        = serial over Bluetooth or USB&lt;br /&gt;
| measurements        = voltage, current, power, energy, voltage over USB data lines&lt;br /&gt;
| features            = measures USB-C devices; color display&lt;br /&gt;
| website             = [http://rdtech.aliexpress.com/ rdtech.aliexpress.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The RDTech TC66C (~$25 USD) is a USB-C load meter which can measure various properties of USB-C devices including their voltage, amperage, wattage, resistance, capacity, temperature, data line voltage, and charging mode. This device is similar to the [[RDTech UM series]] of devices, but doesn&amp;#039;t use the same protocol.&lt;br /&gt;
&lt;br /&gt;
== Protocol (serial) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Mode   !! Resp. len. !! Meaning&lt;br /&gt;
|-----------------------------------------------------------------&lt;br /&gt;
| query   || All    || 4          || Query mode (&amp;#039;firm&amp;#039; or &amp;#039;boot&amp;#039;)&lt;br /&gt;
|----&lt;br /&gt;
| getva   || Normal || 192        || Poll readings. (ret: pacX)&lt;br /&gt;
|----&lt;br /&gt;
| gtrec   || Normal || Variable   || Get recording.&lt;br /&gt;
|----&lt;br /&gt;
| lastp   || Normal || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| nextp   || Normal || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| rotat   || Normal || 0          || Rotate screen.&lt;br /&gt;
|----&lt;br /&gt;
| update  || Boot   || 5          || Prepare to upload firmware. Returns &amp;#039;uprdy&amp;#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Protocol (Bluetooth LE) ==&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! UUID                                 !! What&lt;br /&gt;
|-----------------------------------------------------&lt;br /&gt;
| 0000ffe5-0000-1000-8000-00805f9b34fb || TX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe9-0000-1000-8000-00805f9b34fb || TX attribute&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe0-0000-1000-8000-00805f9b34fb || RX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe4-0000-1000-8000-00805f9b34fb || RX attribute&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Transmission to the device is implemented by writing to the TX&lt;br /&gt;
attribute in the TX service. RX is implemented by listening for&lt;br /&gt;
notifications from the RX attribute in the RX service.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command    !! Resp. len. !! Meaning&lt;br /&gt;
|-------------------------------------------&lt;br /&gt;
| bgetva\r\n || 192        || Poll readings.&lt;br /&gt;
|----&lt;br /&gt;
| blastp\r\n || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| bnextp\r\n || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| brotat\r\n || 0          || Rotate screen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Poll data format ==&lt;br /&gt;
Poll data is returned as Returns 3x64 byte blocks of data, a total of 192 bytes. Each block is prefixed by &amp;lt;code&amp;gt;pacX&amp;lt;/code&amp;gt; The returned data is encrypted using AES in ECB mode. All integers are little endian.&lt;br /&gt;
&lt;br /&gt;
=== pac1 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac1&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || char[4]  || Product name (&amp;lt;code&amp;gt;TC66&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || char[4]  || Version (e.g., &amp;lt;code&amp;gt;1.14&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Module serial number&lt;br /&gt;
|----&lt;br /&gt;
| 16-43  || Unknown  || Unknown&lt;br /&gt;
|----&lt;br /&gt;
| 44     || uint32_t || Number of runs&lt;br /&gt;
|----&lt;br /&gt;
| 48     || uint32_t || Voltage (multiply by 1e-4 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 52     || uint32_t || Current (multiply by 1e-5 for Ampere)&lt;br /&gt;
|----&lt;br /&gt;
| 56     || uint32_t || Power (multiply by 1e-4 for Watt)&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac2 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac2&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || uint32_t || Resistance (multiply by 1e-2 for Ohm)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || uint32_t || Group 0 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Group 0 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 16     || uint32_t || Group 1 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 20     || uint32_t || Group 1 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 24     || uint32_t || Temperature sign (1 for negative)&lt;br /&gt;
|----&lt;br /&gt;
| 28     || uint32_t || Temperature (Celsius or Fahrenheit)&lt;br /&gt;
|----&lt;br /&gt;
| 32     || uint32_t || D+ Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 36     || uint32_t || D- Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 40-59  || Unknown  || Always zero?&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac3 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac3&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4-59   || Unknown  || Always zero?&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Checksum algorithm ===&lt;br /&gt;
Checksums are implemented using CRC-16/MODBUS zero-extended to fit a 32-bit field.&lt;br /&gt;
&lt;br /&gt;
=== Encryption algorithm ===&lt;br /&gt;
Poll packets are encrypted using AES in ECB mode using the following static key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0x58, 0x21, 0xfa, 0x56, 0x01, 0xb2, 0xf0, 0x26,&lt;br /&gt;
0x87, 0xff, 0x12, 0x04, 0x62, 0x2a, 0x4f, 0xb0,&lt;br /&gt;
0x86, 0xf4, 0x02, 0x60, 0x81, 0x6f, 0x9a, 0x0b,&lt;br /&gt;
0xa7, 0xf1, 0x06, 0x61, 0x9a, 0xb8, 0x72, 0x88,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kudos to [https://ralimtek.com/reverse%20engineering/software/tc66c-reverse-engineering Ben V. Brown] for documenting the encryption algorithm and key.&lt;br /&gt;
&lt;br /&gt;
== Recording format (gtrec) ==&lt;br /&gt;
&lt;br /&gt;
Recordings dumped using the &amp;lt;code&amp;gt;gtrec&amp;lt;/code&amp;gt; command are returned as a list of 32-bit unsigned integer pairs terminated by &amp;lt;code&amp;gt;reck&amp;lt;/code&amp;gt;. The first value in the pair is the voltage (multiply by 1e-4 to get voltage) and the second value is the current (multiply by 1e-5 to get Ampere).&lt;br /&gt;
&lt;br /&gt;
== Firmware update ==&lt;br /&gt;
&lt;br /&gt;
Firmware update process:&lt;br /&gt;
* Issue a &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; command to verify that the boot loader is active.&lt;br /&gt;
* Issue the &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; command, wait for &amp;lt;code&amp;gt;uprdy&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Write firmware in blocks of 64 bytes (the last block may be shorter than 64 bytes). Each block is acknowledged with an &amp;lt;code&amp;gt;OK&amp;lt;/code&amp;gt; response.&lt;br /&gt;
* Device reboots automatically.&lt;br /&gt;
&lt;br /&gt;
Useful URLs:&lt;br /&gt;
* Firmware metadata: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json]&lt;br /&gt;
* Firmware binary: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin]&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=Supported_hardware&amp;diff=14928</id>
		<title>Supported hardware</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=Supported_hardware&amp;diff=14928"/>
		<updated>2020-03-06T16:08:54Z</updated>

		<summary type="html">&lt;p&gt;Andysan: /* Energy meters */  Add RDTech TC66C&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;sigrok is intended as a flexible, cross-platform, and &amp;#039;&amp;#039;&amp;#039;hardware-independent&amp;#039;&amp;#039;&amp;#039; software suite, i.e., it supports various devices from many different vendors.&lt;br /&gt;
&lt;br /&gt;
Here is a list of currently supported devices (various stages of completeness) in the [http://sigrok.org/gitweb/?p=libsigrok.git;a=summary latest git version of libsigrok] (fewer devices might be supported in tarball releases) and devices we plan to support in the future.&lt;br /&gt;
&lt;br /&gt;
The lists are sorted by category ([[File:Nuvola OK.png|16px]] &amp;lt;span style=&amp;quot;background-color: lime&amp;quot;&amp;gt;supported&amp;lt;/span&amp;gt;: [[:Category:Supported|{{PAGESINCATEGORY:Supported|pages}}]], [[File:Nuvola Orange.png|16px]] &amp;lt;span style=&amp;quot;background-color: orange&amp;quot;&amp;gt;in progress&amp;lt;/span&amp;gt;: [[:Category:In progress|{{PAGESINCATEGORY:In progress|pages}}]], [[File:Nuvola Red.png|16px]] &amp;lt;span style=&amp;quot;background-color: red&amp;quot;&amp;gt;planned&amp;lt;/span&amp;gt;: [[:Category:Planned|{{PAGESINCATEGORY:Planned|pages}}]]), and alphabetically within those categories.&lt;br /&gt;
&lt;br /&gt;
== Logic analyzers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:ARMFLY MINI LOGIC.png|link=ARMFLY Mini-Logic|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ARMFLY Mini-Logic]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:ASIX SIGMA 2.png|link=ASIX SIGMA|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ASIX SIGMA]] (16ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:BeagleLogic.jpg|link=BeagleLogic|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[BeagleLogic]] (12(max 14)ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Braintechnology_usb_interface_v26.png|link=Braintechnology USB Interface V2.x|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Braintechnology USB Interface V2.x]] (8/16ch, 24/12MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Braintechnology_usb_lps.png|link=Braintechnology USB-LPS|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Braintechnology USB-LPS]] (8/16ch, 24/12MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Chronovu la8 front.png|link=ChronoVu LA8|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ChronoVu LA8]] (8ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Chronovu la16.png|link=ChronoVu LA16|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ChronoVu LA16]] (16ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Cwav_usbee_sx.png|link=CWAV USBee SX|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[CWAV USBee SX]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Buspirate_v3.png|link=Dangerous Prototypes Buspirate|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Dangerous Prototypes Buspirate]] (5ch, 1MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Dangerous prototypes irtoy mugshot.png|link=Dangerous Prototypes USB IR Toy|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Dangerous Prototypes USB IR Toy]] (1ch, 10kHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:DSLogic.png|link=DreamSourceLab DSLogic|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[DreamSourceLab DSLogic]] (16ch, 400MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:DSLogic.png|link=DreamSourceLab DSLogic Basic|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[DreamSourceLab DSLogic Basic]] (16ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:DSLogic.png|link=DreamSourceLab DSLogic Plus|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[DreamSourceLab DSLogic Plus]] (16ch, 400MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:DSLogic.png|link=DreamSourceLab DSLogic Pro|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[DreamSourceLab DSLogic Pro]] (16ch, 400MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Eeelec xla esla100.png|link=EE Electronics ESLA100|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[EE Electronics ESLA100]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Chronovu la8 ftdi ft245rl.jpg|link=FTDI-LA|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[FTDI-LA]] (8ch, ~10MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek 4032l mugshot.png|link=Hantek 4032L|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Hantek 4032L]] (32ch, 400MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek 6022be mugshot.png|link=Hantek 6022BL|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Hantek 6022BL]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hobby components hctest0006 mugshot.png|link=Hobby Components HCTEST0006|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Hobby Components HCTEST0006]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Ikalogic_scanalogic2.png|link=IKALOGIC Scanalogic-2|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[IKALOGIC Scanalogic-2]] (4ch, 20MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Ikalogic scanaplus mugshot.png|link=IKALOGIC ScanaPLUS|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[IKALOGIC ScanaPLUS]] (9ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Kingst kqs3506 la16100.png|link=KingST KQS3506-LA16100|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[KingST KQS3506-LA16100]] (16ch, 100/50/32/16MHz @ 3/6/9/16ch)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Lcsoft-miniboard-front.png|link=Lcsoft Mini Board|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Lcsoft Mini Board]] (8/16ch, 24/12MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Lecroy logicstudio16 mugshot.png|link=LeCroy LogicStudio|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[LeCroy LogicStudio]] (8/16ch, 1GHz/500MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:logic-shrimp-front.png|link=Logic Shrimp|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Logic Shrimp]] (4ch, 20MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mcu123 saleae logic clone.png|link=MCU123 Saleae Logic clone|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MCU123 Saleae Logic clone]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Meilhaus logian 16l mugshot.png|link=Meilhaus Logian-16L|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Meilhaus Logian-16L]] (16ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Microchip_pickit2.png|link=Microchip PICkit2|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Microchip PICkit2]] (3ch, 1MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Usbee_ax_clone_front.png|link=MCU123 USBee AX Pro clone|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MCU123 USBee AX Pro clone]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mcupro_Logic16_overview.png|link=mcupro Logic16 clone|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[mcupro Logic16 clone]] (16ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Openbench logic sniffer front.png|link=Openbench Logic Sniffer|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Openbench Logic Sniffer]] (32ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Prist akip 9101 mugshot.png|link=Prist AKIP-9101|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Prist AKIP-9101]] (16ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Robomotic buglogic3.png|link=Robomotic BugLogic 3|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Robomotic BugLogic 3]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Robomotic_minilogic.png|link=Robomotic MiniLogic|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Robomotic MiniLogic]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae Logic.png|link=Saleae Logic|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Saleae Logic]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae_Logic16_bottom.png|link=Saleae Logic16|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Saleae Logic16]] (16ch, 100/50/32/16MHz @ 3/6/9/16ch)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saanlima Pipistrello-OLS.png|link=Saanlima Pipistrello OLS|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Saanlima Pipistrello OLS]] (32ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sysclk lwla1016.png|link=Sysclk LWLA1016|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Sysclk LWLA1016]] (16ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sysclk lwla1034 mugshot.png|link=Sysclk LWLA1034|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Sysclk LWLA1034]] (34ch, 125MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sysclk sla5032 mugshot.png|link=Sysclk SLA5032|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Sysclk SLA5032]] (32ch, 500MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:VKTECH_thumb.jpg|link=VKTECH_saleae_clone|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[VKTECH_saleae_clone|VKTECH saleae clone]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Wayengineer saleae16.png|link=WayEngineer Saleae16|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[WayEngineer Saleae16]] (16ch, 100/50/32/16MHz @ 3/6/9/16ch)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Zeroplus Logic Cube.png|link=ZEROPLUS Logic Cube LAP-C(16032)|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ZEROPLUS Logic Cube LAP-C(16032)]] (16ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Zeroplus Logic Cube.png|link=ZEROPLUS Logic Cube LAP-C(322000)|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ZEROPLUS Logic Cube LAP-C(322000)]] (32ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Zeroplus_lap-16128u.png|link=ZEROPLUS LAP-16128U|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ZEROPLUS LAP-16128U]] (16ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Acute_pkla1216.png|link=Acute PKLA-1216|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Acute PKLA-1216]] (16ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Arduino_Uno-R3.jpg|link=Arduino|[[File:Nuvola Orange.png|16px]] &amp;lt;small&amp;gt;[[Arduino]] (6ch, 4MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:ASIX Omega.png|link=ASIX OMEGA|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[ASIX OMEGA]] (16ch, 400MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:IMG 20191206 105430.jpg|link=CoLA|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[CoLA]] (96/48/24ch, 25/50/100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hsa-logic.png|link=HSA Logic|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[HSA Logic]] (8ch, 6.25MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Ideofy_la_08.png|link=Ideofy LA-08|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Ideofy LA-08]] (8ch, 96/60/30MHz @ 2/4/8ch)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Intronix Logicport.png|link=Intronix Logicport LA1034|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Intronix Logicport LA1034]] (34ch, 500MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Kingst la2016 mugshot.png|link=Kingst LA2016|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Kingst LA2016]] (16ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Link Instruments LA-5580|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Link Instruments LA-5580]] (80ch, 500MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Minila parport.png|link=MiniLA|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[MiniLA]] (32ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Minila_mockup.png|link=MiniLA Mockup|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[MiniLA Mockup]] (32ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Noname_la16_mugshot.png|link=Noname LA16|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Noname LA16]] (16ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Noname xl logic16 100m mugshot.png|link=Noname XL-LOGIC16-100M|[[File:Nuvola Orange.png|16px]] &amp;lt;small&amp;gt;[[Noname XL-LOGIC16-100M]] (16ch, 100/50/32/16MHz @ 3/6/9/16ch)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rockylogic_ant8.png|link=RockyLogic Ant8|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[RockyLogic Ant8]] (8ch, 500MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:RockyLogic Ant18e.png|link=RockyLogic Ant18e|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[RockyLogic Ant18e]] (8ch, 1GHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sysclk lwla2034 mugshot.png|link=Sysclk LWLA2034|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Sysclk LWLA2034]] (34ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Techtools_digiview_dv1-100.png|link=TechTools DigiView DV1-100|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[TechTools DigiView DV1-100]] (18ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tektronix TLA5204 1000.png|link=Tektronix TLA520X|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Tektronix TLA520X]] (128ch, 2Ghz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Xmos xtag2.png|link=XMOS XTAG-2|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[XMOS XTAG-2]] (?ch, 50MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Zlg_la1032.png|link=ZLG LA1032|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[ZLG LA1032]] (32ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mixed-signal devices ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=105px heights=105px&amp;gt;&lt;br /&gt;
File:Armfly_ax_pro.png|link=ARMFLY AX-Pro|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ARMFLY AX-Pro]] (8ch, 24MHz; 1ch analog, 3MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sysclk ax pro mugshot.png|link=Sysclk AX-Pro|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Sysclk AX-Pro]] (8ch, 24MHz; 1ch analog, 3MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Esla201a.png|link=EE Electronics ESLA201A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[EE Electronics ESLA201A]] (8ch, 24MHz; 1ch analog, 3MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Ht usbee axpro v5 mugshot.png|link=HT USBee-AxPro|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[HT USBee-AxPro]] (8ch, 24MHz; 1ch analog, 3MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:LeCroy_WaveSurfer_24Xs-A_front.png|link=LeCroy oscilloscope series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[LeCroy oscilloscope series]] (various)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Noname lht00su1 mugshot.png|link=Noname LHT00SU1|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Noname LHT00SU1]] (8ch, 24MHz; 1ch analog, 3MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rigol DS1052E.png|link=Rigol DS1000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rigol DS1000 series|Rigol DS1000D series]] (16ch, 2ch analog, 50-150MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Rigol DS4000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rigol DS4000 series]] (0/16ch , 2-4ch analog, 2-4GS/s, 100MHz/200MHz/350MHz/500MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rigol_VS5202D.png|link=Rigol VS5000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rigol VS5000 series|Rigol VS5000D series]] (16ch, 2ch analog, 20-200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:RS HMO1002.png|link=Rohde&amp;amp;Schwarz HMO1002 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rohde&amp;amp;Schwarz HMO1002 series]] (2ch, 1GS/s, 50-100MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:HMO3000.jpg|link=Rohde&amp;amp;Schwarz HMO3000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rohde&amp;amp;Schwarz HMO 3000 series]] (16ch, 2/4ch analog, 4GS/s, 300-500MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:RTA4000.jpg|link=Rohde&amp;amp;Schwarz RT series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rohde&amp;amp;Schwarz RT series]] (8/16ch, 2/4ch analog, 2-5GS/s, 50MHz-1GHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae Logic Pro 16 bottom.jpg|link=Saleae Logic Pro 16|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Saleae Logic Pro 16]] (4/16ch, 500/100MHz; 16ch analog, 50MSa/s, 5MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Siglent_SDS1202X-E_front.png|link=Siglent SDS1000X series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Siglent SDS1000X series]] (16ch, 2ch analog, 1GSa/s, 200/100MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:sds2304x-mugshot.png|link=Siglent SDS2000X series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Siglent SDS2000X series]] (16ch, 2/4ch analog, 2GSa/s, 300/200/150/100/70MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Yokogawa DLM2000 front.png|link=Yokogawa DLM2000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Yokogawa DLM2000 series]] (8ch, 2/4ch analog, 2.5GSa/s, 200/350/500MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Xzl studio ax mugshot.png|link=XZL_Studio AX|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[XZL_Studio AX]] (8ch, 24MHz; 1ch analog, 3MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Xzl studio-dx mugshot.png|link=XZL_Studio DX|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[XZL_Studio DX]]&amp;lt;br/&amp;gt; (16ch, 24MHz; 2ch analog),&amp;lt;br /&amp;gt;Analog not supported&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Agilent_MSO7104A.png|link=Agilent MSO7104A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Agilent MSO7104A]] (16ch, ?; 4ch analog, 2GSa/s, 1GHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:BitScope BS10.png|link=BitScope BS10|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[BitScope BS10]] (8ch, 40MHz; 2ch analog, 20MSa/s, ? BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Digilent_analog_discovery.png|link=Digilent Analog Discovery|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Digilent Analog Discovery]] (16ch, 100MHz; 2ch analog, 100MSa/s, 5MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek_1008C.png|link=Hantek 1008C|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek 1008C]] (8ch)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Ht usbee dxpro mugshot.png|link=HT USBee-DxPro|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[HT USBee-DxPro]] (16ch, 24MHz; 2ch analog)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Lab nation smartscope mugshot.png|link=LabNation SmartScope|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[LabNation SmartScope]] (8ch, 100MHz; 2ch analog, 100MSa/s, 45MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Link Instruments MSO-19 front.png|link=Link Instruments MSO-19|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Link Instruments MSO-19]] (8ch, 200MHz; 1ch analog, 200MSa/s, 60MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Meilhaus_mephisto_scope1.png|link=Meilhaus MEphisto Scope1|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Meilhaus MEphisto Scope1]] (16ch, 100kHz; 2ch analog, 1MSa/s, 500kHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Polabs_poscope_basic2.png|link=PoLabs PoScope Basic2|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[PoLabs PoScope Basic2]] (16ch, 8MHz; 2ch analog, 200kSa/s, ? BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:QuantAsylum QA100.png|link=QuantAsylum QA100|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[QuantAsylum QA100]] (12ch; 2ch analog)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae_Logic8_case_bottom.jpg|link=Saleae Logic8|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Saleae Logic8]] (3/6/7/8ch, 100/50/40/25MHz; 8ch analog, 10MSa/s, 1MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae_logic_pro_8-bottom.png|link=Saleae Logic Pro 8|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Saleae Logic Pro 8]] (4/8ch, 500/100MHz; 8ch analog, 50MSa/s, 5MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Picoscope 3205D MSO fp.jpg|link=Pico Technology PicoScope 3205D MSO|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Pico Technology PicoScope 3205D MSO]] (16ch, 100MHz; 2ch analog, 1/0.5GS/s, 100MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:DSO3254A.jpg|link=Hantek DSO3254A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek DSO3254A]] (16ch, 250MHz; 4ch analog, 1GS/s, 250MHz BW; 1 ch func/arb generator, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Oscilloscopes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=100px heights=100px&amp;gt;&lt;br /&gt;
File:Agilent DSO1014A.png|link=Agilent DSO1000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Agilent DSO1000 series]] (2-4ch, 2GS/s, 60-200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Fluke_Scopemeter_199B.png|link=Fluke ScopeMeter 199B|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Fluke ScopeMeter 199B]] (2ch, 2.5GS/s, 200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft dso-6060c mugshot.png|link=GW Instek GDS-800 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[GW Instek GDS-800 series]] (2ch, 25GS/s, 60-250MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hameg HMO2024.png|link=Hameg HMO compact series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Hameg HMO compact series]] (2-4ch, 2GS/s, 70-200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek 6022be mugshot.png|link=Hantek 6022BE|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Hantek 6022BE]] (2ch, 48MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek DSO-2090.png|link=Hantek DSO-2090|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Hantek DSO-2090]] (2ch, 100MS/s, 40MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hung chang dso 2100 mugshot.png|link=Hung-Chang_DSO-2100|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Hung-Chang DSO-2100]] (2ch, 100MS/s, 30MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rigol DS1052E.png|link=Rigol DS1000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rigol DS1000 series|Rigol DS1000E series]] (2ch, 1GS/s, 50-150MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rigol DS1074Z front.png|link=Rigol DS1000Z series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rigol DS1000Z series|Rigol DS1000Z series]] (4ch, 1GS/s, 50-100MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rigol-ds2072 mugshot.png|link=Rigol DS2000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rigol DS2000 series]] (2ch, 2GS/s, 70-200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rigol_VS5202D.png|link=Rigol VS5000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rigol VS5000 series]] (2ch, 20-200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rocktech bm102 mugshot.png|link=Rocktech BM102|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rocktech BM102]] (2ch, 50MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Dds120 mugshot.png|link=SainSmart DDS120|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[SainSmart DDS120]] (2ch, 50MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:YiXingDianZi-MDSO.png|link=YiXingDianZi MDSO|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[YiXingDianZi MDSO]] (2ch, 48MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Dreamsourcelab dscope c20p front.jpg|link=DreamSourceLab DScope C20P|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[DreamSourceLab DScope C20P]] (2ch, 200MS/s, 50MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Fluke scopemeter123.png|link=Fluke ScopeMeter 123|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Fluke ScopeMeter 123]] (2ch, 25MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Focussz_fosc21_mugshot.png|link=Focussz Fosc21|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Focussz Fosc21]] (2ch, 8kS/s, 3kHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=GW Instek GDS-2000 series|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[GW Instek GDS-2000 series]] (2ch, 1GS/s, 60MHz/100MHz/200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek front.jpg|link=Hantek 6052BE|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek 6052BE]] (2ch, 150MS/s, 50MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek 6254bd mugshot.png|link=Hantek 6254BD|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek 6254BD]] (4ch, 1GS/s, 250MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Hantek DSO-1200|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek DSO-1200]] (2ch, 500MS/s, 200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek_DSO_2100_usb.jpg|link=Hantek DSO-2100|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek DSO-2100]] (2ch, 100M/s, 30MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek_PSO2020_0.JPG|link=Hantek PSO2020|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek PSO2020]] (1ch, 96MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek dso2250 mugshot.png|link=Hantek DSO-2250|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek DSO-2250]] (2ch, 250MS/s, 100MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek dso-5200a device front.png|link=Hantek DSO-5200A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek DSO-5200A]] (2ch, 250MS/s, 200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek iDSO1070A.JPG|link=Hantek iDSO1070|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek iDSO1070]] (2ch, 250MS/s, 70MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Hantek iDSO1070A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek iDSO1070A]] (2ch, 125MS/s, 70MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Usbduxfast.png|link=Incite Technology USB-DUXfast|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Incite Technology USB-DUXfast]] (16ch, 3MHz, ? BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Instrustar-IDS205A CaseFront.jpg|link=Instrustar ISDS205A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Instrustar_ISDS205A]] (2ch, 48MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Loto_OSC802.jpg|link=Loto OSC802|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Loto OSC802]] (2ch, 80MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:OsciPrime.png|link=Nexus-Computing OsciPrime|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Nexus-Computing OsciPrime]] (2ch, ?MS/s, 3.3MHz-8MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Owon SDS series|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Owon SDS series]] (2ch, 0.5-3.2GS/s, 60-300MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Picoscope 2203.png|link=Pico Technology PicoScope 2203|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Pico Technology PicoScope 2203]] (40/20MS/s, 5MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Picoscope 2204A.png|link=Pico Technology PicoScope 2204A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Pico Technology PicoScope 2204A]] (100MS/s, 10MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:PicoScope_2205.png|link=Pico Technology PicoScope 2205|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Pico Technology PicoScope 2205]] (200/100MS/s, 25MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Picoscope 3206.png|link=Pico Technology PicoScope 3206|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Pico Technology PicoScope 3206]] (200/100MS/s, 200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Picoscope 5203.png|link=Pico Technology PicoScope 5203|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Pico Technology PicoScope 5203]] (1/0.5GS/s, 250MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sainsmart dds140 mugshot.png|link=SainSmart DDS140|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[SainSmart DDS140]] (2ch, 200MS/s, 40MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tektronix tds2024b mugshot.png|link=Tektronix TDS2000B series|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Tektronix TDS2000B series]] (2-4ch, 1-2GS/s, 60-200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:UNI-T UTD2042C.png|link=UNI-T UTD2042C|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UTD2042C]] (2ch, 500MS/s, 40MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Velleman PCSU1000.png|link=Velleman PCSU1000|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Velleman PCSU1000]] (2ch, 1GS/s, 50MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:VellemanWFS210.png|link=Velleman WFS210|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Velleman WFS210]] (2ch, 10MS/s, ?? MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft dso-220 usb.png|link=Voltcraft DSO-220|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft DSO-220]] (2ch, 60MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft DSO-3062C.png|link=Voltcraft DSO-3062C|[[File:Nuvola Orange.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft DSO-3062C]] (2ch, 1GS/s, 60MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Multimeters ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Agilent_34405A.png|link=Agilent_34405A|[[file:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Agilent 34405A]] (120000 counts, USB TMC)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Agilent U1232A.png|link=Agilent U12xxx series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Agilent U12xxx series]] (USB/Bluetooth)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Bbc gm m2110 mugshot.png|link=BBC Goertz Metrawatt M2110|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[BBC Goertz Metrawatt M2110]] (30000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Brymen BM257.png|link=Brymen BM257|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Brymen BM257]] (6000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Brymen bm257s mugshot.png|link=Brymen BM257s|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Brymen BM257s]] (6000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Bm_857_mugshot_500000.png|link=Brymen BM857|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Brymen BM857]] (50000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Bm869_mugshot.png|link=Brymen BM869|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Brymen BM869]] (50000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Digitek_dt4000zc_device_front.png|link=Digitek DT4000ZC|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Digitek DT4000ZC]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Eevblog 121gw mugshot.png|link=EEVBlog 121GW|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[EEVBlog 121GW]] (50000 counts, BLE, SD)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Fluke 187.png|link=Fluke 187/189|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Fluke 187/189]] (50000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Fluke 287.png|link=Fluke 287/289|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Fluke 287/289]] (50000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Fluke_45_mugshot.png|link=Fluke 45|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Fluke 45]] (100000 counts, GPIB/RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Gmc metrahit 14a logo.png|link=Gossen Metrawatt Metrahit 14A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt Metrahit 14A]] (3100 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Gossen Metrawatt Metrahit 16I small.png|link=Gossen Metrawatt Metrahit 16I|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt Metrahit 16I]] (3100 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Gossen Metrawatt Metrahit 18S small.png|link=Gossen Metrawatt Metrahit 18S|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt Metrahit 18S]] (31000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Gossen Metrawatt Metrahit 25S Logo.png|link=Gossen Metrawatt Metrahit 25S|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt Metrahit 25S]] (31000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Gmc metrahit 29s logo.png|link=Gossen Metrawatt Metrahit 29S|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt Metrahit 29S]] (310000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Gmc kmm2002 logo.png|link=Gossen Metrawatt T-Com KMM2002|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt T-Com KMM2002]] (3100 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:HP_3457a_sigrok_teaser.png|link=HP 3457A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[HP 3457A]] (7.5 digits, GPIB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hp3478a mugshot.png|link=HP 3478A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[HP 3478A]] (5.5 digits, GPIB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:HT410 logo.png|link=HT Instruments HT410|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[HT Instruments HT410]] (3100 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:100px_Idm103n.png|link=ISO-TECH IDM103N|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ISO-TECH IDM103N]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:keysight-34465a-mugshot.png|link=Keysight 34465A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Keysight 34465A]] (1200000 counts, LAN/USB/GPIB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mastech mas345 device front.png|link=MASTECH MAS345|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MASTECH MAS345]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mastech_ms2115b_mugshot.png|link=MASTECH MS2115B|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MASTECH MS2115B]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mastech ms8250b mugshot.png|link=MASTECH MS8250B|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MASTECH MS8250B]] (4000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mastech ms8250d mugshot.png|link=MASTECH MS8250D|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MASTECH MS8250D]] (6600 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Metex M3850M mugshot.png|link=Metex M-3850M|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Metex M-3850M]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Metex m4650cr mugshot.png|link=Metex M-4650CR|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Metex M-4650CR]] (20000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Metex_me-31.png|link=Metex ME-31|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Metex ME-31]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Metrix mx56c.png|link=Metrix MX56C|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Metrix MX56C]] (50000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mooshimeter_mugshot.png|link=Mooshim Engineering Mooshimeter|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Mooshim Engineering Mooshimeter]] (24bit, BLE)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Norma dm950.png|link=Norma DM950|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Norma DM950]] (21000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Pce-pce-dm32.png|link=PCE PCE-DM32|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[PCE PCE-DM32]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Peaktech 3330 mugshot.png|link=PeakTech 3330|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 3330]] (4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Metex_me-31.png|link=PeakTech 3410|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 3410]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Peaktech3415_top.png|link=PeakTech 3415|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 3415]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Peaktech 4370 device front.png|link=PeakTech 4370|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 4370]] (2000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Peaktech 4390a metex m-3860m mugshot.png|link=PeakTech 4390A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 4390A]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rs_22_168_mugshot.png|link=RadioShack 22-168|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[RadioShack 22-168]] (2000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rs_22-805_front.png|link=RadioShack 22-805|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[RadioShack 22-805]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:radioshack_22_812_front.png|link=RadioShack 22-812|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[RadioShack 22-812]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:siemens_b1026_logo.png|link=Siemens B1026|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Siemens B1026]] (21000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Siemens B1105 small.png|link=Siemens B1105|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Siemens B1105]] (310000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sparkfun 70c mugshot.png|link=SparkFun 70C|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[SparkFun 70C]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tecpel dmm8061.png|link=Tecpel DMM-8061|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Tecpel DMM-8061]] (4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tp4000zc_front.png|link=TekPower TP4000ZC|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[TekPower TP4000ZC]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tenma 72-7730.png|link=Tenma 72-7730|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Tenma 72-7730]] (20000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tenma 72-7732.png|link=Tenma 72-7732|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Tenma 72-7732]] (40000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tenma 72-7745.png|link=Tenma 72-7745|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Tenma 72-7745]] (4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tenma 72-7750.png|link=Tenma 72-7750|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Tenma 72-7750]] (6000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tenma 72-9380A.png|link=Tenma 72-9380A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Tenma 72-9380A]] (40000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Ut60e_-_front_-_alpha.png|link=UNI-T UT60E|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT60E]] (4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Uni-t ut61b mugshot.png|link=UNI-T UT61B|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT61B]] (4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Uni-t ut61c mugshot.png|link=UNI-T UT61C|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT61C]] (6000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Uni t ut61d device.png|link=UNI-T UT61D|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT61D]] (6000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Old ver front.png|link=UNI-T UT61E|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT61E]] (22000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Ut71c mugshot.png|link=UNI-T UT71C|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT71C]] (40000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Va_va18b.png|link=V&amp;amp;A VA18B|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[V&amp;amp;A VA18B]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Va va40b mugshot.png|link=V&amp;amp;A VA40B|link=V&amp;amp;A VA40B|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[V&amp;amp;A VA40B]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:DVM4100.png|link=Velleman DVM4100|link=Velleman DVM4100|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Velleman DVM4100]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Victor 70C.png|link=Victor 70C|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Victor 70C]] (4000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Victor 86c device front.png|link=Victor 86C|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Victor 86C]] (4000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft m-3650cr.png|link=Voltcraft M-3650CR|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft M-3650CR]] (2000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft_M-3650D_transparent.png|link=Voltcraft M-3650D|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft M-3650D]] (2000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft m4650cr.png|link=Voltcraft M-4650CR|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft M-4650CR]] (20000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft ME-42 logo.png|link=Voltcraft ME-42|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft ME-42]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft vc820 device.png|link=Voltcraft VC-820|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft VC-820]] (4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft vc830.png|link=Voltcraft VC-830|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft VC-830]] (6000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft vc840 device front.png|link=Voltcraft VC-840|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft VC-840]] (4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft vc870 mugshot.png|link=Voltcraft VC-870|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft VC-870]] (40000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft vc920.png|link=Voltcraft VC-920|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft VC-920]] (40000/4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft vc940.png|link=Voltcraft VC-940|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft VC-940]] (40000/4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft vc96 mugshot.png|link=Voltcraft VC-96|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft VC-96]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Appa 107.png|link=APPA 107|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[APPA 107]] (4000 / 20000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=CEM DT-987BT|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[CEM DT-987BT]] (50000 counts, BLE)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Digitek dt8000.png|link=Digitek DT8000|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Digitek DT8000]] (8000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Digitek dt80000.png|link=Digitek DT80000|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Digitek DT80000]] (80000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Escort 179 device front.png|link=Escort 179|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Escort 179]] (10000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Gossen Metrawatt Metrahit 28C|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt Metrahit 28C]] (310000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Gossen Metrawatt Metrahit 28S|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt Metrahit 28S]] (310000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Gossen metrahit 30m.png|link=Gossen-Metrawatt METRAHIT 30M|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Gossen-Metrawatt METRAHIT 30M]] (1200000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Gossen Metrawatt Metrahit X-Tra|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt Metrahit X-Tra]] (12000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=GW Instek GDM-8251A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[GW Instek GDM-8251A]] (120000 counts, RS232/USB/DigitalIO)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=HYELEC MS8236|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[HYELEC MS8236]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:800px-Mastech m9803r device front.png|link=MASTECH M9803R|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[MASTECH M9803R]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Metrix mx53.png|link=Metrix MX53|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Metrix MX53]] (50000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Peaktech-3442-front.png|link=PeakTech 3442|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 3442]] (50000 counts, BLE)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Peaktech 4380 mugshot.png|link=PeakTech 4380|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 4380]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Peaktech 4390 mugshot.png|link=PeakTech 4390|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 4390]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Protek 6500|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Protek 6500]] (50000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rigol DM3068 front.png|link=Rigol DM3068|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Rigol DM3068]] (2200000 counts, LAN/USB/GPIB/RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tenma 72-1016.png|link=Tenma 72-1016|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Tenma 72-1016]] (6000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Uni-t-ut81b mugshot.png|link=UNI-T UT81B|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT81B]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:UNI-T-UT181A.jpg|link=UNI-T UT181A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT181A]] (60000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft 3850D front transp.png|link=Voltcraft M-3850D|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft M-3850D]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft m3890dt usb.png|link=Voltcraft M-3890DT|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft M-3890DT]] (4000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft m4660a device front.png|link=Voltcraft M-4660A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft M-4660A]] (20000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft vc890 mugshot.png|link=Voltcraft VC-890|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft VC-890]] (60000 counts, USB/serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LCR meters ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100Px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Der ee de-5000 mugshot.png|link=DER EE DE-5000|[[File:Nuvola_OK.png|16px]] &amp;lt;small&amp;gt;[[DER EE DE-5000]] (serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=MASTECH MS5308|[[File:Nuvola_OK.png|16px]] &amp;lt;small&amp;gt;[[MASTECH MS5308]] (serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:peaktech2165-front.png|link=Peaktech 2165|[[File:Nuvola_OK.png|16px]] &amp;lt;small&amp;gt;[[Peaktech 2165]] (serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Peaktech 2170 mugshot.png|link=PeakTech 2170|[[File:Nuvola_OK.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 2170]] (serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:uni_t_ut612_1.png|link=UNI-T UT612|[[File:Nuvola_OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT612]] (USB/HID)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft4080_2.png|link=Voltcraft 4080|[[File:Nuvola_OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft 4080]] (serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Agilent U1732B.png|link=Agilent U1732B|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Agilent U1732B]] (IR)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sound level meters ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:CEM DT-8852.png|link=CEM DT-8852|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[CEM DT-8852]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Colead SL-5868P.png|link=Colead SL-5868P|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Colead SL-5868P]] (RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Kecheng KC-330B.png|link=Kecheng KC-330B|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Kecheng KC-330B]] (RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:PCE-322A.png|link=PCE PCE-322A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[PCE PCE-322A]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tondaj sl-814.png|link=Tondaj SL-814|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Tondaj SL-814]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Pce_pce-222_front.png|link=PCE PCE-222|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[PCE PCE-222]] (also: light-/thermo-/hygrometer; RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft_dl_160s.png|link=Voltcraft DL-160S|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft DL-160S]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft_DL-161S.png|link=Voltcraft DL-161S|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft DL-161S]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Thermometers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:rs55ii.png|link=APPA 55II|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[APPA 55II]] (2xtemp, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:EL-USB-2.png|link=Lascar Electronics EL-USB-2|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Lascar Electronics EL-USB-2]] (1xtemp, 1xhum, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:MASTECH_MS6514_mugshot.png|link=MASTECH MS6514|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MASTECH MS6514]] (2x temp, USB/serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mic 98581.png|link=MIC 98581|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MIC 98581]] (1xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mic 98583.png|link=MIC 98583|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MIC 98583]] (1xtemp, 1xhum, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Uni-t ut325 front.png|link=UNI-T UT325|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT325]] (2xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft k204.png|link=Voltcraft K204|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft K204]] (4xtemp, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Elitech rc3.png|link=Elitech RC-3|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Elitech RC-3]] (1xtemp, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Escort 19.png|link=Escort 19|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Escort 19]] (1x temp, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Pax_instruments_t400.jpg|link=Pax Instruments T400|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Pax Instruments T400]] (4xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Pce_pce-222_front.png|link=PCE PCE-222|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[PCE PCE-222]] (1xtemp, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rding temper front.png|link=RDing TEMPer|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[RDing TEMPer]] (1xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rding temper gold device front.png|link=RDing TEMPer Gold|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[RDing TEMPer Gold]] (1xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rding temper1 device front.png|link=RDing TEMPer1|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[RDing TEMPer1]] (1xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Pcsensor_temper1k2.png|link=RDing TEMPer1K2|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[RDing TEMPer1K2]] (1xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft dl-120th.png|link=Voltcraft DL-120TH|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft DL-120TH]] (1xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft dl-140th.png|link=Voltcraft DL-140TH|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft DL-140TH]] (1xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hygrometers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:EL-USB-2.png|link=Lascar Electronics EL-USB-2|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Lascar Electronics EL-USB-2]] (temp/humidity, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mic 98583.png|link=MIC 98583|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MIC 98583]] (temp/humidity, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Pce_pce-222_front.png|link=PCE PCE-222|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[PCE PCE-222]] (also: light-/soundlevelmeter; RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Silabs si7005usb dgl eb top.jpg|link=SiLabs Si7005USB-Dongle|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[SiLabs Si7005USB-Dongle]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anemometers ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Mastech ms6252b.png|link=MASTECH MS6252B|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[MASTECH MS6252B]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Light meters ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Lutron YK-2005LX.png|link=Lutron YK-2005LX|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Lutron YK-2005LX]] (RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Pce_pce-222_front.png|link=PCE PCE-222|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[PCE PCE-222]] (RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Energy meters ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Actaris_a14c5_teleinfo.png|link=EDF Teleinfo|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[EDF Teleinfo]] (RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Acme.png|link=BayLibre ACME|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[BayLibre ACME]] (I2C)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UM24C_display.jpg|link=RDTech_UM_series|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[RDTech UM series]] USB testers&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=RDTech_TC66C|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[RDTech TC66C]] USB tester&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DAQs ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Ni usb 6008.png|link=NI USB-6008|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[NI USB-6008]] (8/2 analog inputs/outputs, 12 digital I/Os)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dataloggers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:EL-USB-CO.png|link=Lascar Electronics EL-USB-CO|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Lascar Electronics EL-USB-CO]] (carbon monoxide (CO) logger, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Testo_435-4.png|link=Testo 435-4|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Testo 435-4]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Gsg_indoor_air_monitor.png|link=GSG Indoor Air Monitor|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[GSG Indoor Air Monitor]] (air quality monitor, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Maul_studio_i.png|link=MAUL studio i|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[MAUL studio i]] (weighing scale, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft co-20.png|link=Voltcraft CO-20|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft CO-20]] (air quality monitor, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tachometers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Uni-t ut372 mugshot.png|link=UNI-T UT372|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT372]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scales ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Kern ew-6200-2nm mugshot.png|link=KERN scale series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[KERN scale series]] (RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Digital loads ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Arachnid Labs ReLoad Pro - Mugshot.png|link=Arachnid Labs Reload Pro|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Arachnid Labs Reload Pro]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Maynuo m9812 mugshot.png|link=Maynuo M9812|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Maynuo M9812]]&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Ztetech-ebd-usb%2B.png|link=ZKETECH_EBD-USB|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ZKETECH EBD-USB]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Atten ATZ9711.png|link=ATTEN ATZ9711|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[ATTEN ATZ9711]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Function generators ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:BG7TBL small.png|link=BG7TBL|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[BG7TBL]] (138MHz-4.4GHz, PC-based, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek DDS-3X25 top.png|link=Hantek DDS-3X25|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek DDS-3X25]] (25MHz, PC-based, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hp_3325a_front.png|link=HO 3325A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[HP 3325A]] (20MHz, GPIB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Jds6600-mugshot.png|link=Joy-IT JDS6600|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Joy-IT JDS6600]] (60MHz, USB RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:MHINSTEK UDB1305S persp.jpg|link=MHINSTEK UDB1xxxS|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[MHINSTEK UDB1xxxS]] (2/5/8MHz, Serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:MHINSTEK MHS-5200A persp.jpg|link=MHINSTEK MHS-5200A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[MHINSTEK MHS-5200A]] (6/12/20/25MHz, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Siglent sdg1010 device front 8116.png|link=Siglent SDG1010|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Siglent SDG1010]] (10MHz, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Velleman PCG10|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Velleman PCG10]] (1MHz, PC-based, LPT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Frequency counters ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Hantek DDS-3X25 top.png|link=Hantek DDS-3X25|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek DDS-3X25]] (50MHz, PC-based, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:HP 5350B.png|link=HP 5350B|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[HP 5350B]] (10Hz-20GHz, GPIB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RF receivers ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Per vices noctar.png|link=Per Vices Noctar|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Per Vices Noctar]] (100kHz-4GHz, IQ modulator/demodulator, PCIe)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Spectrum analyzers ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Siglent SSA3000X series|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Siglent SSA3000X series]] (9kHz-2.1GHz, USB, Ethernet)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Power supplies ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Atten PPS3203T-3S.png|link=Atten PPS3203T-3S|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Atten PPS3203T-3S]] (3ch, 2x 0-32V, 1x 0-6V at 0-3A, USB&amp;amp;RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Chroma_61604_front.png|link=Chroma 61604|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Chroma 61604]] (1ch, 0-300V, 0-16A, 2kVA)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Conrad_digi_35_cpu_logo.png|link=Conrad DIGI 35 CPU|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Conrad DIGI 35 CPU]] (1ch, 0-35V / 0-2.55A, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Agilent-66312a-mugshot.png|link=HP 66312A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[HP 66312A]] (1ch, 0-20V / 0-2A, GPIB&amp;amp;RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:HP-6632B_mugshot.png|link=HP 6632B|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[HP 6632B]] (1ch, 0-20V / 0-5A, GPIB&amp;amp;RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok logo no text transparent 512.png|link=GW Instek GPD series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[GW Instek GPD series]] (2/3/4ch, 0-30V / 0-3A, USB/serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Velleman ps3005d mugshot.png|link=Korad KAxxxxP series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Korad KAxxxxP series]] (1ch, 0-30V / 0-5A, USB&amp;amp;RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Manson hcs3202.png|link=Manson HCS-3xxx series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Manson HCS-3xxx series]] (1ch, 1-36V / 0-10A, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Motech_LPS-301_logo.png|link=Motech LPS-301|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Motech LPS-301]] (1ch, 1-32V / 0-2A, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Philips PM2813.png|link=Philips PM2800 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;Fluke/Philips PM2800 series&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rigol DP832.png|link=Rigol DP800 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rigol DP800 series]]&amp;lt;/small&amp;gt;&lt;br /&gt;
File:rs_hmc8043_mugshot.png|link=Rohde&amp;amp;Schwarz HMC 8043|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rohde&amp;amp;Schwarz HMC 8043]] (3ch, 0-32V / 0-3A, USB&amp;amp;LXI)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rdtech-dps.png|link=RDTech DPS series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[RDTech DPS series]] (1ch, various, USB/BT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sigrok logo no text transparent 512.png|link=Voltcraft 18220|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft 18220]] (1ch, 0-40V/0-5A, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok logo no text transparent 512.png|link=Delta Elektronika SM3300 series|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Delta Elektronika SM3300 series]] (1ch, 18V-660V/3.3kW, USB, RS232, RS485, RS422)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GPIB interfaces ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Sigrok logo no text transparent 512.png|link=AR488|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[AR488]] (Arduino based, USB/RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Beiming_s82357.png|link=Beiming S82357|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Beiming S82357]] (hardware-based, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:ICS 488-USB.png|link=ICS 488-USB|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[ICS 488-USB]] (hardware-based, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:GPIB-USB 82357B clone.png|link=GPIB-USB 82357B clone|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[GPIB-USB 82357B clone]] (hardware-based, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:NI GPIB-ENET.png|link=National Instruments GPIB-ENET|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[National Instruments GPIB-ENET]] (hardware-based, Ethernet)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:NI GPIB-USB-HS.png|link=National Instruments GPIB-USB-HS|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[National Instruments GPIB-USB-HS]] (hardware-based, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Prologix-usb.png|link=Prologix GPIB-USB|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Prologix GPIB-USB]] (firmware-based, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:GalvantGPIBUSBrev4.JPG|link=Galvant GPIBUSB|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Galvant GPIBUSB]] (firmware-based, USB, OSHW)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Potential other candidates ==&lt;br /&gt;
&lt;br /&gt;
If you own any other logic analyzers, oscilloscopes, multimeters, dataloggers, ... and want to add support for them in sigrok (or donate/lend devices to developers), please let us know. We&amp;#039;re always happy to add more hardware support! Join the [https://lists.sourceforge.net/lists/listinfo/sigrok-devel mailing list] or ask on [irc://chat.freenode.net/sigrok IRC #sigrok] if you want to help out.&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14927</id>
		<title>RDTech TC66C</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14927"/>
		<updated>2020-03-06T16:06:43Z</updated>

		<summary type="html">&lt;p&gt;Andysan: Updated status to planned since there is now a pull request for this device.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox energy meter&lt;br /&gt;
| image               = [[File:UM24C_display.jpg|180px]]&lt;br /&gt;
| name                = RDTech TC66C&lt;br /&gt;
| status              = planned&lt;br /&gt;
| connectivity        = serial over Bluetooth or USB&lt;br /&gt;
| measurements        = voltage, current, power, energy, voltage over USB data lines&lt;br /&gt;
| features            = measures USB-C devices; color display&lt;br /&gt;
| website             = [http://rdtech.aliexpress.com/ rdtech.aliexpress.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The RDTech TC66C (~$25 USD) is a USB-C load meter which can measure various properties of USB-C devices including their voltage, amperage, wattage, resistance, capacity, temperature, data line voltage, and charging mode. This device is similar to the [[RDTech UM series]] of devices, but doesn&amp;#039;t use the same protocol.&lt;br /&gt;
&lt;br /&gt;
== Protocol (serial) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Mode   !! Resp. len. !! Meaning&lt;br /&gt;
|-----------------------------------------------------------------&lt;br /&gt;
| query   || All    || 4          || Query mode (&amp;#039;firm&amp;#039; or &amp;#039;boot&amp;#039;)&lt;br /&gt;
|----&lt;br /&gt;
| getva   || Normal || 192        || Poll readings. (ret: pacX)&lt;br /&gt;
|----&lt;br /&gt;
| gtrec   || Normal || Variable   || Get recording.&lt;br /&gt;
|----&lt;br /&gt;
| lastp   || Normal || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| nextp   || Normal || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| rotat   || Normal || 0          || Rotate screen.&lt;br /&gt;
|----&lt;br /&gt;
| update  || Boot   || 5          || Prepare to upload firmware. Returns &amp;#039;uprdy&amp;#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Protocol (Bluetooth LE) ==&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! UUID                                 !! What&lt;br /&gt;
|-----------------------------------------------------&lt;br /&gt;
| 0000ffe5-0000-1000-8000-00805f9b34fb || TX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe9-0000-1000-8000-00805f9b34fb || TX attribute&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe0-0000-1000-8000-00805f9b34fb || RX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe4-0000-1000-8000-00805f9b34fb || RX attribute&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Transmission to the device is implemented by writing to the TX&lt;br /&gt;
attribute in the TX service. RX is implemented by listening for&lt;br /&gt;
notifications from the RX attribute in the RX service.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command    !! Resp. len. !! Meaning&lt;br /&gt;
|-------------------------------------------&lt;br /&gt;
| bgetva\r\n || 192        || Poll readings.&lt;br /&gt;
|----&lt;br /&gt;
| blastp\r\n || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| bnextp\r\n || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| brotat\r\n || 0          || Rotate screen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Poll data format ==&lt;br /&gt;
Poll data is returned as Returns 3x64 byte blocks of data, a total of 192 bytes. Each block is prefixed by &amp;lt;code&amp;gt;pacX&amp;lt;/code&amp;gt; The returned data is encrypted using AES in ECB mode.&lt;br /&gt;
&lt;br /&gt;
=== pac1 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac1&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || char[4]  || Product name (&amp;lt;code&amp;gt;TC66&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || char[4]  || Version (e.g., &amp;lt;code&amp;gt;1.14&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Module serial number&lt;br /&gt;
|----&lt;br /&gt;
| 16-43  || Unknown  || Unknown&lt;br /&gt;
|----&lt;br /&gt;
| 44     || uint32_t || Number of runs&lt;br /&gt;
|----&lt;br /&gt;
| 48     || uint32_t || Voltage (multiply by 1e-4 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 52     || uint32_t || Current (multiply by 1e-5 for Ampere)&lt;br /&gt;
|----&lt;br /&gt;
| 56     || uint32_t || Power (multiply by 1e-4 for Watt)&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac2 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac2&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || uint32_t || Resistance (multiply by 1e-2 for Ohm)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || uint32_t || Group 0 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Group 0 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 16     || uint32_t || Group 1 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 20     || uint32_t || Group 1 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 24     || uint32_t || Temperature sign (1 for negative)&lt;br /&gt;
|----&lt;br /&gt;
| 28     || uint32_t || Temperature (Celsius or Fahrenheit)&lt;br /&gt;
|----&lt;br /&gt;
| 32     || uint32_t || D+ Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 36     || uint32_t || D- Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 40-59  || Unknown  || Always zero?&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac3 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac3&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4-59   || Unknown  || Always zero?&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Checksum algorithm ===&lt;br /&gt;
Checksums are implemented using CRC-16/MODBUS zero-extended to fit a 32-bit field.&lt;br /&gt;
&lt;br /&gt;
=== Encryption algorithm ===&lt;br /&gt;
Poll packets are encrypted using AES in ECB mode using the following static key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0x58, 0x21, 0xfa, 0x56, 0x01, 0xb2, 0xf0, 0x26,&lt;br /&gt;
0x87, 0xff, 0x12, 0x04, 0x62, 0x2a, 0x4f, 0xb0,&lt;br /&gt;
0x86, 0xf4, 0x02, 0x60, 0x81, 0x6f, 0x9a, 0x0b,&lt;br /&gt;
0xa7, 0xf1, 0x06, 0x61, 0x9a, 0xb8, 0x72, 0x88,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kudos to [https://ralimtek.com/reverse%20engineering/software/tc66c-reverse-engineering Ben V. Brown] for documenting the encryption algorithm and key.&lt;br /&gt;
&lt;br /&gt;
== Recording format (gtrec) ==&lt;br /&gt;
&lt;br /&gt;
Recordings dumped using the &amp;lt;code&amp;gt;gtrec&amp;lt;/code&amp;gt; command are returned as a list of 32-bit unsigned integer pairs terminated by &amp;lt;code&amp;gt;reck&amp;lt;/code&amp;gt;. The first value in the pair is the voltage (multiply by 1e-4 to get voltage) and the second value is the current (multiply by 1e-5 to get Ampere).&lt;br /&gt;
&lt;br /&gt;
== Firmware update ==&lt;br /&gt;
&lt;br /&gt;
Firmware update process:&lt;br /&gt;
* Issue a &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; command to verify that the boot loader is active.&lt;br /&gt;
* Issue the &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; command, wait for &amp;lt;code&amp;gt;uprdy&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Write firmware in blocks of 64 bytes (the last block may be shorter than 64 bytes). Each block is acknowledged with an &amp;lt;code&amp;gt;OK&amp;lt;/code&amp;gt; response.&lt;br /&gt;
* Device reboots automatically.&lt;br /&gt;
&lt;br /&gt;
Useful URLs:&lt;br /&gt;
* Firmware metadata: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json]&lt;br /&gt;
* Firmware binary: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin]&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14926</id>
		<title>RDTech TC66C</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14926"/>
		<updated>2020-03-05T18:16:43Z</updated>

		<summary type="html">&lt;p&gt;Andysan: /* Poll data format */ Document encryption algorithm&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox energy meter&lt;br /&gt;
| image               = [[File:UM24C_display.jpg|180px]]&lt;br /&gt;
| name                = RDTech TC66C&lt;br /&gt;
| status              = unsupported&lt;br /&gt;
| connectivity        = serial over Bluetooth or USB&lt;br /&gt;
| measurements        = voltage, current, power, energy, voltage over USB data lines&lt;br /&gt;
| features            = measures USB-C devices; color display&lt;br /&gt;
| website             = [http://rdtech.aliexpress.com/ rdtech.aliexpress.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The RDTech TC66C (~$25 USD) is a USB-C load meter which can measure various properties of USB-C devices including their voltage, amperage, wattage, resistance, capacity, temperature, data line voltage, and charging mode. This device is similar to the [[RDTech UM series]] of devices, but doesn&amp;#039;t use the same protocol.&lt;br /&gt;
&lt;br /&gt;
== Protocol (serial) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Mode   !! Resp. len. !! Meaning&lt;br /&gt;
|-----------------------------------------------------------------&lt;br /&gt;
| query   || All    || 4          || Query mode (&amp;#039;firm&amp;#039; or &amp;#039;boot&amp;#039;)&lt;br /&gt;
|----&lt;br /&gt;
| getva   || Normal || 192        || Poll readings. (ret: pacX)&lt;br /&gt;
|----&lt;br /&gt;
| gtrec   || Normal || Variable   || Get recording.&lt;br /&gt;
|----&lt;br /&gt;
| lastp   || Normal || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| nextp   || Normal || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| rotat   || Normal || 0          || Rotate screen.&lt;br /&gt;
|----&lt;br /&gt;
| update  || Boot   || 5          || Prepare to upload firmware. Returns &amp;#039;uprdy&amp;#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Protocol (Bluetooth LE) ==&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! UUID                                 !! What&lt;br /&gt;
|-----------------------------------------------------&lt;br /&gt;
| 0000ffe5-0000-1000-8000-00805f9b34fb || TX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe9-0000-1000-8000-00805f9b34fb || TX attribute&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe0-0000-1000-8000-00805f9b34fb || RX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe4-0000-1000-8000-00805f9b34fb || RX attribute&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Transmission to the device is implemented by writing to the TX&lt;br /&gt;
attribute in the TX service. RX is implemented by listening for&lt;br /&gt;
notifications from the RX attribute in the RX service.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command    !! Resp. len. !! Meaning&lt;br /&gt;
|-------------------------------------------&lt;br /&gt;
| bgetva\r\n || 192        || Poll readings.&lt;br /&gt;
|----&lt;br /&gt;
| blastp\r\n || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| bnextp\r\n || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| brotat\r\n || 0          || Rotate screen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Poll data format ==&lt;br /&gt;
Poll data is returned as Returns 3x64 byte blocks of data, a total of 192 bytes. Each block is prefixed by &amp;lt;code&amp;gt;pacX&amp;lt;/code&amp;gt; The returned data is encrypted using AES in ECB mode.&lt;br /&gt;
&lt;br /&gt;
=== pac1 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac1&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || char[4]  || Product name (&amp;lt;code&amp;gt;TC66&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || char[4]  || Version (e.g., &amp;lt;code&amp;gt;1.14&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Module serial number&lt;br /&gt;
|----&lt;br /&gt;
| 16-43  || Unknown  || Unknown&lt;br /&gt;
|----&lt;br /&gt;
| 44     || uint32_t || Number of runs&lt;br /&gt;
|----&lt;br /&gt;
| 48     || uint32_t || Voltage (multiply by 1e-4 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 52     || uint32_t || Current (multiply by 1e-5 for Ampere)&lt;br /&gt;
|----&lt;br /&gt;
| 56     || uint32_t || Power (multiply by 1e-4 for Watt)&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac2 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac2&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || uint32_t || Resistance (multiply by 1e-2 for Ohm)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || uint32_t || Group 0 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Group 0 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 16     || uint32_t || Group 1 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 20     || uint32_t || Group 1 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 24     || uint32_t || Temperature sign (1 for negative)&lt;br /&gt;
|----&lt;br /&gt;
| 28     || uint32_t || Temperature (Celsius or Fahrenheit)&lt;br /&gt;
|----&lt;br /&gt;
| 32     || uint32_t || D+ Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 36     || uint32_t || D- Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 40-59  || Unknown  || Always zero?&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac3 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac3&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4-59   || Unknown  || Always zero?&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Checksum algorithm ===&lt;br /&gt;
Checksums are implemented using CRC-16/MODBUS zero-extended to fit a 32-bit field.&lt;br /&gt;
&lt;br /&gt;
=== Encryption algorithm ===&lt;br /&gt;
Poll packets are encrypted using AES in ECB mode using the following static key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0x58, 0x21, 0xfa, 0x56, 0x01, 0xb2, 0xf0, 0x26,&lt;br /&gt;
0x87, 0xff, 0x12, 0x04, 0x62, 0x2a, 0x4f, 0xb0,&lt;br /&gt;
0x86, 0xf4, 0x02, 0x60, 0x81, 0x6f, 0x9a, 0x0b,&lt;br /&gt;
0xa7, 0xf1, 0x06, 0x61, 0x9a, 0xb8, 0x72, 0x88,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kudos to [https://ralimtek.com/reverse%20engineering/software/tc66c-reverse-engineering Ben V. Brown] for documenting the encryption algorithm and key.&lt;br /&gt;
&lt;br /&gt;
== Recording format (gtrec) ==&lt;br /&gt;
&lt;br /&gt;
Recordings dumped using the &amp;lt;code&amp;gt;gtrec&amp;lt;/code&amp;gt; command are returned as a list of 32-bit unsigned integer pairs terminated by &amp;lt;code&amp;gt;reck&amp;lt;/code&amp;gt;. The first value in the pair is the voltage (multiply by 1e-4 to get voltage) and the second value is the current (multiply by 1e-5 to get Ampere).&lt;br /&gt;
&lt;br /&gt;
== Firmware update ==&lt;br /&gt;
&lt;br /&gt;
Firmware update process:&lt;br /&gt;
* Issue a &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; command to verify that the boot loader is active.&lt;br /&gt;
* Issue the &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; command, wait for &amp;lt;code&amp;gt;uprdy&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Write firmware in blocks of 64 bytes (the last block may be shorter than 64 bytes). Each block is acknowledged with an &amp;lt;code&amp;gt;OK&amp;lt;/code&amp;gt; response.&lt;br /&gt;
* Device reboots automatically.&lt;br /&gt;
&lt;br /&gt;
Useful URLs:&lt;br /&gt;
* Firmware metadata: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json]&lt;br /&gt;
* Firmware binary: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin]&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14925</id>
		<title>RDTech TC66C</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14925"/>
		<updated>2020-03-05T18:11:17Z</updated>

		<summary type="html">&lt;p&gt;Andysan: /* Poll data format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox energy meter&lt;br /&gt;
| image               = [[File:UM24C_display.jpg|180px]]&lt;br /&gt;
| name                = RDTech TC66C&lt;br /&gt;
| status              = unsupported&lt;br /&gt;
| connectivity        = serial over Bluetooth or USB&lt;br /&gt;
| measurements        = voltage, current, power, energy, voltage over USB data lines&lt;br /&gt;
| features            = measures USB-C devices; color display&lt;br /&gt;
| website             = [http://rdtech.aliexpress.com/ rdtech.aliexpress.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The RDTech TC66C (~$25 USD) is a USB-C load meter which can measure various properties of USB-C devices including their voltage, amperage, wattage, resistance, capacity, temperature, data line voltage, and charging mode. This device is similar to the [[RDTech UM series]] of devices, but doesn&amp;#039;t use the same protocol.&lt;br /&gt;
&lt;br /&gt;
== Protocol (serial) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Mode   !! Resp. len. !! Meaning&lt;br /&gt;
|-----------------------------------------------------------------&lt;br /&gt;
| query   || All    || 4          || Query mode (&amp;#039;firm&amp;#039; or &amp;#039;boot&amp;#039;)&lt;br /&gt;
|----&lt;br /&gt;
| getva   || Normal || 192        || Poll readings. (ret: pacX)&lt;br /&gt;
|----&lt;br /&gt;
| gtrec   || Normal || Variable   || Get recording.&lt;br /&gt;
|----&lt;br /&gt;
| lastp   || Normal || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| nextp   || Normal || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| rotat   || Normal || 0          || Rotate screen.&lt;br /&gt;
|----&lt;br /&gt;
| update  || Boot   || 5          || Prepare to upload firmware. Returns &amp;#039;uprdy&amp;#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Protocol (Bluetooth LE) ==&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! UUID                                 !! What&lt;br /&gt;
|-----------------------------------------------------&lt;br /&gt;
| 0000ffe5-0000-1000-8000-00805f9b34fb || TX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe9-0000-1000-8000-00805f9b34fb || TX attribute&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe0-0000-1000-8000-00805f9b34fb || RX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe4-0000-1000-8000-00805f9b34fb || RX attribute&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Transmission to the device is implemented by writing to the TX&lt;br /&gt;
attribute in the TX service. RX is implemented by listening for&lt;br /&gt;
notifications from the RX attribute in the RX service.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command    !! Resp. len. !! Meaning&lt;br /&gt;
|-------------------------------------------&lt;br /&gt;
| bgetva\r\n || 192        || Poll readings.&lt;br /&gt;
|----&lt;br /&gt;
| blastp\r\n || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| bnextp\r\n || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| brotat\r\n || 0          || Rotate screen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Poll data format ==&lt;br /&gt;
Poll data is returned as Returns 3x64 byte blocks of data, a total of 192 bytes. Each block is prefixed by &amp;lt;code&amp;gt;pacX&amp;lt;/code&amp;gt; The returned data is encrypted using AES in ECB mode.&lt;br /&gt;
&lt;br /&gt;
=== pac1 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac1&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || char[4]  || Product name (&amp;lt;code&amp;gt;TC66&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || char[4]  || Version (e.g., &amp;lt;code&amp;gt;1.14&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Module serial number&lt;br /&gt;
|----&lt;br /&gt;
| 16-43  || Unknown  || Unknown&lt;br /&gt;
|----&lt;br /&gt;
| 44     || uint32_t || Number of runs&lt;br /&gt;
|----&lt;br /&gt;
| 48     || uint32_t || Voltage (multiply by 1e-4 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 52     || uint32_t || Current (multiply by 1e-5 for Ampere)&lt;br /&gt;
|----&lt;br /&gt;
| 56     || uint32_t || Power (multiply by 1e-4 for Watt)&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac2 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac2&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || uint32_t || Resistance (multiply by 1e-2 for Ohm)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || uint32_t || Group 0 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Group 0 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 16     || uint32_t || Group 1 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 20     || uint32_t || Group 1 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 24     || uint32_t || Temperature sign (1 for negative)&lt;br /&gt;
|----&lt;br /&gt;
| 28     || uint32_t || Temperature (Celsius or Fahrenheit)&lt;br /&gt;
|----&lt;br /&gt;
| 32     || uint32_t || D+ Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 36     || uint32_t || D- Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 40-59  || Unknown  || Always zero?&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac3 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac3&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4-59   || Unknown  || Always zero?&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Checksum algorithm ===&lt;br /&gt;
Checksums are implemented using CRC-16/MODBUS zero-extended to fit a 32-bit field.&lt;br /&gt;
&lt;br /&gt;
== Recording format (gtrec) ==&lt;br /&gt;
&lt;br /&gt;
Recordings dumped using the &amp;lt;code&amp;gt;gtrec&amp;lt;/code&amp;gt; command are returned as a list of 32-bit unsigned integer pairs terminated by &amp;lt;code&amp;gt;reck&amp;lt;/code&amp;gt;. The first value in the pair is the voltage (multiply by 1e-4 to get voltage) and the second value is the current (multiply by 1e-5 to get Ampere).&lt;br /&gt;
&lt;br /&gt;
== Firmware update ==&lt;br /&gt;
&lt;br /&gt;
Firmware update process:&lt;br /&gt;
* Issue a &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; command to verify that the boot loader is active.&lt;br /&gt;
* Issue the &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; command, wait for &amp;lt;code&amp;gt;uprdy&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Write firmware in blocks of 64 bytes (the last block may be shorter than 64 bytes). Each block is acknowledged with an &amp;lt;code&amp;gt;OK&amp;lt;/code&amp;gt; response.&lt;br /&gt;
* Device reboots automatically.&lt;br /&gt;
&lt;br /&gt;
Useful URLs:&lt;br /&gt;
* Firmware metadata: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json]&lt;br /&gt;
* Firmware binary: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin]&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14924</id>
		<title>RDTech TC66C</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14924"/>
		<updated>2020-03-05T17:29:14Z</updated>

		<summary type="html">&lt;p&gt;Andysan: /* pac2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox energy meter&lt;br /&gt;
| image               = [[File:UM24C_display.jpg|180px]]&lt;br /&gt;
| name                = RDTech TC66C&lt;br /&gt;
| status              = unsupported&lt;br /&gt;
| connectivity        = serial over Bluetooth or USB&lt;br /&gt;
| measurements        = voltage, current, power, energy, voltage over USB data lines&lt;br /&gt;
| features            = measures USB-C devices; color display&lt;br /&gt;
| website             = [http://rdtech.aliexpress.com/ rdtech.aliexpress.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The RDTech TC66C (~$25 USD) is a USB-C load meter which can measure various properties of USB-C devices including their voltage, amperage, wattage, resistance, capacity, temperature, data line voltage, and charging mode. This device is similar to the [[RDTech UM series]] of devices, but doesn&amp;#039;t use the same protocol.&lt;br /&gt;
&lt;br /&gt;
== Protocol (serial) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Mode   !! Resp. len. !! Meaning&lt;br /&gt;
|-----------------------------------------------------------------&lt;br /&gt;
| query   || All    || 4          || Query mode (&amp;#039;firm&amp;#039; or &amp;#039;boot&amp;#039;)&lt;br /&gt;
|----&lt;br /&gt;
| getva   || Normal || 192        || Poll readings. (ret: pacX)&lt;br /&gt;
|----&lt;br /&gt;
| gtrec   || Normal || Variable   || Get recording.&lt;br /&gt;
|----&lt;br /&gt;
| lastp   || Normal || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| nextp   || Normal || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| rotat   || Normal || 0          || Rotate screen.&lt;br /&gt;
|----&lt;br /&gt;
| update  || Boot   || 5          || Prepare to upload firmware. Returns &amp;#039;uprdy&amp;#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Protocol (Bluetooth LE) ==&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! UUID                                 !! What&lt;br /&gt;
|-----------------------------------------------------&lt;br /&gt;
| 0000ffe5-0000-1000-8000-00805f9b34fb || TX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe9-0000-1000-8000-00805f9b34fb || TX attribute&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe0-0000-1000-8000-00805f9b34fb || RX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe4-0000-1000-8000-00805f9b34fb || RX attribute&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Transmission to the device is implemented by writing to the TX&lt;br /&gt;
attribute in the TX service. RX is implemented by listening for&lt;br /&gt;
notifications from the RX attribute in the RX service.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command    !! Resp. len. !! Meaning&lt;br /&gt;
|-------------------------------------------&lt;br /&gt;
| bgetva\r\n || 192        || Poll readings.&lt;br /&gt;
|----&lt;br /&gt;
| blastp\r\n || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| bnextp\r\n || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| brotat\r\n || 0          || Rotate screen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Poll data format ==&lt;br /&gt;
Poll data is returned as Returns 3x64 byte blocks of data, a total of 192 bytes. Each block is prefixed by &amp;lt;code&amp;gt;pacX&amp;lt;/code&amp;gt; The returned data is encrypted using AES in ECB mode.&lt;br /&gt;
&lt;br /&gt;
=== pac1 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac1&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || char[4]  || Product name (&amp;lt;code&amp;gt;TC66&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || char[4]  || Version (e.g., &amp;lt;code&amp;gt;1.14&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Module serial number&lt;br /&gt;
|----&lt;br /&gt;
| 16-43  || Unknown  || Unknown&lt;br /&gt;
|----&lt;br /&gt;
| 44     || uint32_t || Number of runs&lt;br /&gt;
|----&lt;br /&gt;
| 48     || uint32_t || Voltage (multiply by 1e-4 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 52     || uint32_t || Current (multiply by 1e-5 for Ampere)&lt;br /&gt;
|----&lt;br /&gt;
| 56     || uint32_t || Power (multiply by 1e-4 for Watt)&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac2 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac2&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || uint32_t || Resistance (multiply by 1e-2 for Ohm)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || uint32_t || Group 0 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Group 0 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 16     || uint32_t || Group 1 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 20     || uint32_t || Group 1 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 24     || uint32_t || Temperature sign (1 for negative)&lt;br /&gt;
|----&lt;br /&gt;
| 28     || uint32_t || Temperature (Celsius or Fahrenheit)&lt;br /&gt;
|----&lt;br /&gt;
| 32     || uint32_t || D+ Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 36     || uint32_t || D- Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 40-59  || Unknown  || Always zero?&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac3 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac3&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4-59   || Unknown  || Always zero?&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Checksum algorithm ===&lt;br /&gt;
Currently unknown.&lt;br /&gt;
&lt;br /&gt;
== Recording format (gtrec) ==&lt;br /&gt;
&lt;br /&gt;
Recordings dumped using the &amp;lt;code&amp;gt;gtrec&amp;lt;/code&amp;gt; command are returned as a list of 32-bit unsigned integer pairs terminated by &amp;lt;code&amp;gt;reck&amp;lt;/code&amp;gt;. The first value in the pair is the voltage (multiply by 1e-4 to get voltage) and the second value is the current (multiply by 1e-5 to get Ampere).&lt;br /&gt;
&lt;br /&gt;
== Firmware update ==&lt;br /&gt;
&lt;br /&gt;
Firmware update process:&lt;br /&gt;
* Issue a &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; command to verify that the boot loader is active.&lt;br /&gt;
* Issue the &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; command, wait for &amp;lt;code&amp;gt;uprdy&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Write firmware in blocks of 64 bytes (the last block may be shorter than 64 bytes). Each block is acknowledged with an &amp;lt;code&amp;gt;OK&amp;lt;/code&amp;gt; response.&lt;br /&gt;
* Device reboots automatically.&lt;br /&gt;
&lt;br /&gt;
Useful URLs:&lt;br /&gt;
* Firmware metadata: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json]&lt;br /&gt;
* Firmware binary: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin]&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14923</id>
		<title>RDTech TC66C</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14923"/>
		<updated>2020-03-05T17:28:41Z</updated>

		<summary type="html">&lt;p&gt;Andysan: /* Poll data format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox energy meter&lt;br /&gt;
| image               = [[File:UM24C_display.jpg|180px]]&lt;br /&gt;
| name                = RDTech TC66C&lt;br /&gt;
| status              = unsupported&lt;br /&gt;
| connectivity        = serial over Bluetooth or USB&lt;br /&gt;
| measurements        = voltage, current, power, energy, voltage over USB data lines&lt;br /&gt;
| features            = measures USB-C devices; color display&lt;br /&gt;
| website             = [http://rdtech.aliexpress.com/ rdtech.aliexpress.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The RDTech TC66C (~$25 USD) is a USB-C load meter which can measure various properties of USB-C devices including their voltage, amperage, wattage, resistance, capacity, temperature, data line voltage, and charging mode. This device is similar to the [[RDTech UM series]] of devices, but doesn&amp;#039;t use the same protocol.&lt;br /&gt;
&lt;br /&gt;
== Protocol (serial) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Mode   !! Resp. len. !! Meaning&lt;br /&gt;
|-----------------------------------------------------------------&lt;br /&gt;
| query   || All    || 4          || Query mode (&amp;#039;firm&amp;#039; or &amp;#039;boot&amp;#039;)&lt;br /&gt;
|----&lt;br /&gt;
| getva   || Normal || 192        || Poll readings. (ret: pacX)&lt;br /&gt;
|----&lt;br /&gt;
| gtrec   || Normal || Variable   || Get recording.&lt;br /&gt;
|----&lt;br /&gt;
| lastp   || Normal || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| nextp   || Normal || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| rotat   || Normal || 0          || Rotate screen.&lt;br /&gt;
|----&lt;br /&gt;
| update  || Boot   || 5          || Prepare to upload firmware. Returns &amp;#039;uprdy&amp;#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Protocol (Bluetooth LE) ==&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! UUID                                 !! What&lt;br /&gt;
|-----------------------------------------------------&lt;br /&gt;
| 0000ffe5-0000-1000-8000-00805f9b34fb || TX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe9-0000-1000-8000-00805f9b34fb || TX attribute&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe0-0000-1000-8000-00805f9b34fb || RX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe4-0000-1000-8000-00805f9b34fb || RX attribute&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Transmission to the device is implemented by writing to the TX&lt;br /&gt;
attribute in the TX service. RX is implemented by listening for&lt;br /&gt;
notifications from the RX attribute in the RX service.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command    !! Resp. len. !! Meaning&lt;br /&gt;
|-------------------------------------------&lt;br /&gt;
| bgetva\r\n || 192        || Poll readings.&lt;br /&gt;
|----&lt;br /&gt;
| blastp\r\n || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| bnextp\r\n || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| brotat\r\n || 0          || Rotate screen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Poll data format ==&lt;br /&gt;
Poll data is returned as Returns 3x64 byte blocks of data, a total of 192 bytes. Each block is prefixed by &amp;lt;code&amp;gt;pacX&amp;lt;/code&amp;gt; The returned data is encrypted using AES in ECB mode.&lt;br /&gt;
&lt;br /&gt;
=== pac1 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac1&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || char[4]  || Product name (&amp;lt;code&amp;gt;TC66&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || char[4]  || Version (e.g., &amp;lt;code&amp;gt;1.14&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Module serial number&lt;br /&gt;
|----&lt;br /&gt;
| 16-43  || Unknown  || Unknown&lt;br /&gt;
|----&lt;br /&gt;
| 44     || uint32_t || Number of runs&lt;br /&gt;
|----&lt;br /&gt;
| 48     || uint32_t || Voltage (multiply by 1e-4 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 52     || uint32_t || Current (multiply by 1e-5 for Ampere)&lt;br /&gt;
|----&lt;br /&gt;
| 56     || uint32_t || Power (multiply by 1e-4 for Watt)&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac2 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac2&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || uint32_t || Resistance (multiply by 1e-2 for Ohm)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || uint32_t || Group 0 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Group 0 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 16     || uint32_t || Group 1 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 20     || uint32_t || Group 1 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 24     || uint32_t || Temperature sign (1 for negative)&lt;br /&gt;
|----&lt;br /&gt;
| 28     || uint32_t || Temperature (Celsius)&lt;br /&gt;
|----&lt;br /&gt;
| 32     || uint32_t || D+ Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 36     || uint32_t || D- Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 40-59  || Unknown  || Always zero?&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac3 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac3&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4-59   || Unknown  || Always zero?&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || uint32_t || Checksum?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Checksum algorithm ===&lt;br /&gt;
Currently unknown.&lt;br /&gt;
&lt;br /&gt;
== Recording format (gtrec) ==&lt;br /&gt;
&lt;br /&gt;
Recordings dumped using the &amp;lt;code&amp;gt;gtrec&amp;lt;/code&amp;gt; command are returned as a list of 32-bit unsigned integer pairs terminated by &amp;lt;code&amp;gt;reck&amp;lt;/code&amp;gt;. The first value in the pair is the voltage (multiply by 1e-4 to get voltage) and the second value is the current (multiply by 1e-5 to get Ampere).&lt;br /&gt;
&lt;br /&gt;
== Firmware update ==&lt;br /&gt;
&lt;br /&gt;
Firmware update process:&lt;br /&gt;
* Issue a &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; command to verify that the boot loader is active.&lt;br /&gt;
* Issue the &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; command, wait for &amp;lt;code&amp;gt;uprdy&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Write firmware in blocks of 64 bytes (the last block may be shorter than 64 bytes). Each block is acknowledged with an &amp;lt;code&amp;gt;OK&amp;lt;/code&amp;gt; response.&lt;br /&gt;
* Device reboots automatically.&lt;br /&gt;
&lt;br /&gt;
Useful URLs:&lt;br /&gt;
* Firmware metadata: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json]&lt;br /&gt;
* Firmware binary: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin]&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14922</id>
		<title>RDTech TC66C</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14922"/>
		<updated>2020-03-05T14:38:04Z</updated>

		<summary type="html">&lt;p&gt;Andysan: /* pac2 */ Document temperature sign&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox energy meter&lt;br /&gt;
| image               = [[File:UM24C_display.jpg|180px]]&lt;br /&gt;
| name                = RDTech TC66C&lt;br /&gt;
| status              = unsupported&lt;br /&gt;
| connectivity        = serial over Bluetooth or USB&lt;br /&gt;
| measurements        = voltage, current, power, energy, voltage over USB data lines&lt;br /&gt;
| features            = measures USB-C devices; color display&lt;br /&gt;
| website             = [http://rdtech.aliexpress.com/ rdtech.aliexpress.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The RDTech TC66C (~$25 USD) is a USB-C load meter which can measure various properties of USB-C devices including their voltage, amperage, wattage, resistance, capacity, temperature, data line voltage, and charging mode. This device is similar to the [[RDTech UM series]] of devices, but doesn&amp;#039;t use the same protocol.&lt;br /&gt;
&lt;br /&gt;
== Protocol (serial) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Mode   !! Resp. len. !! Meaning&lt;br /&gt;
|-----------------------------------------------------------------&lt;br /&gt;
| query   || All    || 4          || Query mode (&amp;#039;firm&amp;#039; or &amp;#039;boot&amp;#039;)&lt;br /&gt;
|----&lt;br /&gt;
| getva   || Normal || 192        || Poll readings. (ret: pacX)&lt;br /&gt;
|----&lt;br /&gt;
| gtrec   || Normal || Variable   || Get recording.&lt;br /&gt;
|----&lt;br /&gt;
| lastp   || Normal || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| nextp   || Normal || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| rotat   || Normal || 0          || Rotate screen.&lt;br /&gt;
|----&lt;br /&gt;
| update  || Boot   || 5          || Prepare to upload firmware. Returns &amp;#039;uprdy&amp;#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Protocol (Bluetooth LE) ==&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! UUID                                 !! What&lt;br /&gt;
|-----------------------------------------------------&lt;br /&gt;
| 0000ffe5-0000-1000-8000-00805f9b34fb || TX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe9-0000-1000-8000-00805f9b34fb || TX attribute&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe0-0000-1000-8000-00805f9b34fb || RX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe4-0000-1000-8000-00805f9b34fb || RX attribute&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Transmission to the device is implemented by writing to the TX&lt;br /&gt;
attribute in the TX service. RX is implemented by listening for&lt;br /&gt;
notifications from the RX attribute in the RX service.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command    !! Resp. len. !! Meaning&lt;br /&gt;
|-------------------------------------------&lt;br /&gt;
| bgetva\r\n || 192        || Poll readings.&lt;br /&gt;
|----&lt;br /&gt;
| blastp\r\n || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| bnextp\r\n || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| brotat\r\n || 0          || Rotate screen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Poll data format ==&lt;br /&gt;
Poll data is returned as Returns 3x64 byte blocks of data, a total of 192 bytes. Each block is prefixed by &amp;lt;code&amp;gt;pacX&amp;lt;/code&amp;gt; The returned data is encrypted using AES in ECB mode.&lt;br /&gt;
&lt;br /&gt;
=== pac1 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac1&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || char[4]  || Product name (&amp;lt;code&amp;gt;TC66&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || char[4]  || Version (e.g., &amp;lt;code&amp;gt;1.14&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Module serial number&lt;br /&gt;
|----&lt;br /&gt;
| 16-43  || Unknown  || Unknown&lt;br /&gt;
|----&lt;br /&gt;
| 44     || uint32_t || Number of runs&lt;br /&gt;
|----&lt;br /&gt;
| 48     || uint32_t || Voltage (multiply by 1e-4 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 52     || uint32_t || Current (multiply by 1e-5 for Ampere)&lt;br /&gt;
|----&lt;br /&gt;
| 56     || uint32_t || Power (multiply by 1e-4 for Watt)&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || Unknown  || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac2 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac2&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || uint32_t || Resistance (multiply by 1e-2 for Ohm)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || uint32_t || Group 0 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Group 0 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 16     || uint32_t || Group 1 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 20     || uint32_t || Group 1 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 24     || uint32_t || Temperature sign (1 for negative)&lt;br /&gt;
|----&lt;br /&gt;
| 28     || uint32_t || Temperature (Celsius)&lt;br /&gt;
|----&lt;br /&gt;
| 32     || uint32_t || D+ Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 36     || uint32_t || D- Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 40-63  || Unknown  || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac3 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac3&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4-64   || Unknown  || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Recording format (gtrec) ==&lt;br /&gt;
&lt;br /&gt;
Recordings dumped using the &amp;lt;code&amp;gt;gtrec&amp;lt;/code&amp;gt; command are returned as a list of 32-bit unsigned integer pairs terminated by &amp;lt;code&amp;gt;reck&amp;lt;/code&amp;gt;. The first value in the pair is the voltage (multiply by 1e-4 to get voltage) and the second value is the current (multiply by 1e-5 to get Ampere).&lt;br /&gt;
&lt;br /&gt;
== Firmware update ==&lt;br /&gt;
&lt;br /&gt;
Firmware update process:&lt;br /&gt;
* Issue a &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; command to verify that the boot loader is active.&lt;br /&gt;
* Issue the &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; command, wait for &amp;lt;code&amp;gt;uprdy&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Write firmware in blocks of 64 bytes (the last block may be shorter than 64 bytes). Each block is acknowledged with an &amp;lt;code&amp;gt;OK&amp;lt;/code&amp;gt; response.&lt;br /&gt;
* Device reboots automatically.&lt;br /&gt;
&lt;br /&gt;
Useful URLs:&lt;br /&gt;
* Firmware metadata: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json]&lt;br /&gt;
* Firmware binary: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin]&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14921</id>
		<title>RDTech TC66C</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14921"/>
		<updated>2020-03-03T17:25:07Z</updated>

		<summary type="html">&lt;p&gt;Andysan: Link to the UMxx series.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox energy meter&lt;br /&gt;
| image               = [[File:UM24C_display.jpg|180px]]&lt;br /&gt;
| name                = RDTech TC66C&lt;br /&gt;
| status              = unsupported&lt;br /&gt;
| connectivity        = serial over Bluetooth or USB&lt;br /&gt;
| measurements        = voltage, current, power, energy, voltage over USB data lines&lt;br /&gt;
| features            = measures USB-C devices; color display&lt;br /&gt;
| website             = [http://rdtech.aliexpress.com/ rdtech.aliexpress.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The RDTech TC66C (~$25 USD) is a USB-C load meter which can measure various properties of USB-C devices including their voltage, amperage, wattage, resistance, capacity, temperature, data line voltage, and charging mode. This device is similar to the [[RDTech UM series]] of devices, but doesn&amp;#039;t use the same protocol.&lt;br /&gt;
&lt;br /&gt;
== Protocol (serial) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Mode   !! Resp. len. !! Meaning&lt;br /&gt;
|-----------------------------------------------------------------&lt;br /&gt;
| query   || All    || 4          || Query mode (&amp;#039;firm&amp;#039; or &amp;#039;boot&amp;#039;)&lt;br /&gt;
|----&lt;br /&gt;
| getva   || Normal || 192        || Poll readings. (ret: pacX)&lt;br /&gt;
|----&lt;br /&gt;
| gtrec   || Normal || Variable   || Get recording.&lt;br /&gt;
|----&lt;br /&gt;
| lastp   || Normal || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| nextp   || Normal || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| rotat   || Normal || 0          || Rotate screen.&lt;br /&gt;
|----&lt;br /&gt;
| update  || Boot   || 5          || Prepare to upload firmware. Returns &amp;#039;uprdy&amp;#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Protocol (Bluetooth LE) ==&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! UUID                                 !! What&lt;br /&gt;
|-----------------------------------------------------&lt;br /&gt;
| 0000ffe5-0000-1000-8000-00805f9b34fb || TX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe9-0000-1000-8000-00805f9b34fb || TX attribute&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe0-0000-1000-8000-00805f9b34fb || RX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe4-0000-1000-8000-00805f9b34fb || RX attribute&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Transmission to the device is implemented by writing to the TX&lt;br /&gt;
attribute in the TX service. RX is implemented by listening for&lt;br /&gt;
notifications from the RX attribute in the RX service.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command    !! Resp. len. !! Meaning&lt;br /&gt;
|-------------------------------------------&lt;br /&gt;
| bgetva\r\n || 192        || Poll readings.&lt;br /&gt;
|----&lt;br /&gt;
| blastp\r\n || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| bnextp\r\n || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| brotat\r\n || 0          || Rotate screen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Poll data format ==&lt;br /&gt;
Poll data is returned as Returns 3x64 byte blocks of data, a total of 192 bytes. Each block is prefixed by &amp;lt;code&amp;gt;pacX&amp;lt;/code&amp;gt; The returned data is encrypted using AES in ECB mode.&lt;br /&gt;
&lt;br /&gt;
=== pac1 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac1&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || char[4]  || Product name (&amp;lt;code&amp;gt;TC66&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || char[4]  || Version (e.g., &amp;lt;code&amp;gt;1.14&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Module serial number&lt;br /&gt;
|----&lt;br /&gt;
| 16-43  || Unknown  || Unknown&lt;br /&gt;
|----&lt;br /&gt;
| 44     || uint32_t || Number of runs&lt;br /&gt;
|----&lt;br /&gt;
| 48     || uint32_t || Voltage (multiply by 1e-4 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 52     || uint32_t || Current (multiply by 1e-5 for Ampere)&lt;br /&gt;
|----&lt;br /&gt;
| 56     || uint32_t || Power (multiply by 1e-4 for Watt)&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || Unknown  || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac2 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac2&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || uint32_t || Resistance (multiply by 1e-2 for Ohm)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || uint32_t || Group 0 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Group 0 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 16     || uint32_t || Group 1 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 20     || uint32_t || Group 1 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 24-27  || Unknown  || Unknown&lt;br /&gt;
|----&lt;br /&gt;
| 28     || uint32_t || Temperature (Celsius)&lt;br /&gt;
|----&lt;br /&gt;
| 32     || uint32_t || D+ Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 36     || uint32_t || D- Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 40-63  || Unknown  || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac3 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac3&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4-64   || Unknown  || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Recording format (gtrec) ==&lt;br /&gt;
&lt;br /&gt;
Recordings dumped using the &amp;lt;code&amp;gt;gtrec&amp;lt;/code&amp;gt; command are returned as a list of 32-bit unsigned integer pairs terminated by &amp;lt;code&amp;gt;reck&amp;lt;/code&amp;gt;. The first value in the pair is the voltage (multiply by 1e-4 to get voltage) and the second value is the current (multiply by 1e-5 to get Ampere).&lt;br /&gt;
&lt;br /&gt;
== Firmware update ==&lt;br /&gt;
&lt;br /&gt;
Firmware update process:&lt;br /&gt;
* Issue a &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; command to verify that the boot loader is active.&lt;br /&gt;
* Issue the &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; command, wait for &amp;lt;code&amp;gt;uprdy&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Write firmware in blocks of 64 bytes (the last block may be shorter than 64 bytes). Each block is acknowledged with an &amp;lt;code&amp;gt;OK&amp;lt;/code&amp;gt; response.&lt;br /&gt;
* Device reboots automatically.&lt;br /&gt;
&lt;br /&gt;
Useful URLs:&lt;br /&gt;
* Firmware metadata: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json]&lt;br /&gt;
* Firmware binary: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin]&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14920</id>
		<title>RDTech TC66C</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=RDTech_TC66C&amp;diff=14920"/>
		<updated>2020-03-03T17:15:29Z</updated>

		<summary type="html">&lt;p&gt;Andysan: Create a page describing the TC66C&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox energy meter&lt;br /&gt;
| image               = [[File:UM24C_display.jpg|180px]]&lt;br /&gt;
| name                = RDTech TC66C&lt;br /&gt;
| status              = unsupported&lt;br /&gt;
| connectivity        = serial over Bluetooth or USB&lt;br /&gt;
| measurements        = voltage, current, power, energy, voltage over USB data lines&lt;br /&gt;
| features            = measures USB-C devices; color display&lt;br /&gt;
| website             = [http://rdtech.aliexpress.com/ rdtech.aliexpress.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The RDTech TC66C (~$25 USD) is a USB-C load meter which can measure various properties of USB-C devices including their voltage, amperage, wattage, resistance, capacity, temperature, data line voltage, and charging mode.&lt;br /&gt;
&lt;br /&gt;
== Protocol (serial) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Mode   !! Resp. len. !! Meaning&lt;br /&gt;
|-----------------------------------------------------------------&lt;br /&gt;
| query   || All    || 4          || Query mode (&amp;#039;firm&amp;#039; or &amp;#039;boot&amp;#039;)&lt;br /&gt;
|----&lt;br /&gt;
| getva   || Normal || 192        || Poll readings. (ret: pacX)&lt;br /&gt;
|----&lt;br /&gt;
| gtrec   || Normal || Variable   || Get recording.&lt;br /&gt;
|----&lt;br /&gt;
| lastp   || Normal || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| nextp   || Normal || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| rotat   || Normal || 0          || Rotate screen.&lt;br /&gt;
|----&lt;br /&gt;
| update  || Boot   || 5          || Prepare to upload firmware. Returns &amp;#039;uprdy&amp;#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Protocol (Bluetooth LE) ==&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! UUID                                 !! What&lt;br /&gt;
|-----------------------------------------------------&lt;br /&gt;
| 0000ffe5-0000-1000-8000-00805f9b34fb || TX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe9-0000-1000-8000-00805f9b34fb || TX attribute&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe0-0000-1000-8000-00805f9b34fb || RX service&lt;br /&gt;
|----&lt;br /&gt;
| 0000ffe4-0000-1000-8000-00805f9b34fb || RX attribute&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Transmission to the device is implemented by writing to the TX&lt;br /&gt;
attribute in the TX service. RX is implemented by listening for&lt;br /&gt;
notifications from the RX attribute in the RX service.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command    !! Resp. len. !! Meaning&lt;br /&gt;
|-------------------------------------------&lt;br /&gt;
| bgetva\r\n || 192        || Poll readings.&lt;br /&gt;
|----&lt;br /&gt;
| blastp\r\n || 0          || Previous page.&lt;br /&gt;
|----&lt;br /&gt;
| bnextp\r\n || 0          || Next page.&lt;br /&gt;
|----&lt;br /&gt;
| brotat\r\n || 0          || Rotate screen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Poll data format ==&lt;br /&gt;
Poll data is returned as Returns 3x64 byte blocks of data, a total of 192 bytes. Each block is prefixed by &amp;lt;code&amp;gt;pacX&amp;lt;/code&amp;gt; The returned data is encrypted using AES in ECB mode.&lt;br /&gt;
&lt;br /&gt;
=== pac1 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac1&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || char[4]  || Product name (&amp;lt;code&amp;gt;TC66&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || char[4]  || Version (e.g., &amp;lt;code&amp;gt;1.14&amp;lt;/code&amp;gt;)&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Module serial number&lt;br /&gt;
|----&lt;br /&gt;
| 16-43  || Unknown  || Unknown&lt;br /&gt;
|----&lt;br /&gt;
| 44     || uint32_t || Number of runs&lt;br /&gt;
|----&lt;br /&gt;
| 48     || uint32_t || Voltage (multiply by 1e-4 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 52     || uint32_t || Current (multiply by 1e-5 for Ampere)&lt;br /&gt;
|----&lt;br /&gt;
| 56     || uint32_t || Power (multiply by 1e-4 for Watt)&lt;br /&gt;
|----&lt;br /&gt;
| 60-63  || Unknown  || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac2 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac2&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4      || uint32_t || Resistance (multiply by 1e-2 for Ohm)&lt;br /&gt;
|----&lt;br /&gt;
| 8      || uint32_t || Group 0 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 12     || uint32_t || Group 0 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 16     || uint32_t || Group 1 mAh&lt;br /&gt;
|----&lt;br /&gt;
| 20     || uint32_t || Group 1 mWh&lt;br /&gt;
|----&lt;br /&gt;
| 24-27  || Unknown  || Unknown&lt;br /&gt;
|----&lt;br /&gt;
| 28     || uint32_t || Temperature (Celsius)&lt;br /&gt;
|----&lt;br /&gt;
| 32     || uint32_t || D+ Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 36     || uint32_t || D- Voltage (multiply by 1e-2 for Volt)&lt;br /&gt;
|----&lt;br /&gt;
| 40-63  || Unknown  || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== pac3 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type     !! Meaning&lt;br /&gt;
|-------------------------------------------------------------&lt;br /&gt;
| 0      || char[4]  || &amp;lt;code&amp;gt;pac3&amp;lt;/code&amp;gt;&lt;br /&gt;
|----&lt;br /&gt;
| 4-64   || Unknown  || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Recording format (gtrec) ==&lt;br /&gt;
&lt;br /&gt;
Recordings dumped using the &amp;lt;code&amp;gt;gtrec&amp;lt;/code&amp;gt; command are returned as a list of 32-bit unsigned integer pairs terminated by &amp;lt;code&amp;gt;reck&amp;lt;/code&amp;gt;. The first value in the pair is the voltage (multiply by 1e-4 to get voltage) and the second value is the current (multiply by 1e-5 to get Ampere).&lt;br /&gt;
&lt;br /&gt;
== Firmware update ==&lt;br /&gt;
&lt;br /&gt;
Firmware update process:&lt;br /&gt;
* Issue a &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; command to verify that the boot loader is active.&lt;br /&gt;
* Issue the &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; command, wait for &amp;lt;code&amp;gt;uprdy&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Write firmware in blocks of 64 bytes (the last block may be shorter than 64 bytes). Each block is acknowledged with an &amp;lt;code&amp;gt;OK&amp;lt;/code&amp;gt; response.&lt;br /&gt;
* Device reboots automatically.&lt;br /&gt;
&lt;br /&gt;
Useful URLs:&lt;br /&gt;
* Firmware metadata: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.json]&lt;br /&gt;
* Firmware binary: [http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin http://www.ruidengkeji.com/rdupdate/firmware/TC66/TC66.bin]&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=RDTech_UM_series&amp;diff=14900</id>
		<title>RDTech UM series</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=RDTech_UM_series&amp;diff=14900"/>
		<updated>2020-02-16T14:09:34Z</updated>

		<summary type="html">&lt;p&gt;Andysan: Use the energy meter info box template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox energy meter&lt;br /&gt;
| image               = [[File:UM24C_display.jpg|180px]]&lt;br /&gt;
| name                = RDTech &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;&lt;br /&gt;
| status              = planned&lt;br /&gt;
| connectivity        = serial over Bluetooth&lt;br /&gt;
| measurements        = voltage, current, power, energy, voltage over USB data lines&lt;br /&gt;
| features            = measures USB devices; color display (26x26mm, 128x128px)&lt;br /&gt;
| website             = [http://rdtech.aliexpress.com/ rdtech.aliexpress.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== What is it? ==&lt;br /&gt;
&lt;br /&gt;
The RDTech &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; (~$12 USD), &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; (~$16 USD) and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; (~$18 USD) are USB load meters which can measure various properties for USB devices including their voltage, amperage, wattage, resistance, capacity, temperature, data line voltage, and charging mode. They can track up to 11 groups of mAh/mWh capacity data, one of which is ephemeral (and disappears after replugging the device), nine of which are persistent until cleared, and one of which whose recording is only activated above a certain current threshold (and which can be recorded in parallel with any of the other 10 data groups). They also allow graphing the amperage and voltage over time, on the device&amp;#039;s display itself, as well as rotating the display contents into any orientation.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; are extremely similar, but have several differences:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; supports USB-A male / USB-microB female line, USB-A female load.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; supports USB-A male / USB-microB female / USB-C female line, USB-A female / USB-C female load.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; supports USB-A male / USB-microB female / USB-C female line, USB-A female load.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; supports USB 3.0 data passthrough; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; are USB 2.0 only.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; displays and sends 1mV / 0.1mA live resolution, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; are 10mV / 1mA live resolution.  Note that this is applicable for instantaneous view only; aggregates are the same for all three models.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; is maximum 3A current, &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; is 4A, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; is 5A.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; only supports detection of unknown (normal) charging mode, QC2.0 and QC3.0, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; support detecting additional charging modes.  This does not affect the line/load from negotiating a charging mode, just the meter&amp;#039;s ability to detect it.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; have a switch which lets you turn on and off the Bluetooth functionality.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; is not supported by their Apple app, only &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; is the most fully featured of the three, but is missing USB 3.0 data passthrough (&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; only).  If you have to buy one, get the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, but if possible get both the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;.  The &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; is a slightly older product feature-wise.&lt;br /&gt;
&lt;br /&gt;
The meter can be connected to power by plugging it into any one of the supported line inputs (see above; the different line options vary by model).  Besides allowing for different connection options, there is a function within the UI to calculate the impedance of a cable by running a test first directly plugged in to a power supply, then unplugging and running again via the cable.  Otherwise, line functionality is identical no matter which line input you choose.&lt;br /&gt;
&lt;br /&gt;
The manufacturer has indicated that the firmware is not designed to be upgradeable and doesn&amp;#039;t provide updates; nevertheless, the SWIM pin for the on-board STM8 chip is exposed, as are the other necessary pins for STM8 debugging. It&amp;#039;s unclear whether the chip will allow eg. dumping, though.&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s unclear whether measurement of data lines is accurate enough to theoretically be used as a logic analyzer, but given the strange stability of the values during testing (unlike the voltage on the power lines) and the low-end STM8 chip, I suspect it&amp;#039;s not.&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Unlike most devices of this type, these communicate through serial-over-Bluetooth (RFCOMM); the manufacturer provides apps (for Android, Windows and Apple iOS; downloads including device documentation [https://www.mediafire.com/folder/0jt6xx2cyn7jt/UM24 here]), but not protocol documentation nor source code.  On the C models, the Bluetooth board is a separate layer that connects to the serial pads using pogo pins (&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;) or scissor-spring tension pins (&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;).  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; has a generic open module board with a Beken BK3231 chipset. &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; have a shielded DX-BT18 module board (which should be compatible with HC-05/HC-06).&lt;br /&gt;
&lt;br /&gt;
There is no Enable pin passed between the Bluetooth board and the main board; the model name is (presumably) programmed into the module in Command mode at the factory, and the module is always in Data mode during normal operation.  Communication between the boards is done at 9600 8-N-1.&lt;br /&gt;
&lt;br /&gt;
Note that this is specifically about the &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039; models - the UM24, UM25 and UM34 are the exact same functionality but *without* Bluetooth communication.  The UM25 and UM34 have pads which you could solder a TTL adapter to (if you disassemble the device) and get the same functionality.  The UM24 has pads, but the firmware does not appear to support communication.&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
Approximately 500ms after applying power, the device sends 0xff.  However, this is usually before a Bluetooth connection can be established, so the host end will likely never see it.&lt;br /&gt;
&lt;br /&gt;
1-byte commands are sent to the device, and in the case of 0xf0, the device responds with a 130-byte data dump of the current device status.  All other commands return no acknowledgement.&lt;br /&gt;
&lt;br /&gt;
Each device (&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;) has a similar command and response format, but the commands and responses vary slightly by device type.  These variations are documented below.  Unfortunately this means you will need to know what type of device you are communicating with to take full advantage of it.&lt;br /&gt;
&lt;br /&gt;
=== Commands to send ===&lt;br /&gt;
&lt;br /&gt;
Multiple commands may be sent at once; e.g. you could set the recording threshold to 0.28 A and rotate the screen by sending 0xccf2 immediately.  An exception appears to be requesting the data dump; it doesn&amp;#039;t seem to return the 130-byte response unless you wait a bit (approximately 0.2 seconds) after sending other commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Device !! Byte !! Type !! Meaning&lt;br /&gt;
|-----------------------------------&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf0 || device control || Request new data dump; this triggers a 130-byte response&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf1 || device control || Go to next screen&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf2 || device control || Rotate screen&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; || 0xf3 || device control || Switch to next data group&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf3 || device control || Go to the previous screen&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf4 || device control || Clear data group&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xa0 - 0xa9 || device control || Set the selected data group (0-9)&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xb0 - 0xce || configuration || Set recording threshold to a value between 0.00 and 0.30 A (inclusive); add the value after the decimal point to 0xb0 (0.00 is 0xb0, 0.30 is 0xce)&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xd0 - 0xd5 || configuration || Set device backlight level between 0 and 5 (inclusive); 0 is dim, 5 is full brightness&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xe0 - 0xe9 || configuration || Set screen timeout (&amp;quot;screensaver&amp;quot;) between 0 and 9 minutes (inclusive), where 0 disables the screensaver&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Response format ===&lt;br /&gt;
&lt;br /&gt;
All byte offsets are in decimal, and inclusive. All values are big-endian and unsigned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Length !! Type !! Meaning&lt;br /&gt;
|-----------------------------------&lt;br /&gt;
| 0 || 2 || model || Model ID (see below)&lt;br /&gt;
|----&lt;br /&gt;
| 2 || 2 || measurement || Voltage - &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;: millivolts (divide by 1000 to get V), &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;: centivolts (divide by 100 to get V)&lt;br /&gt;
|----&lt;br /&gt;
| 4 || 2 || measurement || Amperage - &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; tenth-milliamps (divide by 10000 to get A), &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;: milliamps (divide by 1000 to get A)&lt;br /&gt;
|----&lt;br /&gt;
| 6 || 4 || measurement || Wattage (in mW, divide by 1000 to get W)&lt;br /&gt;
|----&lt;br /&gt;
| 10 || 2 || measurement || Temperature (in Celsius)&lt;br /&gt;
|----&lt;br /&gt;
| 12 || 2 || measurement || Temperature (in Fahrenheit)&lt;br /&gt;
|----&lt;br /&gt;
| 14 || 2 || configuration || Currently selected data group, zero-indexed&lt;br /&gt;
|----&lt;br /&gt;
| 16 || 80 || measurement || Array of 10 main capacity data groups (where the first one, group 0, is the ephemeral one) -- for each data group: 4 bytes mAh, 4 bytes mWh&lt;br /&gt;
|----&lt;br /&gt;
| 96 || 2 || measurement || USB data line voltage (positive) in centivolts (divide by 100 to get V)&lt;br /&gt;
|----&lt;br /&gt;
| 98 || 2 || measurement || USB data line voltage (negative) in centivolts (divide by 100 to get V)&lt;br /&gt;
|----&lt;br /&gt;
| 100 || 2 || measurement || Charging mode index, see below&lt;br /&gt;
|----&lt;br /&gt;
| 102 || 4 || measurement || mAh from threshold-based recording&lt;br /&gt;
|----&lt;br /&gt;
| 106 || 4 || measurement || mWh from threshold-based recording&lt;br /&gt;
|----&lt;br /&gt;
| 110 || 2 || configuration || Currently configured threshold for recording (in centiamps, divide by 100 to get A)&lt;br /&gt;
|----&lt;br /&gt;
| 112 || 4 || measurement || Duration of threshold recording, in cumulative seconds&lt;br /&gt;
|----&lt;br /&gt;
| 116 || 2 || configuration || Threshold recording active (1 if recording, 0 if not)&lt;br /&gt;
|----&lt;br /&gt;
| 118 || 2 || configuration || Current screen timeout setting, in minutes (0-9, 0 is no screen timeout)&lt;br /&gt;
|----&lt;br /&gt;
| 120 || 2 || configuration || Current backlight setting (0-5, 0 is dim, 5 is full brightness)&lt;br /&gt;
|----&lt;br /&gt;
| 122 || 4 || measurement || Resistance in deci-ohms (divide by 10 to get ohms)&lt;br /&gt;
|----&lt;br /&gt;
| 126 || 2 || configuration || Current screen (zero-indexed, same order as on device)&lt;br /&gt;
|----&lt;br /&gt;
| 128 || 1 || unknown || See below&lt;br /&gt;
|----&lt;br /&gt;
| 129 || 1 || checksum/unknown || Checksum (UM34C) or unknown. See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Known models ===&lt;br /&gt;
&lt;br /&gt;
The Android app uses the first two bytes to determine the model number. The following models are known:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Model&lt;br /&gt;
|----------------&lt;br /&gt;
| 0x0963 || UM24C&lt;br /&gt;
|----&lt;br /&gt;
| 0x09c9 || UM25C&lt;br /&gt;
|----&lt;br /&gt;
| 0x0d4c || UM34C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Charging modes ===&lt;br /&gt;
&lt;br /&gt;
Not all devices support detection of all listed charging modes, but the index between devices is consistent (e.g. index 1 will always be QC2).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Index !! Display !! Meaning&lt;br /&gt;
|-----------------------------------&lt;br /&gt;
| 0 || UNKNOWN || Unknown, or normal (non-custom mode)&lt;br /&gt;
|----&lt;br /&gt;
| 1 || QC2 || Qualcomm Quick Charge 2.0&lt;br /&gt;
|----&lt;br /&gt;
| 2 || QC3 || Qualcomm Quick Charge 3.0&lt;br /&gt;
|----&lt;br /&gt;
| 3 || APP2.4A || Apple, max 2.4 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 4 || APP2.1A || Apple, max 2.1 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 5 || APP1.0A || Apple, max 1.0 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 6 || APP0.5A || Apple, max 0.5 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 7 || DCP1.5A || Dedicated Charging Port, max 1.5 Amp (D+ to D- short)&lt;br /&gt;
|----&lt;br /&gt;
| 8 || SAMSUNG || Samsung (Adaptive Fast Charging?)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unknown response fields ===&lt;br /&gt;
&lt;br /&gt;
Bytes 128+129 are not entirely known yet.  They are believed to be stop markers.&lt;br /&gt;
&lt;br /&gt;
On &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, all observed units seem to be 0xfff1 so far.&lt;br /&gt;
&lt;br /&gt;
On &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;, the last two bytes vary each time the device is polled.  The values drift up and down over time, but will change completely after a device reset.  For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2019-02-09 16:55:35,150 DEBUG: Start: 0x0d4c, end: 0x79cd&lt;br /&gt;
2019-02-09 16:55:47,837 DEBUG: Start: 0x0d4c, end: 0x75f8&lt;br /&gt;
2019-02-09 16:55:49,031 DEBUG: Start: 0x0d4c, end: 0x78c3&lt;br /&gt;
2019-02-09 16:56:08,855 DEBUG: Start: 0x0d4c, end: 0x7bd9&lt;br /&gt;
[reset]&lt;br /&gt;
2019-02-09 16:58:01,091 DEBUG: Start: 0x0d4c, end: 0x2c2d&lt;br /&gt;
2019-02-09 16:58:52,247 DEBUG: Start: 0x0d4c, end: 0x19e5&lt;br /&gt;
2019-02-09 16:59:10,683 DEBUG: Start: 0x0d4c, end: 0x19e5&lt;br /&gt;
2019-02-09 16:59:29,816 DEBUG: Start: 0x0d4c, end: 0x18ea&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are most likely checksums of some sort.  Here&amp;#039;s some full sample dumps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 14 00 44 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8c&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 14 00 45 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8d&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 15 00 46 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8d&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 15 00 46 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8d&lt;br /&gt;
0d 4c 01 fc 00 00 00 00 00 00 00 15 00 46 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Samples 3 and 4 are identical, but were captured at different times.  Samples 1 and 2 have two bytes different (44 -&amp;gt; 45 earlier and 01 -&amp;gt; 00 later) which should have an identical result if it were a simple sum, but result in 688c -&amp;gt; 688d.  Samples 2 and 3 have two bytes different (14 -&amp;gt; 15 and 45 -&amp;gt; 46, a cumulative difference of 2), but both result in 688d.  Samples 4 and 5 have one byte different (fe -&amp;gt; fc), but result in 688d -&amp;gt; 688f.&lt;br /&gt;
&lt;br /&gt;
All of these suggest some sort of &amp;quot;add if even or subtract if odd&amp;quot; iteration, but I haven&amp;#039;t been able to find a process which results in the expected checksum differences.&lt;br /&gt;
&lt;br /&gt;
== Checksum (UM34C) ==&lt;br /&gt;
The last byte of the packet is a checksum and can be calculated using the following Python snippet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def checksum(pkt):&lt;br /&gt;
    positions = [&lt;br /&gt;
        1, 3, 7, 9, 15, 17, 19, 23, 31, 39, 41, 45, 49, 53, 55, 57, 59, 63,&lt;br /&gt;
        67, 69, 73, 79, 83, 89, 97, 99, 109, 111, 113, 119, 121, 127,&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    csum = 0&lt;br /&gt;
    for pos in positions:&lt;br /&gt;
        csum = csum ^ pkt[pos]&lt;br /&gt;
    return csum&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The checksum only covers odd bytes of the packet!&lt;br /&gt;
&lt;br /&gt;
== Board pictures ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Not great pictures, but hopefully they&amp;#039;ll be useful.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UM24C_board_1.jpg&lt;br /&gt;
File:UM24C_board_2.jpg&lt;br /&gt;
File:UM24C_board_3.jpg&lt;br /&gt;
File:UM24C_board_4.jpg&lt;br /&gt;
File:UM24C_board_5.jpg&lt;br /&gt;
File:UM24C_board_6.jpg&lt;br /&gt;
File:UM24C_board_7.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://rdtech.aliexpress.com/store/923042 RDTech AliExpress store]&lt;br /&gt;
* [https://github.com/rfinnie/rdumtool rdumtool - RDTech &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; Bluetooth interface tool] (Python 3)&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Multimeter]]&lt;br /&gt;
[[Category:Planned‏‎]]&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=Supported_hardware&amp;diff=14899</id>
		<title>Supported hardware</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=Supported_hardware&amp;diff=14899"/>
		<updated>2020-02-16T14:01:25Z</updated>

		<summary type="html">&lt;p&gt;Andysan: /* Energy meters */ Add RDTech UMxxC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;sigrok is intended as a flexible, cross-platform, and &amp;#039;&amp;#039;&amp;#039;hardware-independent&amp;#039;&amp;#039;&amp;#039; software suite, i.e., it supports various devices from many different vendors.&lt;br /&gt;
&lt;br /&gt;
Here is a list of currently supported devices (various stages of completeness) in the [http://sigrok.org/gitweb/?p=libsigrok.git;a=summary latest git version of libsigrok] (fewer devices might be supported in tarball releases) and devices we plan to support in the future.&lt;br /&gt;
&lt;br /&gt;
The lists are sorted by category ([[File:Nuvola OK.png|16px]] &amp;lt;span style=&amp;quot;background-color: lime&amp;quot;&amp;gt;supported&amp;lt;/span&amp;gt;: [[:Category:Supported|{{PAGESINCATEGORY:Supported|pages}}]], [[File:Nuvola Orange.png|16px]] &amp;lt;span style=&amp;quot;background-color: orange&amp;quot;&amp;gt;in progress&amp;lt;/span&amp;gt;: [[:Category:In progress|{{PAGESINCATEGORY:In progress|pages}}]], [[File:Nuvola Red.png|16px]] &amp;lt;span style=&amp;quot;background-color: red&amp;quot;&amp;gt;planned&amp;lt;/span&amp;gt;: [[:Category:Planned|{{PAGESINCATEGORY:Planned|pages}}]]), and alphabetically within those categories.&lt;br /&gt;
&lt;br /&gt;
== Logic analyzers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:ARMFLY MINI LOGIC.png|link=ARMFLY Mini-Logic|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ARMFLY Mini-Logic]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:ASIX SIGMA 2.png|link=ASIX SIGMA|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ASIX SIGMA]] (16ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:BeagleLogic.jpg|link=BeagleLogic|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[BeagleLogic]] (12(max 14)ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Braintechnology_usb_interface_v26.png|link=Braintechnology USB Interface V2.x|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Braintechnology USB Interface V2.x]] (8/16ch, 24/12MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Braintechnology_usb_lps.png|link=Braintechnology USB-LPS|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Braintechnology USB-LPS]] (8/16ch, 24/12MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Chronovu la8 front.png|link=ChronoVu LA8|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ChronoVu LA8]] (8ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Chronovu la16.png|link=ChronoVu LA16|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ChronoVu LA16]] (16ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Cwav_usbee_sx.png|link=CWAV USBee SX|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[CWAV USBee SX]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Buspirate_v3.png|link=Dangerous Prototypes Buspirate|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Dangerous Prototypes Buspirate]] (5ch, 1MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Dangerous prototypes irtoy mugshot.png|link=Dangerous Prototypes USB IR Toy|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Dangerous Prototypes USB IR Toy]] (1ch, 10kHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:DSLogic.png|link=DreamSourceLab DSLogic|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[DreamSourceLab DSLogic]] (16ch, 400MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:DSLogic.png|link=DreamSourceLab DSLogic Basic|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[DreamSourceLab DSLogic Basic]] (16ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:DSLogic.png|link=DreamSourceLab DSLogic Plus|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[DreamSourceLab DSLogic Plus]] (16ch, 400MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:DSLogic.png|link=DreamSourceLab DSLogic Pro|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[DreamSourceLab DSLogic Pro]] (16ch, 400MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Eeelec xla esla100.png|link=EE Electronics ESLA100|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[EE Electronics ESLA100]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Chronovu la8 ftdi ft245rl.jpg|link=FTDI-LA|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[FTDI-LA]] (8ch, ~10MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek 4032l mugshot.png|link=Hantek 4032L|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Hantek 4032L]] (32ch, 400MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek 6022be mugshot.png|link=Hantek 6022BL|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Hantek 6022BL]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hobby components hctest0006 mugshot.png|link=Hobby Components HCTEST0006|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Hobby Components HCTEST0006]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Ikalogic_scanalogic2.png|link=IKALOGIC Scanalogic-2|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[IKALOGIC Scanalogic-2]] (4ch, 20MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Ikalogic scanaplus mugshot.png|link=IKALOGIC ScanaPLUS|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[IKALOGIC ScanaPLUS]] (9ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Kingst kqs3506 la16100.png|link=KingST KQS3506-LA16100|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[KingST KQS3506-LA16100]] (16ch, 100/50/32/16MHz @ 3/6/9/16ch)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Lcsoft-miniboard-front.png|link=Lcsoft Mini Board|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Lcsoft Mini Board]] (8/16ch, 24/12MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Lecroy logicstudio16 mugshot.png|link=LeCroy LogicStudio|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[LeCroy LogicStudio]] (8/16ch, 1GHz/500MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:logic-shrimp-front.png|link=Logic Shrimp|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Logic Shrimp]] (4ch, 20MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mcu123 saleae logic clone.png|link=MCU123 Saleae Logic clone|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MCU123 Saleae Logic clone]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Meilhaus logian 16l mugshot.png|link=Meilhaus Logian-16L|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Meilhaus Logian-16L]] (16ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Microchip_pickit2.png|link=Microchip PICkit2|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Microchip PICkit2]] (3ch, 1MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Usbee_ax_clone_front.png|link=MCU123 USBee AX Pro clone|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MCU123 USBee AX Pro clone]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mcupro_Logic16_overview.png|link=mcupro Logic16 clone|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[mcupro Logic16 clone]] (16ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Openbench logic sniffer front.png|link=Openbench Logic Sniffer|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Openbench Logic Sniffer]] (32ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Prist akip 9101 mugshot.png|link=Prist AKIP-9101|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Prist AKIP-9101]] (16ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Robomotic buglogic3.png|link=Robomotic BugLogic 3|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Robomotic BugLogic 3]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Robomotic_minilogic.png|link=Robomotic MiniLogic|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Robomotic MiniLogic]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae Logic.png|link=Saleae Logic|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Saleae Logic]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae_Logic16_bottom.png|link=Saleae Logic16|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Saleae Logic16]] (16ch, 100/50/32/16MHz @ 3/6/9/16ch)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saanlima Pipistrello-OLS.png|link=Saanlima Pipistrello OLS|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Saanlima Pipistrello OLS]] (32ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sysclk lwla1016.png|link=Sysclk LWLA1016|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Sysclk LWLA1016]] (16ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sysclk lwla1034 mugshot.png|link=Sysclk LWLA1034|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Sysclk LWLA1034]] (34ch, 125MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sysclk sla5032 mugshot.png|link=Sysclk SLA5032|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Sysclk SLA5032]] (32ch, 500MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:VKTECH_thumb.jpg|link=VKTECH_saleae_clone|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[VKTECH_saleae_clone|VKTECH saleae clone]] (8ch, 24MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Wayengineer saleae16.png|link=WayEngineer Saleae16|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[WayEngineer Saleae16]] (16ch, 100/50/32/16MHz @ 3/6/9/16ch)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Zeroplus Logic Cube.png|link=ZEROPLUS Logic Cube LAP-C(16032)|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ZEROPLUS Logic Cube LAP-C(16032)]] (16ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Zeroplus Logic Cube.png|link=ZEROPLUS Logic Cube LAP-C(322000)|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ZEROPLUS Logic Cube LAP-C(322000)]] (32ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Zeroplus_lap-16128u.png|link=ZEROPLUS LAP-16128U|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ZEROPLUS LAP-16128U]] (16ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Acute_pkla1216.png|link=Acute PKLA-1216|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Acute PKLA-1216]] (16ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Arduino_Uno-R3.jpg|link=Arduino|[[File:Nuvola Orange.png|16px]] &amp;lt;small&amp;gt;[[Arduino]] (6ch, 4MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:ASIX Omega.png|link=ASIX OMEGA|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[ASIX OMEGA]] (16ch, 400MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:IMG 20191206 105430.jpg|link=CoLA|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[CoLA]] (96/48/24ch, 25/50/100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hsa-logic.png|link=HSA Logic|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[HSA Logic]] (8ch, 6.25MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Ideofy_la_08.png|link=Ideofy LA-08|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Ideofy LA-08]] (8ch, 96/60/30MHz @ 2/4/8ch)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Intronix Logicport.png|link=Intronix Logicport LA1034|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Intronix Logicport LA1034]] (34ch, 500MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Kingst la2016 mugshot.png|link=Kingst LA2016|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Kingst LA2016]] (16ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Link Instruments LA-5580|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Link Instruments LA-5580]] (80ch, 500MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Minila parport.png|link=MiniLA|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[MiniLA]] (32ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Minila_mockup.png|link=MiniLA Mockup|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[MiniLA Mockup]] (32ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Noname_la16_mugshot.png|link=Noname LA16|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Noname LA16]] (16ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Noname xl logic16 100m mugshot.png|link=Noname XL-LOGIC16-100M|[[File:Nuvola Orange.png|16px]] &amp;lt;small&amp;gt;[[Noname XL-LOGIC16-100M]] (16ch, 100/50/32/16MHz @ 3/6/9/16ch)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rockylogic_ant8.png|link=RockyLogic Ant8|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[RockyLogic Ant8]] (8ch, 500MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:RockyLogic Ant18e.png|link=RockyLogic Ant18e|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[RockyLogic Ant18e]] (8ch, 1GHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sysclk lwla2034 mugshot.png|link=Sysclk LWLA2034|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Sysclk LWLA2034]] (34ch, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Techtools_digiview_dv1-100.png|link=TechTools DigiView DV1-100|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[TechTools DigiView DV1-100]] (18ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tektronix TLA5204 1000.png|link=Tektronix TLA520X|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Tektronix TLA520X]] (128ch, 2Ghz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Xmos xtag2.png|link=XMOS XTAG-2|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[XMOS XTAG-2]] (?ch, 50MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Zlg_la1032.png|link=ZLG LA1032|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[ZLG LA1032]] (32ch, 100MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mixed-signal devices ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=105px heights=105px&amp;gt;&lt;br /&gt;
File:Armfly_ax_pro.png|link=ARMFLY AX-Pro|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ARMFLY AX-Pro]] (8ch, 24MHz; 1ch analog, 3MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sysclk ax pro mugshot.png|link=Sysclk AX-Pro|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Sysclk AX-Pro]] (8ch, 24MHz; 1ch analog, 3MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Esla201a.png|link=EE Electronics ESLA201A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[EE Electronics ESLA201A]] (8ch, 24MHz; 1ch analog, 3MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Ht usbee axpro v5 mugshot.png|link=HT USBee-AxPro|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[HT USBee-AxPro]] (8ch, 24MHz; 1ch analog, 3MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:LeCroy_WaveSurfer_24Xs-A_front.png|link=LeCroy oscilloscope series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[LeCroy oscilloscope series]] (various)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Noname lht00su1 mugshot.png|link=Noname LHT00SU1|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Noname LHT00SU1]] (8ch, 24MHz; 1ch analog, 3MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rigol DS1052E.png|link=Rigol DS1000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rigol DS1000 series|Rigol DS1000D series]] (16ch, 2ch analog, 50-150MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Rigol DS4000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rigol DS4000 series]] (0/16ch , 2-4ch analog, 2-4GS/s, 100MHz/200MHz/350MHz/500MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rigol_VS5202D.png|link=Rigol VS5000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rigol VS5000 series|Rigol VS5000D series]] (16ch, 2ch analog, 20-200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:RS HMO1002.png|link=Rohde&amp;amp;Schwarz HMO1002 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rohde&amp;amp;Schwarz HMO1002 series]] (2ch, 1GS/s, 50-100MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:HMO3000.jpg|link=Rohde&amp;amp;Schwarz HMO3000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rohde&amp;amp;Schwarz HMO 3000 series]] (16ch, 2/4ch analog, 4GS/s, 300-500MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:RTA4000.jpg|link=Rohde&amp;amp;Schwarz RT series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rohde&amp;amp;Schwarz RT series]] (8/16ch, 2/4ch analog, 2-5GS/s, 50MHz-1GHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae Logic Pro 16 bottom.jpg|link=Saleae Logic Pro 16|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Saleae Logic Pro 16]] (4/16ch, 500/100MHz; 16ch analog, 50MSa/s, 5MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Siglent_SDS1202X-E_front.png|link=Siglent SDS1000X series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Siglent SDS1000X series]] (16ch, 2ch analog, 1GSa/s, 200/100MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:sds2304x-mugshot.png|link=Siglent SDS2000X series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Siglent SDS2000X series]] (16ch, 2/4ch analog, 2GSa/s, 300/200/150/100/70MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Yokogawa DLM2000 front.png|link=Yokogawa DLM2000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Yokogawa DLM2000 series]] (8ch, 2/4ch analog, 2.5GSa/s, 200/350/500MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Xzl studio ax mugshot.png|link=XZL_Studio AX|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[XZL_Studio AX]] (8ch, 24MHz; 1ch analog, 3MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Xzl studio-dx mugshot.png|link=XZL_Studio DX|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[XZL_Studio DX]]&amp;lt;br/&amp;gt; (16ch, 24MHz; 2ch analog),&amp;lt;br /&amp;gt;Analog not supported&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Agilent_MSO7104A.png|link=Agilent MSO7104A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Agilent MSO7104A]] (16ch, ?; 4ch analog, 2GSa/s, 1GHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:BitScope BS10.png|link=BitScope BS10|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[BitScope BS10]] (8ch, 40MHz; 2ch analog, 20MSa/s, ? BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Digilent_analog_discovery.png|link=Digilent Analog Discovery|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Digilent Analog Discovery]] (16ch, 100MHz; 2ch analog, 100MSa/s, 5MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek_1008C.png|link=Hantek 1008C|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek 1008C]] (8ch)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Ht usbee dxpro mugshot.png|link=HT USBee-DxPro|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[HT USBee-DxPro]] (16ch, 24MHz; 2ch analog)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Lab nation smartscope mugshot.png|link=LabNation SmartScope|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[LabNation SmartScope]] (8ch, 100MHz; 2ch analog, 100MSa/s, 45MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Link Instruments MSO-19 front.png|link=Link Instruments MSO-19|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Link Instruments MSO-19]] (8ch, 200MHz; 1ch analog, 200MSa/s, 60MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Meilhaus_mephisto_scope1.png|link=Meilhaus MEphisto Scope1|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Meilhaus MEphisto Scope1]] (16ch, 100kHz; 2ch analog, 1MSa/s, 500kHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Polabs_poscope_basic2.png|link=PoLabs PoScope Basic2|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[PoLabs PoScope Basic2]] (16ch, 8MHz; 2ch analog, 200kSa/s, ? BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:QuantAsylum QA100.png|link=QuantAsylum QA100|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[QuantAsylum QA100]] (12ch; 2ch analog)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae_Logic8_case_bottom.jpg|link=Saleae Logic8|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Saleae Logic8]] (3/6/7/8ch, 100/50/40/25MHz; 8ch analog, 10MSa/s, 1MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae_logic_pro_8-bottom.png|link=Saleae Logic Pro 8|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Saleae Logic Pro 8]] (4/8ch, 500/100MHz; 8ch analog, 50MSa/s, 5MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Picoscope 3205D MSO fp.jpg|link=Pico Technology PicoScope 3205D MSO|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Pico Technology PicoScope 3205D MSO]] (16ch, 100MHz; 2ch analog, 1/0.5GS/s, 100MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:DSO3254A.jpg|link=Hantek DSO3254A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek DSO3254A]] (16ch, 250MHz; 4ch analog, 1GS/s, 250MHz BW; 1 ch func/arb generator, 200MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Oscilloscopes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=100px heights=100px&amp;gt;&lt;br /&gt;
File:Agilent DSO1014A.png|link=Agilent DSO1000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Agilent DSO1000 series]] (2-4ch, 2GS/s, 60-200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Fluke_Scopemeter_199B.png|link=Fluke ScopeMeter 199B|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Fluke ScopeMeter 199B]] (2ch, 2.5GS/s, 200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft dso-6060c mugshot.png|link=GW Instek GDS-800 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[GW Instek GDS-800 series]] (2ch, 25GS/s, 60-250MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hameg HMO2024.png|link=Hameg HMO compact series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Hameg HMO compact series]] (2-4ch, 2GS/s, 70-200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek 6022be mugshot.png|link=Hantek 6022BE|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Hantek 6022BE]] (2ch, 48MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek DSO-2090.png|link=Hantek DSO-2090|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Hantek DSO-2090]] (2ch, 100MS/s, 40MHz)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hung chang dso 2100 mugshot.png|link=Hung-Chang_DSO-2100|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Hung-Chang DSO-2100]] (2ch, 100MS/s, 30MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rigol DS1052E.png|link=Rigol DS1000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rigol DS1000 series|Rigol DS1000E series]] (2ch, 1GS/s, 50-150MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rigol DS1074Z front.png|link=Rigol DS1000Z series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rigol DS1000Z series|Rigol DS1000Z series]] (4ch, 1GS/s, 50-100MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rigol-ds2072 mugshot.png|link=Rigol DS2000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rigol DS2000 series]] (2ch, 2GS/s, 70-200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rigol_VS5202D.png|link=Rigol VS5000 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rigol VS5000 series]] (2ch, 20-200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rocktech bm102 mugshot.png|link=Rocktech BM102|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rocktech BM102]] (2ch, 50MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Dds120 mugshot.png|link=SainSmart DDS120|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[SainSmart DDS120]] (2ch, 50MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:YiXingDianZi-MDSO.png|link=YiXingDianZi MDSO|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[YiXingDianZi MDSO]] (2ch, 48MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Dreamsourcelab dscope c20p front.jpg|link=DreamSourceLab DScope C20P|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[DreamSourceLab DScope C20P]] (2ch, 200MS/s, 50MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Fluke scopemeter123.png|link=Fluke ScopeMeter 123|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Fluke ScopeMeter 123]] (2ch, 25MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Focussz_fosc21_mugshot.png|link=Focussz Fosc21|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Focussz Fosc21]] (2ch, 8kS/s, 3kHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=GW Instek GDS-2000 series|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[GW Instek GDS-2000 series]] (2ch, 1GS/s, 60MHz/100MHz/200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek front.jpg|link=Hantek 6052BE|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek 6052BE]] (2ch, 150MS/s, 50MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek 6254bd mugshot.png|link=Hantek 6254BD|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek 6254BD]] (4ch, 1GS/s, 250MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Hantek DSO-1200|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek DSO-1200]] (2ch, 500MS/s, 200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek_DSO_2100_usb.jpg|link=Hantek DSO-2100|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek DSO-2100]] (2ch, 100M/s, 30MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek_PSO2020_0.JPG|link=Hantek PSO2020|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek PSO2020]] (1ch, 96MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek dso2250 mugshot.png|link=Hantek DSO-2250|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek DSO-2250]] (2ch, 250MS/s, 100MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek dso-5200a device front.png|link=Hantek DSO-5200A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek DSO-5200A]] (2ch, 250MS/s, 200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek iDSO1070A.JPG|link=Hantek iDSO1070|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek iDSO1070]] (2ch, 250MS/s, 70MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Hantek iDSO1070A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek iDSO1070A]] (2ch, 125MS/s, 70MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Usbduxfast.png|link=Incite Technology USB-DUXfast|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Incite Technology USB-DUXfast]] (16ch, 3MHz, ? BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Instrustar-IDS205A CaseFront.jpg|link=Instrustar ISDS205A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Instrustar_ISDS205A]] (2ch, 48MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Loto_OSC802.jpg|link=Loto OSC802|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Loto OSC802]] (2ch, 80MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:OsciPrime.png|link=Nexus-Computing OsciPrime|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Nexus-Computing OsciPrime]] (2ch, ?MS/s, 3.3MHz-8MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Owon SDS series|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Owon SDS series]] (2ch, 0.5-3.2GS/s, 60-300MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Picoscope 2203.png|link=Pico Technology PicoScope 2203|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Pico Technology PicoScope 2203]] (40/20MS/s, 5MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Picoscope 2204A.png|link=Pico Technology PicoScope 2204A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Pico Technology PicoScope 2204A]] (100MS/s, 10MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:PicoScope_2205.png|link=Pico Technology PicoScope 2205|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Pico Technology PicoScope 2205]] (200/100MS/s, 25MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Picoscope 3206.png|link=Pico Technology PicoScope 3206|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Pico Technology PicoScope 3206]] (200/100MS/s, 200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Picoscope 5203.png|link=Pico Technology PicoScope 5203|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Pico Technology PicoScope 5203]] (1/0.5GS/s, 250MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sainsmart dds140 mugshot.png|link=SainSmart DDS140|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[SainSmart DDS140]] (2ch, 200MS/s, 40MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tektronix tds2024b mugshot.png|link=Tektronix TDS2000B series|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Tektronix TDS2000B series]] (2-4ch, 1-2GS/s, 60-200MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:UNI-T UTD2042C.png|link=UNI-T UTD2042C|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UTD2042C]] (2ch, 500MS/s, 40MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Velleman PCSU1000.png|link=Velleman PCSU1000|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Velleman PCSU1000]] (2ch, 1GS/s, 50MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:VellemanWFS210.png|link=Velleman WFS210|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Velleman WFS210]] (2ch, 10MS/s, ?? MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft dso-220 usb.png|link=Voltcraft DSO-220|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft DSO-220]] (2ch, 60MS/s, 20MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft DSO-3062C.png|link=Voltcraft DSO-3062C|[[File:Nuvola Orange.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft DSO-3062C]] (2ch, 1GS/s, 60MHz BW)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Multimeters ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Agilent_34405A.png|link=Agilent_34405A|[[file:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Agilent 34405A]] (120000 counts, USB TMC)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Agilent U1232A.png|link=Agilent U12xxx series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Agilent U12xxx series]] (USB/Bluetooth)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Bbc gm m2110 mugshot.png|link=BBC Goertz Metrawatt M2110|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[BBC Goertz Metrawatt M2110]] (30000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Brymen BM257.png|link=Brymen BM257|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Brymen BM257]] (6000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Brymen bm257s mugshot.png|link=Brymen BM257s|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Brymen BM257s]] (6000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Bm_857_mugshot_500000.png|link=Brymen BM857|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Brymen BM857]] (50000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Bm869_mugshot.png|link=Brymen BM869|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Brymen BM869]] (50000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Digitek_dt4000zc_device_front.png|link=Digitek DT4000ZC|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Digitek DT4000ZC]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Eevblog 121gw mugshot.png|link=EEVBlog 121GW|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[EEVBlog 121GW]] (50000 counts, BLE, SD)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Fluke 187.png|link=Fluke 187/189|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Fluke 187/189]] (50000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Fluke 287.png|link=Fluke 287/289|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Fluke 287/289]] (50000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Fluke_45_mugshot.png|link=Fluke 45|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Fluke 45]] (100000 counts, GPIB/RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Gmc metrahit 14a logo.png|link=Gossen Metrawatt Metrahit 14A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt Metrahit 14A]] (3100 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Gossen Metrawatt Metrahit 16I small.png|link=Gossen Metrawatt Metrahit 16I|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt Metrahit 16I]] (3100 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Gossen Metrawatt Metrahit 18S small.png|link=Gossen Metrawatt Metrahit 18S|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt Metrahit 18S]] (31000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Gossen Metrawatt Metrahit 25S Logo.png|link=Gossen Metrawatt Metrahit 25S|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt Metrahit 25S]] (31000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Gmc metrahit 29s logo.png|link=Gossen Metrawatt Metrahit 29S|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt Metrahit 29S]] (310000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Gmc kmm2002 logo.png|link=Gossen Metrawatt T-Com KMM2002|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt T-Com KMM2002]] (3100 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:HP_3457a_sigrok_teaser.png|link=HP 3457A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[HP 3457A]] (7.5 digits, GPIB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hp3478a mugshot.png|link=HP 3478A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[HP 3478A]] (5.5 digits, GPIB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:HT410 logo.png|link=HT Instruments HT410|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[HT Instruments HT410]] (3100 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:100px_Idm103n.png|link=ISO-TECH IDM103N|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ISO-TECH IDM103N]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:keysight-34465a-mugshot.png|link=Keysight 34465A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Keysight 34465A]] (1200000 counts, LAN/USB/GPIB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mastech mas345 device front.png|link=MASTECH MAS345|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MASTECH MAS345]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mastech_ms2115b_mugshot.png|link=MASTECH MS2115B|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MASTECH MS2115B]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mastech ms8250b mugshot.png|link=MASTECH MS8250B|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MASTECH MS8250B]] (4000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mastech ms8250d mugshot.png|link=MASTECH MS8250D|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MASTECH MS8250D]] (6600 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Metex M3850M mugshot.png|link=Metex M-3850M|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Metex M-3850M]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Metex m4650cr mugshot.png|link=Metex M-4650CR|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Metex M-4650CR]] (20000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Metex_me-31.png|link=Metex ME-31|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Metex ME-31]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Metrix mx56c.png|link=Metrix MX56C|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Metrix MX56C]] (50000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mooshimeter_mugshot.png|link=Mooshim Engineering Mooshimeter|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Mooshim Engineering Mooshimeter]] (24bit, BLE)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Norma dm950.png|link=Norma DM950|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Norma DM950]] (21000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Pce-pce-dm32.png|link=PCE PCE-DM32|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[PCE PCE-DM32]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Peaktech 3330 mugshot.png|link=PeakTech 3330|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 3330]] (4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Metex_me-31.png|link=PeakTech 3410|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 3410]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Peaktech3415_top.png|link=PeakTech 3415|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 3415]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Peaktech 4370 device front.png|link=PeakTech 4370|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 4370]] (2000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Peaktech 4390a metex m-3860m mugshot.png|link=PeakTech 4390A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 4390A]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rs_22_168_mugshot.png|link=RadioShack 22-168|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[RadioShack 22-168]] (2000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rs_22-805_front.png|link=RadioShack 22-805|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[RadioShack 22-805]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:radioshack_22_812_front.png|link=RadioShack 22-812|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[RadioShack 22-812]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:siemens_b1026_logo.png|link=Siemens B1026|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Siemens B1026]] (21000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Siemens B1105 small.png|link=Siemens B1105|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Siemens B1105]] (310000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sparkfun 70c mugshot.png|link=SparkFun 70C|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[SparkFun 70C]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tecpel dmm8061.png|link=Tecpel DMM-8061|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Tecpel DMM-8061]] (4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tp4000zc_front.png|link=TekPower TP4000ZC|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[TekPower TP4000ZC]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tenma 72-7730.png|link=Tenma 72-7730|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Tenma 72-7730]] (20000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tenma 72-7732.png|link=Tenma 72-7732|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Tenma 72-7732]] (40000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tenma 72-7745.png|link=Tenma 72-7745|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Tenma 72-7745]] (4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tenma 72-7750.png|link=Tenma 72-7750|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Tenma 72-7750]] (6000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tenma 72-9380A.png|link=Tenma 72-9380A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Tenma 72-9380A]] (40000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Ut60e_-_front_-_alpha.png|link=UNI-T UT60E|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT60E]] (4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Uni-t ut61b mugshot.png|link=UNI-T UT61B|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT61B]] (4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Uni-t ut61c mugshot.png|link=UNI-T UT61C|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT61C]] (6000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Uni t ut61d device.png|link=UNI-T UT61D|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT61D]] (6000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Old ver front.png|link=UNI-T UT61E|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT61E]] (22000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Ut71c mugshot.png|link=UNI-T UT71C|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT71C]] (40000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Va_va18b.png|link=V&amp;amp;A VA18B|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[V&amp;amp;A VA18B]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Va va40b mugshot.png|link=V&amp;amp;A VA40B|link=V&amp;amp;A VA40B|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[V&amp;amp;A VA40B]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:DVM4100.png|link=Velleman DVM4100|link=Velleman DVM4100|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Velleman DVM4100]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Victor 70C.png|link=Victor 70C|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Victor 70C]] (4000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Victor 86c device front.png|link=Victor 86C|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Victor 86C]] (4000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft m-3650cr.png|link=Voltcraft M-3650CR|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft M-3650CR]] (2000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft_M-3650D_transparent.png|link=Voltcraft M-3650D|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft M-3650D]] (2000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft m4650cr.png|link=Voltcraft M-4650CR|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft M-4650CR]] (20000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft ME-42 logo.png|link=Voltcraft ME-42|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft ME-42]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft vc820 device.png|link=Voltcraft VC-820|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft VC-820]] (4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft vc830.png|link=Voltcraft VC-830|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft VC-830]] (6000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft vc840 device front.png|link=Voltcraft VC-840|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft VC-840]] (4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft vc870 mugshot.png|link=Voltcraft VC-870|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft VC-870]] (40000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft vc920.png|link=Voltcraft VC-920|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft VC-920]] (40000/4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft vc940.png|link=Voltcraft VC-940|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft VC-940]] (40000/4000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft vc96 mugshot.png|link=Voltcraft VC-96|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft VC-96]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Appa 107.png|link=APPA 107|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[APPA 107]] (4000 / 20000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=CEM DT-987BT|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[CEM DT-987BT]] (50000 counts, BLE)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Digitek dt8000.png|link=Digitek DT8000|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Digitek DT8000]] (8000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Digitek dt80000.png|link=Digitek DT80000|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Digitek DT80000]] (80000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Escort 179 device front.png|link=Escort 179|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Escort 179]] (10000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Gossen Metrawatt Metrahit 28C|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt Metrahit 28C]] (310000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Gossen Metrawatt Metrahit 28S|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt Metrahit 28S]] (310000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Gossen metrahit 30m.png|link=Gossen-Metrawatt METRAHIT 30M|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Gossen-Metrawatt METRAHIT 30M]] (1200000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Gossen Metrawatt Metrahit X-Tra|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Gossen Metrawatt Metrahit X-Tra]] (12000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=GW Instek GDM-8251A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[GW Instek GDM-8251A]] (120000 counts, RS232/USB/DigitalIO)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=HYELEC MS8236|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[HYELEC MS8236]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:800px-Mastech m9803r device front.png|link=MASTECH M9803R|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[MASTECH M9803R]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Metrix mx53.png|link=Metrix MX53|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Metrix MX53]] (50000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Peaktech-3442-front.png|link=PeakTech 3442|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 3442]] (50000 counts, BLE)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Peaktech 4380 mugshot.png|link=PeakTech 4380|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 4380]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Peaktech 4390 mugshot.png|link=PeakTech 4390|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 4390]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Protek 6500|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Protek 6500]] (50000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rigol DM3068 front.png|link=Rigol DM3068|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Rigol DM3068]] (2200000 counts, LAN/USB/GPIB/RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tenma 72-1016.png|link=Tenma 72-1016|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Tenma 72-1016]] (6000 counts, RS232/USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Uni-t-ut81b mugshot.png|link=UNI-T UT81B|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT81B]] (6000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:UNI-T-UT181A.jpg|link=UNI-T UT181A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT181A]] (60000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft 3850D front transp.png|link=Voltcraft M-3850D|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft M-3850D]] (4000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft m3890dt usb.png|link=Voltcraft M-3890DT|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft M-3890DT]] (4000 counts, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft m4660a device front.png|link=Voltcraft M-4660A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft M-4660A]] (20000 counts, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft vc890 mugshot.png|link=Voltcraft VC-890|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft VC-890]] (60000 counts, USB/serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LCR meters ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100Px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Der ee de-5000 mugshot.png|link=DER EE DE-5000|[[File:Nuvola_OK.png|16px]] &amp;lt;small&amp;gt;[[DER EE DE-5000]] (serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=MASTECH MS5308|[[File:Nuvola_OK.png|16px]] &amp;lt;small&amp;gt;[[MASTECH MS5308]] (serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:peaktech2165-front.png|link=Peaktech 2165|[[File:Nuvola_OK.png|16px]] &amp;lt;small&amp;gt;[[Peaktech 2165]] (serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Peaktech 2170 mugshot.png|link=PeakTech 2170|[[File:Nuvola_OK.png|16px]] &amp;lt;small&amp;gt;[[PeakTech 2170]] (serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:uni_t_ut612_1.png|link=UNI-T UT612|[[File:Nuvola_OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT612]] (USB/HID)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft4080_2.png|link=Voltcraft 4080|[[File:Nuvola_OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft 4080]] (serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Agilent U1732B.png|link=Agilent U1732B|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Agilent U1732B]] (IR)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sound level meters ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:CEM DT-8852.png|link=CEM DT-8852|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[CEM DT-8852]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Colead SL-5868P.png|link=Colead SL-5868P|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Colead SL-5868P]] (RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Kecheng KC-330B.png|link=Kecheng KC-330B|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Kecheng KC-330B]] (RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:PCE-322A.png|link=PCE PCE-322A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[PCE PCE-322A]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Tondaj sl-814.png|link=Tondaj SL-814|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Tondaj SL-814]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Pce_pce-222_front.png|link=PCE PCE-222|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[PCE PCE-222]] (also: light-/thermo-/hygrometer; RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft_dl_160s.png|link=Voltcraft DL-160S|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft DL-160S]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft_DL-161S.png|link=Voltcraft DL-161S|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft DL-161S]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Thermometers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:rs55ii.png|link=APPA 55II|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[APPA 55II]] (2xtemp, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:EL-USB-2.png|link=Lascar Electronics EL-USB-2|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Lascar Electronics EL-USB-2]] (1xtemp, 1xhum, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:MASTECH_MS6514_mugshot.png|link=MASTECH MS6514|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MASTECH MS6514]] (2x temp, USB/serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mic 98581.png|link=MIC 98581|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MIC 98581]] (1xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mic 98583.png|link=MIC 98583|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MIC 98583]] (1xtemp, 1xhum, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Uni-t ut325 front.png|link=UNI-T UT325|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT325]] (2xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft k204.png|link=Voltcraft K204|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft K204]] (4xtemp, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Elitech rc3.png|link=Elitech RC-3|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Elitech RC-3]] (1xtemp, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Escort 19.png|link=Escort 19|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Escort 19]] (1x temp, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Pax_instruments_t400.jpg|link=Pax Instruments T400|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Pax Instruments T400]] (4xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Pce_pce-222_front.png|link=PCE PCE-222|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[PCE PCE-222]] (1xtemp, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rding temper front.png|link=RDing TEMPer|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[RDing TEMPer]] (1xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rding temper gold device front.png|link=RDing TEMPer Gold|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[RDing TEMPer Gold]] (1xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rding temper1 device front.png|link=RDing TEMPer1|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[RDing TEMPer1]] (1xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Pcsensor_temper1k2.png|link=RDing TEMPer1K2|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[RDing TEMPer1K2]] (1xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft dl-120th.png|link=Voltcraft DL-120TH|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft DL-120TH]] (1xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft dl-140th.png|link=Voltcraft DL-140TH|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft DL-140TH]] (1xtemp, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hygrometers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:EL-USB-2.png|link=Lascar Electronics EL-USB-2|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Lascar Electronics EL-USB-2]] (temp/humidity, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Mic 98583.png|link=MIC 98583|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[MIC 98583]] (temp/humidity, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Pce_pce-222_front.png|link=PCE PCE-222|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[PCE PCE-222]] (also: light-/soundlevelmeter; RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Silabs si7005usb dgl eb top.jpg|link=SiLabs Si7005USB-Dongle|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[SiLabs Si7005USB-Dongle]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anemometers ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Mastech ms6252b.png|link=MASTECH MS6252B|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[MASTECH MS6252B]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Light meters ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Lutron YK-2005LX.png|link=Lutron YK-2005LX|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Lutron YK-2005LX]] (RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Pce_pce-222_front.png|link=PCE PCE-222|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[PCE PCE-222]] (RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Energy meters ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Actaris_a14c5_teleinfo.png|link=EDF Teleinfo|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[EDF Teleinfo]] (RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Acme.png|link=BayLibre ACME|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[BayLibre ACME]] (I2C)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UM24C_display.jpg|link=RDTech_UM_series|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[RDTech UM series]] USB testers&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DAQs ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Ni usb 6008.png|link=NI USB-6008|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[NI USB-6008]] (8/2 analog inputs/outputs, 12 digital I/Os)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dataloggers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:EL-USB-CO.png|link=Lascar Electronics EL-USB-CO|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Lascar Electronics EL-USB-CO]] (carbon monoxide (CO) logger, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Testo_435-4.png|link=Testo 435-4|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Testo 435-4]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Gsg_indoor_air_monitor.png|link=GSG Indoor Air Monitor|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[GSG Indoor Air Monitor]] (air quality monitor, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Maul_studio_i.png|link=MAUL studio i|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[MAUL studio i]] (weighing scale, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Voltcraft co-20.png|link=Voltcraft CO-20|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft CO-20]] (air quality monitor, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tachometers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Uni-t ut372 mugshot.png|link=UNI-T UT372|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[UNI-T UT372]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scales ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Kern ew-6200-2nm mugshot.png|link=KERN scale series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[KERN scale series]] (RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Digital loads ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Arachnid Labs ReLoad Pro - Mugshot.png|link=Arachnid Labs Reload Pro|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Arachnid Labs Reload Pro]] (USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Maynuo m9812 mugshot.png|link=Maynuo M9812|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Maynuo M9812]]&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Ztetech-ebd-usb%2B.png|link=ZKETECH_EBD-USB|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[ZKETECH EBD-USB]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Atten ATZ9711.png|link=ATTEN ATZ9711|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[ATTEN ATZ9711]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Function generators ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:BG7TBL small.png|link=BG7TBL|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[BG7TBL]] (138MHz-4.4GHz, PC-based, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hantek DDS-3X25 top.png|link=Hantek DDS-3X25|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek DDS-3X25]] (25MHz, PC-based, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Hp_3325a_front.png|link=HO 3325A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[HP 3325A]] (20MHz, GPIB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Jds6600-mugshot.png|link=Joy-IT JDS6600|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Joy-IT JDS6600]] (60MHz, USB RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:MHINSTEK UDB1305S persp.jpg|link=MHINSTEK UDB1xxxS|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[MHINSTEK UDB1xxxS]] (2/5/8MHz, Serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:MHINSTEK MHS-5200A persp.jpg|link=MHINSTEK MHS-5200A|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[MHINSTEK MHS-5200A]] (6/12/20/25MHz, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Siglent sdg1010 device front 8116.png|link=Siglent SDG1010|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Siglent SDG1010]] (10MHz, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Velleman PCG10|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Velleman PCG10]] (1MHz, PC-based, LPT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Frequency counters ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Hantek DDS-3X25 top.png|link=Hantek DDS-3X25|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Hantek DDS-3X25]] (50MHz, PC-based, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:HP 5350B.png|link=HP 5350B|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[HP 5350B]] (10Hz-20GHz, GPIB)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RF receivers ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Per vices noctar.png|link=Per Vices Noctar|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Per Vices Noctar]] (100kHz-4GHz, IQ modulator/demodulator, PCIe)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Spectrum analyzers ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Sigrok_logo_no_text_transparent_512.png|link=Siglent SSA3000X series|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Siglent SSA3000X series]] (9kHz-2.1GHz, USB, Ethernet)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Power supplies ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Atten PPS3203T-3S.png|link=Atten PPS3203T-3S|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Atten PPS3203T-3S]] (3ch, 2x 0-32V, 1x 0-6V at 0-3A, USB&amp;amp;RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Chroma_61604_front.png|link=Chroma 61604|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Chroma 61604]] (1ch, 0-300V, 0-16A, 2kVA)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Conrad_digi_35_cpu_logo.png|link=Conrad DIGI 35 CPU|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Conrad DIGI 35 CPU]] (1ch, 0-35V / 0-2.55A, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Agilent-66312a-mugshot.png|link=HP 66312A|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[HP 66312A]] (1ch, 0-20V / 0-2A, GPIB&amp;amp;RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:HP-6632B_mugshot.png|link=HP 6632B|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[HP 6632B]] (1ch, 0-20V / 0-5A, GPIB&amp;amp;RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok logo no text transparent 512.png|link=GW Instek GPD series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[GW Instek GPD series]] (2/3/4ch, 0-30V / 0-3A, USB/serial)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Velleman ps3005d mugshot.png|link=Korad KAxxxxP series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Korad KAxxxxP series]] (1ch, 0-30V / 0-5A, USB&amp;amp;RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Manson hcs3202.png|link=Manson HCS-3xxx series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Manson HCS-3xxx series]] (1ch, 1-36V / 0-10A, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Motech_LPS-301_logo.png|link=Motech LPS-301|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Motech LPS-301]] (1ch, 1-32V / 0-2A, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Philips PM2813.png|link=Philips PM2800 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;Fluke/Philips PM2800 series&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rigol DP832.png|link=Rigol DP800 series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rigol DP800 series]]&amp;lt;/small&amp;gt;&lt;br /&gt;
File:rs_hmc8043_mugshot.png|link=Rohde&amp;amp;Schwarz HMC 8043|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[Rohde&amp;amp;Schwarz HMC 8043]] (3ch, 0-32V / 0-3A, USB&amp;amp;LXI)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Rdtech-dps.png|link=RDTech DPS series|[[File:Nuvola OK.png|16px]] &amp;lt;small&amp;gt;[[RDTech DPS series]] (1ch, various, USB/BT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sigrok logo no text transparent 512.png|link=Voltcraft 18220|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Voltcraft 18220]] (1ch, 0-40V/0-5A, RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Sigrok logo no text transparent 512.png|link=Delta Elektronika SM3300 series|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Delta Elektronika SM3300 series]] (1ch, 18V-660V/3.3kW, USB, RS232, RS485, RS422)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GPIB interfaces ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress [[File:Nuvola Orange.png|16px]] / planned [[File:Nuvola Red.png|16px]]:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;100px&amp;quot; heights=&amp;quot;100px&amp;quot;&amp;gt;&lt;br /&gt;
File:Sigrok logo no text transparent 512.png|link=AR488|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[AR488]] (Arduino based, USB/RS232)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Beiming_s82357.png|link=Beiming S82357|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Beiming S82357]] (hardware-based, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:ICS 488-USB.png|link=ICS 488-USB|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[ICS 488-USB]] (hardware-based, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:GPIB-USB 82357B clone.png|link=GPIB-USB 82357B clone|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[GPIB-USB 82357B clone]] (hardware-based, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:NI GPIB-ENET.png|link=National Instruments GPIB-ENET|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[National Instruments GPIB-ENET]] (hardware-based, Ethernet)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:NI GPIB-USB-HS.png|link=National Instruments GPIB-USB-HS|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[National Instruments GPIB-USB-HS]] (hardware-based, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Prologix-usb.png|link=Prologix GPIB-USB|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Prologix GPIB-USB]] (firmware-based, USB)&amp;lt;/small&amp;gt;&lt;br /&gt;
File:GalvantGPIBUSBrev4.JPG|link=Galvant GPIBUSB|[[File:Nuvola Red.png|16px]] &amp;lt;small&amp;gt;[[Galvant GPIBUSB]] (firmware-based, USB, OSHW)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Potential other candidates ==&lt;br /&gt;
&lt;br /&gt;
If you own any other logic analyzers, oscilloscopes, multimeters, dataloggers, ... and want to add support for them in sigrok (or donate/lend devices to developers), please let us know. We&amp;#039;re always happy to add more hardware support! Join the [https://lists.sourceforge.net/lists/listinfo/sigrok-devel mailing list] or ask on [irc://chat.freenode.net/sigrok IRC #sigrok] if you want to help out.&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=RDTech_UM_series&amp;diff=14877</id>
		<title>RDTech UM series</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=RDTech_UM_series&amp;diff=14877"/>
		<updated>2020-02-14T21:41:35Z</updated>

		<summary type="html">&lt;p&gt;Andysan: /* Checksum (UM34C) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox multimeter&lt;br /&gt;
| image               = [[File:UM24C_display.jpg|180px]]&lt;br /&gt;
| name                = RDTech &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;&lt;br /&gt;
| status              = planned&lt;br /&gt;
| connectivity        = serial over Bluetooth&lt;br /&gt;
| features            = measures USB devices; voltage, amperage, wattage, resistance, capacity, temperature, voltage over USB data lines (charging mode), color display (26x26mm, 128x128px)&lt;br /&gt;
| website             = [http://rdtech.aliexpress.com/ rdtech.aliexpress.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== What is it? ==&lt;br /&gt;
&lt;br /&gt;
The RDTech &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; (~$12 USD), &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; (~$16 USD) and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; (~$18 USD) are USB load meters which can measure various properties for USB devices including their voltage, amperage, wattage, resistance, capacity, temperature, data line voltage, and charging mode. They can track up to 11 groups of mAh/mWh capacity data, one of which is ephemeral (and disappears after replugging the device), nine of which are persistent until cleared, and one of which whose recording is only activated above a certain current threshold (and which can be recorded in parallel with any of the other 10 data groups). They also allow graphing the amperage and voltage over time, on the device&amp;#039;s display itself, as well as rotating the display contents into any orientation.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; are extremely similar, but have several differences:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; supports USB-A male / USB-microB female line, USB-A female load.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; supports USB-A male / USB-microB female / USB-C female line, USB-A female / USB-C female load.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; supports USB-A male / USB-microB female / USB-C female line, USB-A female load.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; supports USB 3.0 data passthrough; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; are USB 2.0 only.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; displays and sends 1mV / 0.1mA live resolution, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; are 10mV / 1mA live resolution.  Note that this is applicable for instantaneous view only; aggregates are the same for all three models.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; is maximum 3A current, &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; is 4A, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; is 5A.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; only supports detection of unknown (normal) charging mode, QC2.0 and QC3.0, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; support detecting additional charging modes.  This does not affect the line/load from negotiating a charging mode, just the meter&amp;#039;s ability to detect it.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; have a switch which lets you turn on and off the Bluetooth functionality.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; is not supported by their Apple app, only &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; is the most fully featured of the three, but is missing USB 3.0 data passthrough (&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; only).  If you have to buy one, get the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, but if possible get both the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;.  The &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; is a slightly older product feature-wise.&lt;br /&gt;
&lt;br /&gt;
The meter can be connected to power by plugging it into any one of the supported line inputs (see above; the different line options vary by model).  Besides allowing for different connection options, there is a function within the UI to calculate the impedance of a cable by running a test first directly plugged in to a power supply, then unplugging and running again via the cable.  Otherwise, line functionality is identical no matter which line input you choose.&lt;br /&gt;
&lt;br /&gt;
The manufacturer has indicated that the firmware is not designed to be upgradeable and doesn&amp;#039;t provide updates; nevertheless, the SWIM pin for the on-board STM8 chip is exposed, as are the other necessary pins for STM8 debugging. It&amp;#039;s unclear whether the chip will allow eg. dumping, though.&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s unclear whether measurement of data lines is accurate enough to theoretically be used as a logic analyzer, but given the strange stability of the values during testing (unlike the voltage on the power lines) and the low-end STM8 chip, I suspect it&amp;#039;s not.&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Unlike most devices of this type, these communicate through serial-over-Bluetooth (RFCOMM); the manufacturer provides apps (for Android, Windows and Apple iOS; downloads including device documentation [https://www.mediafire.com/folder/0jt6xx2cyn7jt/UM24 here]), but not protocol documentation nor source code.  On the C models, the Bluetooth board is a separate layer that connects to the serial pads using pogo pins (&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;) or scissor-spring tension pins (&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;).  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; has a generic open module board with a Beken BK3231 chipset. &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; have a shielded DX-BT18 module board (which should be compatible with HC-05/HC-06).&lt;br /&gt;
&lt;br /&gt;
There is no Enable pin passed between the Bluetooth board and the main board; the model name is (presumably) programmed into the module in Command mode at the factory, and the module is always in Data mode during normal operation.  Communication between the boards is done at 9600 8-N-1.&lt;br /&gt;
&lt;br /&gt;
Note that this is specifically about the &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039; models - the UM24, UM25 and UM34 are the exact same functionality but *without* Bluetooth communication.  The UM25 and UM34 have pads which you could solder a TTL adapter to (if you disassemble the device) and get the same functionality.  The UM24 has pads, but the firmware does not appear to support communication.&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
Approximately 500ms after applying power, the device sends 0xff.  However, this is usually before a Bluetooth connection can be established, so the host end will likely never see it.&lt;br /&gt;
&lt;br /&gt;
1-byte commands are sent to the device, and in the case of 0xf0, the device responds with a 130-byte data dump of the current device status.  All other commands return no acknowledgement.&lt;br /&gt;
&lt;br /&gt;
Each device (&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;) has a similar command and response format, but the commands and responses vary slightly by device type.  These variations are documented below.  Unfortunately this means you will need to know what type of device you are communicating with to take full advantage of it.&lt;br /&gt;
&lt;br /&gt;
=== Commands to send ===&lt;br /&gt;
&lt;br /&gt;
Multiple commands may be sent at once; e.g. you could set the recording threshold to 0.28 A and rotate the screen by sending 0xccf2 immediately.  An exception appears to be requesting the data dump; it doesn&amp;#039;t seem to return the 130-byte response unless you wait a bit (approximately 0.2 seconds) after sending other commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Device !! Byte !! Type !! Meaning&lt;br /&gt;
|-----------------------------------&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf0 || device control || Request new data dump; this triggers a 130-byte response&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf1 || device control || Go to next screen&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf2 || device control || Rotate screen&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; || 0xf3 || device control || Switch to next data group&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf3 || device control || Go to the previous screen&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf4 || device control || Clear data group&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xa0 - 0xa9 || device control || Set the selected data group (0-9)&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xb0 - 0xce || configuration || Set recording threshold to a value between 0.00 and 0.30 A (inclusive); add the value after the decimal point to 0xb0 (0.00 is 0xb0, 0.30 is 0xce)&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xd0 - 0xd5 || configuration || Set device backlight level between 0 and 5 (inclusive); 0 is dim, 5 is full brightness&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xe0 - 0xe9 || configuration || Set screen timeout (&amp;quot;screensaver&amp;quot;) between 0 and 9 minutes (inclusive), where 0 disables the screensaver&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Response format ===&lt;br /&gt;
&lt;br /&gt;
All byte offsets are in decimal, and inclusive. All values are big-endian and unsigned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Length !! Type !! Meaning&lt;br /&gt;
|-----------------------------------&lt;br /&gt;
| 0 || 2 || model || Model ID (see below)&lt;br /&gt;
|----&lt;br /&gt;
| 2 || 2 || measurement || Voltage - &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;: millivolts (divide by 1000 to get V), &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;: centivolts (divide by 100 to get V)&lt;br /&gt;
|----&lt;br /&gt;
| 4 || 2 || measurement || Amperage - &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; tenth-milliamps (divide by 10000 to get A), &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;: milliamps (divide by 1000 to get A)&lt;br /&gt;
|----&lt;br /&gt;
| 6 || 4 || measurement || Wattage (in mW, divide by 1000 to get W)&lt;br /&gt;
|----&lt;br /&gt;
| 10 || 2 || measurement || Temperature (in Celsius)&lt;br /&gt;
|----&lt;br /&gt;
| 12 || 2 || measurement || Temperature (in Fahrenheit)&lt;br /&gt;
|----&lt;br /&gt;
| 14 || 2 || configuration || Currently selected data group, zero-indexed&lt;br /&gt;
|----&lt;br /&gt;
| 16 || 80 || measurement || Array of 10 main capacity data groups (where the first one, group 0, is the ephemeral one) -- for each data group: 4 bytes mAh, 4 bytes mWh&lt;br /&gt;
|----&lt;br /&gt;
| 96 || 2 || measurement || USB data line voltage (positive) in centivolts (divide by 100 to get V)&lt;br /&gt;
|----&lt;br /&gt;
| 98 || 2 || measurement || USB data line voltage (negative) in centivolts (divide by 100 to get V)&lt;br /&gt;
|----&lt;br /&gt;
| 100 || 2 || measurement || Charging mode index, see below&lt;br /&gt;
|----&lt;br /&gt;
| 102 || 4 || measurement || mAh from threshold-based recording&lt;br /&gt;
|----&lt;br /&gt;
| 106 || 4 || measurement || mWh from threshold-based recording&lt;br /&gt;
|----&lt;br /&gt;
| 110 || 2 || configuration || Currently configured threshold for recording (in centiamps, divide by 100 to get A)&lt;br /&gt;
|----&lt;br /&gt;
| 112 || 4 || measurement || Duration of threshold recording, in cumulative seconds&lt;br /&gt;
|----&lt;br /&gt;
| 116 || 2 || configuration || Threshold recording active (1 if recording, 0 if not)&lt;br /&gt;
|----&lt;br /&gt;
| 118 || 2 || configuration || Current screen timeout setting, in minutes (0-9, 0 is no screen timeout)&lt;br /&gt;
|----&lt;br /&gt;
| 120 || 2 || configuration || Current backlight setting (0-5, 0 is dim, 5 is full brightness)&lt;br /&gt;
|----&lt;br /&gt;
| 122 || 4 || measurement || Resistance in deci-ohms (divide by 10 to get ohms)&lt;br /&gt;
|----&lt;br /&gt;
| 126 || 2 || configuration || Current screen (zero-indexed, same order as on device)&lt;br /&gt;
|----&lt;br /&gt;
| 128 || 1 || unknown || See below&lt;br /&gt;
|----&lt;br /&gt;
| 129 || 1 || checksum/unknown || Checksum (UM34C) or unknown. See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Known models ===&lt;br /&gt;
&lt;br /&gt;
The Android app uses the first two bytes to determine the model number. The following models are known:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Model&lt;br /&gt;
|----------------&lt;br /&gt;
| 0x0963 || UM24C&lt;br /&gt;
|----&lt;br /&gt;
| 0x09c9 || UM25C&lt;br /&gt;
|----&lt;br /&gt;
| 0x0d4c || UM34C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Charging modes ===&lt;br /&gt;
&lt;br /&gt;
Not all devices support detection of all listed charging modes, but the index between devices is consistent (e.g. index 1 will always be QC2).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Index !! Display !! Meaning&lt;br /&gt;
|-----------------------------------&lt;br /&gt;
| 0 || UNKNOWN || Unknown, or normal (non-custom mode)&lt;br /&gt;
|----&lt;br /&gt;
| 1 || QC2 || Qualcomm Quick Charge 2.0&lt;br /&gt;
|----&lt;br /&gt;
| 2 || QC3 || Qualcomm Quick Charge 3.0&lt;br /&gt;
|----&lt;br /&gt;
| 3 || APP2.4A || Apple, max 2.4 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 4 || APP2.1A || Apple, max 2.1 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 5 || APP1.0A || Apple, max 1.0 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 6 || APP0.5A || Apple, max 0.5 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 7 || DCP1.5A || Dedicated Charging Port, max 1.5 Amp (D+ to D- short)&lt;br /&gt;
|----&lt;br /&gt;
| 8 || SAMSUNG || Samsung (Adaptive Fast Charging?)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unknown response fields ===&lt;br /&gt;
&lt;br /&gt;
Bytes 128+129 are not entirely known yet.  They are believed to be stop markers.&lt;br /&gt;
&lt;br /&gt;
On &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, all observed units seem to be 0xfff1 so far.&lt;br /&gt;
&lt;br /&gt;
On &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;, the last two bytes vary each time the device is polled.  The values drift up and down over time, but will change completely after a device reset.  For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2019-02-09 16:55:35,150 DEBUG: Start: 0x0d4c, end: 0x79cd&lt;br /&gt;
2019-02-09 16:55:47,837 DEBUG: Start: 0x0d4c, end: 0x75f8&lt;br /&gt;
2019-02-09 16:55:49,031 DEBUG: Start: 0x0d4c, end: 0x78c3&lt;br /&gt;
2019-02-09 16:56:08,855 DEBUG: Start: 0x0d4c, end: 0x7bd9&lt;br /&gt;
[reset]&lt;br /&gt;
2019-02-09 16:58:01,091 DEBUG: Start: 0x0d4c, end: 0x2c2d&lt;br /&gt;
2019-02-09 16:58:52,247 DEBUG: Start: 0x0d4c, end: 0x19e5&lt;br /&gt;
2019-02-09 16:59:10,683 DEBUG: Start: 0x0d4c, end: 0x19e5&lt;br /&gt;
2019-02-09 16:59:29,816 DEBUG: Start: 0x0d4c, end: 0x18ea&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are most likely checksums of some sort.  Here&amp;#039;s some full sample dumps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 14 00 44 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8c&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 14 00 45 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8d&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 15 00 46 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8d&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 15 00 46 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8d&lt;br /&gt;
0d 4c 01 fc 00 00 00 00 00 00 00 15 00 46 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Samples 3 and 4 are identical, but were captured at different times.  Samples 1 and 2 have two bytes different (44 -&amp;gt; 45 earlier and 01 -&amp;gt; 00 later) which should have an identical result if it were a simple sum, but result in 688c -&amp;gt; 688d.  Samples 2 and 3 have two bytes different (14 -&amp;gt; 15 and 45 -&amp;gt; 46, a cumulative difference of 2), but both result in 688d.  Samples 4 and 5 have one byte different (fe -&amp;gt; fc), but result in 688d -&amp;gt; 688f.&lt;br /&gt;
&lt;br /&gt;
All of these suggest some sort of &amp;quot;add if even or subtract if odd&amp;quot; iteration, but I haven&amp;#039;t been able to find a process which results in the expected checksum differences.&lt;br /&gt;
&lt;br /&gt;
== Checksum (UM34C) ==&lt;br /&gt;
The last byte of the packet is a checksum and can be calculated using the following Python snippet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def checksum(pkt):&lt;br /&gt;
    positions = [&lt;br /&gt;
        1, 3, 7, 9, 15, 17, 19, 23, 31, 39, 41, 45, 49, 53, 55, 57, 59, 63,&lt;br /&gt;
        67, 69, 73, 79, 83, 89, 97, 99, 109, 111, 113, 119, 121, 127,&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
    csum = 0&lt;br /&gt;
    for pos in positions:&lt;br /&gt;
        csum = csum ^ pkt[pos]&lt;br /&gt;
    return csum&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The checksum only covers odd bytes of the packet!&lt;br /&gt;
&lt;br /&gt;
== Board pictures ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Not great pictures, but hopefully they&amp;#039;ll be useful.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UM24C_board_1.jpg&lt;br /&gt;
File:UM24C_board_2.jpg&lt;br /&gt;
File:UM24C_board_3.jpg&lt;br /&gt;
File:UM24C_board_4.jpg&lt;br /&gt;
File:UM24C_board_5.jpg&lt;br /&gt;
File:UM24C_board_6.jpg&lt;br /&gt;
File:UM24C_board_7.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://rdtech.aliexpress.com/store/923042 RDTech AliExpress store]&lt;br /&gt;
* [https://github.com/rfinnie/rdumtool rdumtool - RDTech &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; Bluetooth interface tool] (Python 3)&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Multimeter]]&lt;br /&gt;
[[Category:Planned‏‎]]&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=RDTech_UM_series&amp;diff=14876</id>
		<title>RDTech UM series</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=RDTech_UM_series&amp;diff=14876"/>
		<updated>2020-02-14T20:08:38Z</updated>

		<summary type="html">&lt;p&gt;Andysan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox multimeter&lt;br /&gt;
| image               = [[File:UM24C_display.jpg|180px]]&lt;br /&gt;
| name                = RDTech &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;&lt;br /&gt;
| status              = planned&lt;br /&gt;
| connectivity        = serial over Bluetooth&lt;br /&gt;
| features            = measures USB devices; voltage, amperage, wattage, resistance, capacity, temperature, voltage over USB data lines (charging mode), color display (26x26mm, 128x128px)&lt;br /&gt;
| website             = [http://rdtech.aliexpress.com/ rdtech.aliexpress.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== What is it? ==&lt;br /&gt;
&lt;br /&gt;
The RDTech &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; (~$12 USD), &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; (~$16 USD) and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; (~$18 USD) are USB load meters which can measure various properties for USB devices including their voltage, amperage, wattage, resistance, capacity, temperature, data line voltage, and charging mode. They can track up to 11 groups of mAh/mWh capacity data, one of which is ephemeral (and disappears after replugging the device), nine of which are persistent until cleared, and one of which whose recording is only activated above a certain current threshold (and which can be recorded in parallel with any of the other 10 data groups). They also allow graphing the amperage and voltage over time, on the device&amp;#039;s display itself, as well as rotating the display contents into any orientation.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; are extremely similar, but have several differences:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; supports USB-A male / USB-microB female line, USB-A female load.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; supports USB-A male / USB-microB female / USB-C female line, USB-A female / USB-C female load.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; supports USB-A male / USB-microB female / USB-C female line, USB-A female load.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; supports USB 3.0 data passthrough; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; are USB 2.0 only.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; displays and sends 1mV / 0.1mA live resolution, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; are 10mV / 1mA live resolution.  Note that this is applicable for instantaneous view only; aggregates are the same for all three models.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; is maximum 3A current, &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; is 4A, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; is 5A.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; only supports detection of unknown (normal) charging mode, QC2.0 and QC3.0, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; support detecting additional charging modes.  This does not affect the line/load from negotiating a charging mode, just the meter&amp;#039;s ability to detect it.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; have a switch which lets you turn on and off the Bluetooth functionality.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; is not supported by their Apple app, only &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; is the most fully featured of the three, but is missing USB 3.0 data passthrough (&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; only).  If you have to buy one, get the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, but if possible get both the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;.  The &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; is a slightly older product feature-wise.&lt;br /&gt;
&lt;br /&gt;
The meter can be connected to power by plugging it into any one of the supported line inputs (see above; the different line options vary by model).  Besides allowing for different connection options, there is a function within the UI to calculate the impedance of a cable by running a test first directly plugged in to a power supply, then unplugging and running again via the cable.  Otherwise, line functionality is identical no matter which line input you choose.&lt;br /&gt;
&lt;br /&gt;
The manufacturer has indicated that the firmware is not designed to be upgradeable and doesn&amp;#039;t provide updates; nevertheless, the SWIM pin for the on-board STM8 chip is exposed, as are the other necessary pins for STM8 debugging. It&amp;#039;s unclear whether the chip will allow eg. dumping, though.&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s unclear whether measurement of data lines is accurate enough to theoretically be used as a logic analyzer, but given the strange stability of the values during testing (unlike the voltage on the power lines) and the low-end STM8 chip, I suspect it&amp;#039;s not.&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Unlike most devices of this type, these communicate through serial-over-Bluetooth (RFCOMM); the manufacturer provides apps (for Android, Windows and Apple iOS; downloads including device documentation [https://www.mediafire.com/folder/0jt6xx2cyn7jt/UM24 here]), but not protocol documentation nor source code.  On the C models, the Bluetooth board is a separate layer that connects to the serial pads using pogo pins (&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;) or scissor-spring tension pins (&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;).  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; has a generic open module board with a Beken BK3231 chipset. &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; have a shielded DX-BT18 module board (which should be compatible with HC-05/HC-06).&lt;br /&gt;
&lt;br /&gt;
There is no Enable pin passed between the Bluetooth board and the main board; the model name is (presumably) programmed into the module in Command mode at the factory, and the module is always in Data mode during normal operation.  Communication between the boards is done at 9600 8-N-1.&lt;br /&gt;
&lt;br /&gt;
Note that this is specifically about the &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039; models - the UM24, UM25 and UM34 are the exact same functionality but *without* Bluetooth communication.  The UM25 and UM34 have pads which you could solder a TTL adapter to (if you disassemble the device) and get the same functionality.  The UM24 has pads, but the firmware does not appear to support communication.&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
Approximately 500ms after applying power, the device sends 0xff.  However, this is usually before a Bluetooth connection can be established, so the host end will likely never see it.&lt;br /&gt;
&lt;br /&gt;
1-byte commands are sent to the device, and in the case of 0xf0, the device responds with a 130-byte data dump of the current device status.  All other commands return no acknowledgement.&lt;br /&gt;
&lt;br /&gt;
Each device (&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;) has a similar command and response format, but the commands and responses vary slightly by device type.  These variations are documented below.  Unfortunately this means you will need to know what type of device you are communicating with to take full advantage of it.&lt;br /&gt;
&lt;br /&gt;
=== Commands to send ===&lt;br /&gt;
&lt;br /&gt;
Multiple commands may be sent at once; e.g. you could set the recording threshold to 0.28 A and rotate the screen by sending 0xccf2 immediately.  An exception appears to be requesting the data dump; it doesn&amp;#039;t seem to return the 130-byte response unless you wait a bit (approximately 0.2 seconds) after sending other commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Device !! Byte !! Type !! Meaning&lt;br /&gt;
|-----------------------------------&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf0 || device control || Request new data dump; this triggers a 130-byte response&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf1 || device control || Go to next screen&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf2 || device control || Rotate screen&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; || 0xf3 || device control || Switch to next data group&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf3 || device control || Go to the previous screen&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf4 || device control || Clear data group&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xa0 - 0xa9 || device control || Set the selected data group (0-9)&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xb0 - 0xce || configuration || Set recording threshold to a value between 0.00 and 0.30 A (inclusive); add the value after the decimal point to 0xb0 (0.00 is 0xb0, 0.30 is 0xce)&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xd0 - 0xd5 || configuration || Set device backlight level between 0 and 5 (inclusive); 0 is dim, 5 is full brightness&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xe0 - 0xe9 || configuration || Set screen timeout (&amp;quot;screensaver&amp;quot;) between 0 and 9 minutes (inclusive), where 0 disables the screensaver&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Response format ===&lt;br /&gt;
&lt;br /&gt;
All byte offsets are in decimal, and inclusive. All values are big-endian and unsigned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Length !! Type !! Meaning&lt;br /&gt;
|-----------------------------------&lt;br /&gt;
| 0 || 2 || model || Model ID (see below)&lt;br /&gt;
|----&lt;br /&gt;
| 2 || 2 || measurement || Voltage - &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;: millivolts (divide by 1000 to get V), &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;: centivolts (divide by 100 to get V)&lt;br /&gt;
|----&lt;br /&gt;
| 4 || 2 || measurement || Amperage - &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; tenth-milliamps (divide by 10000 to get A), &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;: milliamps (divide by 1000 to get A)&lt;br /&gt;
|----&lt;br /&gt;
| 6 || 4 || measurement || Wattage (in mW, divide by 1000 to get W)&lt;br /&gt;
|----&lt;br /&gt;
| 10 || 2 || measurement || Temperature (in Celsius)&lt;br /&gt;
|----&lt;br /&gt;
| 12 || 2 || measurement || Temperature (in Fahrenheit)&lt;br /&gt;
|----&lt;br /&gt;
| 14 || 2 || configuration || Currently selected data group, zero-indexed&lt;br /&gt;
|----&lt;br /&gt;
| 16 || 80 || measurement || Array of 10 main capacity data groups (where the first one, group 0, is the ephemeral one) -- for each data group: 4 bytes mAh, 4 bytes mWh&lt;br /&gt;
|----&lt;br /&gt;
| 96 || 2 || measurement || USB data line voltage (positive) in centivolts (divide by 100 to get V)&lt;br /&gt;
|----&lt;br /&gt;
| 98 || 2 || measurement || USB data line voltage (negative) in centivolts (divide by 100 to get V)&lt;br /&gt;
|----&lt;br /&gt;
| 100 || 2 || measurement || Charging mode index, see below&lt;br /&gt;
|----&lt;br /&gt;
| 102 || 4 || measurement || mAh from threshold-based recording&lt;br /&gt;
|----&lt;br /&gt;
| 106 || 4 || measurement || mWh from threshold-based recording&lt;br /&gt;
|----&lt;br /&gt;
| 110 || 2 || configuration || Currently configured threshold for recording (in centiamps, divide by 100 to get A)&lt;br /&gt;
|----&lt;br /&gt;
| 112 || 4 || measurement || Duration of threshold recording, in cumulative seconds&lt;br /&gt;
|----&lt;br /&gt;
| 116 || 2 || configuration || Threshold recording active (1 if recording, 0 if not)&lt;br /&gt;
|----&lt;br /&gt;
| 118 || 2 || configuration || Current screen timeout setting, in minutes (0-9, 0 is no screen timeout)&lt;br /&gt;
|----&lt;br /&gt;
| 120 || 2 || configuration || Current backlight setting (0-5, 0 is dim, 5 is full brightness)&lt;br /&gt;
|----&lt;br /&gt;
| 122 || 4 || measurement || Resistance in deci-ohms (divide by 10 to get ohms)&lt;br /&gt;
|----&lt;br /&gt;
| 126 || 2 || configuration || Current screen (zero-indexed, same order as on device)&lt;br /&gt;
|----&lt;br /&gt;
| 128 || 1 || unknown || See below&lt;br /&gt;
|----&lt;br /&gt;
| 129 || 1 || checksum/unknown || Checksum (UM34C) or unknown. See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Known models ===&lt;br /&gt;
&lt;br /&gt;
The Android app uses the first two bytes to determine the model number. The following models are known:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Model&lt;br /&gt;
|----------------&lt;br /&gt;
| 0x0963 || UM24C&lt;br /&gt;
|----&lt;br /&gt;
| 0x09c9 || UM25C&lt;br /&gt;
|----&lt;br /&gt;
| 0x0d4c || UM34C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Charging modes ===&lt;br /&gt;
&lt;br /&gt;
Not all devices support detection of all listed charging modes, but the index between devices is consistent (e.g. index 1 will always be QC2).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Index !! Display !! Meaning&lt;br /&gt;
|-----------------------------------&lt;br /&gt;
| 0 || UNKNOWN || Unknown, or normal (non-custom mode)&lt;br /&gt;
|----&lt;br /&gt;
| 1 || QC2 || Qualcomm Quick Charge 2.0&lt;br /&gt;
|----&lt;br /&gt;
| 2 || QC3 || Qualcomm Quick Charge 3.0&lt;br /&gt;
|----&lt;br /&gt;
| 3 || APP2.4A || Apple, max 2.4 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 4 || APP2.1A || Apple, max 2.1 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 5 || APP1.0A || Apple, max 1.0 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 6 || APP0.5A || Apple, max 0.5 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 7 || DCP1.5A || Dedicated Charging Port, max 1.5 Amp (D+ to D- short)&lt;br /&gt;
|----&lt;br /&gt;
| 8 || SAMSUNG || Samsung (Adaptive Fast Charging?)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unknown response fields ===&lt;br /&gt;
&lt;br /&gt;
Bytes 128+129 are not entirely known yet.  They are believed to be stop markers.&lt;br /&gt;
&lt;br /&gt;
On &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, all observed units seem to be 0xfff1 so far.&lt;br /&gt;
&lt;br /&gt;
On &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;, the last two bytes vary each time the device is polled.  The values drift up and down over time, but will change completely after a device reset.  For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2019-02-09 16:55:35,150 DEBUG: Start: 0x0d4c, end: 0x79cd&lt;br /&gt;
2019-02-09 16:55:47,837 DEBUG: Start: 0x0d4c, end: 0x75f8&lt;br /&gt;
2019-02-09 16:55:49,031 DEBUG: Start: 0x0d4c, end: 0x78c3&lt;br /&gt;
2019-02-09 16:56:08,855 DEBUG: Start: 0x0d4c, end: 0x7bd9&lt;br /&gt;
[reset]&lt;br /&gt;
2019-02-09 16:58:01,091 DEBUG: Start: 0x0d4c, end: 0x2c2d&lt;br /&gt;
2019-02-09 16:58:52,247 DEBUG: Start: 0x0d4c, end: 0x19e5&lt;br /&gt;
2019-02-09 16:59:10,683 DEBUG: Start: 0x0d4c, end: 0x19e5&lt;br /&gt;
2019-02-09 16:59:29,816 DEBUG: Start: 0x0d4c, end: 0x18ea&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are most likely checksums of some sort.  Here&amp;#039;s some full sample dumps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 14 00 44 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8c&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 14 00 45 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8d&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 15 00 46 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8d&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 15 00 46 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8d&lt;br /&gt;
0d 4c 01 fc 00 00 00 00 00 00 00 15 00 46 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Samples 3 and 4 are identical, but were captured at different times.  Samples 1 and 2 have two bytes different (44 -&amp;gt; 45 earlier and 01 -&amp;gt; 00 later) which should have an identical result if it were a simple sum, but result in 688c -&amp;gt; 688d.  Samples 2 and 3 have two bytes different (14 -&amp;gt; 15 and 45 -&amp;gt; 46, a cumulative difference of 2), but both result in 688d.  Samples 4 and 5 have one byte different (fe -&amp;gt; fc), but result in 688d -&amp;gt; 688f.&lt;br /&gt;
&lt;br /&gt;
All of these suggest some sort of &amp;quot;add if even or subtract if odd&amp;quot; iteration, but I haven&amp;#039;t been able to find a process which results in the expected checksum differences.&lt;br /&gt;
&lt;br /&gt;
== Checksum (UM34C) ==&lt;br /&gt;
The last byte of the packet is a checksum and can be calculated using the following Python snippet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def checksum(pkt):&lt;br /&gt;
    positions = [&lt;br /&gt;
        17, 7, 127, 69, 113, 3, 9, 53, 19, 89, 59, 67, 57, 39, 23, 49, 31,&lt;br /&gt;
        109, 63, 41, 15, 119, 55, 73, 79, 111, 45, 99, 97, 83, 121, 1]&lt;br /&gt;
&lt;br /&gt;
    csum = 0&lt;br /&gt;
    for pos in positions:&lt;br /&gt;
        csum = csum ^ pkt[pos]&lt;br /&gt;
    return csum&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The checksum only covers odd bytes of the packet!&lt;br /&gt;
&lt;br /&gt;
== Board pictures ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Not great pictures, but hopefully they&amp;#039;ll be useful.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UM24C_board_1.jpg&lt;br /&gt;
File:UM24C_board_2.jpg&lt;br /&gt;
File:UM24C_board_3.jpg&lt;br /&gt;
File:UM24C_board_4.jpg&lt;br /&gt;
File:UM24C_board_5.jpg&lt;br /&gt;
File:UM24C_board_6.jpg&lt;br /&gt;
File:UM24C_board_7.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://rdtech.aliexpress.com/store/923042 RDTech AliExpress store]&lt;br /&gt;
* [https://github.com/rfinnie/rdumtool rdumtool - RDTech &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; Bluetooth interface tool] (Python 3)&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Multimeter]]&lt;br /&gt;
[[Category:Planned‏‎]]&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=RDTech_UM_series&amp;diff=14875</id>
		<title>RDTech UM series</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=RDTech_UM_series&amp;diff=14875"/>
		<updated>2020-02-14T20:08:22Z</updated>

		<summary type="html">&lt;p&gt;Andysan: Add checksum algorithm for UM34C.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox multimeter&lt;br /&gt;
| image               = [[File:UM24C_display.jpg|180px]]&lt;br /&gt;
| name                = RDTech &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;&lt;br /&gt;
| status              = planned&lt;br /&gt;
| connectivity        = serial over Bluetooth&lt;br /&gt;
| features            = measures USB devices; voltage, amperage, wattage, resistance, capacity, temperature, voltage over USB data lines (charging mode), color display (26x26mm, 128x128px)&lt;br /&gt;
| website             = [http://rdtech.aliexpress.com/ rdtech.aliexpress.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== What is it? ==&lt;br /&gt;
&lt;br /&gt;
The RDTech &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; (~$12 USD), &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; (~$16 USD) and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; (~$18 USD) are USB load meters which can measure various properties for USB devices including their voltage, amperage, wattage, resistance, capacity, temperature, data line voltage, and charging mode. They can track up to 11 groups of mAh/mWh capacity data, one of which is ephemeral (and disappears after replugging the device), nine of which are persistent until cleared, and one of which whose recording is only activated above a certain current threshold (and which can be recorded in parallel with any of the other 10 data groups). They also allow graphing the amperage and voltage over time, on the device&amp;#039;s display itself, as well as rotating the display contents into any orientation.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; are extremely similar, but have several differences:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; supports USB-A male / USB-microB female line, USB-A female load.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; supports USB-A male / USB-microB female / USB-C female line, USB-A female / USB-C female load.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; supports USB-A male / USB-microB female / USB-C female line, USB-A female load.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; supports USB 3.0 data passthrough; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; are USB 2.0 only.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; displays and sends 1mV / 0.1mA live resolution, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; are 10mV / 1mA live resolution.  Note that this is applicable for instantaneous view only; aggregates are the same for all three models.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; is maximum 3A current, &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; is 4A, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; is 5A.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; only supports detection of unknown (normal) charging mode, QC2.0 and QC3.0, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; support detecting additional charging modes.  This does not affect the line/load from negotiating a charging mode, just the meter&amp;#039;s ability to detect it.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; have a switch which lets you turn on and off the Bluetooth functionality.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; is not supported by their Apple app, only &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; is the most fully featured of the three, but is missing USB 3.0 data passthrough (&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; only).  If you have to buy one, get the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, but if possible get both the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;.  The &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; is a slightly older product feature-wise.&lt;br /&gt;
&lt;br /&gt;
The meter can be connected to power by plugging it into any one of the supported line inputs (see above; the different line options vary by model).  Besides allowing for different connection options, there is a function within the UI to calculate the impedance of a cable by running a test first directly plugged in to a power supply, then unplugging and running again via the cable.  Otherwise, line functionality is identical no matter which line input you choose.&lt;br /&gt;
&lt;br /&gt;
The manufacturer has indicated that the firmware is not designed to be upgradeable and doesn&amp;#039;t provide updates; nevertheless, the SWIM pin for the on-board STM8 chip is exposed, as are the other necessary pins for STM8 debugging. It&amp;#039;s unclear whether the chip will allow eg. dumping, though.&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s unclear whether measurement of data lines is accurate enough to theoretically be used as a logic analyzer, but given the strange stability of the values during testing (unlike the voltage on the power lines) and the low-end STM8 chip, I suspect it&amp;#039;s not.&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Unlike most devices of this type, these communicate through serial-over-Bluetooth (RFCOMM); the manufacturer provides apps (for Android, Windows and Apple iOS; downloads including device documentation [https://www.mediafire.com/folder/0jt6xx2cyn7jt/UM24 here]), but not protocol documentation nor source code.  On the C models, the Bluetooth board is a separate layer that connects to the serial pads using pogo pins (&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;) or scissor-spring tension pins (&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;).  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; has a generic open module board with a Beken BK3231 chipset. &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; have a shielded DX-BT18 module board (which should be compatible with HC-05/HC-06).&lt;br /&gt;
&lt;br /&gt;
There is no Enable pin passed between the Bluetooth board and the main board; the model name is (presumably) programmed into the module in Command mode at the factory, and the module is always in Data mode during normal operation.  Communication between the boards is done at 9600 8-N-1.&lt;br /&gt;
&lt;br /&gt;
Note that this is specifically about the &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039; models - the UM24, UM25 and UM34 are the exact same functionality but *without* Bluetooth communication.  The UM25 and UM34 have pads which you could solder a TTL adapter to (if you disassemble the device) and get the same functionality.  The UM24 has pads, but the firmware does not appear to support communication.&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
Approximately 500ms after applying power, the device sends 0xff.  However, this is usually before a Bluetooth connection can be established, so the host end will likely never see it.&lt;br /&gt;
&lt;br /&gt;
1-byte commands are sent to the device, and in the case of 0xf0, the device responds with a 130-byte data dump of the current device status.  All other commands return no acknowledgement.&lt;br /&gt;
&lt;br /&gt;
Each device (&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;) has a similar command and response format, but the commands and responses vary slightly by device type.  These variations are documented below.  Unfortunately this means you will need to know what type of device you are communicating with to take full advantage of it.&lt;br /&gt;
&lt;br /&gt;
=== Commands to send ===&lt;br /&gt;
&lt;br /&gt;
Multiple commands may be sent at once; e.g. you could set the recording threshold to 0.28 A and rotate the screen by sending 0xccf2 immediately.  An exception appears to be requesting the data dump; it doesn&amp;#039;t seem to return the 130-byte response unless you wait a bit (approximately 0.2 seconds) after sending other commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Device !! Byte !! Type !! Meaning&lt;br /&gt;
|-----------------------------------&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf0 || device control || Request new data dump; this triggers a 130-byte response&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf1 || device control || Go to next screen&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf2 || device control || Rotate screen&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; || 0xf3 || device control || Switch to next data group&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf3 || device control || Go to the previous screen&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf4 || device control || Clear data group&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xa0 - 0xa9 || device control || Set the selected data group (0-9)&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xb0 - 0xce || configuration || Set recording threshold to a value between 0.00 and 0.30 A (inclusive); add the value after the decimal point to 0xb0 (0.00 is 0xb0, 0.30 is 0xce)&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xd0 - 0xd5 || configuration || Set device backlight level between 0 and 5 (inclusive); 0 is dim, 5 is full brightness&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xe0 - 0xe9 || configuration || Set screen timeout (&amp;quot;screensaver&amp;quot;) between 0 and 9 minutes (inclusive), where 0 disables the screensaver&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Response format ===&lt;br /&gt;
&lt;br /&gt;
All byte offsets are in decimal, and inclusive. All values are big-endian and unsigned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Length !! Type !! Meaning&lt;br /&gt;
|-----------------------------------&lt;br /&gt;
| 0 || 2 || model || Model ID (see below)&lt;br /&gt;
|----&lt;br /&gt;
| 2 || 2 || measurement || Voltage - &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;: millivolts (divide by 1000 to get V), &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;: centivolts (divide by 100 to get V)&lt;br /&gt;
|----&lt;br /&gt;
| 4 || 2 || measurement || Amperage - &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; tenth-milliamps (divide by 10000 to get A), &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;: milliamps (divide by 1000 to get A)&lt;br /&gt;
|----&lt;br /&gt;
| 6 || 4 || measurement || Wattage (in mW, divide by 1000 to get W)&lt;br /&gt;
|----&lt;br /&gt;
| 10 || 2 || measurement || Temperature (in Celsius)&lt;br /&gt;
|----&lt;br /&gt;
| 12 || 2 || measurement || Temperature (in Fahrenheit)&lt;br /&gt;
|----&lt;br /&gt;
| 14 || 2 || configuration || Currently selected data group, zero-indexed&lt;br /&gt;
|----&lt;br /&gt;
| 16 || 80 || measurement || Array of 10 main capacity data groups (where the first one, group 0, is the ephemeral one) -- for each data group: 4 bytes mAh, 4 bytes mWh&lt;br /&gt;
|----&lt;br /&gt;
| 96 || 2 || measurement || USB data line voltage (positive) in centivolts (divide by 100 to get V)&lt;br /&gt;
|----&lt;br /&gt;
| 98 || 2 || measurement || USB data line voltage (negative) in centivolts (divide by 100 to get V)&lt;br /&gt;
|----&lt;br /&gt;
| 100 || 2 || measurement || Charging mode index, see below&lt;br /&gt;
|----&lt;br /&gt;
| 102 || 4 || measurement || mAh from threshold-based recording&lt;br /&gt;
|----&lt;br /&gt;
| 106 || 4 || measurement || mWh from threshold-based recording&lt;br /&gt;
|----&lt;br /&gt;
| 110 || 2 || configuration || Currently configured threshold for recording (in centiamps, divide by 100 to get A)&lt;br /&gt;
|----&lt;br /&gt;
| 112 || 4 || measurement || Duration of threshold recording, in cumulative seconds&lt;br /&gt;
|----&lt;br /&gt;
| 116 || 2 || configuration || Threshold recording active (1 if recording, 0 if not)&lt;br /&gt;
|----&lt;br /&gt;
| 118 || 2 || configuration || Current screen timeout setting, in minutes (0-9, 0 is no screen timeout)&lt;br /&gt;
|----&lt;br /&gt;
| 120 || 2 || configuration || Current backlight setting (0-5, 0 is dim, 5 is full brightness)&lt;br /&gt;
|----&lt;br /&gt;
| 122 || 4 || measurement || Resistance in deci-ohms (divide by 10 to get ohms)&lt;br /&gt;
|----&lt;br /&gt;
| 126 || 2 || configuration || Current screen (zero-indexed, same order as on device)&lt;br /&gt;
|----&lt;br /&gt;
| 128 || 1 || unknown || See below&lt;br /&gt;
|----&lt;br /&gt;
| 129 || 1 || checksum/unknown || Checksum (UM34C) or unknown. See below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Known models ===&lt;br /&gt;
&lt;br /&gt;
The Android app uses the first two bytes to determine the model number. The following models are known:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Model&lt;br /&gt;
|----------------&lt;br /&gt;
| 0x0963 || UM24C&lt;br /&gt;
|----&lt;br /&gt;
| 0x09c9 || UM25C&lt;br /&gt;
|----&lt;br /&gt;
| 0x0d4c || UM35C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Charging modes ===&lt;br /&gt;
&lt;br /&gt;
Not all devices support detection of all listed charging modes, but the index between devices is consistent (e.g. index 1 will always be QC2).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Index !! Display !! Meaning&lt;br /&gt;
|-----------------------------------&lt;br /&gt;
| 0 || UNKNOWN || Unknown, or normal (non-custom mode)&lt;br /&gt;
|----&lt;br /&gt;
| 1 || QC2 || Qualcomm Quick Charge 2.0&lt;br /&gt;
|----&lt;br /&gt;
| 2 || QC3 || Qualcomm Quick Charge 3.0&lt;br /&gt;
|----&lt;br /&gt;
| 3 || APP2.4A || Apple, max 2.4 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 4 || APP2.1A || Apple, max 2.1 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 5 || APP1.0A || Apple, max 1.0 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 6 || APP0.5A || Apple, max 0.5 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 7 || DCP1.5A || Dedicated Charging Port, max 1.5 Amp (D+ to D- short)&lt;br /&gt;
|----&lt;br /&gt;
| 8 || SAMSUNG || Samsung (Adaptive Fast Charging?)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unknown response fields ===&lt;br /&gt;
&lt;br /&gt;
Bytes 128+129 are not entirely known yet.  They are believed to be stop markers.&lt;br /&gt;
&lt;br /&gt;
On &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, all observed units seem to be 0xfff1 so far.&lt;br /&gt;
&lt;br /&gt;
On &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;, the last two bytes vary each time the device is polled.  The values drift up and down over time, but will change completely after a device reset.  For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2019-02-09 16:55:35,150 DEBUG: Start: 0x0d4c, end: 0x79cd&lt;br /&gt;
2019-02-09 16:55:47,837 DEBUG: Start: 0x0d4c, end: 0x75f8&lt;br /&gt;
2019-02-09 16:55:49,031 DEBUG: Start: 0x0d4c, end: 0x78c3&lt;br /&gt;
2019-02-09 16:56:08,855 DEBUG: Start: 0x0d4c, end: 0x7bd9&lt;br /&gt;
[reset]&lt;br /&gt;
2019-02-09 16:58:01,091 DEBUG: Start: 0x0d4c, end: 0x2c2d&lt;br /&gt;
2019-02-09 16:58:52,247 DEBUG: Start: 0x0d4c, end: 0x19e5&lt;br /&gt;
2019-02-09 16:59:10,683 DEBUG: Start: 0x0d4c, end: 0x19e5&lt;br /&gt;
2019-02-09 16:59:29,816 DEBUG: Start: 0x0d4c, end: 0x18ea&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are most likely checksums of some sort.  Here&amp;#039;s some full sample dumps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 14 00 44 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8c&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 14 00 45 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8d&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 15 00 46 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8d&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 15 00 46 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8d&lt;br /&gt;
0d 4c 01 fc 00 00 00 00 00 00 00 15 00 46 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Samples 3 and 4 are identical, but were captured at different times.  Samples 1 and 2 have two bytes different (44 -&amp;gt; 45 earlier and 01 -&amp;gt; 00 later) which should have an identical result if it were a simple sum, but result in 688c -&amp;gt; 688d.  Samples 2 and 3 have two bytes different (14 -&amp;gt; 15 and 45 -&amp;gt; 46, a cumulative difference of 2), but both result in 688d.  Samples 4 and 5 have one byte different (fe -&amp;gt; fc), but result in 688d -&amp;gt; 688f.&lt;br /&gt;
&lt;br /&gt;
All of these suggest some sort of &amp;quot;add if even or subtract if odd&amp;quot; iteration, but I haven&amp;#039;t been able to find a process which results in the expected checksum differences.&lt;br /&gt;
&lt;br /&gt;
== Checksum (UM34C) ==&lt;br /&gt;
The last byte of the packet is a checksum and can be calculated using the following Python snippet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def checksum(pkt):&lt;br /&gt;
    positions = [&lt;br /&gt;
        17, 7, 127, 69, 113, 3, 9, 53, 19, 89, 59, 67, 57, 39, 23, 49, 31,&lt;br /&gt;
        109, 63, 41, 15, 119, 55, 73, 79, 111, 45, 99, 97, 83, 121, 1]&lt;br /&gt;
&lt;br /&gt;
    csum = 0&lt;br /&gt;
    for pos in positions:&lt;br /&gt;
        csum = csum ^ pkt[pos]&lt;br /&gt;
    return csum&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The checksum only covers odd bytes of the packet!&lt;br /&gt;
&lt;br /&gt;
== Board pictures ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Not great pictures, but hopefully they&amp;#039;ll be useful.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UM24C_board_1.jpg&lt;br /&gt;
File:UM24C_board_2.jpg&lt;br /&gt;
File:UM24C_board_3.jpg&lt;br /&gt;
File:UM24C_board_4.jpg&lt;br /&gt;
File:UM24C_board_5.jpg&lt;br /&gt;
File:UM24C_board_6.jpg&lt;br /&gt;
File:UM24C_board_7.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://rdtech.aliexpress.com/store/923042 RDTech AliExpress store]&lt;br /&gt;
* [https://github.com/rfinnie/rdumtool rdumtool - RDTech &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; Bluetooth interface tool] (Python 3)&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Multimeter]]&lt;br /&gt;
[[Category:Planned‏‎]]&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=RDTech_UM_series&amp;diff=14874</id>
		<title>RDTech UM series</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=RDTech_UM_series&amp;diff=14874"/>
		<updated>2020-02-14T18:22:40Z</updated>

		<summary type="html">&lt;p&gt;Andysan: First two bytes of poll response verified as model ID in Android app&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox multimeter&lt;br /&gt;
| image               = [[File:UM24C_display.jpg|180px]]&lt;br /&gt;
| name                = RDTech &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;&lt;br /&gt;
| status              = planned&lt;br /&gt;
| connectivity        = serial over Bluetooth&lt;br /&gt;
| features            = measures USB devices; voltage, amperage, wattage, resistance, capacity, temperature, voltage over USB data lines (charging mode), color display (26x26mm, 128x128px)&lt;br /&gt;
| website             = [http://rdtech.aliexpress.com/ rdtech.aliexpress.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== What is it? ==&lt;br /&gt;
&lt;br /&gt;
The RDTech &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; (~$12 USD), &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; (~$16 USD) and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; (~$18 USD) are USB load meters which can measure various properties for USB devices including their voltage, amperage, wattage, resistance, capacity, temperature, data line voltage, and charging mode. They can track up to 11 groups of mAh/mWh capacity data, one of which is ephemeral (and disappears after replugging the device), nine of which are persistent until cleared, and one of which whose recording is only activated above a certain current threshold (and which can be recorded in parallel with any of the other 10 data groups). They also allow graphing the amperage and voltage over time, on the device&amp;#039;s display itself, as well as rotating the display contents into any orientation.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; are extremely similar, but have several differences:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; supports USB-A male / USB-microB female line, USB-A female load.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; supports USB-A male / USB-microB female / USB-C female line, USB-A female / USB-C female load.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; supports USB-A male / USB-microB female / USB-C female line, USB-A female load.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; supports USB 3.0 data passthrough; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; are USB 2.0 only.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; displays and sends 1mV / 0.1mA live resolution, &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; are 10mV / 1mA live resolution.  Note that this is applicable for instantaneous view only; aggregates are the same for all three models.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; is maximum 3A current, &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; is 4A, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; is 5A.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; only supports detection of unknown (normal) charging mode, QC2.0 and QC3.0, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; support detecting additional charging modes.  This does not affect the line/load from negotiating a charging mode, just the meter&amp;#039;s ability to detect it.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; have a switch which lets you turn on and off the Bluetooth functionality.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; is not supported by their Apple app, only &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; is the most fully featured of the three, but is missing USB 3.0 data passthrough (&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; only).  If you have to buy one, get the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, but if possible get both the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;.  The &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; is a slightly older product feature-wise.&lt;br /&gt;
&lt;br /&gt;
The meter can be connected to power by plugging it into any one of the supported line inputs (see above; the different line options vary by model).  Besides allowing for different connection options, there is a function within the UI to calculate the impedance of a cable by running a test first directly plugged in to a power supply, then unplugging and running again via the cable.  Otherwise, line functionality is identical no matter which line input you choose.&lt;br /&gt;
&lt;br /&gt;
The manufacturer has indicated that the firmware is not designed to be upgradeable and doesn&amp;#039;t provide updates; nevertheless, the SWIM pin for the on-board STM8 chip is exposed, as are the other necessary pins for STM8 debugging. It&amp;#039;s unclear whether the chip will allow eg. dumping, though.&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s unclear whether measurement of data lines is accurate enough to theoretically be used as a logic analyzer, but given the strange stability of the values during testing (unlike the voltage on the power lines) and the low-end STM8 chip, I suspect it&amp;#039;s not.&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Unlike most devices of this type, these communicate through serial-over-Bluetooth (RFCOMM); the manufacturer provides apps (for Android, Windows and Apple iOS; downloads including device documentation [https://www.mediafire.com/folder/0jt6xx2cyn7jt/UM24 here]), but not protocol documentation nor source code.  On the C models, the Bluetooth board is a separate layer that connects to the serial pads using pogo pins (&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;) or scissor-spring tension pins (&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;).  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; has a generic open module board with a Beken BK3231 chipset. &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; have a shielded DX-BT18 module board (which should be compatible with HC-05/HC-06).&lt;br /&gt;
&lt;br /&gt;
There is no Enable pin passed between the Bluetooth board and the main board; the model name is (presumably) programmed into the module in Command mode at the factory, and the module is always in Data mode during normal operation.  Communication between the boards is done at 9600 8-N-1.&lt;br /&gt;
&lt;br /&gt;
Note that this is specifically about the &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039; models - the UM24, UM25 and UM34 are the exact same functionality but *without* Bluetooth communication.  The UM25 and UM34 have pads which you could solder a TTL adapter to (if you disassemble the device) and get the same functionality.  The UM24 has pads, but the firmware does not appear to support communication.&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
Approximately 500ms after applying power, the device sends 0xff.  However, this is usually before a Bluetooth connection can be established, so the host end will likely never see it.&lt;br /&gt;
&lt;br /&gt;
1-byte commands are sent to the device, and in the case of 0xf0, the device responds with a 130-byte data dump of the current device status.  All other commands return no acknowledgement.&lt;br /&gt;
&lt;br /&gt;
Each device (&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;) has a similar command and response format, but the commands and responses vary slightly by device type.  These variations are documented below.  Unfortunately this means you will need to know what type of device you are communicating with to take full advantage of it.&lt;br /&gt;
&lt;br /&gt;
=== Commands to send ===&lt;br /&gt;
&lt;br /&gt;
Multiple commands may be sent at once; e.g. you could set the recording threshold to 0.28 A and rotate the screen by sending 0xccf2 immediately.  An exception appears to be requesting the data dump; it doesn&amp;#039;t seem to return the 130-byte response unless you wait a bit (approximately 0.2 seconds) after sending other commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Device !! Byte !! Type !! Meaning&lt;br /&gt;
|-----------------------------------&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf0 || device control || Request new data dump; this triggers a 130-byte response&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf1 || device control || Go to next screen&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf2 || device control || Rotate screen&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; || 0xf3 || device control || Switch to next data group&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf3 || device control || Go to the previous screen&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xf4 || device control || Clear data group&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xa0 - 0xa9 || device control || Set the selected data group (0-9)&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xb0 - 0xce || configuration || Set recording threshold to a value between 0.00 and 0.30 A (inclusive); add the value after the decimal point to 0xb0 (0.00 is 0xb0, 0.30 is 0xce)&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xd0 - 0xd5 || configuration || Set device backlight level between 0 and 5 (inclusive); 0 is dim, 5 is full brightness&lt;br /&gt;
|----&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; || 0xe0 - 0xe9 || configuration || Set screen timeout (&amp;quot;screensaver&amp;quot;) between 0 and 9 minutes (inclusive), where 0 disables the screensaver&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Response format ===&lt;br /&gt;
&lt;br /&gt;
All byte offsets are in decimal, and inclusive. All values are big-endian and unsigned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Length !! Type !! Meaning&lt;br /&gt;
|-----------------------------------&lt;br /&gt;
| 0 || 2 || model || Model ID (see below)&lt;br /&gt;
|----&lt;br /&gt;
| 2 || 2 || measurement || Voltage - &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;: millivolts (divide by 1000 to get V), &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;: centivolts (divide by 100 to get V)&lt;br /&gt;
|----&lt;br /&gt;
| 4 || 2 || measurement || Amperage - &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt; tenth-milliamps (divide by 10000 to get A), &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;: milliamps (divide by 1000 to get A)&lt;br /&gt;
|----&lt;br /&gt;
| 6 || 4 || measurement || Wattage (in mW, divide by 1000 to get W)&lt;br /&gt;
|----&lt;br /&gt;
| 10 || 2 || measurement || Temperature (in Celsius)&lt;br /&gt;
|----&lt;br /&gt;
| 12 || 2 || measurement || Temperature (in Fahrenheit)&lt;br /&gt;
|----&lt;br /&gt;
| 14 || 2 || configuration || Currently selected data group, zero-indexed&lt;br /&gt;
|----&lt;br /&gt;
| 16 || 80 || measurement || Array of 10 main capacity data groups (where the first one, group 0, is the ephemeral one) -- for each data group: 4 bytes mAh, 4 bytes mWh&lt;br /&gt;
|----&lt;br /&gt;
| 96 || 2 || measurement || USB data line voltage (positive) in centivolts (divide by 100 to get V)&lt;br /&gt;
|----&lt;br /&gt;
| 98 || 2 || measurement || USB data line voltage (negative) in centivolts (divide by 100 to get V)&lt;br /&gt;
|----&lt;br /&gt;
| 100 || 2 || measurement || Charging mode index, see below&lt;br /&gt;
|----&lt;br /&gt;
| 102 || 4 || measurement || mAh from threshold-based recording&lt;br /&gt;
|----&lt;br /&gt;
| 106 || 4 || measurement || mWh from threshold-based recording&lt;br /&gt;
|----&lt;br /&gt;
| 110 || 2 || configuration || Currently configured threshold for recording (in centiamps, divide by 100 to get A)&lt;br /&gt;
|----&lt;br /&gt;
| 112 || 4 || measurement || Duration of threshold recording, in cumulative seconds&lt;br /&gt;
|----&lt;br /&gt;
| 116 || 2 || configuration || Threshold recording active (1 if recording, 0 if not)&lt;br /&gt;
|----&lt;br /&gt;
| 118 || 2 || configuration || Current screen timeout setting, in minutes (0-9, 0 is no screen timeout)&lt;br /&gt;
|----&lt;br /&gt;
| 120 || 2 || configuration || Current backlight setting (0-5, 0 is dim, 5 is full brightness)&lt;br /&gt;
|----&lt;br /&gt;
| 122 || 4 || measurement || Resistance in deci-ohms (divide by 10 to get ohms)&lt;br /&gt;
|----&lt;br /&gt;
| 126 || 2 || configuration || Current screen (zero-indexed, same order as on device)&lt;br /&gt;
|----&lt;br /&gt;
| 128 || 2 || unknown || See below&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Known models ===&lt;br /&gt;
&lt;br /&gt;
The Android app uses the first two bytes to determine the model number. The following models are known:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Model&lt;br /&gt;
|----------------&lt;br /&gt;
| 0x0963 || UM24C&lt;br /&gt;
|----&lt;br /&gt;
| 0x09c9 || UM25C&lt;br /&gt;
|----&lt;br /&gt;
| 0x0d4c || UM35C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Charging modes ===&lt;br /&gt;
&lt;br /&gt;
Not all devices support detection of all listed charging modes, but the index between devices is consistent (e.g. index 1 will always be QC2).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Index !! Display !! Meaning&lt;br /&gt;
|-----------------------------------&lt;br /&gt;
| 0 || UNKNOWN || Unknown, or normal (non-custom mode)&lt;br /&gt;
|----&lt;br /&gt;
| 1 || QC2 || Qualcomm Quick Charge 2.0&lt;br /&gt;
|----&lt;br /&gt;
| 2 || QC3 || Qualcomm Quick Charge 3.0&lt;br /&gt;
|----&lt;br /&gt;
| 3 || APP2.4A || Apple, max 2.4 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 4 || APP2.1A || Apple, max 2.1 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 5 || APP1.0A || Apple, max 1.0 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 6 || APP0.5A || Apple, max 0.5 Amp&lt;br /&gt;
|----&lt;br /&gt;
| 7 || DCP1.5A || Dedicated Charging Port, max 1.5 Amp (D+ to D- short)&lt;br /&gt;
|----&lt;br /&gt;
| 8 || SAMSUNG || Samsung (Adaptive Fast Charging?)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unknown response fields ===&lt;br /&gt;
&lt;br /&gt;
Bytes 128+129 are not entirely known yet.  They are believed to be stop markers.&lt;br /&gt;
&lt;br /&gt;
On &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;, all observed units seem to be 0xfff1 so far.&lt;br /&gt;
&lt;br /&gt;
On &amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt;, the last two bytes vary each time the device is polled.  The values drift up and down over time, but will change completely after a device reset.  For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2019-02-09 16:55:35,150 DEBUG: Start: 0x0d4c, end: 0x79cd&lt;br /&gt;
2019-02-09 16:55:47,837 DEBUG: Start: 0x0d4c, end: 0x75f8&lt;br /&gt;
2019-02-09 16:55:49,031 DEBUG: Start: 0x0d4c, end: 0x78c3&lt;br /&gt;
2019-02-09 16:56:08,855 DEBUG: Start: 0x0d4c, end: 0x7bd9&lt;br /&gt;
[reset]&lt;br /&gt;
2019-02-09 16:58:01,091 DEBUG: Start: 0x0d4c, end: 0x2c2d&lt;br /&gt;
2019-02-09 16:58:52,247 DEBUG: Start: 0x0d4c, end: 0x19e5&lt;br /&gt;
2019-02-09 16:59:10,683 DEBUG: Start: 0x0d4c, end: 0x19e5&lt;br /&gt;
2019-02-09 16:59:29,816 DEBUG: Start: 0x0d4c, end: 0x18ea&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are most likely checksums of some sort.  Here&amp;#039;s some full sample dumps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 14 00 44 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8c&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 14 00 45 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8d&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 15 00 46 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8d&lt;br /&gt;
0d 4c 01 fe 00 00 00 00 00 00 00 15 00 46 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8d&lt;br /&gt;
0d 4c 01 fc 00 00 00 00 00 00 00 15 00 46 00 00 00 00 00 0b 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 02 00 04 00 01 86 9f 00 00 68 8f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Samples 3 and 4 are identical, but were captured at different times.  Samples 1 and 2 have two bytes different (44 -&amp;gt; 45 earlier and 01 -&amp;gt; 00 later) which should have an identical result if it were a simple sum, but result in 688c -&amp;gt; 688d.  Samples 2 and 3 have two bytes different (14 -&amp;gt; 15 and 45 -&amp;gt; 46, a cumulative difference of 2), but both result in 688d.  Samples 4 and 5 have one byte different (fe -&amp;gt; fc), but result in 688d -&amp;gt; 688f.&lt;br /&gt;
&lt;br /&gt;
All of these suggest some sort of &amp;quot;add if even or subtract if odd&amp;quot; iteration, but I haven&amp;#039;t been able to find a process which results in the expected checksum differences.&lt;br /&gt;
&lt;br /&gt;
== Board pictures ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Not great pictures, but hopefully they&amp;#039;ll be useful.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UM24C_board_1.jpg&lt;br /&gt;
File:UM24C_board_2.jpg&lt;br /&gt;
File:UM24C_board_3.jpg&lt;br /&gt;
File:UM24C_board_4.jpg&lt;br /&gt;
File:UM24C_board_5.jpg&lt;br /&gt;
File:UM24C_board_6.jpg&lt;br /&gt;
File:UM24C_board_7.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://rdtech.aliexpress.com/store/923042 RDTech AliExpress store]&lt;br /&gt;
* [https://github.com/rfinnie/rdumtool rdumtool - RDTech &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UM24C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;UM25C&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;color:darkorange&amp;quot;&amp;gt;UM34C&amp;lt;/span&amp;gt; Bluetooth interface tool] (Python 3)&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Multimeter]]&lt;br /&gt;
[[Category:Planned‏‎]]&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=RDTech_UM_series&amp;diff=13850</id>
		<title>RDTech UM series</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=RDTech_UM_series&amp;diff=13850"/>
		<updated>2018-10-31T19:49:36Z</updated>

		<summary type="html">&lt;p&gt;Andysan: /* Protocol */ Update protocol with new fields and describe start/end markers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox multimeter&lt;br /&gt;
| image               = [[File:UM24C_display.jpg|180px]]&lt;br /&gt;
| name                = RDTech UM24C&lt;br /&gt;
| connectivity        = serial over Bluetooth&lt;br /&gt;
| features            = measures USB devices; voltage, amperage, wattage, resistance, capacity, temperature, voltage over USB data lines (charging mode)&lt;br /&gt;
| website             = [http://rdtech.aliexpress.com/ rdtech.aliexpress.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== What is it? ==&lt;br /&gt;
&lt;br /&gt;
A ~$13 USB load meter; it measures various properties for USB devices including their voltage, amperage, wattage, resistance, capacity, temperature, data line voltage, and charging mode. It can track up to 11 groups of mAh/mWh capacity data, one of which is ephemeral (and disappears after replugging the device), nine of which are persistent until cleared, and one of which whose recording is only activated above a certain current threshold (and which can be recorded in parallel with any of the other 10 data groups). It also allows graphing the amperage and voltage over time, on the device&amp;#039;s display itself, as well as rotating the display contents into any orientation.&lt;br /&gt;
&lt;br /&gt;
Unlike most devices of this type, this one communicates through serial-over-Bluetooth; the manufacturer provides apps (for Android and Windows, downloads including device documentation [https://www.mediafire.com/folder/0jt6xx2cyn7jt/UM24 here]), but not protocol documentation nor source code.&lt;br /&gt;
&lt;br /&gt;
Note that this is specifically about the UM24&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039; - the UM24 is the version *without* Bluetooth communication, although it&amp;#039;s unclear whether the serial pads are still exposed and functional on that model. On the C model, the Bluetooth board is a separate layer (using an off-the-shelf serial-to-Bluetooth module) that connects to the serial pads using pogo pins.&lt;br /&gt;
&lt;br /&gt;
The manufacturer has indicated that the firmware is not designed to be upgradeable and doesn&amp;#039;t provide updates; nevertheless, the SWIM pin for the on-board STM8 chip is exposed, as are the other necessary pins for STM8 debugging. It&amp;#039;s unclear whether the chip will allow eg. dumping, though.&lt;br /&gt;
&lt;br /&gt;
The load meter can be connected either by plugging it in directly using its USB male plug end, or by connecting it using a cable and the micro-USB port on top. These are functionally equivalent; in both cases, both power and data are passed through and measured in the same way. I&amp;#039;ve not observed any difference in measurements between these two modes of operation.&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s unclear whether measurement of data lines is accurate enough to theoretically be used as a logic analyzer, but given the strange stability of the values during testing (unlike the voltage on the power lines) and the low-end STM8 chip, I suspect it&amp;#039;s not.&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
Clearer documentation (as well as a JS implementation of the protocol) are coming soon, but below are my rough notes of the protocol, that I&amp;#039;ve figured out by reverse-engineering the Android application. The device won&amp;#039;t auto-send any data; you&amp;#039;re expected to send F0 any time you want new data, eg. on a timed loop.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
All data returned by the device consists of measurements and configuration status, in 130-byte chunks. To my knowledge, it will never send any other data. All bytes below are displayed in hex format; every command is a single byte.&lt;br /&gt;
&lt;br /&gt;
# Commands to send:&lt;br /&gt;
F0 - Request new data dump; this triggers a 130-byte response&lt;br /&gt;
F1 - (device control) Go to next screen&lt;br /&gt;
F2 - (device control) Rotate screen&lt;br /&gt;
F3 - (device control) Switch to next data group&lt;br /&gt;
F4 - (device control) Clear data group&lt;br /&gt;
Bx - (configuration) Set recording threshold to a value between 0.00 and 0.15 A (where &amp;#039;x&amp;#039; in the byte is 4 bits representing the value after the decimal point, eg. B7 to set it to 0.07 A)&lt;br /&gt;
Cx - (configuration) Same as Bx, but for when you want to set it to a value between 0.16 and 0.30 A (16 subtracted from the value behind the decimal point, eg. 0.19 A == C3)&lt;br /&gt;
Dx - (configuration) Set device backlight level; &amp;#039;x&amp;#039; must be between 0 and 5 (inclusive)&lt;br /&gt;
Ex - (configuration) Set screen timeout (&amp;#039;screensaver&amp;#039;); &amp;#039;x&amp;#039; is in minutes and must be between 0 and 9 (inclusive), where 0 disables the screensaver&lt;br /&gt;
&lt;br /&gt;
# Response format:&lt;br /&gt;
All byte offsets are in decimal, and inclusive. All values are big-endian and unsigned.&lt;br /&gt;
0   - 1   Start marker (always 0x0963)&lt;br /&gt;
2   - 3   Voltage (in mV, divide by 1000 to get V)&lt;br /&gt;
4   - 5   Amperage (in mA, divide by 1000 to get A)&lt;br /&gt;
6   - 9   Wattage (in mW, divide by 1000 to get W)&lt;br /&gt;
10  - 11  Temperature (in celsius)&lt;br /&gt;
12  - 13  Temperature (in fahrenheit)&lt;br /&gt;
14        Unknown (not used in app)&lt;br /&gt;
15        Currently selected data group&lt;br /&gt;
16  - 95  Array of main capacity data groups (where the first one, group 0, is the ephemeral one)&lt;br /&gt;
            -- for each data group: 4 bytes mAh, 4 bytes mWh&lt;br /&gt;
96  - 97  USB data line voltage (positive) in centivolts (divide by 100 to get V)&lt;br /&gt;
98  - 99  USB data line voltage (negative) in centivolts (divide by 100 to get V)&lt;br /&gt;
100       Charging mode; this is an enum, where 0 = unknown/standard, 1 = QC2.0, and presumably 2 = QC3.0 (but I haven&amp;#039;t verified this)&lt;br /&gt;
101       Unknown (not used in app)&lt;br /&gt;
102 - 105 mAh from threshold-based recording&lt;br /&gt;
106 - 109 mWh from threshold-based recording&lt;br /&gt;
110 - 111 Currently configured threshold for recording&lt;br /&gt;
112 - 115 Duration of recording, in seconds since start&lt;br /&gt;
116       Recording active (1 if recording)&lt;br /&gt;
117       Unknown (not used in app)&lt;br /&gt;
118 - 119 Current screen timeout setting&lt;br /&gt;
120 - 121 Current backlight setting&lt;br /&gt;
122 - 125 Resistance in deci-ohms (divide by 10 to get ohms)&lt;br /&gt;
126       Unknown&lt;br /&gt;
127       Current screen (same order as on device)&lt;br /&gt;
128 - 129 Stop marker (always 0xfff1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Board pictures ==&lt;br /&gt;
&lt;br /&gt;
Not great pictures, but hopefully they&amp;#039;ll be useful.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:UM24C_board_1.jpg&lt;br /&gt;
File:UM24C_board_2.jpg&lt;br /&gt;
File:UM24C_board_3.jpg&lt;br /&gt;
File:UM24C_board_4.jpg&lt;br /&gt;
File:UM24C_board_5.jpg&lt;br /&gt;
File:UM24C_board_6.jpg&lt;br /&gt;
File:UM24C_board_7.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andysan</name></author>
	</entry>
</feed>