Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : PicoMite/VGA/WEB V5.07.08 release candidates
Page 6 of 18 | |||||
Author | Message | ||||
carlschneider Senior Member Joined: 04/08/2023 Location: South AfricaPosts: 158 |
An observation... option wifi ssid$, psswd$,,"static ip","mask","gateway" can exceed the default option display width an gives a syntax error indicating " is a problem. Cheers Carl Retirement is tough on Hobbies without a day job |
||||
carlschneider Senior Member Joined: 04/08/2023 Location: South AfricaPosts: 158 |
Hi Peter Please ignore the option display query. I had my columns and rows the wrong way round. But in so doing I had a lot of trouble getting the option wifi to fit and eventually ended up with one column short. Cheers Carl Retirement is tough on Hobbies without a day job |
||||
TassyJim Guru Joined: 07/08/2011 Location: AustraliaPosts: 6099 |
TFTP on the WEBmite There appears to be a file name size limit of 20 characters including extension. That makes addressing files in any sort of directory structure a problem. I thought we had a longer size available on an earlier beta (but I could be imagining that) Jim VK7JH MMedit MMBasic Help |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9122 |
The maximum filename length is set inside a header in lwip internals and has always been 20. I can override it but the impact will need testing. Attached is a version with it set, in theory, to 63 - same as all other filenames as per the FatFS header. Please see if I have broken anything and if it makes a difference. PicoMiteWeb.zip Edited 2023-10-07 17:41 by matherp |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4042 |
Thank you Peter, very helpful. Have a great weekend, Tom Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
carlschneider Senior Member Joined: 04/08/2023 Location: South AfricaPosts: 158 |
Webmite stability continued... Now running 5.07.08RC5 This is the console screen after a crash [884] WEB TRANSMIT PAGE a%, file$ Error : No response to request from connection no. 1 > Error : No response to request from connection no. 2 > [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout At the time of the crash there is a webpage generated html request on a 1s interval and a crontab curl requesting the same html page on a 1m interval. This would explain why there are two connections. Peter you made this comment on the Webmite stability thread; "In order to support TLS on the Webmite I have had to allocate 36Kbytes of our precious RAM to the heap and yet (as evidenced by a recent user post) even that can be exceeded." I notice that MM.INFO(HEAP) is now reporting 74496 after ^C on the console; which is up from the RC4 64000'ish. While the program is running it starts at 80000 and settles to a constant 80640; in RC5. In terms of the v3 manual MM.INFO(HEAP) "Returns the amount of MMbasic Heap memory free. MMBasic heap is used for strings, arrays and various other temporary and permanent buffers (e.g. audio)"; which implies that the Heap is entire available RAM allocation and not the 36k allocated per the Webmite stability thread? The below on the console even though the ^C is in effect and the > prompt is present on the console. ? mm.info(heap) 74496 > [CYW43] do_ioctl(2, 263, 16): timeout > [CYW43] do_ioctl(2, 263, 16): timeout [CYW43] do_ioctl(2, 263, 16): timeout This is odd as the WiFi module led is still blinking but the console is still reporting the ioctl timeout? I hope this helps in the search for the elusive instability. Cheers Carl Retirement is tough on Hobbies without a day job |
||||
carlschneider Senior Member Joined: 04/08/2023 Location: South AfricaPosts: 158 |
A possible addition to the manual? LCDPANEL SSD1306I2C, OR, offset may also support the 1.3" OLED using the SH1106 chip (if you're lucky). I had an AMC I2C 1.3IN OLED 128x64-BLUE in my spares box which works and the offset of 2 cleans up all the issues on the left and right edges. Thanks Peter Cheers Carl Retirement is tough on Hobbies without a day job |
||||
TassyJim Guru Joined: 07/08/2011 Location: AustraliaPosts: 6099 |
Thanks, I couldn't find any reference to a limit in the specs and I did see an implementation that used 128 bytes so I think 63 will be safe. I will give it a workout. Jim VK7JH MMedit MMBasic Help |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9122 |
I think you are being over optimistic as to the capability of the PicoW. NB: there are two heaps. mm.info(heap) returns info on the MMBasic heap managed by MMBasic. mm.info(system heap) returns information on the C heap which is used extensively by the sdk for web activity. The heap that TLS used in excess was the system heap |
||||
carlschneider Senior Member Joined: 04/08/2023 Location: South AfricaPosts: 158 |
Thanks Peter. I forgot the option cpuspeed so the previous loading was at the default cpu speed. I've upped it to 252MHz and will check again. Curl on 1m interval and ModBus Register Read on 10s intervals for initial stability check. Here's crossing my fingers :) Cheers Carl Retirement is tough on Hobbies without a day job |
||||
TassyJim Guru Joined: 07/08/2011 Location: AustraliaPosts: 6099 |
I have tried every combination I can think of and it all works as expected. I tested with the Microsoft tftp and my own implementation with no difference - all working well. Jim VK7JH MMedit MMBasic Help |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9122 |
Jim - thanks for testing. I've updated the firmware in the download - no version change |
||||
carlschneider Senior Member Joined: 04/08/2023 Location: South AfricaPosts: 158 |
Hi Peter A further update on stability. Strange behaviour from the Pico. While the program has frozen, evidenced by some frozen heartbeat IO and the CYW43 is doing its ioctl timeouts to the console, I notice on Wireshark that the 1m curl request is being responded to with a 404, but the 30s ModBus TCP register read has frozen with the program freeze. So TCP activity is 30s ModBus TCP read of one register and 1m curl of all.html. This combination ran for ~19 hours, starting at 08-10-2023 10:02:20 and freezing at 2023-10-09 05:24:01.771647. This is shown in the Wireshark extract below; No. Time Source Destination Protocol Length Info 3109287 2023-10-09 05:20:29.450397 10.0.0.45 10.0.0.18 Modbus/TCP 66 Query: Trans: 1; Unit: 1, Func: 3: Read Holding Registers 3109289 2023-10-09 05:20:29.453368 10.0.0.18 10.0.0.45 Modbus/TCP 73 Response: Trans: 1; Unit: 1, Func: 3: Read Holding Registers 3109462 2023-10-09 05:20:57.893988 10.0.0.45 10.0.0.18 Modbus/TCP 66 Query: Trans: 1; Unit: 1, Func: 3: Read Holding Registers 3109464 2023-10-09 05:20:57.896796 10.0.0.18 10.0.0.45 Modbus/TCP 73 Response: Trans: 1; Unit: 1, Func: 3: Read Holding Registers 3109481 2023-10-09 05:21:01.123548 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1 3109484 2023-10-09 05:21:01.427791 10.0.0.45 10.0.0.18 HTTP 242 HTTP/1.1 200 OK (text/html) 3109666 2023-10-09 05:21:26.049058 10.0.0.45 10.0.0.18 Modbus/TCP 66 Query: Trans: 1; Unit: 1, Func: 3: Read Holding Registers 3109668 2023-10-09 05:21:26.051469 10.0.0.18 10.0.0.45 Modbus/TCP 73 Response: Trans: 1; Unit: 1, Func: 3: Read Holding Registers 3109804 2023-10-09 05:21:56.089478 10.0.0.45 10.0.0.18 Modbus/TCP 66 Query: Trans: 1; Unit: 1, Func: 3: Read Holding Registers 3109806 2023-10-09 05:21:56.092548 10.0.0.18 10.0.0.45 Modbus/TCP 73 Response: Trans: 1; Unit: 1, Func: 3: Read Holding Registers 3109889 2023-10-09 05:22:03.639464 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1 3110302 2023-10-09 05:23:00.661128 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1 3110695 2023-10-09 05:24:01.771647 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1 3110712 2023-10-09 05:24:03.319007 10.0.0.45 10.0.0.18 HTTP 54 HTTP/1.0 404 3111079 2023-10-09 05:25:01.001607 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1 3111094 2023-10-09 05:25:02.567524 10.0.0.45 10.0.0.18 HTTP 54 HTTP/1.0 404 The puzzling 404 generated by the Pico is clearly not coming from the frozen program... Hopefully this helps a little in identifying the instability. Cheers Carl Retirement is tough on Hobbies without a day job |
||||
carlschneider Senior Member Joined: 04/08/2023 Location: South AfricaPosts: 158 |
Hi Jim Could you please check if RC5 Telnet is accessible by default? On mine with RC5 version, pre the filename length increase, I had to specifically use option telnet console on to get telnet access. I'm curious as to whether its my setup here or the default on came off? Cheers Carl Retirement is tough on Hobbies without a day job |
||||
carlschneider Senior Member Joined: 04/08/2023 Location: South AfricaPosts: 158 |
Hi Peter I changed the ModBus TCP polling to 60s and the external Curl still running on 60s intervals, but separated by ~12s, so not simultaneously. Webmite running off a separate supply and access through Telnet. Webmite ran from 10:04:11 on 2023.10.09 to 14:58:00 2023.10.10 before freezing. Autorun off currently and no external watchdog to simplify detecting crashes. Not sure where the HTTP code 404 is coming from, but as you can see in the Wireshark output below, something is responding. No sign of the WiFi module ioctl timeouts on the telnet interface. No. Time Source Destination Protocol Length Info 3699197 2023-10-10 14:54:16.323825 10.0.0.45 10.0.0.18 Modbus/TCP 66 Query: Trans: 1; Unit: 1, Func: 3: Read Holding Registers 3699199 2023-10-10 14:54:16.327411 10.0.0.18 10.0.0.45 Modbus/TCP 73 Response: Trans: 1; Unit: 1, Func: 3: Read Holding Registers 3699546 2023-10-10 14:55:01.020033 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1 3699549 2023-10-10 14:55:01.465851 10.0.0.45 10.0.0.18 HTTP 242 HTTP/1.1 200 OK (text/html) 3699686 2023-10-10 14:55:16.060046 10.0.0.45 10.0.0.18 Modbus/TCP 66 Query: Trans: 1; Unit: 1, Func: 3: Read Holding Registers 3699688 2023-10-10 14:55:16.064489 10.0.0.18 10.0.0.45 Modbus/TCP 73 Response: Trans: 1; Unit: 1, Func: 3: Read Holding Registers 3700319 2023-10-10 14:56:01.837839 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1 3700322 2023-10-10 14:56:01.857450 10.0.0.45 10.0.0.18 HTTP 242 HTTP/1.1 200 OK (text/html) 3700409 2023-10-10 14:56:16.152189 10.0.0.45 10.0.0.18 Modbus/TCP 66 Query: Trans: 1; Unit: 1, Func: 3: Read Holding Registers 3700411 2023-10-10 14:56:16.155788 10.0.0.18 10.0.0.45 Modbus/TCP 73 Response: Trans: 1; Unit: 1, Func: 3: Read Holding Registers 3700744 2023-10-10 14:57:00.986312 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1 3700810 2023-10-10 14:57:08.256538 10.0.0.45 10.0.0.18 HTTP 242 HTTP/1.1 200 OK (text/html) 3701206 2023-10-10 14:58:00.428355 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1 3701918 2023-10-10 14:59:01.627684 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1 3701936 2023-10-10 14:59:03.076326 10.0.0.45 10.0.0.18 HTTP 54 HTTP/1.0 404 3702604 2023-10-10 15:00:00.690416 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1 3702624 2023-10-10 15:00:02.784657 10.0.0.45 10.0.0.18 HTTP 54 HTTP/1.0 404 3703144 2023-10-10 15:01:01.891206 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1 3703178 2023-10-10 15:01:04.241858 10.0.0.45 10.0.0.18 HTTP 54 HTTP/1.0 404 Hope this helps. Cheers Carl Retirement is tough on Hobbies without a day job |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9122 |
If a TCP server is set up and no program is running the Webmite responds with 404 to any TCP request on the assigned port |
||||
carlschneider Senior Member Joined: 04/08/2023 Location: South AfricaPosts: 158 |
Thanks Peter, that explains where those are coming from. This would then imply that the MMBasic program has stopped but the WiFI module is still up and running, which in turn implies that the WiFi module is standalone processor using a port and protocol to talk to MMBasic? Cheers Carl Retirement is tough on Hobbies without a day job |
||||
carlschneider Senior Member Joined: 04/08/2023 Location: South AfricaPosts: 158 |
Thanks Peter, that explains where those are coming from. This would then imply that the MMBasic program has stopped but the WiFI module is still up and running, which in turn implies that the WiFi module is standalone processor using a port and protocol to talk to MMBasic? Cheers Carl Retirement is tough on Hobbies without a day job |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9122 |
V5.07.08RC6 https://geoffg.net/Downloads/picomite/PicoMite_Beta.zip Just a couple of small tweaks Compiler update to V12.3.1 OPTION AUTORUN n/ON [,NORESET] - if NORESET is set then the autorun option will not be removed in the event of system errors. Use with care on fully debugged programs as you may need to nuke the Pico to fix a repeated error Maximum filename size for TFTP increased to 63 characters Fixes bug (PicoMite, WebMite) in running a program when a framebuffer is left open Edited 2023-10-12 18:42 by matherp |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4042 |
Thank you Peter. Perhaps I can point you at my changes to make error reporting on the LCD more friendly and obviate the need for my Game*Mite specific firmware: https://github.com/thwill1000/picomite-firmware/blob/gamemite/PicoMite/Commands.c void cmd_error() returned to an earlier, simpler form. https://github.com/thwill1000/picomite-firmware/blob/gamemite/PicoMite/MMBasic.c void error(char* msg, ...) refactored to call ... https://github.com/thwill1000/picomite-firmware/blob/gamemite/PicoMite/gamemite.c void gamemite_error(int line_num, const char *line_txt, const char* error_msg) format and write error to LCD. YMMV, Tom Edited 2023-10-12 19:18 by thwill Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
Page 6 of 18 |
Print this page |