commits
My banked dataflash loader can handle large uploads now
These came from WiFiPPP which has to emulate a real modem but we
just need one info screen. Keep AP scanning as a new AT$SCAN
command.
It looks like the Update class peeks on the socket and gets -1
because bytes aren't available and interprets that as 0xff, which
fails the first-byte-0xE9 test.
Apparently with this on (default) it writes the AP information to
flash every time WiFi.begin is called. Who knew?
This is only used when sending TSPEED but it's worth sending a low
value in case the remote actually uses it.
It may not come through as an SB like TTYPE.
This is already done this way in update_http_get_body.
From WiFiPPP commit 47318a7e76ec9b24ed55f9e6ffcc9cd3c19ced96
From WiFiPPP commit 94cb2999472174716b118448b6a231453610ef8a
From WiFiPPP commit 646778395fd2082d1a297145bae69e110c167767
From WiFiPPP commit 8a3de7fc6ac9e2814e78cc84fd7c671ae803b127
From WiFiPPP commit 5f345fdbe3ddd4502e347e0739ea5169f8f2d2aa
Also add a 'serve_ota' make target that creates an OTA text file and
serves it. This should speed up development and allow others to
update their devices from repos other than mine.
From WiFiPPP commit d8a0465612ff6c495be3f965de3ca3a4c00cd5bd
Reconfigure ATI responses to be more like other modems, moving WiFi
scanning to ATI5 and general info to ATI4.
From WiFiPPP commit eb4842b00be378a43f1610fb8875922af0fd4648
This is not really needed on WiFiStation but it helps keep code in
sync.
With echo enabled, only print \r after accepting a command, and once
the command wants to start output, it should print the \n. With ATQ
set (quiet mode), that \n is not printed since the OK or ERROR is
not printed.
Also loop through all command input so chained command sequences
like "ATEQ1" will be parsed as "ATE0" and "ATQ1".
From WiFiPPP commit b7a04199813fe7dc6a701fe272286300f86641ab
This is not really needed on WiFiStation but it helps keep code in
sync.
makeEspArduino can find things in their usual places on other
platforms
This lets us connect to sdf.org, also tested with klud.ge and
bbs.retrobattlestations.com.
See jcs/msTERM#1
The server may have already closed the connection by the time we are
processing headers, so don't just rely on client.connected().
https://github.com/esp8266/Arduino/commit/47b8947e724b7441d1ad7c7eefdd6fdf691b19c1
When the CP2104 USB serial chip on the Feather ESP8266 board sees
the DTR line go low, it causes a reset of the ESP8266. This is
needed for software (esptool) to be able to put the ESP8266 into its
bootloader mode.
Unfortunately this means any serial connection closing causes a
reboot, which has to reset the MCP23S18, which can cause garbage on
its GPIO lines going to the DB25 port.
When sendload is used to upload flashloader, it sends the program
over and then closes the serial connection, causing the WiFiStation
to reboot at the same time flashloader is executing and looking for
input (the size of the program it's about to write to flash). This
can cause flashloader to read bogus size bytes, but then sendload is
used again to upload the actual program being written and now it's
writing the two size bytes to flash plus the entire program being
offset by 2 bytes.
To work around this, delay 5 seconds on startup to ignore any
potential changes on the ack/busy lines.
For some reason when WSLoader receives the final byte it's expecting
and then does its 'jp 0x8000', the ack line doesn't go low and
ms_write() has to timeout waiting for that, which looks like a
failed upload to sendload.
This could be worked around by ms_write ignoring the ack on the
final byte, but every byte counts so if it properly fails to ack, it
should be an error.
Until I can figure out why this happens (without adding a delay
before WSLoader's final jump), send WSLoader one extra null byte so
we can ignore the result of that ms_write() and still see the proper
response to the real last byte of what sendload sent.
Differentiate between failing to poll, failing to read, and failing
to compare when checksum fails.
Clarify that bookmarks are for ATDS
Mostly signed/unsigned comparisons, sending const char* to char*
functions, unused variables, etc.
I don't know why the default would be to suppress all warnings...
With echo enabled, only print \r after accepting a command, and once
the command wants to start output, it should print the \n. With ATQ
set (quiet mode), that \n is not printed since the OK or ERROR is
not printed.
Also loop through all command input so chained command sequences
like "ATEQ1" will be parsed as "ATE0" and "ATQ1".
From WiFiPPP commit b7a04199813fe7dc6a701fe272286300f86641ab
This is not really needed on WiFiStation but it helps keep code in
sync.
When the CP2104 USB serial chip on the Feather ESP8266 board sees
the DTR line go low, it causes a reset of the ESP8266. This is
needed for software (esptool) to be able to put the ESP8266 into its
bootloader mode.
Unfortunately this means any serial connection closing causes a
reboot, which has to reset the MCP23S18, which can cause garbage on
its GPIO lines going to the DB25 port.
When sendload is used to upload flashloader, it sends the program
over and then closes the serial connection, causing the WiFiStation
to reboot at the same time flashloader is executing and looking for
input (the size of the program it's about to write to flash). This
can cause flashloader to read bogus size bytes, but then sendload is
used again to upload the actual program being written and now it's
writing the two size bytes to flash plus the entire program being
offset by 2 bytes.
To work around this, delay 5 seconds on startup to ignore any
potential changes on the ack/busy lines.
For some reason when WSLoader receives the final byte it's expecting
and then does its 'jp 0x8000', the ack line doesn't go low and
ms_write() has to timeout waiting for that, which looks like a
failed upload to sendload.
This could be worked around by ms_write ignoring the ack on the
final byte, but every byte counts so if it properly fails to ack, it
should be an error.
Until I can figure out why this happens (without adding a delay
before WSLoader's final jump), send WSLoader one extra null byte so
we can ignore the result of that ms_write() and still see the proper
response to the real last byte of what sendload sent.