Author Topic: Fluke 87IV please whisper in my IR :P  (Read 21384 times)

0 Members and 1 Guest are viewing this topic.

Offline frenkyTopic starter

  • Supporter
  • ****
  • Posts: 1003
  • Country: si
    • Frenki.net
Fluke 87IV please whisper in my IR :P
« on: April 21, 2017, 05:40:19 am »
//I'm posting this here because someone might find it useful. And it doesn't fit into repair section because nothing was broken..

So I fixed my new/old Fluke IV and it's working great: https://www.eevblog.com/forum/repair/fluke-87-iv-repair-log/

I wanted to use IR-USB feature of Fluke IV to send data to PC. After some googling I found cables which are crazy expensive... About 60$-80$ + shipping.
So I started to look for alternatives and found this schematics:


http://www.itsonlyaudio.com/measurement/fluke-123-opto-isolated-cable/

Well that looks easy. I had most of components at home and put together this:



And here are serial commands:
http://www.pewa.de/DATENBLATT/DBL_FL_FL187-9-89IV_BEFEHLSSATZ_ENGLISCH.PDF

So I opened RealTerm and sent ID<CR> trough it and .... nothing. I should get back something like: "FLUKE 87,V0.39,123456789"  but no...

I then tested if my module works by putting spoon in front of it. It worked. All commands were now echoed back to RealTem.

So why was not my dmm responding...?
 
The following users thanked this post: BravoV

Offline frenkyTopic starter

  • Supporter
  • ****
  • Posts: 1003
  • Country: si
    • Frenki.net
Re: Fluke 87IV please whisper in my IR :P
« Reply #1 on: April 21, 2017, 05:48:24 am »
So my next thought was there must be something wrong with the schematics because it was too easy. ;D

And then I found this one:

http://kimboricha.blogspot.si/2013/12/build-usb-to-fluke-189-irinfrared.html

This time I did not bother soldering it:


I tested it again with FlukeIV and nothing. DMM just would not answer to any of my requests...

Now that I had two modules I tried if they can talk to each other and yes I could send data from one module to another trough IR with no problem...
 

Offline frenkyTopic starter

  • Supporter
  • ****
  • Posts: 1003
  • Country: si
    • Frenki.net
Re: Fluke 87IV please whisper in my IR :P
« Reply #2 on: April 21, 2017, 05:59:00 am »
It was time for some investigation...

I looked at IR diodes on pcbs of similar models online. 189 is a successor to 89IV and model 187 is a successor to 87IV.

189: More photos: http://mrmodemhead.com/blog/gallery/fluke-189-clean-up/


187: More photos: https://www.eevblog.com/forum/testgear/fluke-187/msg536864/#msg536864


89IV:


And my 87IV:


Hmm.... ;)
« Last Edit: April 24, 2017, 06:28:51 am by frenky »
 

Offline frenkyTopic starter

  • Supporter
  • ****
  • Posts: 1003
  • Country: si
    • Frenki.net
Re: Fluke 87IV please whisper in my IR :P
« Reply #3 on: April 21, 2017, 06:04:42 am »
So the IR module does look a lot different in old models.
HPL845 did not return anything so I started to look for similar IR modules.

Based on looks and number of pins and power and ground lines I have found HSDL-3201 as a peffect match:
http://media.digikey.com/pdf/Data%20Sheets/Lite-On%20PDFs/HSDL-3201.pdf



 

Offline frenkyTopic starter

  • Supporter
  • ****
  • Posts: 1003
  • Country: si
    • Frenki.net
Re: Fluke 87IV please whisper in my IR :P
« Reply #4 on: April 21, 2017, 06:14:51 am »
So I studied the datasheet of HSDL-3201 and found out this interesting parts:
"Output is a low pulse for 2.4 µs when a light pulse is seen."
and
" Logic high turns the LED on. If held high longer than ~ 20 µs, the LED is turned off. "

So this module can't work with just regular SIR (Serial to Infrared) because at 9600 baud rate bits are 105us long and if transmitter is only outputting 20us long pulses serial2usb ic won't understand "serial" data that is getting on RX.

So I learned that this HSDL-3201 is used for IrDA protocol which is quite different from serial:



Veri nice article about IrDA: http://www.eix.co.uk/Articles/IrDA/Welcome.htm
« Last Edit: April 24, 2017, 08:06:28 am by frenky »
 

Offline frenkyTopic starter

  • Supporter
  • ****
  • Posts: 1003
  • Country: si
    • Frenki.net
Re: Fluke 87IV please whisper in my IR :P
« Reply #5 on: April 21, 2017, 06:25:32 am »
After some investigation into IrDA protocol I concluded that I need IrDA encoder/decoder.

So I ordered a few MCP2140A which is made for 9600 baudrate and does not need external clock.
http://si.farnell.com/microchip/mcp2140a-i-p/controller-irda-9600-baud-pdip18/dp/1439520

While waiting for it to arrive I manually encoded DS<CR> and ID<CR> commands into raw pulses (in Inkscape  ;D ):


« Last Edit: April 25, 2017, 10:18:46 am by frenky »
 

Offline serggio

  • Regular Contributor
  • *
  • Posts: 149
  • Country: ru
Re: Fluke 87IV please whisper in my IR :P
« Reply #6 on: April 21, 2017, 06:27:53 am »

---
Understand... you describing your research in multiple messages, instead do it in one.. ::)
I'll remove my ones in this thread above
« Last Edit: April 21, 2017, 06:38:12 am by serggio »
 

Offline frenkyTopic starter

  • Supporter
  • ****
  • Posts: 1003
  • Country: si
    • Frenki.net
Re: Fluke 87IV please whisper in my IR :P
« Reply #7 on: April 21, 2017, 06:36:09 am »
So in red are 20us pulses that need to be sent to dmm. Well I sure did not want to wait for decoder to arrive so I hacked together some code for arduino.
The code sent out raw pulses of DS<CR> which resets DMM. It does this every 5sec.

I've set dmm to DC V pressed the AVG button and pointed IR to ARduino IR. Sure enough a few seconds later DMM reseted from AVG to basic mode.

VICTORY!  ;D

Then I wanted to go furter. Can I use arduino as a decoder too?
Looking at this decoding image I noticed that all I have to do is set up a trigger on falling edge that will output 105us pulse on some pin and connect that pin to RX of USB2Serial module.

Arduino mess:


And tadaaa. It works!  :-+




Code (please don't judge me, I just wanted it to work):
Code: [Select]
#include "DigitalIO.h"
const uint8_t PIN = 5;
const uint8_t PINTX = 9;
const byte interruptPin = 3;

int bitsD[10] = {0,0,0,1,0,0,0,1,0,1};
int bitsS[10] = {0,1,1,0,0,1,0,1,0,1};
int bitsI[10] = {0,1,0,0,1,0,0,1,0,1};//0100 1001
int bitsCR[10] = {0,1,0,1,1,0,0,0,0,1};



void setup() {
  fastPinMode(PIN, OUTPUT);
  fastPinMode(PINTX, OUTPUT);
  pinMode(interruptPin, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(interruptPin), sendTX, FALLING);
}

void loop() {
  fastDigitalWrite(PIN, LOW);
 
  int i;
  for (i = 0; i < 10; i++) {
    if (bitsI[i]==0) { zero(); }
    else { one(); }
  }
  /*for (i = 0; i < 10; i++) {
    if (bitsS[i]==0) { zero(); }
    else { one(); }
  }*/
  for (i = 0; i < 10; i++) {
    if (bitsD[i]==0) { zero(); }
    else { one(); }
  }
  for (i = 0; i < 10; i++) {
    if (bitsCR[i]==0) { zero(); }
    else { one(); }
  }
 
  delay(5000);
}

void one(){
  delayMicroseconds(105);
}
void zero() {
  delayMicroseconds(46);
  fastDigitalToggle(PIN);
  delayMicroseconds(20);
  fastDigitalToggle(PIN);
  delayMicroseconds(39);
}
void sendTX() {
  fastDigitalWrite(PINTX, LOW);
  delayMicroseconds(105);
  fastDigitalToggle(PINTX);
}
 
« Last Edit: April 21, 2017, 07:41:16 am by frenky »
 
The following users thanked this post: pelule, MiataMuc

Offline retiredcaps

  • Super Contributor
  • ***
  • Posts: 3575
  • Country: ca
Re: Fluke 87IV please whisper in my IR :P
« Reply #8 on: April 21, 2017, 09:10:44 pm »
Thanks for documenting and sharing.  :-+ :-+
 

Offline coromonadalix

  • Super Contributor
  • ***
  • Posts: 5884
  • Country: ca
Re: Fluke 87IV please whisper in my IR :P
« Reply #9 on: April 23, 2017, 02:39:54 am »
Thanks +1
 

Offline frenkyTopic starter

  • Supporter
  • ****
  • Posts: 1003
  • Country: si
    • Frenki.net
Re: Fluke 87IV please whisper in my IR :P
« Reply #10 on: April 23, 2017, 05:40:22 am »
Tnx for supporting my efforts.
I have now removed the external usb2serial module because I can send out pulses of serial data on pin1 which is tx of arduino.

In the folowing days I'll publish code for complete IrDA encoder/decoder so anybody could use 2$ arduino instead of expensive Fluke cable. The code should work with Fluke Forms...

Sent from my LG-D855 using Tapatalk

 

Offline dxl

  • Regular Contributor
  • *
  • Posts: 189
  • Country: de
Re: Fluke 87IV please whisper in my IR :P
« Reply #11 on: April 23, 2017, 08:45:28 pm »
I own a Fluke 187 and this sounds very interesting. Thank you for your detailed reports! :)
 

Offline frenkyTopic starter

  • Supporter
  • ****
  • Posts: 1003
  • Country: si
    • Frenki.net
Re: Fluke 87IV please whisper in my IR :P
« Reply #12 on: April 25, 2017, 08:51:06 am »
My arduino code is almost ready and meanwhile I have found conversion from IrDA to bluetooth:
http://goods.ruten.com.tw/item/show?21649693608363

It also shows that IrDA module in 87IV is actually HSDL-3200: http://www.efo.ru/components/avago/catalog/files/pdf/5989-3019EN.pdf
And IrDA encoder/decoder IC is TIR1000: http://www.ti.com/lit/ds/symlink/tir1000.pdf




Edit:
With this info it would be also easy to convert 87IV and 89IV from IrDA to basic Serial IR as in newer models...
Just remove IrDA encoder IC and put in IR diode and phototransistor as in IR2USB cable...
« Last Edit: April 25, 2017, 09:06:17 am by frenky »
 

Offline frenkyTopic starter

  • Supporter
  • ****
  • Posts: 1003
  • Country: si
    • Frenki.net
Re: Fluke 87IV please whisper in my IR :P
« Reply #13 on: April 25, 2017, 06:05:13 pm »
Software implementation of IrDA encoding/decoding is ready for public eye.  :P

DSO says it works:


So the schematics is really simple: (RX is connected to pin D2 because there is no hardware interrupt on RX pin)


Readable arduino code:
Code: [Select]
#include "DigitalIO.h"
const uint8_t interruptPinIrRx = 3;
const uint8_t interruptPinRX = 2;
const uint8_t PINIrTx = 7;
const uint8_t PINSerialTX = 1;

void setup() {
  fastPinMode(PINSerialTX, OUTPUT);
  fastDigitalWrite(PINSerialTX, HIGH);
  pinMode(interruptPinIrRx, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(interruptPinIrRx), sendTX, FALLING);
  fastPinMode(PINIrTx, OUTPUT);
  pinMode(interruptPinRX, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(interruptPinRX), sendIr, FALLING);
}

void sendTX() {
  fastDigitalWrite(PINSerialTX, LOW);
  delayMicroseconds(105);
  fastDigitalToggle(PINSerialTX);
}

void sendIr() {
  delayMicroseconds(46);
  while (digitalRead(2)==LOW){
    fastDigitalWrite(PINIrTx, HIGH);
    delayMicroseconds(20);
    fastDigitalToggle(PINIrTx);
    delayMicroseconds(85);
  }
}

void loop() {
}

Fast less readable code:
Code: [Select]
const uint8_t PINIrTx = 7;//PD7
const uint8_t PINSerialTX = 1; //PD1
const byte interruptPinIrRx = 3;//PD3 INT1
const byte interruptPinRX = 2; //PD2 INT0

void setup() {
  pinMode(PINSerialTX, OUTPUT);
  pinMode(interruptPinIrRx, INPUT_PULLUP);
  attachInterrupt(1, sendTX, FALLING);
  pinMode(PINIrTx, OUTPUT);
  pinMode(interruptPinRX, INPUT_PULLUP);
  attachInterrupt(0, sendIr, FALLING);
}

void loop() {
  PORTD |= _BV(PD1);
}

void sendTX() {
  PORTD &= ~_BV(PD1); //go LOW on pin 1(TX)
  delayMicroseconds(105);
  PIND = _BV(PD1); //toggle pin 1
}

void sendIr() {
  delayMicroseconds(46);
  while ((PIND & (1<<PD2))==0){ //while interruptPinRX is LOW, output 20us pulses
    PORTD |= _BV(PD7); //go HIGH on pin 7 (IR diode)
    delayMicroseconds(20);
    PIND = _BV(PD7);  // go LOW (toggle pin) on pin 7 (IR diode)
    delayMicroseconds(85);
  }
}

First test with arduino serial monitor:


And a final test with FlukeView Forms:



A guess next is a mini IrDA shield for Arduino Nano.  ;D



« Last Edit: April 25, 2017, 06:10:14 pm by frenky »
 
The following users thanked this post: nikifena, AintBigAintClever

Offline serggio

  • Regular Contributor
  • *
  • Posts: 149
  • Country: ru
Re: Fluke 87IV please whisper in my IR :P
« Reply #14 on: April 25, 2017, 06:29:12 pm »
Hi,

At what points in your scheme you control signal by oscilloscope? Could you post form of your signal between ground and D3 input?

p.s. solution with additional BT module cool, but would be interesting know, how often that guy change battery in him meter..  :)
« Last Edit: April 25, 2017, 06:32:13 pm by serggio »
 

Offline frenkyTopic starter

  • Supporter
  • ****
  • Posts: 1003
  • Country: si
    • Frenki.net
Re: Fluke 87IV please whisper in my IR :P
« Reply #15 on: April 25, 2017, 06:53:19 pm »
So on this image:

Yellow is signal at D0(RX) and blue is signal on D7. So the image is showing encoding of serial data like here:


At D3 signal is HIGH most of the time. When photo transistor senses IR light the signal on D3 goes LOW:
« Last Edit: April 25, 2017, 07:25:37 pm by frenky »
 

Offline serggio

  • Regular Contributor
  • *
  • Posts: 149
  • Country: ru
Re: Fluke 87IV please whisper in my IR :P
« Reply #16 on: April 25, 2017, 07:56:21 pm »
Thx,

Yes, It should be High level, because on Rx and Tx lines constant High always when no signal transmission (silent). Phototransistor probably work well for your application, because your solution use only 9,6 Bauds speed. Try to use fast speed photodiode and BC847 transistor for example. This will give you much better rise fronts for short pulses. Best phototransistors have couple-tens uS for rise up, while photodiodes have 5-100 nS
« Last Edit: April 25, 2017, 08:00:12 pm by serggio »
 
The following users thanked this post: frenky

Offline frenkyTopic starter

  • Supporter
  • ****
  • Posts: 1003
  • Country: si
    • Frenki.net
Re: Fluke 87IV please whisper in my IR :P
« Reply #17 on: April 26, 2017, 07:00:14 am »
Tnx.  :-+
I have SFH203-FA photo diodes (with 5ns switching time) at home. https://goo.gl/j5ibUA
(I have bought many different IR transmitting diodes, detectors and transistors for this mini project...)

Can't wait to try it out to see the recovery time.
« Last Edit: April 26, 2017, 07:03:50 am by frenky »
 

Offline coromonadalix

  • Super Contributor
  • ***
  • Posts: 5884
  • Country: ca
Re: Fluke 87IV please whisper in my IR :P
« Reply #18 on: April 26, 2017, 04:55:49 pm »
i'll try to implement your idea for a gossen metrahit 28s,   it send data in hex or binary mode ???,  i have the rs232 protocol infos
but i'm noob in arduino programming ...

asking 300$ usd for an interface ... if i can find it.
 

Offline serggio

  • Regular Contributor
  • *
  • Posts: 149
  • Country: ru
Re: Fluke 87IV please whisper in my IR :P
« Reply #19 on: April 26, 2017, 05:44:01 pm »
I have SFH203-FA photo diodes (with 5ns switching time) at home. https://goo.gl/j5ibUA
(I have bought many different IR transmitting diodes, detectors and transistors for this mini project...)

Can't wait to try it out to see the recovery time.

It should be are bomb!  :-+ Osram photodiodes really cool! While I use 100 ns Vishay's T-1 package's photodiodes (17 uA photocurrent), fronts from them also seems very good even for 115,2K baud rate and maximum available amplitude for this speed.

« Last Edit: April 26, 2017, 06:07:30 pm by serggio »
 

Offline frenkyTopic starter

  • Supporter
  • ****
  • Posts: 1003
  • Country: si
    • Frenki.net
Re: Fluke 87IV please whisper in my IR :P
« Reply #20 on: April 28, 2017, 08:06:01 am »
I have replaced photo-transistor SFH300FA with photo-diode SFH203FA but it did not work. Signal barely dipped when IR light reached photo-diode.
I then tested setup like this:


Image source: http://www.ebay.com/itm/13-pc-INFRARED-IR-eXperimenter-Pack-LEDs-Detectors-/350727119911

An this works great standalone, connected just to oscilloscope. I'll change the code to trigger on the rising edge but it should work...
« Last Edit: April 28, 2017, 08:07:54 am by frenky »
 

Offline serggio

  • Regular Contributor
  • *
  • Posts: 149
  • Country: ru
Re: Fluke 87IV please whisper in my IR :P
« Reply #21 on: April 28, 2017, 08:29:12 am »
What reason to have 200 Ohm resistor in this chain? Try to increase 22kOhm to 70 kOhm for better amplitude. Best value for bottom resistor you can always find with oscilloscope particularly for your connection speed.  ;) For 9600 baud 100 K also will work well
« Last Edit: April 28, 2017, 08:31:53 am by serggio »
 

Offline frenkyTopic starter

  • Supporter
  • ****
  • Posts: 1003
  • Country: si
    • Frenki.net
Re: Fluke 87IV please whisper in my IR :P
« Reply #22 on: April 28, 2017, 08:37:52 am »
Not sure, perhaps for diode protection. But since arduino inputs are in high impedance state I don't think it is needed.

With 5V source and with 200ohm top resistor and 10k on the bottom I got 3.8V signal pulses while pointing TVs remote controller into it.
Which is more than enough for stable triggering.

I'll do some more tests...
« Last Edit: April 28, 2017, 08:46:04 am by frenky »
 

Offline serggio

  • Regular Contributor
  • *
  • Posts: 149
  • Country: ru
Re: Fluke 87IV please whisper in my IR :P
« Reply #23 on: April 28, 2017, 08:43:26 am »
No sure, perhaps for diode protection. But since arduino inputs are in high impedance state I don't think it is needed.

With 5V source and with 200ohm top resistor and 10k on the bottom I got 3.8V signal pulses while pointing TVs remote controller into it.
Which is more than enough for stable triggering.

I'll do some more tests...

No, no, no....  \$\Omega\$
Photodiodes work connected backward than emitting diodes. Reverse voltage 50V for your diode. No any protection resistor needed till you not reach 50V in chain.
Forget about TV remote control. There emitting diode work with high pulse currents more than 100 mA! You need focusing at emitting light power from your meter, that significant lower!  ;)
« Last Edit: April 28, 2017, 08:45:16 am by serggio »
 

Offline frenkyTopic starter

  • Supporter
  • ****
  • Posts: 1003
  • Country: si
    • Frenki.net
Re: Fluke 87IV please whisper in my IR :P
« Reply #24 on: April 28, 2017, 08:50:43 am »
Photodiodes work connected backward than emitting diodes. Reverse voltage 50V for your diode.

I know that. My thought was that when photo-diode starts conducting in backwards because of IR light the current from source could damage it if there was no resistor in series...
But this could only happen if you had it connected directly between 5V and ground.
I might also be totally wrong about this... ;D
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf