I added an external Wi-Fi antenna to my BB Controller

Note: This post is just a documentation of what I did to my own machine. If it was still under warranty doing this would obviously have voided it. I’m not suggesting or encouraging anyone else to do this. Electricity can be dangerous. Attempting something like this can brick your controller if done improperly; I have a few decades experience with designing and troubleshooting electronics. Anything done to your own machine is done at your own risk.

Most people are aware that the Wi-Fi performance of the Buildbotics-based controller sucks. A little looking into this shows this shouldn’t be a surprise. A key component of an RF system is the antenna. For efficient transmission and reception, the size of the antenna needs to be a significant fraction of the wavelength of the signal. The wavelength for the 2.4 GHz Wi-Fi band is about 5 inches; a good antenna length is ¼ wavelength, or about 1.3 inches in this case. The raspberry Pi 3B used in the BB controller has an antenna mounted directly on the PCB board that is much smaller (circled in yellow in the photo).


To make matters (much) worse, this antenna is located inside a metal enclosure with few openings, which effectively shields the RF energy entering or leaving the controller (commonly referred to as a Faraday Cage).


Why is such a lousy antenna used? The Model 3B board is sold as a retail product. As a product that falls under FCC Part 15, it must be tested and certified that it meets regulations. With the PCB antenna, that’s straightforward, and it works for many applications. If provisions were made to connect to a larger, non-PCB mounted antenna, the board would need to be tested and certified with specific antennas and specific mounting configs. The Raspberry Pi people didn’t want to bother with that, apparently. The FCC ID identifier on the board signifies that it’s certified in its as-sold configuration.


But it turns out there are provisions on the bottom side of the board for installing a connector that can be used to connect to an external antenna. Apparently this was done to allow for testing with a spectrum analyzer. Use by customers is not condoned by Raspberry Pi, because legally they can’t condone it.

The photo on the left shows the unmodified Pi from the factory. The two bare copper pads show where a tiny U.FL connector can be installed. Inside the yellow circle is an even tinier jumper that connects the RF output to the PCB-mounted antenna on the other side. On the right, the U.FL connector is installed, and the jumper is relocated to connect the RF output to the U.FL instead.


Model 3B boards are very cheap (about $35), so I just bought a new one from Adafruit instead of modifying the original in the controller (Raspberry Pi 3 - Model B - ARMv8 with 1G RAM : ID 3055 : Adafruit Industries, Unique & fun DIY electronics and kits). This way, if the modification failed, I’d still have a good working unit on hand. I no longer have access to the equipment to properly do such fine soldering work, but someone on Etsy will do it for you (https://www.etsy.com/listing/1007434724/modification-service-add-external). I also had him throw in a ¼ wavelength dipole external antenna. The Model 3B doesn’t come with the two heatsinks shown, but they can be bought on Amazon and are easy to install (Amazon.com: LoveRPi Performance Heatsink Set for Raspberry Pi 3 B+ : Electronics).


I needed to drill a hole in the enclosure to mount the antenna. It’s tempting to just do that with all electronics still inside, but the thought of tiny bits of aluminum getting inside the electronics put that idea aside. The controller is also pretty easy to disassemble.


Step drills are the best tool for putting holes in sheet metal. And a drill press is essential IMO.


A nice clean hole.


Putting things back together with the new antenna and cable installed. I had to be careful with the screws that mount the Pi in place as they’re plastic and easy to strip.


All re-installed. With the larger antenna alone, the signal is about 3X stronger(~4 dB), and with it being outside the Faraday cage, it’s even better than that.


Is this legal? Strictly speaking, in the U.S., probably not. There is a provision in Part 15 that says that home-built equipment needs no testing nor certification. But that only applies to things built from scratch, not modifying existing equipment. But I’m not worried; this is a one-off for my personal use that I’m not manufacturing nor importing in quantity. I live on a large lot and my chances of interfering with others is nil. For things like this, the FCC is complaint-driven, and already they’re doing very little about the blatantly illegal things sold on Amazon Marketplace.

And the stock controller from 1F doesn’t appear to be 100% kosher, anyway. It would be considered a Class B digital device by the FCC, since it is sold to consumers for use in a home. It would need testing for conducted limits on the power cord, and for unintentional and intentional radiated limits. There’s no FCC ID label on the case on my unit, and the manual is lacking the required FCC Part 15 paragraphs. I looked at the manuals of a couple of other hobby-level CNC’s and they don’t have them either, so it’s apparently a common oversight in this market. In sum, this is something I’m not worried about.

7 Likes

Hey Barry,

great article.

1 Like

Dude, you rock! This is great advice for others! And it explains why OF did not build a case with an external antenna; the board is retail. Why did you add the heat sinks?

Excellent document!!

1 Like

Thanks. The main reason I added the heat sinks is because Onefinity added them to the controller, so it seemed prudent to do the same thing. Plus, the set of two is cheap on Amazon ($4.50), and easy to install. Just wipe the tops of the chips with some isopropyl alcohol, let them dry, and stick them on.

It’s interesting that some of the newer Raspberry Pi modules come with an external Wi-Fi connector, and are certified for operation with an antenna that they also sell.

1 Like

Fantastic! I think all makers would be impressed by your work.

I got around the problem a different way, coming from a networking perspective. I bought a cheap Asus router, configured it as a relay, and connected my box using Ethernet. The router is outside the cnc enclosure and it has 4 antennae so essentially it functions as an improved wifi extension.

Again, I am seriously impressed with your knowledge base and technical knowledge!

2 Likes

Thanks. I thought about taking a similar approach, but I think I just found the stock antenna situation so offensive that I had to fix it. :wink:

2 Likes