Cell Phone 4G LTE Repeater / Booster / Femtocell

An outside pole mounted aerial picks up RF signals which are then filtered, amplified and re-transmitted through a second inside aerial.

Similar projects worth following
In more remote areas it is often not financially viable for the cell network operator to build extra base stations for a small number of people and their phones/modems etc. Fortunately, this is not the end of the road as we can, in theory, build our own base stations and even create our own cells.
There are currently available two groups of devices that already claim to do this, one of which is reassuringly expensive and the other is just plain illegal! This project aims to democratise the situation enabling cost effective, hackable devices to be built that not only work properly but also conform to the telecoms regulations.
Searching the Interweb, I found very little useful information on how to do this project and so have had to delve into the dark world of RF (Radio Frequency) and try and understand how exactly our cell phones work. Apart from the theory, there are also many practical obstacles such as the extremely small size of components.

Here is a basic diagram of how the device 'should' work:The band pass filters (BPF) only allow the desired frequency ranges to go into the amps and so makes them much more efficient, otherwise they would be trying to amplify all the local radio stations etc. The amps may or may not need to be cascaded and there may or may not need to be other building blocks in the set up.

**** Please check out the 'Project Logs' for up to date progress ****

There are 2 'received signal strength indicator' blocks (RSSIs) which send analogue signals to the Arduino telling it how good or bad the signals on the two aerials are. If the external signal is good for some reason, for example if it's just started to rain, then the amp is turned down so as not to send very strong signals to the cell base station or to the phone. Simply turning up the gain to full can have serious side effects such as locking up the phone or, yes, locking up the cell base station, in which case you're in serious trouble!

There is a certain amount of risk in the project in that for one, it may just not work at all or two, that it may be too simplistic. Personally, I prefer option two and I'm fully prepared to go down a completely different route if necessary. If the project fails then as long as I know why it failed then I have learnt something!

In parallel with this 'build my own hardware' option, I am working on using a pre-built system, namely the LimeSDR transceiver. The main problem with this option is that, coming from a place of almost no previous experience of RF, this gadget currently seems incredibly complicated and it took me several months just to learn how to use it. Undaunted by the challenge, I am inspired by the guys at Lime Microsystems in Guildford, UK ( ) who have been incredibly helpful. The key to success here was to create software models in a system called 'Pothos' which is an excellent learning tool as it explains a lot of stuff really well and outputs a really useful log of what parameters are being changed in real time in the device. Limemicro has also helped me link an Arduino to their LimeSDR via SPI which enables, in theory, an Arduino Due to control the transceiver or at the very least, upload a predetermined set of register values.

Current chances of project success = 100% - Both parts of the project are working!

Adobe Portable Document Format - 49.01 kB - 07/23/2017 at 14:00


document - 15.15 kB - 07/23/2017 at 14:00



Creative Commons Attribution-ShareAlike 4.0 International Public License

plain - 13.86 kB - 07/23/2017 at 08:22


sheet - 16.17 kB - 07/22/2017 at 16:30


Cell Phone Signal Booster 01.pcb

Opens with 'Design Spark' PCB software (Free).

pcb - 246.00 kB - 07/22/2017 at 09:22


View all 32 files

  • Design Evolution

    TegwynTwmffat4 days ago 0 comments

    As time goes on, the plan is evolving and slowly things fall into the right place. The next phase of the project will be to add a Base Rx signal path:

  • Testing the Product

    TegwynTwmffat7 days ago 0 comments

    After assembling the new 4 layer PCB with my manual pick and place machine I soldered on all the larger parts by hand and plugged it in ....... No response! Ah well, I thought the odds of it working were about 75% so it was no great surprise :( But since it works at relatively low voltage, it's always worth touching some of the connections with a finger as this is a really quick way of either totally destroying the components or galvanising them into action. I am one of the fortunate creatures on this planet who are blessed with electric fingers !

    Anyway, the 'Electric Finger' test worked and suddenly the device started working ! It seems I had left out an important power connection to the VGA, which was fixed by soldering on an extra wire.

    The other useful thing that I did was to upgrade the outside antenna and cable:

    This antenna was installed about 20' up in the air, with the pointy end directed towards my local 4G base station, which is about 8 miles away. The cable is very 'high performance', with 3dB loss over 15 metres and the antenna itself has a gain of about 6dB so that's a net gain of 3dB.

    During testing, the VGA was behaving a bit strangely, so I used one of the 'intersection' antenna sockets to effectively avoid using it, and to my surprise, the 2 stage LNA chip provided plenty of power on it's own when receiving the signal from the base station. Note that I am making no attempt to transmit to the base station at this time as it's not needed where I live - my phone's transmit capability is fine on it's own. Transmitting to the base station has to be done very carefully as getting it wrong can cause very serious problems, so I'm going to attempt this much later in the project.

    The test showed a 15dBm increase in signal strength with just the first stage of the LNA in operation and a massive 40dBm with both stages working, which gave a useful range of about 10m inside a building. It was very useful to be able to control the device like this as quite often, for convenience, the phone is positioned quite close to the inside antenna and in this case just using the primary stage of the LNA was highly beneficial.

    The video below shows the device being controlled with 2 push button switches via an Arduino Uno:

  • Transformation Day

    TegwynTwmffat07/21/2017 at 12:32 6 comments

    We now have a product - a basic 4G cell phone signal booster that works on band 20 (800 MHz). As far as a business plan is concerned, this could be sold as a kit where the user does all the easy, labour intensive soldering and simply buys the main PCB ready populated with the fiddly SMT components. It can also be hacked to work as a general purpose microwave RF digitally controlled amplifier for experimentation, but be warned - this gadget is capable of quite high transmission power - up to 1/2 watt - and a special operation license may be required. As a cell phone booster it works at a power in the order of 1 mW with a maximum range of about 10 metres so does not risk interfering with the neighbours too much.

    Here, above, the massive conglomeration of wires and circuit boards of the prototype on the left is miraculously shrunk into one neat unit with only two loose wires which will connect to the indoors and outside antennae. Fear not, the device is still fairly hackable and even supports addition of the nice pretty Adafruit TFT screen with special mounting holes and connections, if required (but not essential).

    Finished, fully assembled, Arduino Cell Phone 4G Signal Booster as below. I did a quick test today and it actually worked! Still some room for improvement though.Schematic is HERE.

    PCB design file is HERE.

    BOM is HERE.

  • Cell Phone Behaviour - Town v. Country

    TegwynTwmffat07/10/2017 at 15:49 0 comments

    Today I decided to go on a religious pilgrimage to my local cell phone base station.

    After making the necessary offerings and sacrificing of a few chickens I turned on my RSSI test rig and began uploading live video to YouTube:Basically, I made about 1,000 measurements from an RSSI (Received Signal Strength Indicator), one every second, that I bought from ebay, based on the Analogue Devices AD8318. Datasheet HERE.

    The hypothesis was that my cell phone would transmit at lower power when close to the base station.

    With the antenna at the same 200mm from the phone, I drove out into the countryside and found a spot with really bad 4G coverage -120 Dbm compared to -71 Dbm in the town. I then repeated the RSSI test, storing all the data on a micro USB in the Arduino rig. And here's the result:There's a really obvious difference in behaviour between town and country. In the country my phone is transmitting at markedly higher power. I'm not sure if the graph is logarithmic or not - I'd have to look that up on the RSSI chip's datasheet.

    Looking at the green countryside graph, there's two obvious 'plateaux' right at the bottom where the phone is doing nothing. We don't get that on the orange town graph because there's loads of other phones nearby transmitting on the same 4G band.

    Why is this important? ........ Because it shows that either the base station can control the signal strength given out by each individual phone in it's catchment range by using a control signal ..... Or that the phone itself responds to low received signal strength by increasing it's transmit strength, guessing that it is a long way from the base station. In either case, the base station is probably going to get really annoyed if we boost our cell phone signal too much - no amount of sacrificed chickens is going to appease it's wrath! It's therefore really important to have individual gain controls on both the Rx and Tx in the cell phone booster.

  • Control LimeSDR Tx Gains using Arduino Due and Analogue Slider

    TegwynTwmffat07/03/2017 at 17:08 0 comments

    Please remember that this project has split into two - I'm exploring 2 possible solutions to the same problem, one using discrete components ie ICs and passives and the other a fully blown transceiver with built in FPGA - the LimeSDR.

    So here I'm looking at option 2 - Using the LimeSDR.

    The advantage of the Lime is that all the discrete components are located in one chip, the LimeLMS7002M, with an amazing array of registers that can be controlled using the SPI bus. As an example, register address 0x0100 can be set to a value of 0x7A94 to give a gains of 15 dB on the Tx pad. There's also a massive FPGA chip that has enough spare silicon inside to house a fairly powerful onboard Arduino (Work in progress) and even some basic signal processing.

    Here, the limeSDR is programmed with a special FPGA configuration file: FILE and, when 'normal' operation is required, is programmed back with this, somewhat out of date, file: FILE. The Arduino Due is programmed with this file: FILE.

    The main obstacle to success with this small step forward was getting the Arduino to replicate what I had previously achieved with the Limesuite software about a month ago. In theory, I should just be able to harvest all the register settings from Limesuite and copy and paste them into the Arduino program but ...... for a long while ...... No success. Eventually I narrowed it down to the fact that there is one particularly clever register that switches all subsequent register read/writes from one channel to the other ..... Confusing? Actually, the Lime LMS7002M datasheet explains it quite clearly and since I had already read the datasheet 5 times, it was no great surprise!

    LMS7002M_WR(0x0020, 0xFFFD);  //This register sets the following registers back to Read and Write Channel A only:

    Other than that there is a register to describe the DC correction, which is pretty essential:

    LMS7002M_WR(0x0204, 0xF020); // DC Correction.

    This code reads the slider value and spits out hex integers that the LMS7002M will recognise:

       int sliderValue = analogRead(A0);
       sliderValue = sliderValue/0x21;
       int gainValue = 0x7800 + sliderValue * 0x42;

    And here is the nice simple SPI write:

    // Write register value to LMS7002M via SPI
    void LMS7002M_WR(int addr, int val)
      digitalWrite(LMS7_SS_Pin, LOW);
      SPI.transfer( ((addr >> 8) | 0x80) );
      SPI.transfer( (addr & 0xFF) );
      SPI.transfer( ((val >> 8) & 0xFF) );
      SPI.transfer( (val & 0xFF) );
      digitalWrite(LMS7_SS_Pin, HIGH);

    Oh, there's also a spreadsheet HERE for converting the Limesuite register list to an Arduino 'register function list'. It does character analysis/manipulation to change everything in column 'A' to column 'F':Having a gain control slider on a 4G signal booster is pretty essential as the base station signal can vary in strength quite a bit depending on local weather conditions and, of course, we don't want too much gain or else we could get feedback between the local Rx and Tx antennae. Looking at some of the 'Black Box. signal boosters in the market place, I can't understand why they don't have a simple manual gain control so that systems can be tweaked to individual antennae setups. Actually, I think that some of them do 'appear' to have gain control, but actually it is fake!

    Anyway, If the isolation between antennae can be made really high by, for example, separating them by 100m, then the gain could be turned up and greater coverage could be obtained. But ..... 100m ..... That's a lot of cable and probably a substantial antenna installation.

    Especially for Ebrahim Bushehri, here's video of the Arduino Due controlling the LimeSDR Tx gain:

  • Analogue Repeater now assembled

    TegwynTwmffat06/16/2017 at 12:24 0 comments

    We now have a functional repeater with manual variable gain control and screen for displaying stuff. I think a nifty graph dislaying RSSI against time would be cool?

  • Testing Qorvo TQM879028 Variable gain amplifier

    TegwynTwmffat06/12/2017 at 19:46 0 comments

    After trying to use the Analog devices HMC742A VGA for a third time with no success, I went back to the search filters and specifically selected Qorvo as my preferred manufacturer, mostly because their technical support is truly fantastic.

    I'd seen their variable gain development board before, but was put off by the fact that it was tuned to 2150 MHz which is quite a bit above the 806 MHz that I required. I'm now pretty sure I can replace the necessary passives to correct it. Whether it was the fact that their dev board was very reasonably priced or just plain desperation, I do not know, but I'm very glad I bought it as I got it working fairly quickly. It even comes with a USB adapter daughter board and windows evaluation software - Total bargain!

    The really great thing about this gadget is that it has some real power - a massive 0.5 watts! It needed to be cascaded with my QPL9065 low noise amp, but that was ok. The results were very nice indeed. Now to get it hooked up to an Arduino via SPI and insert a RSSI unit to monitor the signal strength.

  • LimeSDR now controlled by Arduino via SPI

    TegwynTwmffat06/10/2017 at 17:15 0 comments

    At last I've managed to connect the LimeSDR to an Arduino Due. I was delayed by trying to mess about with JTAG adapters and only solved the problem by making a custom PCB to breakout the 0.05 inch pitch JTAG connector:

    The SPI connection has been tested and is working nicely. Now for some brain frazzling hex to binary register manipulation to load my repeater settings via the Arduino and then control it by the Arduino. Standalone repeater coming soooooooon!

  • RSSI test

    TegwynTwmffat06/10/2017 at 14:13 0 comments

    The RSSI was inserted after the LNA circuit and the antenna was moved in and out of a Faraday cage. The voltage recorded varied between 1.6 and 1.3 volts. I would have expected it to be about 2.1 volts inside the cage after looking at the datasheet for the RSSI.

  • Long term test of analogue circuits

    TegwynTwmffat06/08/2017 at 17:16 0 comments

      Since I actually need a 4G signal repeater in my office, I decided to run a more long term test of one of my analogue boards - a Low noise amplifier, the QPL9065.

      With my plate antenna positioned 1/2m away from my phone I was able to get a consistent 20 dBm increase in signal strength and a reliable 4G data connection. I felt so confident that it was going to work that I used it to run/assist an important conference call with some of the guys from BT, Facebook and Lime Microsystems. There's nothing quite like working under pressure!

      In the background of the photo above can be seen the LimeSDR with it's incredibly powerful LMS7002M chip. This chip contains all the necessary blocks that I need to complete this project but there are a few barriers that prevent me from using it namely:

      1. There's no breakout board for this chip alone unless I backstep to it's predecessor, the LMS6000.
      2. It requires a 6 layer PCB.
      3. KiCAD PCB design files are not available yet.
      4. Many functions are routed through the FPGA which prevents me from using them directly.
      5. Learning to use the FPGA is another steep learning curve.

View all 27 project logs

  • 1
    Test which frequency your phone works on

    Use a SDR (Software Defined Radio) to find out which frequency band your phone works on. This is actually really good fun and much easier than it sounds. The SDR costs about $24 and can be used with open source software such as GQRX with gives you a pretty amazing spectrum analyser. Check out this video which shows my own cell phone on band 20:

  • 2
    Set up an external antenna

    A good quality external antenna arrangement is absolutely essential and the best cable, fittings and antenna should be selected.

    The cable should be rated to 0.3 dB loss per metre or better and the antenna should be a Yagi type with performance of 6dB or better. The antenna should be at least 20' in the air, or higher depending on location, and should be pointed directly towards the nearest local 4G transmitter - this can be done by trial and error by swivelling the antenna around and monitoring the results on the SDR.
  • 3
    Set up the internal antenna

    This part is much easier - it's just a panel antenna and it can be mounted on a wall in a convenient location.

View all 7 instructions

Enjoy this project?



Starhawk wrote 7 days ago point

How much for a kit?

I have Verizon for Internet and they suuuuuuuck. Like "Dyson vacuum with twin turbochargers attached" kinds of suck. But the local DSL company is well known in these parts for defrauding its customers (they promise speeds that the wires can't come anywhere close to supporting, and they charge exorbitant fees) and the local cable co says "nope, not for you" when I call and ask for service. Apparently their cables end, on my little country lane, at the crest of the hill right before mine. AT&T has a decent signal but their plans won't work for me. I take up a fair amount of bandwidth, and I have a grandfathered plan with Verizon -- a 4g "unlimited" plan that really IS unlimited. (Remember those days? I miss those days...)

There's four Verizon towers in my area (I can find three of 'em on a map) and -- until I got a weird rare 4g home router that they sold for about six months back in 2013 -- I burnt through a MiFi a month. No, literally -- the signal is so weak here that winching it in caused the MiFis to burn out through thermal overload, roughly every three to four weeks. The router is now failing, but (oddly enough) it's the WiFi part that's dying, not the 4g part. (I bought a second router and wired it in to fix that. Easy peasy.) Somehow the PCI Express Mini Card (read: tablet or laptop type 4g card) modem is an order of magnitude more rugged than all those MiFis were... but I still need a special large antenna, in a particular window at a particular position, to get a half-decent signal. I get about 3g performance, maybe a smidge better, on their 4g network... at least, when they switched from 3g to 4g, I didn't notice much of a speed increase.

If I had your repeater, I might just be considerably better off. I should also ask, though -- does WiFi in close proximity screw with your repeater the way it does with certain commercial offerings? (Had one, called a zBoost, which got "confused" [i.e. didn't work] if there was WiFi anywhere within 20ft of it. In all fairness it was a 3g device... this was long before the router.)

  Are you sure? yes | no

TegwynTwmffat wrote 6 days ago point

Hello Starhawk ...... I could get a unit to you at 'cost' price ie what it costs me if you would agree to test it for me in the USA? You'd also need to find out what 4G band your phone works on with a software defined radio or such like. I'm not sure if it will interfere with wifi or not, but rest assured, the filters I am using are very high spec so in theory there should be no conflict. Please send me a private message if you're interested in this proposal. Thanks!

  Are you sure? yes | no

tooth_pick wrote 05/09/2017 at 04:46 point

Under some circumstances a simpler and lower tech method may work. Take a small satellite dish and point it at the cell tower, placing the cell phone right where the signal will be strongest. This will allow the cell phone to both receive a much stronger signal and to broadcast back a stronger signal. Then connect a bluetooth hands free headset; which will give you the relative freedom to stand and sit somewhere comfortable.  This solution obvious works best in a stationary environment and where line of sight is possible. Similar methods have been used with wifi to send signals over 100 miles.

  Are you sure? yes | no

TegwynTwmffat wrote 05/09/2017 at 08:36 point

Yes simple is often best. Currently, as I write this reply, my phone is 20 feet up a pole hoisted up in a waterproof box like a flag. The USB cable connects to my computer and I have perfect 4G communication. Making / receiving phone calls is a PITA!

  Are you sure? yes | no

TegwynTwmffat wrote 04/14/2017 at 15:30 point

If you take the phone outside it will try to receive from the base station and will also try and receive from the antenna inside the building. If the system is working properly it should be able to do this simultaneously, I think.

Receiving from base station and from the inside antenna is all done on the same frequency.

Transmitting from the phone and from the inside antenna is done on another close-by frequency and a good quality duplexer will provide a very sharp separation between the two frequencies mentioned above (Rx and Tx).

This answer above is slightly simplified because the 2 frequencies mentioned are actually located in a vast bundle of frequencies that constitute the LTE band itself.

  Are you sure? yes | no

hTo137 wrote 04/12/2017 at 02:45 point

I had to research what a duplexer really is.... The essence is that it allows Rx/Tx with one antenna. Probably obvious to most but it's something I didn't know.

Since the inside-the-dwelling band is different than the outside-the-dwelling band what happens if you take the phone outside? Will it talk to the cell tower or try to talk to the outside antenna? Or try to talk to the inside antenna?

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates