Hi,
I'm considering buying an oscilloscope. Please let me know if I should provide more information.
My immediate use case is to determine how RFI is affected by changes to a circuit (I get i2c failures when DC motors exceed a certain speed, and I've been told it's likely RFI).
My main questions (so far) are:
1. Is an oscilloscope a good tool for diagnosing RFI problems?
2. Is an oscilloscope overkill for somebody who works on electronics at most a few hours per week?
3. Could I use an SDRPlay to determine how changes (e.g. adding decoupling resistors) affect the RFI? I have an SDRPlay++ that I bought about 5 years ago. ChatGPT says I can use that in place of an oscilloscope, but I'd like to get a human answer too.
4. If an oscilloscope is a worthwhile purchase, is the FNIRSI-1014D-Dual-Channel-Oscilloscoe
I was considering this: FNIRSI 1014D Oscilloscope 2 in 1 Digital Oscilloscope DDS Signal Generator, 100X High Voltage Probe, 2 Channels 100Mhz Bandwidth 1GSa/s Sampling Rate Built-in 1GB Storage Space
Thanks in advance!
Hi @davidl,
Looking for occasional failures is one of those questions that is typically difficult to answer when you can see the equipment ... so diagnosing it blind over a forum is nigh on impossible.
When you says you have I2C failures, are these messages that occasionally get corrupted/missed, or does the equipment acquire a permanent fault that requires replacement parts?
I2C was originally invented by Philips about 45 years ago, to enable chips inside a colour television to communicate, without making the chips more expensive to manufacture. Hence, it uses a simple physical design which only expected to connect over a maximum distance of about 1 metre, in an electrically 'quiet' corner of a living room. Since then, it has been expanded and adopted by a huge number of integrated circuit manufacturers, finding application in a wide range of environments.
Perhaps the most common problems are (in no particular order):
- poor grounding design
- pullup resistor missing or unsuitable value
- wiring too long, causing reflections
- Pushing the bus speed too high
- Mixing 3.3V and 5V devices on the same bus, without checking/taking precautions
Note that some of these are interdependent ... for instance a given I2C bus might work at a slow speed, but not at a higher speed, but fixing one of the other issues, like changing the pull up resistor value may enable it to work at a higher speed.
The definition of RFI is rather vague ... sometimes it is take to imply an interference pulse that travels through the air as a radio signal ... others might include high frequency signals that actually travel along the wires, often the power and ground wires.
An I2C bus of 'sensible' length and design, with appropriate pull up resistors, etc. is usually reasonably resistant to interference passing through the air. So my first suspicion would include looking at the items listed above.
An oscilloscope is certainly useful for checking that the shape of the waveforms, and it is very common to find that the waveforms are far from the 'square' wave shape drawn in data sheets etc. Hence, you can try to locate the causes and make appropriate changes to improve the situation, and with luck your problem(s) will be fixed.
The worst type of problems are the type which only show once every few hours ... with care a 'scope can be invaluable in tracking down such a problem, but it can take a lot of luck and cunning!!!
In addition, 'RFI' is a vague title, which covers all frequencies from a few Hertz to many GHz, and above. The low cost 'scopes typically work reasonably well from DC to tens of MHz, but above that, the price goes from high to eye-watering. So although a good reasonably priced scope should be able to display I2C bus waveforms with reasonable clarity, I can't guarantee it will capture all RFI problems.
----
As for equipment you mention, I don't have any experience of the FNIRSI device you mention. I have occasionally watched/read reviews of their products over a few years, which has left me with a general impression of low-cost equipment which has had a lot of corners cut to make the price. Please note this is only a vague impression, so please do your own research and decide what your budget can cope with.
A quick glance at the Amazon listing of the 'scope suggested a couple of points that I would mark down:
- Maximum sensitivity of 50mV/div. It is 'normal' to use 'scope probe in X10 mode to reduce the probe loading on the circuit and changing the waveform. In this situation, the sensitivity becomes 500mV/div. Hence most 'scopes will aim to provide 5mV/div
- I like to see a separate 'Trigger' BNC socket, together with appropriate controls. Although many measurements can be done by triggering from one of the two main input signals, on 'difficult' occasions, it is handy to connect the trigger input to the 'source event' and use the main inputs to track the effect of that source as it progresses through a circuit.
But please note, this is just a personal viewpoint ... everyone must choose their own balance of performance and cost.
----
Also Please note this forum has an un(😀?)fortunate 'feature' of being unwilling to display Amazon references. Annoyingly, Amazon references sometimes show properly to one person and not to someone else.
My 'fix' is copy the URL, minus the "https://" at the front. e.g.:
www.amazon.co.uk/Desktop-Oscilloscope-Channel-Digital-Generator/dp/B0DBR9MSQR/ref
which doesn't show as a click link, but is trivial copy and paste.
---------------
If you would like to post more details of your set up, perhaps as a new post in a more appropriate forum section, you might get some suggestions as to how to track down the problem.
Best wishes, Dave
I have an oscope but I don't use it much, but the thing is when you do need one nothing else will do. I probably use my logic analyzer more since I don't work with analog that much. You can get some nice scopes at very good prices.
Yes, an oscilloscope is very useful for RFI diagnostics. It shows noise, glitches, and timing problems directly. It is not overkill for occasional electronics work. A scope saves time and reduces guesswork.
An SDRPlay cannot replace an oscilloscope here. SDRs work in the frequency domain, not the time domain.
They cannot probe logic lines or power rails. The FNIRSI 1014D works, but has limitations. Bandwidth, noise, and triggering are mediocre. A used Rigol or Siglent is a better choice.
Hi, first I apologize for not getting back sooner. For some reason I thought I would get an email (or maybe I'm signed up using a different email) if anybody responded, so I haven't been back for a while.
I ended up "fixing" the RFI problems by twisting the motor wires around each other. Before I did that, I would get i2c errors after about 30 seconds when I set the motor speed to 200. Since then I've been able to set the motor speed to 250 (seems to be maximum) and I let it run for about 10 minutes and there were no i2c errors.
I don't remember the exact error message I was seeing when I was getting the failures. I think it had to do with missed messages, but I can't be positive. It would occasionally reboot the esp32, and usually just stop the sketch when I got the errors.
I ended up buying that oscilloscope, and although it was of limited use (probably because I don't know what I'm doing) in resolving the RFI issues, I have thoroughly enjoyed using it. It was relatively inexpensive, so I don't feel guilty even if I only use it occasionally.
Thanks also for the amazon link information. I posted on here a long time and I had the same problem, but I couldn't remember the workaround.
THanks!
Sorry for the delayed response, and thank you for the information. I will probably be buying a logic analyzer in the near future.
Thanks!
Sorry for the delayed response.
I ended up buying the oscilloscope since it was fairly inexpensive. I really enjoy watching the wave forms change. That's probably the novelty of it, but at this point I'm happy to have an oscilloscope even if I don't use it often.
I was able to see (what I think of as) spikes occasionally in the waveform. I "fixed" the i2c problem by twisting the motor wires, and since then I have not had the problem. I still see spikes in the waveform, but not as frequently. The oscilloscope was useful by letting me see the changes in the waveform as I was making changes to the circuit.
Thanks!
David
I was able to see (what I think of as) spikes occasionally in the waveform. I "fixed" the i2c problem by twisting the motor wires, and since then I have not had the problem.
A technique I wasn't aware of before so I Googled to find out the best way to To Twist Servo & Aircraft Wires To Minimize RF Interference. I wouldn't know if I had spikes or not as I don't have an oscilloscope.
Hi @davidl,
Thanks for your kind reply. It is good to know you have been successful.
Twisting the wires is generally good practice, as it reduces the susceptibility to picking up stray fields.
Now you that have a 'scope, you might consider using it to look at the I2C signals, to check their shape. The shape of I2C signals, during the 'rising' edge, are effectively defined by a combination of the wire length and the value of the pull up resistor(s). If the resistor value is too high, then the rising edge changes from a near vertical line of an 'ideal' square wave to a slow slanting line, making the line vulnerable to data corruption.
Best wishes, Dave