- By: Jeff Martin Published: 23 June, 2014 3 comments
Parallax’s efforts to free users from the cord will be realized this Summer in the form of enhanced hardware and software. Soon, Propeller users will deliver applications to their Propellers wirelessly- performing development and testing in the same way they’re used to, but possibly from across the room, or further.
I’ve recently demonstrated the results of our work on this project, a wired prototype, and a final product concept to staff members and users alike. The latest work has proven to reliably download full-sized Propeller Applications over Wi-Fi from a PC to a modified QuickStart board. The results are fast too; up to six times faster downloads since I integrated lossless compression and increased transfer rates into the final solution.
Read about the history and see pictures and videos of the recent details in my blog posting.
Get all the example code and details from the example code project.
The required parts are: A Propeller development board capable of Wi-Fi programming, an XBee Wi-Fi S6B module, and new or updated development software.
The first Wi-Fi capable development board will arrive in the form of a Propeller Activity Board. An updated version of this board is in development now to add the option of Wi-Fi-based programming- in addition to the standard USB-based programming. Users will plug in an XBee Wi-Fi S6B module (sold separately) to a provided socket on that board if they desire to program their Propeller wirelessly.
Other Wi-Fi capable development boards are intended to follow the release of the new Propeller Activity Board.
The SimpleIDE and Propeller Tool software will sport enhanced features, bringing wireless programming to the mix. In addition, an iOS-based downloader will be available to download pre-compiled binary images, and additional mobile systems are intended for release in the future with the same wireless capabilities.
Our goal is to see wireless programming of Propellers become a standard using the familiar desktops and laptops of today, and from iOS and Android mobile devices in the near future.
We are striving to make setup and use as easy as possible. Except for minor configuration to associate the XBee Wi-Fi to an access point, users should be free to focus on their application development and enjoy the convenience of wireless downloads. However, a lot is going on under-the-hood to make that possible.
In the very short time it takes to download the user’s application, the following is taking place behind the scene:
- The software reads and writes the XBee Wi-Fi’s communication settings
- It delivers a small program (a micro boot loader) through the XBee Wi-Fi and to the Propeller
- The micro boot loader starts running (on the Propeller) and communicates with the software
- The software increases communication speed to nearly 1 megabaud
- The user’s application is delivered to the Propeller “care of” the micro boot loader
- Any network interruptions are handled as gracefully as possible
- The software and micro boot loader verify the user application and launch it
For a full 32 KByte Propeller Application, the download process can be as fast as 1.6 seconds depending on network conditions. Compare that with the nearly 9 seconds of the standard mode cable-based downloads we’ve all been used to.
For the curious, this process requires that the XBee’s DIN and DOUT pins be wired to the Propeller’s Tx and Rx pins, an XBee I/O pin (currently I/O 2 in the prototype) be wired to the Propeller’s RESn pin, and an XBee I/O pin (current I/O 4) be cross-wired back to the XBee’s RTS pin. The download software uses the XBee’s timed pulse and flow control features to generate the proper reset and serial stream timing required by the start of the Propeller’s programming process. No special firmware need be loaded in advance for this process to work; from the user’s perspective, it behaves similar to a standard Propeller download process. Read more details here.
Our Next Steps
We are documenting the underlying process and releasing source code from a working example for our community developers. This will be used to enhance existing software as well as create new software, like an iOS-based downloader app. Additionally, hardware changes are being made to support this and will be available as soon as possible. Other possibilities are likely to appear as well, such as wireless programming of BASIC Stamps.
- Jeff Martin