WiFi RS21 firmware lost?

Hi,

i think i have killed something on my wifi module:

On bootup / program startup i get something like


Using mainboard GHI Electronics FEZSpider version 1.0
Program Started
RS9110 firmware version Number is           <--- firmware version number missing
RS9110 driver version Number is 4.4.5

and initialization is hanging on

wifi.Interface.Open();

Any ideas?

Thanks in advance
Knut

Welcome to the forum!

Make sure you have latest SDK. Can you show more of your code, please?

Hi Architect!

Thx for your answer!

I’m at the newest SDK/Firmware as i began gadgeteering at Xmas! (downloaded and installed all new / updated firmware).

I’ve build over the Xmax vacation my first little Gadgeteer project. Its a simple 4 motor/tire robot with a onboard FEZ Spider, steered remotely by a PC-connected XBox contoller via WiFi. It works like a charm. Having a lot of pogramming fun on the way…

At some point in time i had to remove my logic power source (a 7.4V LiPo) from the USB-DP and connected to PC-USB for further programm modification. Maybe to little current on that USB-port. The Spider begins a courious reboot -> run -> reboot loop, that i realized about 30 minutes later (was away from keyboard, so i didn’t realize quickly). It does somthing like [Boot] -> [Initialize smothley] -> [Run a few 10 seconds] -> [LCD/power breakdown] -> [Boot] -> …

After that, removed USB, and go to bed. Next day RS21 was dead!

I build up a completeley new Spider hardware (new Spider, new USB-DP, new TE35, new cables) and check the RS21 on both sockets (6?, 9?). No success, no communication with the WiFi module). I even tried wifi.Interface.UpdateFirmware() with no success (it times out after 100 secs).

Here some relevant part of my program:


        private void ProgramStarted()
        {
            StandardFont = Resources.GetFont(Resources.FontResources.NinaB);

            SetupWindow(Window, StandardFont); // <- setup some Text's in a Canvas for status messages

            TcpServer = new TcpServer(); // <-- receives steering commands for my robot after an successful wifi setup
            TcpServer.ServerStatusChanged += TcpServerOnServerStatusChanged;
            TcpServer.DataReceived += TcpServerOnDataReceived;
            TcpServerOnServerStatusChanged(TcpServer.Status);

            new Thread(() => SetupWiFi(WiFi)).Start();

            Debug.Print("Program Started");
        }


        private void SetupWiFi(WiFi_RS21 wifi)
        {
            Thread.Sleep(500);

            if (wifi.Interface.IsActivated)
            {
                if (wifi.Interface.IsOpen)
                {
                    Write(txtStatus, "Closing WiFi interface ...");

                    wifi.Interface.Close();
                }
            }

            if (!wifi.Interface.IsOpen)
            {
                Write(txtStatus, "Opening WiFi interface ...");

                try
                {
                    wifi.Interface.Open(); // <- here it goes to nirwana
                }
                catch (Exception exception)
                {
                    Debug.Print("ERROR: " + exception);
                }
            }

            if (!wifi.Interface.NetworkInterface.IsDhcpEnabled)
            {
                Write(txtStatus, "Enabling DHCP on WiFi interface ...");

                wifi.Interface.NetworkInterface.EnableDhcp();
            }

            Write(txtStatus, "Assigning interface to network stack ...");

            NetworkInterfaceExtension.AssignNetworkingStackTo(wifi.Interface);

            wifi.Interface.NetworkAddressChanged +=
                (sender, args) =>
                    {
                        Write(txtStatus, "IP: " + wifi.Interface.NetworkInterface.IPAddress);

                        TcpServer.Start(wifi.Interface.NetworkInterface.IPAddress, TcpServer.DefaultServerPort);
                    };

            bool joined = false;

            for (int i = 0; i < 3; ++i)
            {

                Write(txtStatus, "Scanning for known networks ...");

                try
                {
                    var x = wifi.Interface.Scan(Network);

                    if (x != null && x.Length > 0)
                    {
                        Write(txtStatus, "Connecting to '" + x[0].SSID + "' ...");

                        wifi.Interface.Join(x[0], Passphrase);

                        joined = true;

                        break;
                    }
                }
                catch (Exception)
                {
                }
            }

            if (!joined)
            {
                Write(txtStatus, "Can't join network '" + Network + "'");
            }
        }

I hope this is enough information to try a little remote diagnostics :slight_smile:

Hi Knut,

I’ve had similar problems in the past (hang on open , hang on join, but NOT the missing version number info), so your mileage may vary.
For me it came down to a combination of power (not enough) and a flaky connector on my RS21 module - i.e. I got it working by powering from a proper power supply (not USB), and giving the gadgeteer cables at both ends a firm (but not too firm :slight_smile: ) push.

Regards
Rob