Update to my Brymen 867/869 interface cable

If you ever read any other articles on my blog, you know that most of them are about devices I’ve constructed and used for a while. So I do not publish immediately after I finish a construction, because I prefer to use the device for a while and then summarize my experience with using it practically.

With this logic I’ve also written my Brymen 867/869 interface cable article (this was actually one of the first articles published on this blog). I have, too, been using the cable from time to time. But I must say I was not really satisfied with how it worked. So I reworked it and here I am bringing the updated version.

Why?

About a year ago, I bought the Brymen 867s, and I’ve been very satisfied with it. The only downside is that the cable to connect it to a PC is sold separately and costs 50 , which is ridiculous. And you also need to use their proprietary software.

Thankfully, the folks at EEVBlog decoded the protocol and made their own version (see here and here). However, what both the EEVBlog and original Brymen cables do is that they simply retransmit the data from the multimeter, and then you need a dedicated (and relatively complicated) software just to be capable of reading it. I thought, well, since I am already putting a microcontroller in there, I might as well decode the output and send it out via serial in a human readable form. And that’s exactly what this does:

So you can either use any serial terminal or, if you want to read the data into some sort of application, either read it using scanf (something like printf, just for reading) or send ‘R’ to the cable, which will toggle raw data output. Then you can decode it yourselves however you want.

Changes

So, what is different from the original release?

  1. Much improved communication protocol, so it no longer returns timeout errors.
  2. Changed the commands that control the cable – now, instead of hex codes, you just send in single letters. Also I tried to match the letters to their respective functions, so you don’t have to remember what 0xC0 stands for and so on.
  3. Some parts of the code have been rewritten (ie the UART part, so now it uses PROGMEM). Now the code takes only 2300 B of flash an 22 bytes of RAM.
  4. I made a much better, 3D printed case, which also has a strain reliever for the cable and fits better into the DMM.

Construction

The construction is, in fact, relatively simple. The brain is an ATtiny45, which uses CH330 (USB-UART converter) to communicate with the PC and also controls the IR LED, IR phototransistor and a normal red LED.

Everything is housed in a 3D printed case, which also has a strain reliver build in. However, to fit nicely in the multimeter’s body, you need to print it really precisely, possibly even adapt the model to your 3D printer.

the finished adapter in place

Conclusion

Well, it works flawlessly now – that was my main goal and motivation. So I’d say mission accomplished. The source is on GitHub. Alternatively, I’ve put up a listing on Tindie.

8 Replies to “Update to my Brymen 867/869 interface cable”

  1. The cable took a few weeks to arrive to the UK, but well worth the wait! It works using Windows 7 and TeraTerm without any config. Much better than the expensive Brymen BU-86X with proprietary software. This cable just uses a simple serial port so is completely flexible. You can then copy/paste the data into your favourite spreadsheet for graphing. Thanks 🙂

    1. Hi,

      no, I do not think so. The reason is that my interface does all the conversion on the ATtiny chip and presents data via serial in a human readable form, while the Sairus one expects raw data and decodes them itself.

  2. I received my interface from Tindie and I am impressed! Thank you for making this.
    I am having an issue. I can receive messages when I turn on the Brymen BM859s and I can receive the help messages (think you for including help text in firmware) when sending H.
    No readings are received after sening an F or O on any position of the dial.
    o- Is this unit compatible with the BM859s?
    o- If not, has anyone tried to modify the firmware to make it work?
    o- Is there a list of commands for this model?
    I will take some measurements to be sure the TX LED is working then try and decipher the BM859s.

    1. Hi, I am glad you like it, regarding the problem – well this is most likely caused by the cable being made for the 867/9 and not the 859 (it has never been tested with this particular DMM). Especially if you are receiving data after power up, I’d rule out the TX led (also I test that before shipping).
      I know that some people tried to modify this cable for other Brymens, with varying results – it seems like Brymen has multiple version of the protocol, ie. the previous generation of Brymens didn’t require the TX LED at all and just send out data every second (at least that’s what one of the guys modifying this cable has told me). It’s hard to say what exact protocol the 859 requires, since I don’t have access to any… So I am afraid I cannot be of much help, the ‘commands’ for 859 are not available, as far as I am aware.

Leave a Reply

Your email address will not be published.