Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    pfSense as wireless AP transmit power adjustments?

    Scheduled Pinned Locked Moved Wireless
    45 Posts 4 Posters 5.9k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • JonathanLeeJ
      JonathanLee
      last edited by JonathanLee

      Screenshot 2023-07-17 at 7.55.40 PM.png

      Added in system tuneables

      Result:

      Screenshot 2023-07-17 at 7.57.08 PM.png
      Set correctly

      Screenshot 2023-07-17 at 7.57.25 PM.png
      defaulted to both for some reason.

      "Options 0,1,2 (antenna port 1 or 2, both=0) dev.ath.0.diversity: options 0,1(0=disable 1=enable)"

      Ref:
      https://lists.freebsd.org/pipermail/freebsd-wireless/2011-September/000682.html

      Make sure to upvote

      1 Reply Last reply Reply Quote 0
      • JonathanLeeJ
        JonathanLee
        last edited by

        Screenshot 2023-07-17 at 7.58.53 PM.png
        diversity does not enable

        Make sure to upvote

        1 Reply Last reply Reply Quote 0
        • JonathanLeeJ
          JonathanLee
          last edited by

          Shell Output - sysctl dev.ath
          dev.ath.0.hal.serialise_reg_war: 0
          dev.ath.0.hal.force_full_reset: 1
          dev.ath.0.hal.swba_backoff: 0
          dev.ath.0.hal.sw_brt: 10
          dev.ath.0.hal.dma_brt: 2
          dev.ath.0.hal.ar5416_biasadj: 0
          dev.ath.0.hal.debug: 0
          dev.ath.0.stats.sync_intr.31: 0
          dev.ath.0.stats.sync_intr.30: 0
          dev.ath.0.stats.sync_intr.29: 0
          dev.ath.0.stats.sync_intr.28: 0
          dev.ath.0.stats.sync_intr.27: 0
          dev.ath.0.stats.sync_intr.26: 0
          dev.ath.0.stats.sync_intr.25: 0
          dev.ath.0.stats.sync_intr.24: 0
          dev.ath.0.stats.sync_intr.23: 0
          dev.ath.0.stats.sync_intr.22: 0
          dev.ath.0.stats.sync_intr.21: 0
          dev.ath.0.stats.sync_intr.20: 0
          dev.ath.0.stats.sync_intr.19: 0
          dev.ath.0.stats.sync_intr.18: 0
          dev.ath.0.stats.sync_intr.17: 0
          dev.ath.0.stats.sync_intr.16: 0
          dev.ath.0.stats.sync_intr.15: 0
          dev.ath.0.stats.sync_intr.14: 0
          dev.ath.0.stats.sync_intr.13: 0
          dev.ath.0.stats.sync_intr.12: 0
          dev.ath.0.stats.sync_intr.11: 0
          dev.ath.0.stats.sync_intr.10: 0
          dev.ath.0.stats.sync_intr.9: 0
          dev.ath.0.stats.sync_intr.8: 0
          dev.ath.0.stats.sync_intr.7: 0
          dev.ath.0.stats.sync_intr.6: 0
          dev.ath.0.stats.sync_intr.5: 0
          dev.ath.0.stats.sync_intr.4: 0
          dev.ath.0.stats.sync_intr.3: 0
          dev.ath.0.stats.sync_intr.2: 0
          dev.ath.0.stats.sync_intr.1: 0
          dev.ath.0.stats.sync_intr.0: 0
          dev.ath.0.stats.rx_phy_err.63: 0
          dev.ath.0.stats.rx_phy_err.62: 0
          dev.ath.0.stats.rx_phy_err.61: 0
          dev.ath.0.stats.rx_phy_err.60: 0
          dev.ath.0.stats.rx_phy_err.59: 0
          dev.ath.0.stats.rx_phy_err.58: 0
          dev.ath.0.stats.rx_phy_err.57: 0
          dev.ath.0.stats.rx_phy_err.56: 0
          dev.ath.0.stats.rx_phy_err.55: 0
          dev.ath.0.stats.rx_phy_err.54: 0
          dev.ath.0.stats.rx_phy_err.53: 0
          dev.ath.0.stats.rx_phy_err.52: 0
          dev.ath.0.stats.rx_phy_err.51: 0
          dev.ath.0.stats.rx_phy_err.50: 0
          dev.ath.0.stats.rx_phy_err.49: 0
          dev.ath.0.stats.rx_phy_err.48: 0
          dev.ath.0.stats.rx_phy_err.47: 0
          dev.ath.0.stats.rx_phy_err.46: 0
          dev.ath.0.stats.rx_phy_err.45: 0
          dev.ath.0.stats.rx_phy_err.44: 0
          dev.ath.0.stats.rx_phy_err.43: 0
          dev.ath.0.stats.rx_phy_err.42: 0
          dev.ath.0.stats.rx_phy_err.41: 0
          dev.ath.0.stats.rx_phy_err.40: 0
          dev.ath.0.stats.rx_phy_err.39: 0
          dev.ath.0.stats.rx_phy_err.38: 0
          dev.ath.0.stats.rx_phy_err.37: 0
          dev.ath.0.stats.rx_phy_err.36: 0
          dev.ath.0.stats.rx_phy_err.35: 0
          dev.ath.0.stats.rx_phy_err.34: 0
          dev.ath.0.stats.rx_phy_err.33: 0
          dev.ath.0.stats.rx_phy_err.32: 0
          dev.ath.0.stats.rx_phy_err.31: 0
          dev.ath.0.stats.rx_phy_err.30: 0
          dev.ath.0.stats.rx_phy_err.29: 0
          dev.ath.0.stats.rx_phy_err.28: 0
          dev.ath.0.stats.rx_phy_err.27: 0
          dev.ath.0.stats.rx_phy_err.26: 0
          dev.ath.0.stats.rx_phy_err.25: 0
          dev.ath.0.stats.rx_phy_err.24: 0
          dev.ath.0.stats.rx_phy_err.23: 0
          dev.ath.0.stats.rx_phy_err.22: 0
          dev.ath.0.stats.rx_phy_err.21: 0
          dev.ath.0.stats.rx_phy_err.20: 0
          dev.ath.0.stats.rx_phy_err.19: 0
          dev.ath.0.stats.rx_phy_err.18: 0
          dev.ath.0.stats.rx_phy_err.17: 0
          dev.ath.0.stats.rx_phy_err.16: 0
          dev.ath.0.stats.rx_phy_err.15: 0
          dev.ath.0.stats.rx_phy_err.14: 0
          dev.ath.0.stats.rx_phy_err.13: 0
          dev.ath.0.stats.rx_phy_err.12: 0
          dev.ath.0.stats.rx_phy_err.11: 0
          dev.ath.0.stats.rx_phy_err.10: 0
          dev.ath.0.stats.rx_phy_err.9: 0
          dev.ath.0.stats.rx_phy_err.8: 0
          dev.ath.0.stats.rx_phy_err.7: 0
          dev.ath.0.stats.rx_phy_err.6: 0
          dev.ath.0.stats.rx_phy_err.5: 0
          dev.ath.0.stats.rx_phy_err.4: 0
          dev.ath.0.stats.rx_phy_err.3: 0
          dev.ath.0.stats.rx_phy_err.2: 0
          dev.ath.0.stats.rx_phy_err.1: 0
          dev.ath.0.stats.rx_phy_err.0: 0
          dev.ath.0.stats.ast_tsfoor: 0
          dev.ath.0.stats.ast_tx_ldpc: 0
          dev.ath.0.stats.ast_tx_stbc: 611350
          dev.ath.0.stats.ast_rx_stbc: 494
          dev.ath.0.stats.ast_tx_nodeq_overflow: 16697
          dev.ath.0.stats.ast_tx_swfiltered: 14163
          dev.ath.0.stats.ast_rx_keymiss: 161
          dev.ath.0.stats.ast_tx_mcastq_overflow: 0
          dev.ath.0.stats.ast_tx_intr: 1608157
          dev.ath.0.stats.ast_rx_intr: 1704360
          dev.ath.0.stats.ast_tx_aggr_fail: 35910
          dev.ath.0.stats.ast_tx_aggr_ok: 1292794
          dev.ath.0.stats.ast_tx_aggr_failall: 2157
          dev.ath.0.stats.ast_tx_delim_underrun: 0
          dev.ath.0.stats.ast_tx_data_underrun: 0
          dev.ath.0.stats.ast_tx_swretrymax: 406
          dev.ath.0.stats.ast_tx_swretries: 36877
          dev.ath.0.stats.ast_tx_desccfgerr: 0
          dev.ath.0.stats.ast_tx_timerexpired: 0
          dev.ath.0.stats.ast_tx_xtxop: 0
          dev.ath.0.stats.ast_tx_cst: 0
          dev.ath.0.stats.ast_tx_timeout: 0
          dev.ath.0.stats.ast_rx_hitqueueend: 0
          dev.ath.0.stats.ast_tx_htprotect: 1416141
          dev.ath.0.stats.ast_rx_hi_rx_chain: 0
          dev.ath.0.stats.ast_rx_decrypt_busy_err: 0
          dev.ath.0.stats.ast_rx_post_crc_err: 136872
          dev.ath.0.stats.ast_rx_pre_crc_err: 419879
          dev.ath.0.stats.ast_rx_2040: 1753561
          dev.ath.0.stats.ast_rx_halfgi: 614355
          dev.ath.0.stats.ast_rx_agg: 1661364
          dev.ath.0.stats.ast_ani_cal: 152291
          dev.ath.0.stats.ast_be_missed: 2856
          dev.ath.0.stats.ast_tx_nofrag: 0
          dev.ath.0.stats.ast_tx_raw_fail: 0
          dev.ath.0.stats.ast_tdma_ack: 0
          dev.ath.0.stats.ast_tdma_tsf: 0
          dev.ath.0.stats.ast_tdma_timers: 0
          dev.ath.0.stats.ast_tdma_update: 0
          dev.ath.0.stats.ast_tx_nobuf: 0
          dev.ath.0.stats.ast_tx_qfull: 0
          dev.ath.0.stats.ast_ff_flush: 0
          dev.ath.0.stats.ast_ff_rx: 0
          dev.ath.0.stats.ast_ff_txerr: 0
          dev.ath.0.stats.ast_ff_txok: 0
          dev.ath.0.stats.ast_tx_raw: 5517
          dev.ath.0.stats.ast_cabq_busy: 497
          dev.ath.0.stats.ast_cabq_xmit: 11118
          dev.ath.0.stats.ast_ant_txswitch: 0
          dev.ath.0.stats.ast_ant_defswitch: 0
          dev.ath.0.stats.ast_rate_drop: 0
          dev.ath.0.stats.ast_rate_raise: 0
          dev.ath.0.stats.ast_rate_calls: 0
          dev.ath.0.stats.ast_per_rfgain: 0
          dev.ath.0.stats.ast_per_calfail: 0
          dev.ath.0.stats.ast_per_cal: 507
          dev.ath.0.stats.ast_be_nombuf: 0
          dev.ath.0.stats.ast_be_xmit: 148527
          dev.ath.0.stats.ast_rx_ctl: 0
          dev.ath.0.stats.ast_rx_mgt: 0
          dev.ath.0.stats.ast_rx_packets: 0
          dev.ath.0.stats.ast_rx_toobig: 0
          dev.ath.0.stats.ast_rx_tooshort: 25933
          dev.ath.0.stats.ast_rx_phyerr: 0
          dev.ath.0.stats.ast_rx_badmic: 0
          dev.ath.0.stats.ast_rx_badcrypt: 3
          dev.ath.0.stats.ast_rx_fifoerr: 0
          dev.ath.0.stats.ast_rx_crcerr: 601674
          dev.ath.0.stats.ast_rx_orn: 0
          dev.ath.0.stats.ast_rx_busdma: 0
          dev.ath.0.stats.ast_rx_nombuf: 0
          dev.ath.0.stats.ast_tx_ctsext: 0
          dev.ath.0.stats.ast_tx_ctsburst: 0
          dev.ath.0.stats.ast_tx_protect: 0
          dev.ath.0.stats.ast_tx_altrate: 13990
          dev.ath.0.stats.ast_tx_shortpre: 0
          dev.ath.0.stats.ast_tx_cts: 0
          dev.ath.0.stats.ast_tx_rts: 0
          dev.ath.0.stats.ast_tx_noack: 11357
          dev.ath.0.stats.ast_tx_badrate: 0
          dev.ath.0.stats.ast_tx_longretry: 459257
          dev.ath.0.stats.ast_tx_shortretry: 707551
          dev.ath.0.stats.ast_tx_filtered: 4872
          dev.ath.0.stats.ast_tx_fifoerr: 0
          dev.ath.0.stats.ast_tx_xretries: 21984
          dev.ath.0.stats.ast_tx_busdma: 0
          dev.ath.0.stats.ast_tx_nodata: 0
          dev.ath.0.stats.ast_tx_linear: 0
          dev.ath.0.stats.ast_tx_nomcl: 0
          dev.ath.0.stats.ast_tx_nombuf: 0
          dev.ath.0.stats.ast_tx_nonode: 0
          dev.ath.0.stats.ast_tx_encap: 0
          dev.ath.0.stats.ast_tx_qstop: 38
          dev.ath.0.stats.ast_tx_discard: 0
          dev.ath.0.stats.ast_tx_mgmt: 0
          dev.ath.0.stats.ast_tx_packets: 0
          dev.ath.0.stats.ast_intrcoal: 0
          dev.ath.0.stats.ast_mib: 0
          dev.ath.0.stats.ast_txurn: 0
          dev.ath.0.stats.ast_rxeol: 3
          dev.ath.0.stats.ast_rxorn: 8
          dev.ath.0.stats.ast_bstuck: 54
          dev.ath.0.stats.ast_bmiss_phantom: 0
          dev.ath.0.stats.ast_bmiss: 0
          dev.ath.0.stats.ast_hardware: 0
          dev.ath.0.stats.ast_watchdog: 0
          dev.ath.0.clear_stats: 0
          dev.ath.0.txq_node_maxdepth: 128
          dev.ath.0.txq_mcastq_maxdepth: 64
          dev.ath.0.txq_data_minfree: 10
          dev.ath.0.delim_min_pad: 0
          dev.ath.0.rts_aggr_limit: 65536
          dev.ath.0.aggr_limit: 65530
          dev.ath.0.tid_hwq_hi: 4
          dev.ath.0.tid_hwq_lo: 2
          dev.ath.0.hwq_limit_aggr: 2
          dev.ath.0.hwq_limit_nonaggr: 32
          dev.ath.0.monpass: 24
          dev.ath.0.intmit: 1
          dev.ath.0.hangcheck: 0
          dev.ath.0.forcebstuck: 0
          dev.ath.0.txagg: 0
          dev.ath.0.tpcts: 63
          dev.ath.0.tpack: 63
          dev.ath.0.tpc: 1
          dev.ath.0.tpscale: 1
          dev.ath.0.diag: 0
          dev.ath.0.txintrperiod: 5
          dev.ath.0.rxantenna: 2
          dev.ath.0.txantenna: 0
          dev.ath.0.led_pwr_pin: -1
          dev.ath.0.led_net_pin: -1
          dev.ath.0.hardled: 0
          dev.ath.0.ledidle: 2700
          dev.ath.0.ledon: 0
          dev.ath.0.ledpin: 0
          dev.ath.0.softled: 0
          dev.ath.0.ctstimeout: 23
          dev.ath.0.acktimeout: 23
          dev.ath.0.slottime: 9
          dev.ath.0.regdomain: 0
          dev.ath.0.countrycode: 0
          dev.ath.0.sample_stats: 0
          dev.ath.0.sample_rate: 10
          dev.ath.0.smoothing_rate: 75
          dev.ath.0.%parent: pci0
          dev.ath.0.%pnpinfo: vendor=0x168c device=0x002a subvendor=0x168c subdevice=0x3099 class=0x028000
          dev.ath.0.%location: slot=0 function=0 dbsf=pci0:0:0:0
          dev.ath.0.%driver: ath
          dev.ath.0.%desc: Atheros 9280
          dev.ath.%parent:

          new output showing both antenna used

          Make sure to upvote

          1 Reply Last reply Reply Quote 0
          • JonathanLeeJ
            JonathanLee
            last edited by JonathanLee

            Another question is does use of antenna 0 really equate to both main and aux? Does use of 1 really equate to main? Or does 2 equate to antenna 2?

            While researching this I found some information that 0: is for both, 1: is for main, 2: is for aux. Again my cars lists port 0, and 1. Furthermore another mini pcie card had three ports that can be used with PfSense I am told the mini pcie AR5BXB112 comes with 0, 1, 2 antenna ports.

            Make sure to upvote

            1 Reply Last reply Reply Quote 0
            • stephenw10S
              stephenw10 Netgate Administrator
              last edited by

              If you have antenna diversity enabled it should use both (or all) antennas to get the best signal. The only time I've seen the antenna settings make a significant difference is when using only one antenna.

              The WLE200NX only has two ports but, yes the 802.11X 3x3 card have 3 in which case you could force it to use one specific port. But I would not.

              Steve

              JonathanLeeJ 2 Replies Last reply Reply Quote 1
              • JonathanLeeJ
                JonathanLee @stephenw10
                last edited by JonathanLee

                @stephenw10 is that set to 0? (Both/all)

                Make sure to upvote

                1 Reply Last reply Reply Quote 0
                • stephenw10S
                  stephenw10 Netgate Administrator
                  last edited by

                  I have always used the defaults there:

                  dev.ath.0.rxantenna: 1
                  dev.ath.0.txantenna: 0
                  
                  JonathanLeeJ 1 Reply Last reply Reply Quote 2
                  • JonathanLeeJ
                    JonathanLee @stephenw10
                    last edited by JonathanLee

                    @stephenw10 thanks for the reply. This matches mine. I was testing to see if 0 equates to both antenna 📡 or just one as the card is labeled 0 and 1 but freeBSD states 0 is for both and 1 is for main. Again I can set one to use 2 so I am a bit mixed up on if the numbers equate to the freeBSD definitions or is it something else that matches the numbers printed on the mini pcie card. I just had poor reception with the pcie versus the AP

                    As PfSense uses freeBSD I researched this and found.

                    "Options 0,1,2 (antenna port 1 or 2, both=0) dev.ath.0.diversity: options 0,1(0=disable 1=enable)"

                    But does this match in the firewall?

                    Ref:
                    https://lists.freebsd.org/pipermail/freebsd-wireless/2011-September/000682.html

                    Make sure to upvote

                    1 Reply Last reply Reply Quote 0
                    • JonathanLeeJ
                      JonathanLee @stephenw10
                      last edited by

                      @stephenw10 I could not get diversity to enable

                      Make sure to upvote

                      1 Reply Last reply Reply Quote 0
                      • stephenw10S
                        stephenw10 Netgate Administrator
                        last edited by

                        A lot more info can be found here: https://wiki.freebsd.org/dev/ath_hal%284%29/AntennaDiversity

                        It might be a loader value....

                        JonathanLeeJ 1 Reply Last reply Reply Quote 1
                        • JonathanLeeJ
                          JonathanLee @stephenw10
                          last edited by JonathanLee

                          @stephenw10 said in pfSense as wireless AP transmit power adjustments?:

                          https://wiki.freebsd.org/dev/ath_hal%284%29/AntennaDiversity

                          How do you add this as a loader value?? I just need more pwr for wifi to work in my kitchen

                          Screenshot 2023-10-25 at 4.52.08 PM.png

                          what should be added?

                          Make sure to upvote

                          1 Reply Last reply Reply Quote 0
                          • JonathanLeeJ
                            JonathanLee
                            last edited by

                            I found the other problem this file locked the transmit power to 17-30 only like it is set for an apartment and not a single family home. I am going to up it by 10 and it should reach my kitchen again.

                            Screenshot 2023-10-25 at 8.55.16 PM.png

                            17 that seems way to low for me.

                            Make sure to upvote

                            1 Reply Last reply Reply Quote 0
                            • stephenw10S
                              stephenw10 Netgate Administrator
                              last edited by

                              What exactly are you trying to set?

                              JonathanLeeJ 1 Reply Last reply Reply Quote 0
                              • JonathanLeeJ
                                JonathanLee @stephenw10
                                last edited by JonathanLee

                                @stephenw10 I got to be honest with you I need more power. My DLink and the extender in the 90s had power adjustments, so did my Apple airport Extreme. All the sudden I have no way to turn up the juice on the wifi side. It has a range equivalent of a small apartment. I want to turn diversity on, I want to boost my signal power by at least 15 percent. Why does the regulatory file degrade the power range to 17-30 percent of power. It seems like it's locked on small apartment mode. It needs house mode. My neighbors signal has more power in home than my own WiFi because of it.

                                Make sure to upvote

                                johnpozJ 1 Reply Last reply Reply Quote 0
                                • stephenw10S
                                  stephenw10 Netgate Administrator
                                  last edited by

                                  Well the maximum power is supposed to be limited by the regulatory domain. As well as whether it's indoors or outdoors etc. You can bypass that I'm sure but it's probably illegal, so hard for me to advise! 😉

                                  1 Reply Last reply Reply Quote 0
                                  • johnpozJ
                                    johnpoz LAYER 8 Global Moderator @JonathanLee
                                    last edited by

                                    @JonathanLee for one increasing the output is rarely a fix for anything.. While sure your client might see the signal better, its transmit is normally going to be low, and have issue talking back..

                                    I run all my AP in low power mode..

                                    An intelligent man is sometimes forced to be drunk to spend time with his fools
                                    If you get confused: Listen to the Music Play
                                    Please don't Chat/PM me for help, unless mod related
                                    SG-4860 24.11 | Lab VMs 2.7.2, 24.11

                                    1 Reply Last reply Reply Quote 0
                                    • stephenw10S
                                      stephenw10 Netgate Administrator
                                      last edited by

                                      Yup that^.

                                      In the past, when I had more time mess about with this stuff for fun, I found better and correctly aligned antennas produced better results than anything else.

                                      1 Reply Last reply Reply Quote 1
                                      • JonathanLeeJ
                                        JonathanLee
                                        last edited by

                                        You know what, I got an idea, I can use my old power line networking equipment and just move the PfSense box to a more central location. That might help. I just don't understand why it has the power level set so low on it. It's not our area as our neighbors have stronger wifi then ours. As soon as I moved to this area the Apple extreme was updated and the power options removed. I miss my DLink that thing had some power and with the extender it was so something else. This was back before wifi g.

                                        It acts like it's set to a regulation for an apartment over a single family.

                                        It works perfectly when I am close to it.

                                        Make sure to upvote

                                        johnpozJ 1 Reply Last reply Reply Quote 0
                                        • johnpozJ
                                          johnpoz LAYER 8 Global Moderator @JonathanLee
                                          last edited by

                                          @JonathanLee said in pfSense as wireless AP transmit power adjustments?:

                                          just move the PfSense box to a more central location

                                          Or what anyone should do that wants good wifi, is use actual APs, and properly deploy them to provide correct coverage.. Unless your in some small studio.. A single AP is rarely going to provide great wifi in all areas of a home.

                                          The problem with any wifi router, or running wifi in your router like pfsense - that makes a horrible AP because of the lack luster support in freebsd for wifi in general in the first place. Is the location.. it would be rare that your router is in the best location for wifi coverage for some multi room dwelling.

                                          If you want rock solid no issues wifi, get some APs - properly deploy them.

                                          An intelligent man is sometimes forced to be drunk to spend time with his fools
                                          If you get confused: Listen to the Music Play
                                          Please don't Chat/PM me for help, unless mod related
                                          SG-4860 24.11 | Lab VMs 2.7.2, 24.11

                                          1 Reply Last reply Reply Quote 0
                                          • JonathanLeeJ
                                            JonathanLee
                                            last edited by

                                            Screenshot_20231026-153412.png

                                            WiFi in pfSense!!!!

                                            Make sure to upvote

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.