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 8.3k 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

      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.8, 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.8, 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
                                          • stephenw10S
                                            stephenw10 Netgate Administrator
                                            last edited by

                                            Nice. Is that just close or did you find some useful settings?

                                            You would be better off using channel 1 there. Channel 2 will be coliding with 6 to a greater extent. Not much in it though.

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