WiFi – what’s the problem?
nemo (145) 2546 posts |
I ask purely out of the embarrassment of seeing a Beeb use WiFi Which I want, but I never got around to fitting the USB adaptor to my M128 so I don’t think I’ll find the time for this either. |
Theo Markettos (89) 919 posts |
The problem is the lack of a wifi network stack. To have a network stack means two things: the ability to push packets that are generated by the RISC OS IP stack – just like an ethernet card. And also a means to control the wifi interface – search and connect to networks, enter passwords, deal with WPA2-PSK, WPA2-Enterprise, WPS, etc etc. There are various embedded things that run their own network stacks on an internal CPU, in other words providing something like a serial port to which you can send commands like ‘connect to www.example.com port 80 and send GET / HTTP/1.1’. This interface is fine for an embedded widget, but here the wifi module is generating the packets. Somebody could knock up an interface to one of those, but it’s not a general purpose interface that allows the sending of TCP/IP packets. There are some options. One would be take one of those and write an interface to make it do PPP, like it’s a modem, over which you can send IP packets. Then you just need a frontend for the control stuff. However that relies on particular hardware being added – these days boards like the Raspberry Pi come with integral wifi which this couldn’t use. Another is to find a self-contained open source wifi stack and port it – probably one targeted at microcontrollers. However I haven’t found any suitable open-source stacks – there’s chips like the ESP8266 which have open source firmware but the wifi parts aren’t open source. You’d still need to write drivers for various wifi hardware. A final option is to update the network stack sufficiently so the relevant pieces can be pulled in from, for example, FreeBSD or NetBSD. Since the RISC OS network stack forked from BSD in the early 1990s, that’s a very big job. |