Hello Folks,
This would address both electronics and embedded engineers. Is there a method to coax a regular built-in WLAN port on a laptop (or a WLAN card) into piping out a simple and slow on/off data stream? Without protocols and all that, and without waiting for any receive packets.
The reason behind this idea: Assume you have a small uC based product. Every once in a while it needs to be updated with new firmware. The usual scenario is to provide a USB connection or an infrared port. Both are cumbersome. USB adds a lot of cost to the target device and the cable gets in the way (oh drat, forgot to pack the cable...). Infrared is tough because many laptops simply don't have it. However, nearly all of them have built-in wireless these days.
The scenario I imagine is this:
a. The target device is equipped with a simple and not very sensitive receiver and AM detector for 2.45GHz ISM (WLAN range). This runs into a comparator port of the uC. Much simpler than Bluetooth and all that, plus lots of laptops don't have Bluetooth.
b. The user receives one executable file containing the new firmware, code to initialize the WLAN port and code to run that port in a simple (but legal) AM on/off mode. This executable would now be started.
c. The user is instructed to press a magic button combination which sets the target device into re-flash mode, upon which it waits for a data stream from the WLAN card.
d. The user must place the target device within a couple of feet of the WLAN equipped laptop until a LED flashes, indicating that it has detected the presence of a sufficiently strong pulsed carrier somewhere around 2.45GHz.
e. A serial on/off data stream is constantly pouring out of the WLAN port of the PC. A bootloader in the target device looks for a passcode and when it finds that it loads the data stream that follows.
f. The target device stops at an end-of-file token, does sufficient integrity checking on what it has received and then leaves re-flash mode. It's now ready to use with the new firmware.
Any idea on how to get point "b." done? Tried Google but pulled numerous blanks. Then again, I am not a software guy so maybe I am looking in the wrong places.