[GH-ISSUE #171] Poor signal fix #74

Closed
opened 2026-10-22 05:02:16 +00:00 by roman · 18 comments
Owner

Originally created by @AOClaus on GitHub (Jul 15, 2026).
Original GitHub issue: https://github.com/safijari/openpuck/issues/171

I bought the Amazon listing posted in this repository and the device works fine, except there seems to low signal integrity and the controller kept dropping connection. Googling indicates this is a problem for the original puck as well. I was able to remove the tiny antenna from my nrf52840 and soldered a 31 cm solid core wire in it's place. It has significantly improved the range and reduced the interference from Wi-Fi, I no longer have dropped signal. This night actually make open puck a better option than the original in some instances.

Originally created by @AOClaus on GitHub (Jul 15, 2026). Original GitHub issue: https://github.com/safijari/openpuck/issues/171 I bought the Amazon listing posted in this repository and the device works fine, except there seems to low signal integrity and the controller kept dropping connection. Googling indicates this is a problem for the original puck as well. I was able to remove the tiny antenna from my nrf52840 and soldered a 31 cm solid core wire in it's place. It has significantly improved the range and reduced the interference from Wi-Fi, I no longer have dropped signal. This night actually make open puck a better option than the original in some instances.
roman closed this issue 2026-10-22 05:02:16 +00:00
Author
Owner

@safijari commented on GitHub (Jul 15, 2026):

Oh wow. If you write up your experience I can link it in the readme.

<!-- gh-comment-id:4986235269 --> @safijari commented on GitHub (Jul 15, 2026): Oh wow. If you write up your experience I can link it in the readme.
Author
Owner

@stickman-dev commented on GitHub (Jul 18, 2026):

Amazing, thank you for this. Even after the board crashes got fixed, I've still been getting random disconnects and missed inputs. I've been trying everything else I could think of except fixing the antenna. Yup, turns out the antenna on these boards are not ideal. That, combined with living in a very wifi dense area, explains what I've been experiencing.

I did as suggested and soldered a 31mm bit of wire (salvaged from bit of cat5e) to the pad of the ceramic antenna on my pro micro/supermini board and the disconnects and dropouts have completely stopped.

For anyone else that's looking to try this, I've attached a photo of my modded board. No need to remove the ceramic antenna. Just tack on a 31mm bit of solid core wire. 31.2 mm is the standard quarter-wave antenna length for 2.4 GHz devices. I've got the wire bent back down over the board which probably isn't optimal but I want it to be able to fit in a case. It still performs well enough for my needs. If you do this, it's probably worth making sure there's a bit of a gap between the wire and the board. I also wrapped the end in Kapton just as a precaution.

For a better explanation, there's more info on this on SlimeVR's docs

Image
<!-- gh-comment-id:5013205270 --> @stickman-dev commented on GitHub (Jul 18, 2026): Amazing, thank you for this. Even after the board crashes got fixed, I've still been getting random disconnects and missed inputs. I've been trying everything else I could think of except fixing the antenna. Yup, turns out the antenna on these boards are not ideal. That, combined with living in a very wifi dense area, explains what I've been experiencing. I did as suggested and soldered a 31mm bit of wire (salvaged from bit of cat5e) to the pad of the ceramic antenna on my pro micro/supermini board and the disconnects and dropouts have completely stopped. For anyone else that's looking to try this, I've attached a photo of my modded board. No need to remove the ceramic antenna. Just tack on a 31mm bit of solid core wire. 31.2 mm is the standard quarter-wave antenna length for 2.4 GHz devices. I've got the wire bent back down over the board which probably isn't optimal but I want it to be able to fit in a case. It still performs well enough for my needs. If you do this, it's probably worth making sure there's a bit of a gap between the wire and the board. I also wrapped the end in Kapton just as a precaution. For a better explanation, there's more info on this on SlimeVR's [docs](https://docs.slimevr.dev/smol-slimes/hardware/smol-receiver.html#-option-2-wire-antenna-mod) <img width="3072" height="4096" alt="Image" src="https://github.com/user-attachments/assets/e00eef15-5469-4bc3-8f16-609f2c3f574a" />
Author
Owner

@Supster131 commented on GitHub (Jul 19, 2026):

I just may have to install a wire as well. I can also confirm signal is very poor on the Pro Micro NRF52840. Even having it right next to the Steam Controller, I get dropped inputs and disconnects.

<!-- gh-comment-id:5013944240 --> @Supster131 commented on GitHub (Jul 19, 2026): I just may have to install a wire as well. I can also confirm signal is very poor on the Pro Micro NRF52840. Even having it right next to the Steam Controller, I get dropped inputs and disconnects.
Author
Owner

@safijari commented on GitHub (Jul 19, 2026):

@Supster131 what board do you have? My kids play routinely sitting about 10ft away from the TV/dongle without issue. I worry different boards might have different levels of effectiveness

<!-- gh-comment-id:5014037593 --> @safijari commented on GitHub (Jul 19, 2026): @Supster131 what board do you have? My kids play routinely sitting about 10ft away from the TV/dongle without issue. I worry different boards might have different levels of effectiveness
Author
Owner

@Supster131 commented on GitHub (Jul 19, 2026):

This is the listing I purchased on Amazon. It's looks slightly different, but still similar enough to the one you linked in your readme. But I just noticed it looks identical to @stickman-dev 's board. So you might be right. Some boards might just have awful signal performance.

<!-- gh-comment-id:5014075447 --> @Supster131 commented on GitHub (Jul 19, 2026): [This](https://www.amazon.com/dp/B0CYLNZ6V4) is the listing I purchased on Amazon. It's looks slightly different, but still similar enough to the one you linked in your readme. But I just noticed it looks identical to @stickman-dev 's board. So you might be right. Some boards might just have awful signal performance.
Author
Owner

@safijari commented on GitHub (Jul 19, 2026):

There's a number of reports that this board doesn't work as well for some reason, but also one report that said that if you use a USB 2 port on your computer it works better.

<!-- gh-comment-id:5014097447 --> @safijari commented on GitHub (Jul 19, 2026): There's a number of reports that this board doesn't work as well for some reason, but also one report that said that if you use a USB 2 port on your computer it works better.
Author
Owner

@Supster131 commented on GitHub (Jul 19, 2026):

Yeah, I already have it plugged into a USB 2.0 port. Same port I was using with the official puck without issue. I'll probably attempt installing a wire tomorrow if I have time, but I still find it bizarre that the signal strength could be this bad? Is there a possibility this is something that can be fixed via firmware? Since you designed OpenPuck with your specific board, other boards aren't as optimized thus they get worse performance?

<!-- gh-comment-id:5014125540 --> @Supster131 commented on GitHub (Jul 19, 2026): Yeah, I already have it plugged into a USB 2.0 port. Same port I was using with the official puck without issue. I'll probably attempt installing a wire tomorrow if I have time, but I still find it bizarre that the signal strength could be this bad? Is there a possibility this is something that can be fixed via firmware? Since you designed OpenPuck with your specific board, other boards aren't as optimized thus they get worse performance?
Author
Owner

@stickman-dev commented on GitHub (Jul 19, 2026):

None of my boards are from Teyleten, but I’ve experienced it with all of them. I don’t have any USB 2.0 ports to test with, but I wonder if using a USB 2.0 port was actually the fix, or if moving the board away from a source of interference made the difference.

Interestingly, I have the same issue with my nice!nano v2, which uses a PCB trace antenna rather than a ceramic antenna. In my case, I’m fairly convinced that the combination of dense 2.4 GHz traffic and the relatively weak onboard antennas is the cause of my issues. I’ve had zero problems since doing the wire antenna mod. Before the mod, the disconnects were easily repeatable.

Of course, your mileage may vary, and the issues other people are experiencing could be caused by something else entirely.

<!-- gh-comment-id:5014193921 --> @stickman-dev commented on GitHub (Jul 19, 2026): None of my boards are from Teyleten, but I’ve experienced it with all of them. I don’t have any USB 2.0 ports to test with, but I wonder if using a USB 2.0 port was actually the fix, or if moving the board away from a source of interference made the difference. Interestingly, I have the same issue with my nice!nano v2, which uses a PCB trace antenna rather than a ceramic antenna. In my case, I’m fairly convinced that the combination of dense 2.4 GHz traffic and the relatively weak onboard antennas is the cause of my issues. I’ve had zero problems since doing the wire antenna mod. Before the mod, the disconnects were easily repeatable. Of course, your mileage may vary, and the issues other people are experiencing could be caused by something else entirely.
Author
Owner

@AOClaus commented on GitHub (Jul 19, 2026):

Seems we have some pictures already. But I'll take a look at my board and try to do a write up? It'll certainly be my first. And I wrote 31 cm earlier, which obviously isn't correct. I'll have to measure mine again, but I think it's 13 cm.

I think these boards just have a poor antenna. When I looked into whether I could add an antenna, there were already some examples of adding an antenna to similar boards.

My board is plugged into the post on the official Steam Deck dock which only has USB 3.1 ports on it.

<!-- gh-comment-id:5014418640 --> @AOClaus commented on GitHub (Jul 19, 2026): Seems we have some pictures already. But I'll take a look at my board and try to do a write up? It'll certainly be my first. And I wrote 31 cm earlier, which obviously isn't correct. I'll have to measure mine again, but I think it's 13 cm. I think these boards just have a poor antenna. When I looked into whether I could add an antenna, there were already some examples of adding an antenna to similar boards. My board is plugged into the post on the official Steam Deck dock which only has USB 3.1 ports on it.
Author
Owner

@Supster131 commented on GitHub (Jul 20, 2026):

So I went ahead and installed a wire on my board. At first, it looked liked it fix my connection issues. I using my controller for an hour or two without issue. I left and came back hours later to play some more and I got a disconnect within 2 minutes, so it seems like even with a wire it's still unreliable. The WebUSB configurator claims a signal strength of -45dBm to -60dBm. I didn't really look at this as much prior to installing the wire, but from the little I did look at before, I don't think there was really any signal strength improvement on the WebUSB page. Either I got a dud or some boards will just not be ideal for this project. Might not be a bad idea to create a list of boards that perform well and boards that should be avoided so newer users don't come across these issues.

<!-- gh-comment-id:5017937684 --> @Supster131 commented on GitHub (Jul 20, 2026): So I went ahead and installed a wire on my board. At first, it looked liked it fix my connection issues. I using my controller for an hour or two without issue. I left and came back hours later to play some more and I got a disconnect within 2 minutes, so it seems like even with a wire it's still unreliable. The WebUSB configurator claims a signal strength of -45dBm to -60dBm. I didn't really look at this as much prior to installing the wire, but from the little I did look at before, I don't think there was really any signal strength improvement on the WebUSB page. Either I got a dud or some boards will just not be ideal for this project. Might not be a bad idea to create a list of boards that perform well and boards that should be avoided so newer users don't come across these issues.
Author
Owner

@stickman-dev commented on GitHub (Jul 20, 2026):

So I went ahead and installed a wire on my board. At first, it looked liked it fix my connection issues. I using my controller for an hour or two without issue. I left and came back hours later to play some more and I got a disconnect within 2 minutes, so it seems like even with a wire it's still unreliable. The WebUSB configurator claims a signal strength of -45dBm to -60dBm. I didn't really look at this as much prior to installing the wire, but from the little I did look at before, I don't think there was really any signal strength improvement on the WebUSB page. Either I got a dud or some boards will just not be ideal for this project. Might not be a bad idea to create a list of boards that perform well and boards that should be avoided so newer users don't come across these issues.

That's disappointing but not totally surprised. The connection issues you described seemed somewhat extreme, suggesting that there's something else going on. Other people have had issues with boards bought from the same seller. A list of known good boards would be ideal if possible. The problem is identifying the boards. With so many identical or similar looking boards sold by many different sellers, it's hard to know what boards are what. I even read on a listing from one seller that if you need 2 boards to work together, make sure to buy at the same time to ensure compatibility, suggesting that the boards they get aren't always the same from batch to batch.

<!-- gh-comment-id:5017972378 --> @stickman-dev commented on GitHub (Jul 20, 2026): > So I went ahead and installed a wire on my board. At first, it looked liked it fix my connection issues. I using my controller for an hour or two without issue. I left and came back hours later to play some more and I got a disconnect within 2 minutes, so it seems like even with a wire it's still unreliable. The WebUSB configurator claims a signal strength of -45dBm to -60dBm. I didn't really look at this as much prior to installing the wire, but from the little I did look at before, I don't think there was really any signal strength improvement on the WebUSB page. Either I got a dud or some boards will just not be ideal for this project. Might not be a bad idea to create a list of boards that perform well and boards that should be avoided so newer users don't come across these issues. That's disappointing but not totally surprised. The connection issues you described seemed somewhat extreme, suggesting that there's something else going on. Other people have had issues with boards bought from the same seller. A list of known good boards would be ideal if possible. The problem is identifying the boards. With so many identical or similar looking boards sold by many different sellers, it's hard to know what boards are what. I even read on a listing from one seller that if you need 2 boards to work together, make sure to buy at the same time to ensure compatibility, suggesting that the boards they get aren't always the same from batch to batch.
Author
Owner

@Genomerio commented on GitHub (Jul 20, 2026):

I have 2 pucks with the Teyleten boards and havent had any issues, but I am only a few feet away. Boards are plugged into my USB3 monitor hub, taped to the back of the monitor, and I sit anything from 2-6 feet away.

<!-- gh-comment-id:5018911018 --> @Genomerio commented on GitHub (Jul 20, 2026): I have 2 pucks with the Teyleten boards and havent had any issues, but I am only a few feet away. Boards are plugged into my USB3 monitor hub, taped to the back of the monitor, and I sit anything from 2-6 feet away.
Author
Owner

@AOClaus commented on GitHub (Jul 25, 2026):

This is what I came up with for a writeup.

The ProMicro nRF52840 you can acquire from Amazon has, by some reports, a rather mediocre antenna. In order to combat this problem, a new antenna may be fashioned from a spare piece of copper wire. A quick Google search indicated the antenna should be 31.c mm in length (I misread and made a far longer antenna, though it doesn't seem to have hurt reception). I recommend the type used in breadboarding because it is stiff and will remain extended. The built in antenna is a small, red rectangle at the bottom of the board (the end opposite the USB C connector). With the board facing such that the USB C connector is at the top, the trace that connects the antenna will be on your right, I feel the wire should be preferentially be soldered to this side. The other end of the exposed wire that you use can be wrapped around and soldered to the other side for strength and support. If you feel comfortable I would recommend removing the existing antenna. This can be done by placing your soldering iron at the end of the antenna and gently pressing against it with some slight upward pressure, you can also use tweezers to pull it up. You can then apply heat the other side and gently wiggle the antenna until it comes off. The new antenna can then be soldered across both solder pads that were holding the old antenna in place.

<!-- gh-comment-id:5080069909 --> @AOClaus commented on GitHub (Jul 25, 2026): This is what I came up with for a writeup. The ProMicro nRF52840 you can acquire from Amazon has, by some reports, a rather mediocre antenna. In order to combat this problem, a new antenna may be fashioned from a spare piece of copper wire. A quick Google search indicated the antenna should be 31.c mm in length (I misread and made a far longer antenna, though it doesn't seem to have hurt reception). I recommend the type used in breadboarding because it is stiff and will remain extended. The built in antenna is a small, red rectangle at the bottom of the board (the end opposite the USB C connector). With the board facing such that the USB C connector is at the top, the trace that connects the antenna will be on your right, I feel the wire should be preferentially be soldered to this side. The other end of the exposed wire that you use can be wrapped around and soldered to the other side for strength and support. If you feel comfortable I would recommend removing the existing antenna. This can be done by placing your soldering iron at the end of the antenna and gently pressing against it with some slight upward pressure, you can also use tweezers to pull it up. You can then apply heat the other side and gently wiggle the antenna until it comes off. The new antenna can then be soldered across both solder pads that were holding the old antenna in place.
Author
Owner

@Solastrath commented on GitHub (Jul 26, 2026):

This is the listing I purchased on Amazon. It's looks slightly different, but still similar enough to the one you linked in your readme. But I just noticed it looks identical to @stickman-dev 's board. So you might be right. Some boards might just have awful signal performance.

Purchased this exact same one as the original wasn't available. Soldered on an Cat 6 solid copper wire and this is before the mod and this is after. Haven't tested it in games yet but I'll report back tomorrow when I'm able to. Everything was tested in the exact same position and everything. Definitely seems like there is an issue with this specific board

<!-- gh-comment-id:5081463049 --> @Solastrath commented on GitHub (Jul 26, 2026): > [This](https://www.amazon.com/dp/B0CYLNZ6V4) is the listing I purchased on Amazon. It's looks slightly different, but still similar enough to the one you linked in your readme. But I just noticed it looks identical to [@stickman-dev](https://github.com/stickman-dev) 's board. So you might be right. Some boards might just have awful signal performance. Purchased this exact same one as the original wasn't available. Soldered on an Cat 6 solid copper wire and this is [before](https://i.imgur.com/MLVcxMe.png) the mod and this is [after](https://i.imgur.com/Y40oF9w.png). Haven't tested it in games yet but I'll report back tomorrow when I'm able to. Everything was tested in the exact same position and everything. Definitely seems like there is an issue with this specific board
Author
Owner

@Supster131 commented on GitHub (Jul 26, 2026):

Yeah, definitely let us know! I, on the other hand, gave up on that board and bought a different one that more closely resembles the one linked in the readme. Unfortunately, while it performs better than the Teyleten board, it's still not perfect. It's just super inconsistent. I get less disconnects and dropped inputs, but they still happen. I've been monitoring the WebUSB page more closely now and usually I start getting issues once the signal strength goes above -60dBm. The issue is that it's not consistent. Same distance from the board, sometimes I can play hours on end and the signal strength shows around -50dBm. Other times it fluctuates and then I get issues. But sometimes I noticed that I'd be below -50dBm and the controller would still keep disconnecting! Either I have the worst luck ever with these boards or there's something else at play. I'd like to stay the 2.4GHz band isn't super congested in my area. It's not empty, but it's not super jammed packed either. I don't have any issues with other 2.4GHz devices such as my wireless mouse, my 8BitDo controller, or the Steam Controller with the official puck.

<!-- gh-comment-id:5081563849 --> @Supster131 commented on GitHub (Jul 26, 2026): Yeah, definitely let us know! I, on the other hand, gave up on that board and bought a [different](https://www.amazon.com/dp/B0GS944LNH) one that more closely resembles the one linked in the readme. Unfortunately, while it performs better than the Teyleten board, it's still not perfect. It's just super inconsistent. I get less disconnects and dropped inputs, but they still happen. I've been monitoring the WebUSB page more closely now and usually I start getting issues once the signal strength goes above -60dBm. The issue is that it's not consistent. Same distance from the board, sometimes I can play hours on end and the signal strength shows around -50dBm. Other times it fluctuates and then I get issues. But sometimes I noticed that I'd be below -50dBm and the controller would still keep disconnecting! Either I have the worst luck ever with these boards or there's something else at play. I'd like to stay the 2.4GHz band isn't super congested in my area. It's not empty, but it's not super jammed packed either. I don't have any issues with other 2.4GHz devices such as my wireless mouse, my 8BitDo controller, or the Steam Controller with the official puck.
Author
Owner

@zoeysmith37 commented on GitHub (Jul 26, 2026):

In my experience, whist doing an antenna mod did significantly improve the signal strength - it didn't actually stop infrequent disconnects from happening, it might have delayed them somewhat but ultimately the difference between wire on and wire off was only a few db, and I wasn't really in an unacceptable range to begin with, even through walls.
It is worth noting though, for those the antenna mod is legitimately helpful for, that having the wire pointing upwards away from the board did make a pretty noticeable positive difference in strength from having it lying flat (but it does look ugly like this).

What ultimately ended up being a better solution in my case was changing the channel on which we are communicating - the default of an offset of 18 was probably the worst possible option available in my home (very very congested), switching it to a different channel cleared up things a lot - but obviously which channels are clearest will vary on a per user basis.

<!-- gh-comment-id:5083115986 --> @zoeysmith37 commented on GitHub (Jul 26, 2026): In my experience, whist doing an antenna mod _did_ significantly improve the signal strength - it didn't actually stop infrequent disconnects from happening, it might have delayed them somewhat but ultimately the difference between wire on and wire off was only a few db, and I wasn't really in an unacceptable range to begin with, even through walls. It is worth noting though, for those the antenna mod _is_ legitimately helpful for, that having the wire pointing upwards away from the board did make a pretty noticeable positive difference in strength from having it lying flat (but it does look ugly like this). What ultimately ended up being a better solution in my case was changing the channel on which we are communicating - the default of an offset of 18 was probably the worst possible option available in my home (very very congested), switching it to a different channel cleared up things a lot - but obviously which channels are clearest will vary on a per user basis.
Author
Owner

@Solastrath commented on GitHub (Jul 26, 2026):

In my experience, whist doing an antenna mod did significantly improve the signal strength - it didn't actually stop infrequent disconnects from happening, it might have delayed them somewhat but ultimately the difference between wire on and wire off was only a few db, and I wasn't really in an unacceptable range to begin with, even through walls. It is worth noting though, for those the antenna mod is legitimately helpful for, that having the wire pointing upwards away from the board did make a pretty noticeable positive difference in strength from having it lying flat (but it does look ugly like this).

What ultimately ended up being a better solution in my case was changing the channel on which we are communicating - the default of an offset of 18 was probably the worst possible option available in my home (very very congested), switching it to a different channel cleared up things a lot - but obviously which channels are clearest will vary on a per user basis.

This makes sense. Im still having disconnects after the mod. How do you change channels on the puck?

<!-- gh-comment-id:5084070629 --> @Solastrath commented on GitHub (Jul 26, 2026): > In my experience, whist doing an antenna mod _did_ significantly improve the signal strength - it didn't actually stop infrequent disconnects from happening, it might have delayed them somewhat but ultimately the difference between wire on and wire off was only a few db, and I wasn't really in an unacceptable range to begin with, even through walls. It is worth noting though, for those the antenna mod _is_ legitimately helpful for, that having the wire pointing upwards away from the board did make a pretty noticeable positive difference in strength from having it lying flat (but it does look ugly like this). > > What ultimately ended up being a better solution in my case was changing the channel on which we are communicating - the default of an offset of 18 was probably the worst possible option available in my home (very very congested), switching it to a different channel cleared up things a lot - but obviously which channels are clearest will vary on a per user basis. This makes sense. Im still having disconnects after the mod. How do you change channels on the puck?
Author
Owner

@Supster131 commented on GitHub (Jul 26, 2026):

I wasn't afraid to ask Gemini Pro for help on how to change the channel OpenPuck uses considering this project heavily uses LLMs in the first place. It might be wrong, but I think these two lines set what channel OpenPuck uses:

uint8_t g_sessCh = 18; on line 12 in the radio.cpp file
static const uint8_t g_hopCand[] = { 18, 46, 76, 22, 68 }; on line 63 in the rf_link.cpp file

Both in the OpenPuck folder. I changed the first line to 80, while I changed the second line to { 80, 76, 68, 46, 22 } which should use higher channels. It's only been a few hours, so it could be a fluke or just the same inconsistency from earlier, but I haven't had any disconnects or dropped inputs yet since I've done this change. Here's a link to the precompiled firmware for anyone who wants to give it a try and doesn't want compile it themselves.

If this is the issue, would it be possible to add the option to change channels in the WebUSB page? So people don't have to go into the code to manually change the channel if the default one isn't ideal for them.

<!-- gh-comment-id:5085198364 --> @Supster131 commented on GitHub (Jul 26, 2026): I wasn't afraid to ask Gemini Pro for help on how to change the channel OpenPuck uses considering this project heavily uses LLMs in the first place. It might be wrong, but I think these two lines set what channel OpenPuck uses: `uint8_t g_sessCh = 18;` on line 12 in the radio.cpp file `static const uint8_t g_hopCand[] = { 18, 46, 76, 22, 68 };` on line 63 in the rf_link.cpp file Both in the OpenPuck folder. I changed the first line to 80, while I changed the second line to { 80, 76, 68, 46, 22 } which should use higher channels. It's only been a few hours, so it could be a fluke or just the same inconsistency from earlier, but I haven't had any disconnects or dropped inputs yet since I've done this change. Here's a link to the [precompiled firmware](https://drive.google.com/file/d/1LJcC7s8hgHo-7T8WvHva-Mfjdem8MoJy/view?usp=sharing) for anyone who wants to give it a try and doesn't want compile it themselves. If this is the issue, would it be possible to add the option to change channels in the WebUSB page? So people don't have to go into the code to manually change the channel if the default one isn't ideal for them.
Sign in to join this conversation.
No labels
pull-request
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
safijari/openpuck#74
No description provided.