-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
usb connection issues #265
Comments
Thank you for the information. I have received some reports, but I have not yet been able to identify what the cause is. I will review some of the design policies and try to improve them. |
if you need any further information or have an idea how to fix existing pcbs I'm all ears! |
@xkonni can you let us know the distro and kernel versions please? |
sure, here are my 3 test computers
|
Is yours cherry or chocolate? |
I got two 4.1 here, one cherry, one choc. they behave exactly the same. On a usual day they work. Does not matter which one I use. Then after a while the usb issues appear. Changing usb from left to right does not help, switching cherry to choc does not help. A cold boot sometimes helps. |
Thank you for sharing the details! |
I’m also experiencing some disconnect issues with my Core v4.1. When I plug it in and use it to practice on keybr.com, it works well. However, if I set it aside (while it’s still plugged in), switch to browsing, or use my Mac keyboard, the Core v4.1 stops responding when I try to use it again, even though the LED remains on. Tell me if I can help somehow troubleshooting... |
I'm having similar issues as well. Seems to be that the non-plugged side disconnects most often, but sometimes I'll get disconnects on the plugged in side as well. I saw the LEDs flicker when this happened, which isn't suprising, but it was a series of very short bursts of flickers which makes me think it's a Power-related issue. |
This is just a guess, but from some reports I've heard it seems to be a power supply issue. There are some parts that are not very well designed, and some of them may be defective. I'd like to isolate some of the root causes, and I'd appreciate any information you could give me.
|
I've had the issue on a Mac. I do have a spare PC that I can test with later this weekend and report back. No spare Corne v4.1 keyboards assembled to test with easily. |
Update: Set up:
I used the Corne V4.1 all day today, about 10 hours of use during work. I experienced a total of about 10 losses of function, some back to back, with varying amount of time between them. Left hand (slave side) had about 6-7 losses of function. Right hand (master side) had about 3-4 losses of function. On one occasion, losses of function occurred every 30 seconds and required the keyboard to be reflashed. Each time there was loss of function, it was preceded by LED flickering. Hope this helps! I'm happy to set up more Corne V4.1s to test in varying conditions. |
Another update: I swapped my keyboard out with another Corne v4.1 PCB this evening. I did this to verify that there were no hardware issues with the first PCB. I also used the same firmware to avoid SW variation. I confirmed the same behavior with keyboard lockup on one side resulting in requiring a power cycle to recover. This is a big issue! Right now I can't use my (5) Corne v4.1's nor can I use a v4.1 as my daily driver with these reliability issues. @foostan have you looked into this any further? |
Thank you for your confirmation. Unfortunately, this problem does not occur in my environment, so I cannot investigate further. |
Hi, How can we help you further investigate this issue? edit: |
FYI the second USB port will work (opposite hand) however your special keybinds may behave differently from your custom layout; found this to be a pleasant surprise considering a USB port joint was damaged on mine and the opposite ha d allows me to work around the one broken USB jack. |
Another possibility is that the PCB is simply damaged. Please also contact your supplier for further information. |
@foostan 4 different PBCs from 2 different vendors show the exact same exact issue, both used as a pair and as a single unit (with a custom firmware). I had spent quite a lot of time trying to debug and i'm 100% positive it's not a single unit, it's not my computer, the usb cable or simila. What i'm hoping to get here is some help in further debugging what is an issue with the USB on the keyboard, and hopefully find a solution/workaround to help the other user that may have the same issue. So, in that light, is there any other info i can provide? @chadhakala no, the usb port is not damaged at all. |
Thank you for sharing the details. I'm glad you're being helpful. So what you're reporting means is that the issue is more likely to occur with KMKfw than with QMK? I'll give KMKfw a try. Thanks again. |
@foostan I don't think he's saying the KMKfw is worse, but rather by testing the same firmware on a generic RP2040 and on the Corne v4.1 board, the issue is only present on the Corne v4.1. This eliminates as many noise factors as conveniently possible. The help needed is some debugging on the Corne v4.1 USB HW design to understand what's unique to the design that's causing the issue. Please let us know if you need data. I am fully willing to support as needed. I would love to help solve this. |
I'm sorry, of course. I didn't mean KMKfw is worse. I would like to isolate the problem and investigate the cause in detail. Thank you for your cooperation. Let's share information on this issue. |
@alessiocurri My apologies--I didn't realize this thread was all about the lockup; while,I have faced this issue and other unique issues for which I do not have systematic evidence for being a USB fault. The last time I used the corne I did face this exact lock up issue and stop using it completely for that reason, I am following all these threads so my apologies, little embarassed for chiming in didn't even read the full thread; I'm pretty sure I meant to respond to a different comment in the thread and was unaware there was even an issue for lockup. |
@dahmwern exactly what i meant ;) @foostan here https://gist.github.com/alessiocurri/18e6b0c48a74c37dee766a71a22ac62a you can find my config for a left-only corne 4.1, no TRRS cable nor right side necessary. To install kfmfw I just copied the kmkfw files from the github repo, added the neopixel.py library (you can also use the .pyc, it should be the same) and my code.py and boot.py (the latter is not strictly necessary). Please note the default layer is empty. To test you need to switch to another layer, the leds will highlight the active keys. In this config i can replicate the usb lockup on average in 20 minutes, using all 4 boards (tested without the switches, with, no difference). The easier way to check the status is to use a serial console con the virtual com port exposed. There you can find the python REPL. That virtual serial port will disappear when the usb issue presents itself. @ChadHacksaLot no prob at all, probably it's me owning an apology... in my reply i have been very blunt, probably a tad much :) |
@viscount-monty I've experienced that same LED pattern during lockup. Your description is consistent with my experience. What information do you need to analyze the PCB design for potential USB related comms issues? |
It seems that it may or may not occur depending on the environment. I don't know under what conditions it occurs, but has anyone noticed any electrical abnormalities when the problem occurs, such as a short interruption or a significant drop in voltage or current? |
@foostan may I ask why you didn't go for a ground plane pour on both sides of the corne? The image you posted of the Cornelius appears to show a ground plane pour on the micro-controller side, though it seems to lack any 'stitching' vias. If there is no ground plane pour on the other layer that would make sense though. I'm not certain it would make a difference, but I'm used to seeing/designing RF boards with top and bottom ground plane pours, stitched with vias at reasonable intervals. |
@viscount-monty Can you tell me what its significance is? I didn't do it because I didn't know what effect it would have. |
Instead of a pour on top an bottom, I highly recommend making a 4 layer board. The top layer is segmented due to the lines, having a solid inner ground would be beneficial.
|
I have already verified the four-layer design and prototype. Although the wiring has certainly been simplified, I have concluded that the benefits were not enough to justify the increased costs. |
@foostan Certainly - proper grounding/shielding prevents EMI, either emitting RF which could interfere with other devices, or shielding the device from other source of RF interference. Similar to how a co-axial cable features a shield/ground which entirely covers the signal conductor. This kind of grounding/shielding is required to make RF PCBs function correctly and pass compliance testing. To think of it another way, a PCB trace could accidentally behave as an antenna for external interference if not shielded/grounded sufficiently. |
So, let's put a ground around the edge of the board as much as possible. That alone will have an effect. As mentioned above, I will not use a 4-layer board. |
Nice work, looks great! I'm looking forward to hearing how the prototype turns out 🤞 |
Can't wait to hear the results. If you need other people to help you test your boards... Just saying :) |
Not quite. The USB lines should not be "as thick as possible" but rather have the correct impedance. Regarding trance length: For a high speed USB signal, a conservative approach for a 2 layer board (according to the article) would be to stay under the 25% limit, which is roughly 20 mm line length. Beside good shielding from EMI this is also an important factor for signal integrity. Below is a guide for 2 layer boards. |
Thanks for the detailed information and feedback. I will try to calculate the impedance and improve it. |
To make it clear: The impedance is not the only criteria for USB. Implementation according to best practices and hardware design guides as mentioned in other posts are critical if you want your product to be within the specification. This is a general overview of the EMC USB specification https://www.we-online.com/components/media/o109031v410%20ANP024d_The%20USB%20Interface%20from%20EMC%20Point%20of%20View.pdf If you plan to sell your product in the EU, you have to comply with the regulations described here https://single-market-economy.ec.europa.eu/sectors/electrical-and-electronic-engineering-industries-eei/electromagnetic-compatibility-emc-directive_en |
Just as an external comment, I've got an RP2040 based split board that exhibits similar behaviour when a mobile phone is placed near the board. (Fingerpunch ximi v2). I managed to reduce the symptoms significantly by using a shielded USB-C cable |
hi, not pushing just like to know how long does it take to make the prototype? |
I ordered it last week. |
Another temporary fix seems to be using a powered USB hub with EMI shielding. I've been using my Corne v4.1 for a couple weeks now through one without this issue, then today started plugging it directly into my laptop via usb C and the issue started. I'm gonna try a more shielded usb C cable for travel now. My details are the same as others have already stated: left split is plugged in via usb, right split connected to left via trrs. Phone gets close, the right split will stop taking input after a short period (but keeps rgb on with animation paused), and left still works. Have to unplug and replug for it to start working again, and then it will last anywhere from 5-30s depending on how close the phone is I guess. Issue goes away with enough distance. |
Hello, First, I'd like to thank you for your fantastic work on the crkbd. Please keep it up! I'm writing to see how things are progressing with the current issue. I'm very excited about the crkbd v4 and am waiting for this to be resolved before building the keyboard. Thanks again for all your hard work! |
I'll share the current status
|
Came here to report the same issues as everyone else with v4.1 and happy to hear that this is being resolved with a new board design. Please post when this goes on sale! Would some EMI shielding tape in the case help with our current boards? If so, approximately where would we tape? The entire case surrounding the PCB or just cover a particular chip on the PCB? Thoughts on this? https://www.3m.com/3M/en_US/p/d/b00041293/ Thanks for all your work here! |
You're correct in thinking shielding can help, but due to the nature of the corne case (doesn't cover the top of the PCB), what you're suggesting may potentially make the noise issues worse. Shielding (creating a Faraday cage around the item to be shielded) works if the conductive material entirely surrounds the item, or, to a lesser extent, if the shielding material is between the item and the source of the noise (in this case, that would mean shielding over the top of the keys). If you were to place shielding material in the case, this would mean you essentially have the following configuration:
Which is essentially a 'patch antenna', meaning it could possibly amplify the noise level experienced by the PCB. To oversimplify a little, picture the RF noise reflecting off the shielding after passing through the PCB, only to pass back through the PCB again. |
What if one uses tin foil as a "PE foam mod" on top of the PCB, under the plate (with large enough holes to not touch the pins)? |
Could potentially reduce the noise, but could also make it worse as the
metal contacts in the switches may act as the 'active element' in patch
antenna...
I'd be interested to hear the results if you're able to try it 🤔
…On Fri, 17 Jan 2025, 17:05 Rasmus K. Rendsvig, ***@***.***> wrote:
What if one uses tin foil as a "PE foam mod" on top of the PCB, under the
plate (with large enough holes to not touch the pins)?
—
Reply to this email directly, view it on GitHub
<#265 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AMM7NWE3LLURTW43OVWN2L32LDBV7AVCNFSM6AAAAABPWSWCK2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKOJXG42TGOJSHE>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
^am interested too to know if that works. If anyone here has confirmed a free/cheap diy fix to work around v4.1's issue, that would be great so i can keep using the corne i already have instead of having to buy a whole new 4.1.1 board. - though much appreciated this was addressed in 4.1.1 moving forward 💯 Seems using a "shielded" usb cable works for 4.1? Where could i find this in amazon |
I found some EMI shielding tape, that is non-conductive. But would like to know really what I should be shielding from @foostan . The entire PCB? A section of it? A certain chip? |
So to update on my issue, turing on Airplane mode on my iPhone 16 Pro Max and allowing Wifi, prevents this issue completely. So it is cellular signal that interferes with the Corne. I also noticed some interference on my speakers and headphones when cell service was on. That interference is gone on Airplane mode and the Corne works perfectly. |
|
Thanks @viscount-monty I am new to this. Will try things and report back. |
Introducing the “Faraday Mod” for the Corne v4.1 Pics: https://imgur.com/a/Xzk7oNd It seems to have worked! Copper EMI shielding conductive tap: https://a.co/d/16tvJXh |
When I tested it with Cornelius, I used only the PCB and placed the IC and phone as close as possible. I have never had any problems with everyday use. |
got 2 crkbd rev 4.1, love them, typing on my old 60% is a pain now.
but for some reason the usb connections on both devices are rather unstable on my machines (linux pc, 2 dell laptops with linux). first I thought it was a hw issue, but the second (one from a diy store in germany, one from aliexpress) shows the exact same issues.
using your firmware with the vial keymap. tried some options (remove
USB_SUSPEND_WAKEUP_DELAY
, increase it, ...) but the devices remain unstable. sometimes they run for hours, then they fail every few seconds.Could this be related to #229 ?
any help is highly appreciated!
logs:
The text was updated successfully, but these errors were encountered: