One good way of organizing a design is a block diagram. It is like a macro view of the design. It helps you to see the relationships between the functional parts of the design.
In this project I see six major functional blocks.
These functions are the The User Interface, radio connection, processor, memory, Power supply, and programming Interface.
ESP8266 ESP12 wifi module. This module is very inexpensive (US $3.45 in small quantities) and has FCC certification markings on RF shield.
Wifi has the potential for much higher data speeds than bluetooth. Documentation for this module is very scarce. I do not know how difficult it would be to implement into the design. There does seem to be a large group of enthusiasts that are playing with it and posting about it.
On the Arduino forum there appears to be helpful information about using and programming this module.
www.esp8266.com appears to be a community created and supported forum and wiki dedicated to this family of wifi modules.
This module already has a large open support community which would be valuable for this project.
Murata LBCA2HNZYZ-711 BLE module w/antenna priced at US$ 5.57 in Quantities of 1,000.
This includes FCC certification. This means for commercial sales, i don’t have to get the system certified. Certification is a large cost for radios developed to go to market.
Bluetooth Low Energy (BLE) has an approximate max data throughput of 10.6 KB/s. This is very constraining for large devices such as routers and smart phones.
For estimation I will calculate the time to upload to a 1 GB router.
1,000,000 KB = 1GB
1,000,000 /10.6 = number of seconds to upload
94,339 seconds to upload 1 GB
94339/3600 = 26 Hours to upload (Not very feasible for very large devices)
This might require a change on design specs, however very few devices need a 1GB upload.
Most Devices are under 1 MB. which would take approximately 95 Seconds. This is not horrible when trying to rescue a brick but very frustrating for production work.
Bluetooth Low energy is not in every smart phone, but is becoming common.
This choice has some positives and Negatives. It is not ruled out yet.
Occasionally in design we get stuck. Maybe you hit a roadblock in the design, or your prototype is doing something strange and you can’t figure it out. It is often helpful to talk about it with someone else. This doesn’t necessarily need to be someone that knows your project or even electronics design principles.
A Cardboard Dummy is someone that you can talk to about your design. They need to know about as much as a cardboard cutout figure. By describing your problem to someone that doesn’t know anything about your design, you are required to break down the design into simpler terms. When you describe a problem to another person, you have to explain any assumptions you have made. Without this explanation they will not understand your design choices.
This process changes your perspective on your design. If you are looking too closely at details, You might not see a macro level interaction or vice versa. The more you have to explain your assumptions the more your perspective has to change.