RISC OS Open Release Archive
============================

As part of the work to add WiFi communications to the RISC OS TCP/IP stack a
new driver is being developed to work with the Broadcom BCM43 series of
network coprocessors.

This is the same series as is integrated onto the motherboard of many of the
Raspberry Pi computers: 3B, 3A+, 3B+, 4B, 400, Compute Module 4, Zero W
and Zero 2W.

For wireless networking on other models of Pi you'll need to purchase
additional hardware (such as an expansion HAT or USB dongle), support for which
is not included in this archive.

Pre-requisites
--------------

There are some updates needed to various low level components within the OS
to correctly support data transfers over the SDIO bus to which the WiFi
chip is connected. While these could, in theory, be manually applied to
earlier versions of RISC OS we'll assume you start from the current stable
release (RISC OS 5.30) since that version has all the pre-requisites
already built in.

Then, open Configure. Choose 'Boot', then 'Install', and drag the !Boot
provided in this archive to the window then press 'Merge' to merge the required
files.

Starting using the driver
-------------------------

Having merged this !Boot update, open Configure and go to
  Network -> Internet -> Interfaces
and tick to enable the BCM43 interface. Untick any wired interfaces.

For the BCM43 interface open 'Configure...' and select the 'via DHCP' address
assignment method, at least initially, since most WiFi access points will be
using the Dynamic Host Configuration Protocol.

Close the 'Interfaces' window and 'Internet configuration' window, then
press 'Save'. Reset the computer when prompted.

When the desktop starts you'll see a new WiFi Manager icon on the left of
the icon bar.

Menu click to see any nearby access points, sorted such that the most secure
and strongest signal are near the top of the menu. Move the mouse to the right
on the name of the one you wish to connect to and enter any credentials in
the 'Connection' dialogue. Click 'Connect'.

Once a connection is negotiated the WiFi Manager icon will gain green bars
reflecting the current signal strength. You're now online!

Stopping using the driver
-------------------------

If you wish to stop testing you will need to swap back to the wired Ethernet
interface. To do this go to
  Network -> Internet -> Interfaces
and tick to enable the wired interface. Untick the BCM43 interface.

Once you reboot the original wired interface will be used again. It is not
necessary to remove any of the files that were added by merging !Boot as
they do not interfere with normal running.

History
-------

09-Dec-2023: Proof of concept loading firmware at MUG Christmas market
24-Feb-2024: Browsing the live internet wirelessly at the South West show
25-Apr-2024: Initial public release
16-May-2024: Fix bug preventing connections to Open networks initiated from
             the Connect... dialogue with a manually entered SSID name.
             Report an error for overly short WPA passwords rather than trying
             to join with no hope of succeeding.
             Look for mixed mode WPA2/WPA3 networks and allow connection to
             these. Previously they were wrongly identified as WEP secured.
             Combine repeaters with the same SSID, channel, and security
             features in the nearby channel listing. Such repeaters will
             automatically roam if moved between.
             The currently connected access point will always appear in
             the list of nearby SSIDs even if the beacon is missed when
             scanning for networks.
05-Jul-2024: Workaround for a hang in the SDIODriver when reinitialising or
             reloading the module in a task window.
             Fix for an abort in MBufManager if a packet happens to arrive
             just as the driver finalises.

Known deficiencies
------------------

The firmware provided for the Pi 400 all-in-one computer has an issue
forming WPA connections (they will report 'Connection timed out') due some
missing functions in the firmware. At present this computer is limited to
using Open or WEP secured connections.

Access points which use the older WPA-PSK with AES are erroneously described
in the connection information box as WPA2-PSK and you will not be able to
join these networks (they will report 'Connection refused'). As a workaround
either change the access point to use WPA-PSK with TKIP or, preferably, use
the enhanced security provided by WPA2-PSK.

Trials feedback
---------------

For general questions about connecting to certain models of access point or
other installation problems the fastest response will likely come by asking
a question on our Community Support forum
  https://www.riscosopen.org/forum/forums/11

If yours isn't a connection or installation query please send feedback on
the software in an email to tcpip@riscosopen.org with any pertinent
information. We do read all feedback and will try to reply if appropriate.

Thank you for your help!

-- RISC OS Open
