Open Wi-Fi Cloud
Open Wi-Fi Cloud
Turn your Wi-Fi router into a powerful, highly configurable hot spot.
Turn your Wi-Fi router into a powerful, highly configurable hot spot. Read more
About this project
Have you ever asked yourself the questions:
- How can I share my Internet line (or can I use my neighbor's Wi-Fi)?
- Would that be secure?
- Can we split the cost?
- Is there a better way to utilize high-speed internet?
Today when we look around at our home/office we see regular off -the shelf wireless routers, which aren't built to accommodate for sharing one internet link between multiple households/office workers.
The goal of this Open Source project is to turn your regular Wi-Fi router into a powerful, highly configurable hot spot capable of sharing one internet link across multiple households in an easy and secure way.
The wireless router has an interesting history, but all you really need to know is that the special sauce lies in embedding Linux in your router and building user friendly interface to automatically manage the whole process.
We think this project is especially attractive because:
- Will make it easy to upgrade your existing Wi-Fi router; No upgrade cost is involved, you can boost the signal strength and add amazing features, functions and simplicity that otherwise are not available.
- It's Open Source and totally free.
- It can potentially reduce the cost of your internet bill in half (or even more).
- When our community grows you might be able to 'roam' between Wi-Fi networks in different neighborhoods, cities and across countries or continents. The freedom of accessing Internet on an exchange basis rather than pay basis will immensely reduce the cost of being mobile.
- Security is our main focus, we will make sure your identity and data is protected.
- Wi-Fi Clould Enabled routers can automatically be joined in one wireless network to cover larger areas such as residential or office buildings.
After a simple firmware upgrade, you can share your internet link, boost your wireless signal, prioritize who, for how long can get your precious bandwidth, without having to purchase new equipment or pay to someone else to do the system integration work for you.
Did you know that 74% of at home internet users have super-fast internet connectivity?
We have access to internet with a connection speed of between 2Mb and 8Mb per second, but on average we use only 1/5 of the available bandwidth!
If you think of it from another perspective… we use 1/5 of what we pay for.
Now, the real question is: Can we improve utilization of un-used internet bandwidth? And can we benefit from improved utilization?
Absolutely! We believe the best way to utilize unused internet capacity is by sharing the unused bandwidth.
We know that existing internet networks are capable of delivering high speed internet, but our wireless routers are incapable of utilizing it.
So, if sharing of internet improves utilization and has the potential to reduce the cost then simplifying and automating the process does bring significant value for both users and owners.
On the other hand reality is we all have regular consumer-grade wireless routers at home, which aren't built to accommodate sharing of one internet link between multiple households.
The problem with the existing high-end routers up to this point is they’re all really, really expensive, they are hard to configure and require an in-depth understanding of networking technologies!
Usually people have no networking experience and they have to pay extra to someone else to configure the equipment and integrate billing and user management into one system.
So, the cost keeps piling up and becomes prohibitive for home and small business users - so right now only big companies can afford such a solution.
This project is about building an open source firmware, compatible with most existing wireless routers to allow any household or small business to get paid for sharing its internet line.
By making a high-end networking features available to the consumer routers we can challenge today’s status quo of underutilized internet bandwidth, inefficient and hard to configure firmware.
We are looking at building a zero maintenance, simple to set up system, that you just can load on your router, select the type of access, set the pricing and forget about it.
How can this be achieved?
We are planning on extending the functionalities of a Linux based Open Source Firmware DD-WRT. The first firmware version, was publicly released about seven years ago, today it's a stable platform compatible with major vendors such as D-Link, Linksys and Netgear.
The system that we are building will automatically manage the process of creating users, charging their accounts and if they cancel their subscription it will automatically block their access to the internet.
- The first step of the project is to build a user management module, responsible for managing who and for how long has access to internet
- Then we need to integrate user management with payment gateways such as PayPal and Amazon and provide the ability to accept online payments via credit card and e-check.
- The next step is to tie in, bandwidth management with user accounts, to ensure that available bandwidth is fairly distributed
- And finally establish secure environment for each user by implementing Virtual LANs and isolating user's traffic.
Around all of these components we are going to build a web interface, so that all aspects of user's administration and billing can easily be managed.
Now, let's take a look at how it's going to work.
When a neighbor wants to use wireless internet, he or she can browse and select from the list of available Wi-Fi capable networks in the neighborhood. Once connected to a 'Wi-Fi Cloud enabled' wireless router, they can choose the type of internet access - either One off or Subscription based.
When the type of access is selected the user will be forwarded off to PayPal or Amazon to do the checkout. If the payment fails, access to internet will not be granted.
If the payment is successful, the 'Wi-Fi Cloud enabled' router will automatically generate unique username and password and display them on the user's screen. The user can now login with its credentials and immediately gain access to internet.
Security (we take it seriously and yes, it's our main focus)
For every user who logs in to the router we are going to build an isolated private network, a virtual tunnel, also known as virtual LAN to isolate and protect user's data. Another reason for this is we want to guarantee fair share in terms of bandwidth usage by implementing traffic shaping.
Traffic shaping, allows us to optimize and guarantee performance, improve latency, and increase usable bandwidth. It will automatically kick in to protect users when someone is trying to unfairly occupy significant part of the available bandwidth.
From owner's perspective a web interface, will be used to manage:
- The maximum number of active users (users allowed to connect and access internet)
- How will the available internet bandwidth be used, either split in equal shares between all of the users or a hard-capped limit, such as 1 Mb/s per user
- The maximum amount of data traffic a user can generate per month or day, for example up to 20 Gb of data traffic.
- The type of payment gateway you'd like to use (either PayPal or Amazon)
- What type of access should be allowed: One off or subscription based, for example 8 hours of access to internet or recurring monthly subscription.
- Specify the dollar amount you'd like to charge for internet usage per billing period, for example $30 per month or $2 a day.
- Ability to use predefined accounts
Additional features that we would like to build if we get more funding:
- Roaming minutes of internet access (deposit minutes of access to your home Internet line and use them to connect to someone else's Wi-Fi network when you are travelling or you are not at home).
- Ability to define price discounted but bandwidth restricted profiles. For example users that can only browse internet sites but have no access to streaming media, or users restricted to particular type of websites of website services.
- Mobile App capable of displaying on the Map, users that are running Wireless Cloud capable routers in your neighborhood. Display the speed of their Internet line, how many users are connected and how much they charge for internet access.
- Super easy Wizard-based account setup
- Ability to protect your identity by hiding you location and blocking tracking sites and scripts while you surf Internet.
- Anti-virus scanning of all incoming and outgoing internet traffic including the ability to block access to dangerous or explicit content websites.
Open WiFi Router (Prototype Demo)
Administrator's Interface Demo
The reason we need your support is so that we can get the firmware developed as fast as possible.
With your support, Open Wi-Fi Cloud will forever change the way that we use internet. We all have to use internet, but only with your help we will be able to share it in the most easy and cost-efficient way possible. You can become a part of this movement. Join us in challenging today’s status quo of underutilized internet, and inefficient wireless routers. So join the revolution, make a pledge, and help us change Internet forever.
Project Plan and Deadlines
We want efficient and meticulously developed open source platform - reliable, secure and dependent, in other words done well. This project could drag on for more than six months if we don't meet out funding goal, because we won't have enough hands and brains to do the coding and testing, but if we meet or exceed our budget we can keep around a strong development team and things that usually take months will actually be done in weeks. So far we worked hard on building the prototype platform based on the Atheros chip and did thoroughly plan what needs to be done next and also to make sure we can align resources for this project in order to ensure on-time delivery. We believe the final release of the platform can be successfully delivered within 5.4 months within budget.
Detailed project plan can be found at the following link to a Google Docs spreadsheet: https://docs.google.com/open?id=0BzQBuqO6UUc7Y0UxQ05tUTA3czg
Risks and challenges
I know we can never have complete certainty over the course of the project. Unexpected changes in the core functionality, user interface, loss of key developers, and technical difficulties during the testing phase of the firmware can all cause delay, cost overruns, or failure to meet the specified dates.
Our project plan includes margins to guard against such problems, but still there is a chance that the project will exceeded the allotted budget and schedule by a factor of two or more, or face a stage were debugging is hard to finalize and potentially force us to change core functionalities.
To increase the chances of success the potential problems in the project were identified and we are planning on attacking them as early as the project start.
Firmware development is always about creating something new, and often trying to push the state of the art. A “zero risk” firmware development project would have goals so timid that it couldn’t justify deploying the product.
We believe that we as software developers with years of experience and stakeholders of the project scope we found the acceptable level of risk for this project and in the same time we believe the project is innovative enough that the goal of providing better functionality to an outdated firmware is worth attaining, but without risking a complete failure.
A project’s risk management plan has been created to match the size of the project team and the complexity of the project.
Based on the project requirements document we think the following risks may arise from each requirement.
User interface acceptance/1/Low
Retaining key programmers/2/High
Performance and response time/3/Medium-High
Compatibility with various routers/4/Medium-High
Not enough time to accomplish the project/3/High
Unexpected code complications/1/Low
We are planning to pro-actively monitor the development process on an on-going basis to ensure project success. Check the status of all risks at regular meetings and re-assign tasks if needed. I as the lead developer who will be assigned to execute the build should report regularly on progress both to the rest of the team members but also to our community.
Our small project (less than 4 developers) cannot spare the time for the whole team to learn a complex risk-mitigating process. The size of the project allows all members of the team to be familiar with all aspects of the project. This makes it easy to informally develop a consensus on the severity of the project’s risks. The commitment of the entire team to risk management will be essential.
To deal with the main risks we intend to:
Risk #1 User interface acceptance
The risk to face a situation were users do not agree with the UI design and functionality is pretty low but quite manageable since it's not a critical part of the system - it facilitates the management but it's not a requirement for the system to be fully functional.
Risk #2 Retaining key programmers
The risk of losing key programmers is high because in today’s world is very hard to retain talented people, but we believe that the fact the project will become so popular will help us to identity and attract more developers that can become part of the process since the beginning and thus significantly reduce the reliance on key programmers.
Risk # 3 Performance and response time
The risk of building a system that isn't performing or has slow response time is Medium-High, and we plan on eleviating this risk by buiding on top of an existing platform which is in production for more than seven years now.
Risk # 4 Code size
The risk of ending up with a bloated, unmangable code size is Medium to High but we believe this is very managable since we aren't going to completly revamp the core of the firmware, but instead build functionality around it.
Risk #5 I/O speed
The risk of reaching the maximum CPU performance is low since all of the technologies that we will be using are already built-in to the core of the firmware.
Risk #6 Compatibility with various routers
The risk of running of compatibility issues is Medium to high since we aren't sure what type of vendor modifications are currently in the pipe. we are planning on mitigating this risk by developing firmware that is compatible with Open platforms and running our own vendor testing/certification in order to compile a list of compatible routers.
Risk # 7 Not enough time to accomplish the project
The risk of not being able to complete the project by the deadline will be addressed by working in two phases. The first phase will be to develop firmware compatible only with three of the most popular routers available on the market.
Risk #8 Unexpected code complications
We believe the risk of unexpected code complications is low because initially we will be limiting the development of the firmware to three hardware platforms which were already tested and compatible.
The risk management process will need to be low- overhead to make it easily usable. Since the team members will be working closely together and have similar backgrounds they will have an easy time reaching consensus on risk issues. We are a team of two developers with 15+ experience in systems development, we are confident that we can successfully accomplish the extension of firmware core to achieve the project goals.
We are both BS in CS, we have low level embedded software development experience in Linux and RTOS (VxWorks and QNX) with strong C and C++ programming experience. We also have solid understanding and experience with TCP/IP networking protocol stacks which is key to this project.
Previously we worked on security related software, and had the chance to develop/build Linux based control devices from scratch, from prototype all the way through to final release, this combined with low-level performance tuning experience, Linux kernel dev exp, including doing device drivers, Python, Lua scripting, and Linux networking APIs (packet sockets and ICMP) makes us the perfect duo to make the project successful.
Support this project
- (35 days)