Filtering noise from a wire


+ Reply to Thread
Results 1 to 19 of 19
  1. #1
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    2,598

    Default Filtering noise from a wire

    I have install pushbuttons on the flip side of these (5V circuit), and the button state is sent via a 3rd wire to another board along with the VDD and VSS wires:




    What is the proper technique to filter noise picked up by the wires before the signal is processed by a MCP23017 I/O Expander?


    I searched here and google for "decouple wire lines", but it's too vague of a question. And I don't know how I can state it better, or differently.


    I've read about ferrite beads, but I'm not sure if capacitors could do the job as well. I remember hacking a keyboard many moons ago, and it had aluminium foil along the back cover.


    EDIT: I have to consider that someone might have speakers, cell phones or other "noisy" devices placed right beside the unit.
    Last edited by Demon; - 19th January 2024 at 07:26.
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  2. #2
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    2,598


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    This lady recommends "This is one of the two ways to control EMI—eliminate the source or eliminate the antenna."

    https://resources.altium.com/p/every...-ferrite-beads


    I can't eliminate the source for the simple reason that I have no idea what a user might put within proximity of the device.

    As for the antenna, I assume she means protecting the wire. I will have a LOT of unshielded small gauge wires, ranging from 1 to 8 inches (I'm up to nearly 100 switches). I could wind them up in aluminium foil like I see on network cables (I haven't done any research on this subject yet).
    Last edited by Demon; - 19th January 2024 at 07:28.
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  3. #3
    Join Date
    Nov 2003
    Location
    Greece
    Posts
    3,807


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    Maybe it is simpler to put all these stuff in a metal box and earth it?

    Ioannis

  4. #4
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    2,598


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    Weight is an issue.
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  5. #5
    Join Date
    Nov 2003
    Location
    Greece
    Posts
    3,807


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    Then using shielded cables or wraping with copper foils like these may help on this: https://nl.aliexpress.com/item/10050...&mall_affr=pr3

    But why bother with all this stuff? Did you have any reliability problems?

    Ioannis

  6. #6
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    2,598


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    Quote Originally Posted by Ioannis View Post
    ...But why bother with all this stuff? Did you have any reliability problems?

    Ioannis

    Nothing so far. I just like to be prepared for the worst case scenario if I can. But I'm not going to drive costs up 500% to protect from 0.0001% insane user conditions either.

    My old scopes are acting up; switches and buttons causing noise on the screen; image is jumping like an old CRT. I'm not going to spend time figuring out if seemingly bad signals are real, or the result of faulty ancient equipment.

    I'm waiting for a small scope that had a good review for testing switch debounce. I don't do any advanced scoping routines; I only need it to check 5V lines for noise and switch bounces.
    Right now, I just don't know just how sensitive or hardy 5V circuits can really be.

    What ordinary household items that a gamer might have on his desk that you would consider as the biggest causes of noise on circuits?

    Electric kettle?
    Large speaker?
    Cell phone playing a movie?

    I'm planning on setting up some tests to see just how much noise my circuit can pick up.
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  7. #7
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    2,598


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    Quote Originally Posted by Ioannis View Post
    Then using shielded cables or wraping with copper foils like these may help on this...

    I already have a lot of manual tasks required to assemble a single unit. I would probably get shielded wire; something like this.

    Name:  Shielded wire.png
Views: 99
Size:  194.1 KB


    I haven't searched for prices. I just took a pic of the first one I found.

    But first I want to test to see exactly what I'm facing.
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  8. #8
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    2,598


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    Case in point: these guys say a 10 meter wire is an antenna, but under 10 cm is nothing to be worried about (under normal circumstances).

    https://www.eevblog.com/forum/beginn...54/#msg3863054

    My longest wires might not even be longer than 10cm. I'm just starting the I/O Expander circuit (it's going to sit "somewhere" in the middle of a bunch of switches//buttons).
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  9. #9
    Join Date
    May 2013
    Location
    australia
    Posts
    2,389


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    what is the shortest switch activation period that you would expect to need to detect and how quickly do you need to respond ?
    generally any key press under 50mS i would just ignore . for basically "static" switches 200 0r 300 mS would be more than adequate

    why care about noise and debouncing if quick responses are not required
    Warning I'm not a teacher

  10. #10
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    2,598


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    Quote Originally Posted by richard View Post
    what is the shortest switch activation period that you would expect to need to detect and how quickly do you need to respond ?
    generally any key press under 50mS i would just ignore . for basically "static" switches 200 0r 300 mS would be more than adequate

    why care about noise and debouncing if quick responses are not required

    The only issue I can think of is that I have rotary encoders. Nothing is preventing the user from turning 2 encoders at the same time while on auto-pilot.

    There's also the possibility of someone flying with a co-pilot/navigator; that could mean the "possibility" of up to 4 encoders moving at the same time. I want to be ready for that.


    My goal is to undercut the market by a wide margin. It's very possible someone with vested interests would try their best to find "bugs" with my product, and drag my name on flight sim groups.

    For example: back in college during the late 70ies, Burroughs brought in a main-frame but we thought it sucked. So most a lot of computer students flooded the queues with duplicates of their jobs. The techs from Burroughs were not prepared; the machine failed, badly, and IBM came back. We didn't have vested interests, we were just goofballs, but we did crash the system.

    Just look at this thing; couple of switches and 3 LEDs for $140CAD. That's insane. That's worth something like $20 at most. There's very few competition, so they pretty much do as they please.

    I'm not the next Delorean, but I still expect resistant.
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  11. #11
    Join Date
    May 2013
    Location
    australia
    Posts
    2,389


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    I have rotary encoders. Nothing is preventing the user from turning 2 encoders at the same time while on auto-pilot.
    rotary encoders are a completely different story to switches, you have virtually no chance of reading multiple re's via i/o extenders with any confidence that steps and direction changes won't be missed
    Warning I'm not a teacher

  12. #12
    Join Date
    Nov 2003
    Location
    Greece
    Posts
    3,807


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    Regarding the Rotary encoders Richard covered it 100%.

    With shielded wires I am pretty sure you won't have any problems. Forget about R's and C's, just read two times the switch state and your are done with debounce.

    As for long or short wires acting like antennas, well, the general statement "long wires act like antenna" is not quite right. It depends on the frequency we are talking about. For example, 10cm may seem very short, but this is an antenna for 750MHz and the 10m is an antenna for 7.5Mhz. So, which one may be a problem for you? It depends on what signal sources you have nearby, right?

    Best way to deal with all frequencies is both cable shielding and metal case box wherever there is a possibility of interference.

    But I think we are getting crazy on this...

    Ioannis

  13. #13
    Join Date
    Aug 2011
    Posts
    412


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    Quote Originally Posted by richard View Post
    rotary encoders are a completely different story to switches, you have virtually no chance of reading multiple re's via i/o extenders with any confidence that steps and direction changes won't be missed
    +1

    If you're trying to use an IO expander to do that good luck!

  14. #14
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    2,598


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    Challenge accepted 😁
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  15. #15
    Join Date
    Nov 2003
    Location
    Greece
    Posts
    3,807


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    Even if you have the fastest MCU to decode rotary encoder, the bottleneck is the I/O expander and will not be fast enough to follow users speedy fingers!

    Ioannis

  16. #16
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    2,598


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    Quote Originally Posted by richard View Post
    what is the shortest switch activation period that you would expect to need to detect and how quickly do you need to respond ?
    generally any key press under 50mS i would just ignore . for basically "static" switches 200 0r 300 mS would be more than adequate
    ...

    I didn't have real world data yet. Here's the switch with the longest activation period mounted on a test PCB:

    (similar to this switch, yellow circuit, about 10cm end to end)

    Name:  B3F-4055 trace.png
Views: 34
Size:  143.2 KB


    5vdc with 10:1 probe
    .1 volt / division
    .2 ms / division


    Name:  B3F-4055 at 0.2ms on PCB.jpg
Views: 31
Size:  301.5 KB


    It takes 5 divisions for a press, so 1 millisecond end to end. The other switches take about 0.3 to 0.6 ms.

    It has a blurry bounce of under 2 sub-divisions at the top (∼0.07ms), I saw at least one other press with a bounce twice as long (it was out of focus - I didn't save it).

    I wasn't able to get any rising edges for some reason. I'm sure that has to do with the trigger settings, but I just don't know how to do that, yet.


    This is what I get probed directly to an identical unconnected switch:

    Name:  B3F-4055 at 0.2ms DIRECT.jpg
Views: 26
Size:  129.6 KB


    It took a lot less time to activate, under 0.5ms. I assume this is what you guys meant about traces acting as antennas.
    Last edited by Demon; - 30th January 2024 at 04:46.
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  17. #17
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    2,598


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    At least now I have an idea of what sort of activation times and switch bounce that I'm facing. I really had no clue what sort of activation delays I was facing (never got this far in a project).

    Now I need to test from a secondary PCB, out using wires (max 10cm) to a 1" x 1" switch PCB, and back to the secondary PCB.

    That will give me actual data using the planned hardware.
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  18. #18
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    2,598


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    Quote Originally Posted by Ioannis View Post
    Even if you have the fastest MCU to decode rotary encoder, the bottleneck is the I/O expander and will not be fast enough to follow users speedy fingers!

    Ioannis

    This is a signal from an EC11 rotary encoder.

    5vdc with 10:1 probe
    .1 volt / division
    .2 ms / division


    Name:  EC11 SPST at 0.2ms on PCB.jpg
Views: 24
Size:  132.5 KB


    It takes about 2.5 time divisions to activate; so about 0.5ms.

    MCP23017 I/O Expanders can run up to 1.7 MHz in I2C mode.
    MCP23018 I/O Expanders can run up to 3.4 MHz in I2C mode.
    MCP23S17 I/O Expanders can run up to 10 MHz in SPI mode.

    I'm not keen on the new addressing mode on the MCP23018 version. I'm hoping the MCP23017 is fast enough at 1.7 MHz in I2C mode. At worse, I'll learn how to use the MCP23017 at 10 MHz in SPI mode.

    (nope, haven't done any math to check if it's possible, mainly cause I have no clue how to do that properly )
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  19. #19
    Join Date
    Aug 2011
    Posts
    412


    Did you find this post helpful? Yes | No

    Default Re: Filtering noise from a wire

    Quote Originally Posted by Demon View Post
    MCP23017 I/O Expanders can run up to 1.7 MHz in I2C mode.
    MCP23S17 I/O Expanders can run up to 10 MHz in SPI mode.
    That's the wire speed... you'll never get the code to run anywhere near that fast except for a single byte transaction.
    You won't get I2C to run that fast without active pullups, and getting the PIC to do 10MHz SPI depends on your system clock.

Similar Threads

  1. Noise on input signal
    By fanman in forum mel PIC BASIC Pro
    Replies: 17
    Last Post: - 28th February 2012, 02:55
  2. Notch filtering
    By SOMRU in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 23rd June 2010, 16:45
  3. Noise on OSC pins.
    By Tobias in forum General
    Replies: 0
    Last Post: - 31st December 2009, 01:29
  4. Input Noise
    By PJALM in forum mel PIC BASIC Pro
    Replies: 13
    Last Post: - 28th February 2006, 19:26
  5. Loop noise
    By Jųan in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 20th October 2005, 12:19

Members who have read this thread : 13

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts