Wi-Fi program loader?
Phil Pilgrim (PhiPi)
Posts: 23,514
I'll be receiving a couple Activity Board WXs tomorrow, along with the Wi-Fi modules. I've read a lot of blurbs about loading programs via Wi-Fi, but I haven't seen any PC software that can do that. Is this a feature of the most current Propeller Tool, or is there a separate loader that I need to download? Or ... is there a TCP driver that emulates a serial port?
Enquiring minds want to know. TM
Thanks,
-Phil

Comments
It's all in the secret sauce of the WiFi modules firmware.
The WiFi module is listening for a UDP packet to be broadcasted and then responses with it's information that can then be used to create a TCP connection to the board.
SimpleIDE can load program that way and I have a program that can load programs over WiFi to the P2 that way.
Works great for application that you don't want tethered.
Mike
BlocklyProp Solo is another option that natively supports WiFi loading.
When detected in the local subnet, WiFi modules get added to the com-port dropdown in both BlocklyProp and SimpleIDE.
I think with the command line loaders (prop-loader / etc..), you can either autodetect or specify the IP address too; handy should the module be on another subnet.
Neither SimpleIDE nor Blockly help me since I'm programming in Spin for the P1. Nor does PropLoader unless I can find a pre-compiled .exe.
Thanks anyway,
-Phil
You can get a pre-compiled version of proploader.exe by downloading Flexprop from: https://github.com/totalspectrum/flexprop/releases
You'll find proploader.exe in flexprop's bin directory. And, yes works with P1 or P2!
proploader.exe usage:
./proploader PropLoader (totalspectrum branch) v1.9-14 (2022-10-05 11:39:35 g64d6321) usage: ./proploader [options] [<file>] options: -b <type> select target board and subtype (default is 'default:default') -c display numeric message codes -D var=value define a board configuration variable -e program eeprom (and halt, unless combined with -r) -f <file> write a file to the SD card -i <ip-addr> IP address of the Parallax Wi-Fi module -I <path> add a directory to the include path -k prompt before exiting due to an error -p <port> serial port -P show all serial ports -q during terminal display check for exit status from Propeller -Q quiet mode, fewer messages -r run program after downloading (useful with -e) -R reset the Propeller -s do a serial download -t enter terminal mode after the load is complete -T enter pst-compatible terminal mode after the load is complete -v enable verbose debugging output -W show all discovered wifi modules -xDEBUG enter DEBUG monitor (P2 only) -xTAQOZ enter TAQOZ (P2 only) -2 assume Prop2 (same as chipver=P2) -9 <dir> start plan 9 file system with root at <dir> -? display a usage message and exit file: binary file to load (.elf or .binary) Target board type can be either a single identifier like 'propboe' in which case the subtype defaults to 'default' or it can be of the form <type>:<subtype> like 'c3:ram'. Variables that can be set with -D are: Used by the loader: loader reset clkfreq clkmode fast-loader-clkfreq fast-loader-clkmode baud-rate loader-baud-rate fast-loader-baud-rate chipver Used by the SD file writer: sdspi-do sdspi-clk sdspi-di sdspi-cs sdspi-clr sdspi-inc sdspi-start sdspi-width spdspi-addr sdspi-config1 sdspi-config2 Value expressions for -D can include: rcfast rcslow xinput xtal1 xtal2 xtal3 pll1x pll2x pll4x pll8x pll16x k m mhz true false an integer or two operands with a binary operator + - * / % & | or unary + or - or a parenthesized expression. Examples: loader=rom to use the ROM loader instead of the fast loaderAs Dennis mentioned, a pre-complied proploader comes with FlexProp. For that matter you can use the FlexProp GUI to download binaries via WiFi, and the flexspin compiler can compile binaries for P1 -- either as P1 LMM (fast but big) or P1 bytecode (slower but small). The bytecode support is marked experimental because there are still some missing features that C or BASIC might need, but for Spin programs it should work fine. Ada did a very nice job of creating the P1 bytecode backend.
(Or, you can compile with openspin, bstc, or some other compiler, and just use the GUI for downloading the final binaries).