Two months ago I posted about the prototype of my .NET Gadgeteer powered RoombaCam I had been working on. At the time I thought RoombaCam was mostly done and I was only waiting for delivery of the Wifi module to replace the Ethernet module on the prototype.
Rewritten from scratch…
So the other day I installed the latest bits for the GHI Electronics components I have and it turns out, a lot has changed since I had last done an update. This includes a bunch of changes to the networking libraries for the Wifi and Ethernet modules, so my code wouldn’t even compile. Since I wasn’t very happy with the architecture of code inside Program.cs, I basically rewrote the entire thing this weekend. It is now much more modular and much better architected, if I may say so myself.
After the rewrite using the latest libraries, the application didn’t want to run, however. The problem were a bunch of files inside the project’s bin and/or obj folders that still referenced the old libraries causing some incompatibilities. After I deleted those two folders and rebuilt the solution, everything was deploying just fine.
…but problems persist
The following picture shows the modules I am using. There are a couple of extra ones, because I still can’t access my home network correctly: Wifi gives me an exception upon joining the network, Ethernet gives me a network down event immediately after I set up the web server in the network up event. I was kind of hoping to get this to work by tomorrow (when my Roomba will do its next sweep of the house), but because it is currently 36°C outside and I can’t think clearly anymore, I have given up on this for the moment and will have to come back to it some other time.
Anyway, below is what this thing looks mounted onto my actual Roomba. I think it’s kinda funny, how roughly 350 EUR worth of electronics is being held together by about 90 cents worth of screws, fasteners and a rubber band (not pictured). The power is supplied by battery pack that contains 4 AA rechargeable batteries and has a mini-USB output (12 EUR on Amazon). My earlier tests have shown this to be enough for about 3 hours, though I don’t know yet how that will be affected by using Wifi.
I just wanted to mention that I am using one extra library not contained in the pieces linked to above and that is the .NET Micro Framework Toolkit. I need it to set the time based on a NTP time server, as done in this example on Channel 9. Another article worth mentioning is the .NET Gadgeteer Web Service Surveillance Camera, a project actually very similar to mine that I hadn’t found out about until I was having problems with my Wifi. It does a really good job of explaining what you need to do to set it up properly. This article by the same author contains some hints in the comments for a networking problem similar to mine, but that didn’t help either. The way it looks now, I guess I will have to turn to the support forums sooner or later.
I’m maintain the source code on GitHub, so you can find the current version here.