Hello. My use case is one or two PCs serving as loggers, and 40-50 Wi-Fi-enabled microcontrollers (2.4 GHz, Espressif ESP32S2) sending fairly low amounts of data via MQTT (up to 5 devices sending up to 5 messages of 100-200 characters per second, the rest sending approximately one message of up to 1000 characters every 15 seconds). The PC will receive and log all of the devices' outputs to the hard drive. All of the microcontrollers will be arranged on a two metre wide and two metre tall rack, and the router and the PC will be within a couple of metres. There might be around 2-3 Wi-Fi networks in the vicinity, likely with their signal too weak to even connect to them (low interference from other networks).
Which router would you recommend for this use case? Maybe even something like distributing the devices over two-three wireless routers, and connecting the routers and the PC via Ethernet to a wired router so that the PC can log messages from all networks? Of course, I would prefer one device/LAN. Running the NTP/MQTT services on the routers themselves would also be nice if the router(s) could handle it. Would also be nice to connect the router(s) to a remote VPN and have off-site logging by subscribing to the MQTT broker(s) from remote computers on the VPN, but not necessary.
I would like to stay under $300 total.
I apologise if I left out something important, feel free to ask for more info.
Your problem is basically tied to WiFi layer and how much concurrent traffic it can handle. Router part is trivial. You need to find OpenWRT device with 2.4GHz WiFi part that will support many current sessions, albeit with low traffic.
"Router" is nothing but a small Linux box with WiFi cards, Ethernet cards, a (managed) switch and CPU in between. So as long as WiFi HW + Firmware blob used in your particular router supports 50 concurrent devices, you might be fine with one router (considering low traffic).
Worst case, you can use two (or more) devices, split it into different SSID's and let them use different channels in order not to interfere with each other.
Personally, I would skip the router part all together and just use a PCI WiFi card(s) in AP mode (installed in logger PC) in order to aggregate devices.
To be fair, pcengines has lost the ball 10 years ago. They're still milking the old jaguar cores, which are beyond their best-use date for modern routing needs (just barely achieving 1 GBit/s wirespeed on linux (not on xBSD), without any headroom for PPPoE, sqm or VPN left).
Yes, the devices (some of them) are rather unique to offer two mini-PCIe slots for wireless cards in a neat form factor, but if those slots meet the requirements of power-hungry and very hot running 802.11ac or 802.11ax cards is questionable at best - before even thinking about the question if the CPU is fast enough to keep them busy.
Yes, the task at hand might not need fast wireless performance, but many (above 30) connected clients has only become a matter of interest for the vendors since 802.11ac times, older ones are less likely to cope (and even for modern ones, you are at the air time limits, especially with slow IoT 802.11n STAs).
The APU2 was a quite major player when it was originally released, a decade ago - but today, it's too little for too much money. And pcengines dragging the jaguar cores along into the APU6 is almost pitiful.
I used an APU3 for 20 simultaneous clients, streaming youtube on wifi with low res. Thus, should be more than sufficient for the required task. Robustness, reliability is sometimes preferred. Which might even point to the usage of ubuntu for the APU.