Possible data output from UNI-T UT33A+ multimeter? - Page 1
Forum section: electronics / beginners

author: takio
author_rank: Contributor
timestamp: June 28, 2022, 05:10:00 pm
content: Hi all,Was fumbling around to see if I could find a hidden RANGE function for this meter (only does autoranging), and found these pads on the board:Connecting the GND and TXD pads to an oscilloscope with UART decoding, this is the output:UART settings are 9600 Baudrate, 8 data bits, no parity, one stopbit, MSB.Different settings yield different messages (duh) but they all have in common the fact that they seem formatted but "empty", not carrying any actual data. This may be due to my total lack of ability in interpreting the UART output.So my question is this: does it look like this meter might have data output capabilities? It could be a really interesting cheap logger for location installs, and a total win to unlock PC logging on such a cheap but practical meter.Main chip is COB so no info from there.Any input is appreciated. Pun not intended.Board images and further details on the meter fromhttps://budgetlightforum.com/node/58564.

author: Fraser
author_rank: Super Contributor
timestamp: June 28, 2022, 05:24:57 pm
content: Sadly, that appears more likely to be an engineering UART port rather than a user port from which useful data will flow. Look at the PCB and you will see similar pads associated with the 4mm ports and supply rails. Classic ‘bed of nails’ PCB test points for production use.An engineering port may be used during manufacture for testing and ‘calibration’ functions and may need the meter to be in an ‘engineering mode’ to function. Such a mode can often be activated via certain contacts being shorted or an ‘engineering wake-up’ code (like AT commands) sent through the UART port.Fraser

author: takio
author_rank: Contributor
timestamp: June 28, 2022, 05:38:38 pm
content: That makes total sense.Was looking forward to Frankensteining this bad boy! Oh well. On to the next one.Thank you for taking the time to clear this up!

author: Doctorandus_P
author_rank: Super Contributor
timestamp: July 05, 2022, 08:20:12 pm
content: As Fraser already mentioned, there are no guarantees for those RxD and TxD pins do, but the least you could do is figure out what baudrate really is on those pins and decode some data. If the UART is used for entering engineering data such as callibration values, that does not automatically dismiss output of measured values. If it's used for calibration, then it's very likely the port can also be used for reading the data.There is some info about packet format for lots of DMM's on:https://sigrok.org/wiki/Supported_hardwareSome have really weird data. For example, the Brymen meters do use serial / rs232, but they shift out the segments of the LCD itself instead of ASCII.

author: Messtechniker
author_rank: Frequent Contributor
timestamp: July 05, 2022, 08:27:58 pm
content: Get yourself a simple 3V UART USB adapter. Prefabley with a FTDI FT232 or CH340G chip.The use Putty (Windows), for example, to really see whats going on.

author: MikeK
author_rank: Super Contributor
timestamp: July 05, 2022, 08:34:07 pm
content: Try comparing screenshots of different measurements, such as measuring 1K and 10K resistors.

author: Doctorandus_P
author_rank: Super Contributor
timestamp: July 05, 2022, 08:53:42 pm
content: With putty or another terminal program you can decode the data, but it's mostly guesswork to get it right. I always dislike those programs that do not put nice round numbers on their horizontal (or vertical) axes, but you seem to have around 30 bit times between two green lines. So if you tried 9k6, then try 28k8.I also quite like Sigrok / Pulseview. With that brilliant piece of Open Source software and an EUR 10 Logic analyzer you can decode about 100 different protocols, including UART, I2C, I2S, CAN, SPI, USB and lot's of others. With that software, the decoded data is also aligned with the raw data input and taht helps with verifying if the data is decoded correctly. And this works regardless if the data is ASCII or something weird such as direct segment output (and that won't play nice in putty).

author: takio
author_rank: Contributor
timestamp: July 05, 2022, 09:36:07 pm
content: It does seem more like a beacon/heartbeat signal. Same packet every one second or thereabouts. Same thing with every baud rate I tried. Did try the multiples of the usual suspects, 9600 et al.To get it to output something, I'm assuming I'd have to know the wake instruction. And even then, no guarantee that the chip has been programmed to do more than just receive settings (as far as serial communication goes, anyway). Even if the silicon has the ability.But then again, with increasingly capable chips on cheapo meters these days, for sheer economy of scale in a range as vast as this brand has, wouldn't be too surprised if this little cob had some shared abilities with bigger brothers. The prominence of the pads, so close to what seems like a programming header, did have me intrigued, but I'm betting it has already been fully explained.This whole investigation into serial protocols is way beyond my abilities, as you can probably tell from my scope screencap. But thank you all for the excellent tips, I'll try to look a bit further into this, and report back if anything of interest comes out. Which I highly doubt, but hey... the good thing about learning curves is the learning 😁

author: Doctorandus_P
author_rank: Super Contributor
timestamp: July 07, 2022, 07:01:35 pm
content: Just blindly trying baudrates is not the best way. It's often "usable", but apparently your scope like thing has some uart decoding ability, and figuering out the baudrate of this and turning into eligible is really about as simple as you can get.Writing you have no experience with this is no excuse. It's just more reason to try harder untill you succeed. It really is a simple thing to do something like this.

author: takio
author_rank: Contributor
timestamp: July 12, 2022, 02:05:03 pm
content: HiUsed a FTDI adapter with PuTTY / CoolTerm, and all I got was somewhat structured gibberish, of this sort:Code:|�x.x|....xxx...xxx< x|�x.x|....xxx...xxx< x|�x.x|....xxx...xxx< x|�x.x|....xxx...xxx< x|�x.x|....xxx...xxx< x|�x.x|....xxx...xxx< x|�x.x|....xxx...xxx< x|�x.x|....xxx...xxx< x|�x.x|....xxx...xxx< x|�x.x|....xxx...xxx< x|�x.x|....xxx...xxx< x|�x.x|....xxx...xxx< xFollowing your suggestions, after a read up on the Sigrok wiki about multimeter IC's, found some results using 2400 8N1 Baud.Had a poke with PulseView, and the good news is, the meter is definitely outputting something:- Output varies with meter's op mode (e.g. Volts AC/DC, Resistance, Capacitance, ...);- Packets are sent at 500 ms intervals, consistent with display refresh;- Payload varies with reading;- Additional packets are sent when meter changes modes, whenever the selector is moved, irrespective of the 500 ms interval. This suggests reading mode/unit is probably not included in each reading, only the measured value.Speculating: multimeter display is 4 digits for stated 2000 counts, but IC reading may actually have more resolution (not discussing accuracy) coming off the serial comm, so the payload may not correspond to what's shown by the meter.Some examples of PulseView readings attached below.Next steps:- Somehow decode these packets?- Try to find other multimeters that might use the same 2000 count IC and hopefully dig up a datasheet with communication protocol specs;- Try to find PC software that might be compatible with this IC for other meters/vendors, and check if it "sees" this meter through a serial connection. This is quite a long shot, because of proprietary adaptations, obfuscation, no certain ID for the IC, etc.

author: Messtechniker
author_rank: Frequent Contributor
timestamp: July 12, 2022, 04:12:28 pm
content: Install "Test Controller" from herehttps://www.eevblog.com/forum/testgear/program-that-can-log-from-many-multimeters/and in the debug mode save the hex strings.HKJ, the author of Test Controller shall be pleased to help you on.

author: Messtechniker
author_rank: Frequent Contributor
timestamp: July 17, 2022, 01:13:58 pm
content: @takioAre you still investigating? If not, I think I will get myself a UNI-T UT33A+ and try to make - with the help of HKJ - a Test Controller definition file for this very cheap meter.

author: takio
author_rank: Contributor
timestamp: July 17, 2022, 07:18:07 pm
content: @MesstechnikerTo be honest, I haven't even managed a successful connection to Test Controller from supported hardware (Korad KA3005P, Siglent SDM3045X). Korad is unrecognised and Siglent is just invisible over USB no matter what port config I use. But haven't researched this extensively: just gave up on it for now, it's not something I need in any way as I have working alternatives.But back to the point.Best I can do is hook up the meter over FTDI>USB and launch Test Controller in debug mode, see what shows up, if anything. Would that help? If there's a better way, I'm great at following instructionsAlso, I would gladly send the meter to more capable hands for research, if you're interested. No need to purchase one.Thanks for the help.

author: Messtechniker
author_rank: Frequent Contributor
timestamp: July 17, 2022, 07:37:52 pm
content: Quote from: takio on July 17, 2022, 07:18:07 pmPrecisely the way to go.

author: mariush
author_rank: Super Contributor
timestamp: July 17, 2022, 08:43:21 pm
content: It wouldn't be far fetched to be just a dump of the segments on the LCD.Try maybe to put the meter in continuity mode or in some mode where just a few segments or one segment changes on the screen and log the data and see what bits change.

author: takio
author_rank: Contributor
timestamp: July 17, 2022, 09:34:57 pm
content: @Messtechniker thanks, gimme a couple of days and I'll look into that. Will report back with any results.@mariush yes, guess that's still on the table. But first I'll collect data from a few stable readings and try to find any patterns in the payloads, then compare that to patterns in LCD segment states for said readings.

author: takio
author_rank: Contributor
timestamp: July 19, 2022, 03:10:16 pm
content: The debug output from Test Controller wasn't very helpful, seems like the device is invisible or I just can't get the configs right. Checked Device Manager for active USB Serial ports, used "COM" and "COM6" as address on Search Socket.Code:Starting;; jSerialComm version: 2.9.1;; Start thread for: COM6Exception in thread "Scan ports" java.lang.NumberFormatException: For input string: "1026 com"at java.lang.NumberFormatException.forInputString(Unknown Source)at java.lang.Integer.parseInt(Unknown Source)at java.lang.Integer.parseInt(Unknown Source)at dk.hkj.main.InterfaceThreads$ScanPorts.addDevicesSocketAuto(InterfaceThreads.java:656)at dk.hkj.main.InterfaceThreads$ScanPorts.run(InterfaceThreads.java:755);; Stopping thread for: COM6Here are a few readings from PulseView:*************************************10.90 V ACAB CD 01 03 08 00 00 E1 00 ED2.50 V ACAB CD 01 03 08 00 00 FA 01 06*************************************0.005 V DCAB CD 01 06 04 00 00 05 00 102.009 V DCAB CD 01 06 04 00 07 D9 00 EB5.00 V DCAB CD 01 06 08 00 01 F4 01 0410.00 V DCAB CD 01 06 08 00 03 E8 00 FA12.00 V DCAB CD 01 06 08 00 04 B0 00 C324.0 V DCAB CD 01 06 10 00 00 F0 01 07*************************************14.6 mV DCAB CD 01 05 02 00 00 92 00 9A35.0 mV DCAB CD 01 05 02 00 01 5E 00 67116.0 mV DCAB CD 01 05 02 00 04 88 00 94*************************************1.3 OhmAB CD 01 09 01 00 00 0D 00 1810.3 OhmAB CD 01 09 01 00 00 67 00 721.003 kOhmAB CD 01 09 02 00 03 EB 00 FA100.0 kOhmAB CD 01 09 08 00 03 E8 00 FD1.000 MOhmAB CD 01 09 10 00 03 E8 01 05*************************************Continuity: OLAB CD 01 0D 04 00 7F E8 01 79Continuity: 0.0AB CD 01 0D 01 00 00 00 00 0FContinuity: 20.2AB CD 01 0D 01 00 00 CA 00 D9Continuity: 30.0 (no beep)AB CD 01 0D 01 00 01 2C 00 3C*************************************Don't think this is replicating LCD state, but there's definitely a pattern there. Contrary to what I thought, part of the message seems to relate to the mode the meter is on, and possibly some kind of Range indication.What this looks like to me:[ AB CD . EF GH . IJ . KL . MN OP QR ST ]Where:AB CD ............... always the sameEF GH ............... changes with mode, and is always the same in each mode's measurementsIJ ..................... range?KL .................... always "00"MN OP QR ST .... always different, could this relate to the 4 digits of the meter?

author: adeuring
author_rank: Contributor
timestamp: July 19, 2022, 07:27:13 pm
content: Quote from: takio on July 19, 2022, 03:10:16 pmMNOP look indeed like the measurement value. Try any calculator that supports hex numbers. I tried it with Python. The bytes "MN", "OP" look indeed like the high byte (MN) and low byte (OP) for DC voltage and resistance:Code:Python 3.8.10 (default, Jun 22 2022, 20:18:18)[GCC 9.4.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>> 0xfa250>>> 0xfa0064000>>> 0x7d92009>>> 0x1f4500>>> 0x3e81000>>> 0x4b01200>>> 0xf0240>>> 0x93147>>> 0x15e350>>> 0x4881160>>> 0x00d13>>> 0x067103>>> 0x3eb1003>>> 0x3e81000(If you are not familiar with the interactive mode of the Python interpreter: I typed the symbols to thre right of ">>> ", followed by <RETURN>, and the interpreter converted the hex number I typed into its internal integer representation, then printed the value as a decimal number."IJ" could, as you suspect, indicate the measurement range.The data for 10.9V AC does not fit into the pattern though...

author: MikeK
author_rank: Super Contributor
timestamp: July 19, 2022, 09:03:25 pm
content: Might be helpful to get a reading for 0.006 V DC to compare the output to 0.005 V DC.

author: Messtechniker
author_rank: Frequent Contributor
timestamp: July 20, 2022, 02:00:42 pm
content: Quote from: takio on July 19, 2022, 03:10:16 pmTime to get in touch with HKJ, I guess:info@lygte-info.dk

author: magic
author_rank: Super Contributor
timestamp: July 20, 2022, 02:38:39 pm
content: Quote from: takio on July 19, 2022, 03:10:16 pmCode:$ calc 0x55$ calc 0x7d92009$ calc 0x1f4500$ calc 0x3e81000$ calc 0x4b01200$ calc 0xf0240Coincidence? You decideeditSomebody noticed it before.Quote from: adeuring on July 19, 2022, 07:27:13 pmIJ definitely looks like that, it's even consistent between AC and DC, and 10.9VAC may have been an error of some sort.

author: takio
author_rank: Contributor
timestamp: July 22, 2022, 09:44:14 am
content: Thank you all for the precious help, this looks encouraging. I'll summary the info and this thread to HKJ and see if this goes anywhere.The 10.9 V AC reading might have fluctuated during capture, certainly won't put it past me to have made an error. I'll try to replicate the value (it was taken from an AC transformer) and check the data.@MikeK Don't have a sufficiently precise voltage source to accurately "force" the meter to capture 0.005 V and 0.006 V (see what you did there, NNWW) but I'll try to capture two other readings where only one segment changes.Meanwhile, I'll look into possibly hacking together an IR-based PC interface. Having the meter hardwired to the logic analyzer while reading 220 V AC was quite spectacular

author: magic
author_rank: Super Contributor
timestamp: July 22, 2022, 10:23:15 am
content: Quote from: takio on July 22, 2022, 09:44:14 amA potentiometer would do, maybe followed by a voltage divider. But I'm not sure what interesting remains there to see, the penultimate pair of bytes is obviously the LCD reading, without decimal dot (needs to be deduced from range information). One remaining question is to see how negative values are encoded.Not sure what the final pair of bytes means. Is it always the same for the same measurement?

author: takio
author_rank: Contributor
timestamp: July 22, 2022, 10:38:11 am
content: Quote from: magic on July 22, 2022, 10:23:15 amNope, always different, but have no clue what it could be.Extra digits? Very unlikely and hardly of any use on this device. But seems weird to be outputting random data as "filler material".0x010> 160x0EB> 2350x104> 2600xFA> 2500xC3> 1950x107> 263Doesn't seem to make any sense.===========EDIT:yes, I sampled a couple of seconds for each measurement, to get at least 4/5 readings into PulseView, and checked that the packets were all identical during the same given measurement, before transcribing.

author: MikeK
author_rank: Super Contributor
timestamp: July 22, 2022, 12:49:28 pm
content: You need a negative measurement to see where the sign is in the data.

author: takio
author_rank: Contributor
timestamp: July 22, 2022, 12:56:48 pm
content: Quote from: MikeK on July 22, 2022, 12:49:28 pmGreat catch. Was never going to remember that. Will add +/- measurements of the same value. Placing my bets on the “KL” bit.

author: magic
author_rank: Super Contributor
timestamp: July 22, 2022, 01:46:15 pm
content: Placing a bet on two's complement

author: MikeK
author_rank: Super Contributor
timestamp: July 23, 2022, 03:01:29 am
content: REL may be in there too.

author: takio
author_rank: Contributor
timestamp: July 23, 2022, 11:02:58 am
content: Looks like both winI'll repeat all the readings here for convenience: new ones are inbold textand denoted with an asterisk*The meter only supports REL for capacitance, so threw in a combined measurement for that, in hopes of spotting the REL state in the data.Also repeated some readings and got exactly the same output for the same values, so it's definitely consistent.10.90 V AC output was indeed incorrect, I must have made an error in noting it down. Measured again and seems correct now.*************************************10.90 V AC *AB CD 01 03 08 00 04 42 00 522.50 V ACAB CD 01 03 08 00 00 FA 01 06*************************************0.005 V DCAB CD 01 06 04 00 00 05 00 102.009 V DCAB CD 01 06 04 00 07 D9 00 EB5.00 V DC *AB CD 01 06 08 00 01 F4 01 04- 5.00 V DC *AB CD 01 06 08 FF FE 0C 02 186.00 V DC *AB CD 01 06 08 00 02 58 00 69- 6.00 V DC *AB CD 01 06 08 FF FD A8 02 B310.00 V DCAB CD 01 06 08 00 03 E8 00 FA12.00 V DCAB CD 01 06 08 00 04 B0 00 C324.0 V DCAB CD 01 06 10 00 00 F0 01 07*************************************14.6 mV DCAB CD 01 05 02 00 00 92 00 9A35.0 mV DCAB CD 01 05 02 00 01 5E 00 67116.0 mV DCAB CD 01 05 02 00 04 88 00 94*************************************1.3 OhmAB CD 01 09 01 00 00 0D 00 1810.3 OhmAB CD 01 09 01 00 00 67 00 721.003 kOhmAB CD 01 09 02 00 03 EB 00 FA100.0 kOhmAB CD 01 09 08 00 03 E8 00 FD1.000 MOhmAB CD 01 09 10 00 03 E8 01 05*************************************Continuity: OLAB CD 01 0D 04 00 7F E8 01 79Continuity: 0.0AB CD 01 0D 01 00 00 00 00 0FContinuity: 20.2AB CD 01 0D 01 00 00 CA 00 D9Continuity: 30.0 (no beep)AB CD 01 0D 01 00 01 2C 00 3C*************************************9.79 uF *AB CD 01 0E 01 00 03 D3 00 E6100.2 uF *AB CD 01 0E 01 00 03 EA 00 FD90.5 uF *AB CD 01 0E 01 00 03 89 00 9C[100.2 uF capacitor measured with meter Rel'd at 9.79 uF]*************************************

author: MikeK
author_rank: Super Contributor
timestamp: July 23, 2022, 01:10:47 pm
content: A zero (0.00) reading with and without REL might make it obvious. HOLD may be in the data too.

author: magic
author_rank: Super Contributor
timestamp: July 23, 2022, 02:01:10 pm
content: Quote from: takio on July 23, 2022, 11:02:58 amSo it seemsIt may be that the data value is signed 24 bit, but this model doesn't have enough counts to ever output positive numbers longer than 16 bits (~60000), so only 0xff shows up in negative readings.

author: takio
author_rank: Contributor
timestamp: July 23, 2022, 04:17:54 pm
content: Perhaps using the same protocol/format as higher-spec IC's from the same maker? That could hint at being compatible with existing software — and possibly USB adapters. Wishful thinking.Meanwhile, some more output:*************************************CAPACITANCE MODEShort across probes:O.LAB CD 01 0E 01 00 FF FF 02 0EHOLD on, short across probes:O.LAB CD 01 0E 01 00 FF FF 02 0ENo probes attached:0.100 nFAB CD 01 0E 01 00 00 64 00 74REL on, no probes attached:0.000AB CD 01 0E 01 00 00 00 00 10HOLD on, no probes attached:0.100 nFAB CD 01 0E 01 00 00 64 00 74*************************************CURRENT MODE: uA / mA / A0.0 uA DCAB CD 01 0F 02 00 00 00 00 120.0 uA ACAB CD 01 0F 02 00 00 00 00 120.00 mA DCAB CD 01 07 08 00 00 00 00 100.00 mA ACAB CD 01 07 08 00 00 00 00 100.000 A DCAB CD 01 0B 20 00 00 00 00 2C0.000 A ACAB CD 01 0B 20 00 00 00 00 2C*************************************Still can't make sense of those last two bits. Thought it might have to do with current measurement somehow, but don't see it. Also strange that the AC and DC current measurements are identical for the same value, no?

author: magic
author_rank: Super Contributor
timestamp: July 23, 2022, 05:02:50 pm
content: See if there is a difference between 0mVAC and 0mVDC.Maybe it just doesn't distinguish between modes selected with the yellow button.About the final bytes we know that the value is the same for 10.00 VDC and 1.003kΩAlso, 02 xx only appeared with negative readings and shorted probes so far.The final byte could be a checksum. Completely repeatable, completely meaningless.

author: magic
author_rank: Super Contributor
timestamp: July 23, 2022, 07:49:28 pm
content: It's a checksum. This C program prints full message based on its first 8 bytes.Code:#include <stdio.h>int main() {for(;;) {unsigned ab, cd, ef, gh, ij, kl, mn, op;scanf("%x %x %x %x %x %x %x %x",&ab, &cd, &ef, &gh, &ij, &kl, &mn, &op);unsigned csum = ab + cd + ef + gh + ij + kl + mn + op - 0x178;printf("%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n",ab, cd, ef, gh, ij, kl, mn, op,csum / 0x100, csum % 0x100);}}Example run:Code:AB CD 01 0E 01 00 FF FFab cd 01 0e 01 00 ff ff 02 0eAB CD 01 0E 01 00 00 64ab cd 01 0e 01 00 00 64 00 74AB CD 01 0E 01 00 00 00ab cd 01 0e 01 00 00 00 00 10I tried it on all messages you posted and it got all of them right.Quote from: takio on July 23, 2022, 04:17:54 pmIt's more likely a debugging aid left by firmware developers or used for production testing and calibration.But it doesn't matter: UT33A+ is now officially the cheapest logging DMM on the market

author: Messtechniker
author_rank: Frequent Contributor
timestamp: July 23, 2022, 10:36:04 pm
content: Quote from: magic on July 23, 2022, 07:49:28 pmPrecisely what I was hoping for.

author: magic
author_rank: Super Contributor
timestamp: July 24, 2022, 05:43:54 am
content: BTW, I noticed that 0x178 is the sum of 0xAB + 0xCD. So instead of subtracting 0x178, we could simply skip the AB CD header in checksum calculation, because it looks like the header is a fixed part of the protocol.To validate a packet:1. make sure the fist two bytes are AB CD2. calculate the sum of the next 6 bytes: ef + gh + ij + kl + mn + op3. compare the sum against the final 2 bytes: qr, stThere doesn't seem to be any more hidden information there: just range dial position, decimal dot position and LCD readout.

author: takio
author_rank: Contributor
timestamp: July 24, 2022, 11:09:50 am
content: Yep, same deal for AC/DC on mV:*************************************0.0 mV DCAB CD 01 05 02 00 00 00 00 080.0 mV ACAB CD 01 05 02 00 00 00 00 08*************************************No reference to AC/DC status. Suppose it's left to the operator to know which mode the meter is set to[AB CD] could, theoretically, relate to the DMM model, the only global constant. It could tell the computer what data to expect. On this boardfrom the UT33D+, a sister model from the same series, lo and behold: the same TXD/RXD/VCC/GND pads in the same location. This one is a manual range meter. Don't think there would be a reason for it to output differently from the auto ranging model, but the board layout is very different, especially around the IC.Also: the yellow button does different things on different models. E.g. HOLD is on the blue button for the 33A+ model, and on the yellow button for the 33D+ model. Might help explain why they left that out of the data, and reason to expect equal output from all variants.There's probably a bunch of other meters using this same IC out there, UNI-T meters are often rebranded by Tenma, Wolfcraft... wonder if it could be identified from a firmware dump. I'm still hopeful there might be a compatible cable+software interface out there. Most if not all meters sold with PC connectivity are way above 2000 counts, of course. But if I can find some specs or reverse-engineering notes on IR connection cables, no reason not to give it a go.Still very happy with what was found, thanks to all of your help! This is a nice little meter, especially with logging capabilities for about 15 USD/EUR./ / /One thing I absolutely love about this DMM is having one single function per dial position (except for AC/DC, but hey...). "Booting" straight to the mode you want without having to fiddle with options or doing three presses to get to continuity mode, is very old-school in the best way possible. Makes this a great little "knock-about" tool for basic tasks. It even has provisions for DIY extra input protection(for different market compliance requirements I guess).Image fromhttps://budgetlightforum.com/node/58485