AP webserver for wifi config

Using the OSD3358 BeagleBone System on Module, we add usb Wifi in the creation of a headless system to collect some sensor information and push it up to a remote sever. When this device gets shipped to the customer how would the customer set up the Wi-Fi to connect to their Lan without a terminal or LCD interaction?

I would have thought by now with all this IoT stuff there would be a simple app to install that would allow it to act as an AP with a web server so that they could connect to it via their phone or laptop to set up their WiFi settings for their router, click save and it would reboot and then not be a AP but now a client and connect to their network.

Normally I would agree. Yet when something is more of a common feature I would have expected something to already be developed.

well of course :slight_smile:

But seriously, every headless device that would get shipped would need a feature such as this. Unless of course you wanted to place the whole procedure of how to connect to the terminal, and set it up via that way to the user in the manual which you KNOW they are going to screw it up.

So the Module will by default become an AP if the configuration isn’t messed with. You could develop and app that SSHes to the device on this AP and configures the system with bash commands. In all the solutions I’ve seen (e.g. dash buttons, Aukey wifi power outlet) there has been some sort of button that causes the device to start it’s AP mode.

@ VersaModule, is there a button on the solution that the customer can use? The device is very powerful so there are an abundant of options avaliable. There could also be wifi provising, where the device simply attempts to connect to every AP that will let it; automatically. I know that the Amazon Dash app causes you phone’s wifi to connect the the button’s AP automatically, does its config dance then goes back to your regular wifi. It’s the same with the Aukey.

@ Mr. John Smith, I suppose i am more surprised that something like this is’t a simple “apt-get install xxxx” away already for as long as IoT has been around. I dont have the Linux knowledge to do anything like this yet.

The alljoyn onboarding profile is a good model for this. The samples are here : https://allseenalliance.org/framework/documentation/develop/run-sample-apps/onboarding

It’s not quite apt-get simple, but it works.

Inspiration: https://electricimp.com/platform/blinkup/

Exactly! I had one of those and that is the setup i am talking about. Now just need it for Linux.

Not sure how they do this, but the Particle Cores use an Android or iOS application to set them up onto your local wifi. The source code is open so maybe you can see how they do this?

They switch your android phone’s wifi to the device’s wifi. In the case of Amazon the WIFI name is “Amazon ConfigureMe” (or some variant). The phone connects to the device using open encryption, then sends the packets to configure the wifi to the device. The device then goes online, and the app restores your phone’s wifi to normal. Since the module could be configured over ssh, technically you could write and app to connect over ssh to make the config changes using “connman”.

The thing is with the Linux system, we can have a web server. So I feel it would be best to make use of it and have a no install app type of thing.
Mainly just you would use your browser to connect to you router to set it up.

So you’re going to write code to do it? I say Run a bash script and done.

On SeeedStudio BeagleBone Green Wireless, there are special software images that include the “wifidog” captive portal (http://dev.wifidog.org/). This makes the board come up as a WiFi AP/Hotspot and provides a web-based interface for configuring it to get onto your local WiFi.

We are currently evaluating if we want the same or different solution for BeagleBone Black Wireless.

Of course, this doesn’t require built-in WiFi to work and can work with external USB dongles that support AP mode.

The setup is described at https://github.com/Pillar1989/wifidog-server

1 Like

I agree with Versa, this should not be this complicated. :wall:

Yes what a nightmare we are all in.

My Senior Care project will be (If I ever get around to providing the solution) shipped to the elderly who live alone… They will open the package and them proceed to configure the headless device to attach to their wifi router…right like that is going to happen.

Plugging in an Ethernet cable will be more likely. Or maybe the kids will buy the product, call Mom or Dad and get their wifi credentials, configure the device ?? then mail it to mom or dad and hope it connects.

I too feel the industry needs to come up with a common solution that works. There is no reason we all have to keep reinventing the wheel.

…call me when it is done.

Thank you. :smiley:

1 Like

@ cyberh0me, I just want to be clear. Possibly the way I worded the OP is where the confusion is coming from.

My whole point on this was not to ask how to do it, even though in hind sight I can kinda see how one would think that when in my first paragraph i did say “how would the customer…” But I thought I clarified it in the next paragraph by saying “I would have thought by now…”

Just so I am clear now. Regardless if it’s the OSD3358, RPI, or the hundreds of other embedded Linux boards out there. These all lack the same solution. Not all of them are going to have a display, or meas for the user to get to the terminal let alone know how to configure it to be an AP, then turn around and turn that off and go back to a client.

What you are saying here:
“interesting, the scream for a industry solution from a developer on a system where everything is open source and 99.9% of the time community driven and community developed”

Is somewhat true, but look at it this way if you would. Would you be saying the same thing if i were asking why there is no cp, ifconfig, or lsusb commands ? This wifi setup should be such a common thing to have by now that there should be no reason for anyone to have to code it in the first place is my point.

1 Like