When sitting still, my iPhone is bouncing between my 2 aps. Any idea how to stop this?
I have 2 cAP AX. Managed by a CRS312-4C+8XG.

When sitting still, my iPhone is bouncing between my 2 aps. Any idea how to stop this?
I have 2 cAP AX. Managed by a CRS312-4C+8XG.

Can you please share your (wifi) config:
/interface wifi export file=anynameyoulike
Remove any private info, post between code tags by using the </> button
Based on your STA rx levels reported this looks like normal behavior. Most likely your issue is bad AP placement, STA is often located in mediocre/bad signal area.
Stripped out all my naming information.
# 2025-01-08 13:01:23 by RouterOS 7.16.2
# software id = PCNC-1I59
#
# model = CRS312-4C+8XG
# serial number = removed
/interface wifi channel
add band=2ghz-ax disabled=no frequency=2412 name=2.4ghz-Channel1 width=20mhz
add band=2ghz-ax disabled=no frequency=2437 name=2.4ghz-Channel6 width=20mhz
add band=2ghz-ax disabled=no frequency=2462 name=2.4ghz-Channel11 width=20mhz
add band=5ghz-ax disabled=no frequency=5180 name=5ghz-Channel36 width=20/40/80mhz
add band=5ghz-ax disabled=no frequency=5500 name="5ghz-Channel100 (DFS)" width=20/40/80mhz
add band=5ghz-ax disabled=no frequency=5745 name=5ghz-Channel149 width=20/40/80mhz
/interface wifi datapath
add bridge=Bridge-Default disabled=no name="NameOne"
add bridge=Bridge-Default disabled=no name=NameTwo vlan-id=42
add bridge=Bridge-Default disabled=no name=NameThree vlan-id=5
add bridge=Bridge-Default disabled=no name=NameFour vlan-id=69
/interface wifi security
add authentication-types=wpa2-psk disabled=no encryption=ccmp,gcmp,ccmp-256,gcmp-256 ft=yes ft-over-ds=yes name="NameFour"
add authentication-types=wpa2-psk disabled=no encryption=ccmp,gcmp,ccmp-256,gcmp-256 ft=yes ft-over-ds=yes name=NameThree
add authentication-types=wpa2-psk disabled=no encryption=ccmp,gcmp,ccmp-256,gcmp-256 ft=yes ft-over-ds=yes name="NameOne"
add authentication-types=wpa2-psk disabled=no encryption=ccmp,gcmp,ccmp-256,gcmp-256 ft=yes ft-over-ds=yes name="NameTwo"
/interface wifi configuration
add country="United States" datapath=NameFour disabled=no mode=ap name=NameFour security="NameFour" ssid=NameFour
add country="United States" datapath=NameThree disabled=no mode=ap name=NameThree security=NameThree ssid=NameThree
add channel=2.4ghz-Channel1 country="United States" datapath="NameOne" disabled=no mode=ap name="NameOne-Channel1" security="NameOne" ssid="NameOne!"
add country="United States" datapath=NameTwo disabled=no mode=ap name="NameTwo" security="NameTwo" ssid="NameTwo"
add channel=2.4ghz-Channel6 country="United States" datapath="NameOne" disabled=no mode=ap name="NameOne-Channel6" security="NameOne" ssid="NameOne!"
add channel=2.4ghz-Channel11 country="United States" datapath="NameOne" disabled=no mode=ap name="NameOne-Channel11" security="NameOne" ssid="NameOne!"
add channel=5ghz-Channel36 country="United States" datapath="NameOne" disabled=no mode=ap name="NameOne-Channel36" security="NameOne" ssid="NameOne!"
add channel="5ghz-Channel100 (DFS)" country="United States" datapath="NameOne" disabled=no mode=ap name="NameOne-Channel100" security="NameOne" ssid=\
"NameOne!"
add channel=5ghz-Channel149 country="United States" datapath="NameOne" disabled=no mode=ap name="NameOne-Channel149" security="NameOne" ssid="NameOne!"
/interface wifi capsman
set enabled=yes interfaces=Bridge-Default package-path="" require-peer-certificate=no upgrade-policy=require-same-version
/interface wifi provisioning
add action=create-dynamic-enabled comment=Office-2.4ghz disabled=no master-configuration="NameOne-Channel11" radio-mac=D4:01:C3: slave-configurations=\
"NameFour,NameThree,NameTwo"
add action=create-dynamic-enabled comment=Office-5ghz disabled=no master-configuration="NameOne-Channel36" radio-mac=D4:01:C3 slave-configurations=\
"NameFour,NameThree,NameTwo"
add action=create-dynamic-enabled comment=Garage-2.4ghz disabled=no master-configuration="NameOne-Channel1" radio-mac=D4:01:C3: slave-configurations=\
"NameFour,NameThree,NameTwo"
add action=create-dynamic-enabled comment=Garage-5ghz disabled=no master-configuration="NameOne-Channel149" radio-mac=D4:01:C3: slave-configurations=\
"NameFour,NameThree,NameTwo"
If I sit at the same location with my laptop, this is what I see.

Signal strength, mentioned in CAPsMAN’s logs, is signal strength of station as received by CAP. Ideally it should be quite similar to what station receives from AP but can be lower due to lower device Tx power (battery-powered devices are entitled to use lower power in order to prolong battery life IMO). So you can’t really correlate what you see in logs for one station (iPhone) with what you see on another station (laptop). Ideally you’d use some kind of WiFi measurement tool on your iPhone and then try to correlate those measurements with CAPsMAN logs (you take out one variable).
And then: even with mobility extensions (FT, etc.) enabled on wireless network it’s still up to device to decide if and when to roam. APs only aide station at that by providing certain information. And speed up the process (after started by station) by bypassing certain steps (like re-using device keys which would be otherwise recreated after re-connection to different BSSID). So if your iPhone is bouncing between APs, then it’s iPhone who thinks it has to be done for some reason.
Looks like normal behavior of the iPhone.
It tries to find a better AP.
Move the iPhone to an other place (closer to 1 of the AP) and see what happens.