Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 16:45 27 Nov 2024 Privacy Policy
Jump to

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 13 of 18    
Author Message
karlelch

Senior Member

Joined: 30/10/2014
Location: Germany
Posts: 172
Posted: 06:32pm 14 Nov 2023
Copy link to clipboard 
Print this post

  matherp said  I'm on a roll today.

You really are  
Now is the time for christmas wishes  
 
karlelch

Senior Member

Joined: 30/10/2014
Location: Germany
Posts: 172
Posted: 06:51pm 14 Nov 2023
Copy link to clipboard 
Print this post

A possibility to set a long list of options in one go from a file in A: after updating the firmware?  
 
stanleyella

Guru

Joined: 25/06/2022
Location: United Kingdom
Posts: 2129
Posted: 07:10pm 14 Nov 2023
Copy link to clipboard 
Print this post

  karlelch said  A possibility to set a long list of options in one go from a file in A: after updating the firmware?  

yes cos repeated updates options gets tedious. I copied to notepad
not moaning, brill work, just can't keep up, stan
Edited 2023-11-15 05:17 by stanleyella
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6100
Posted: 07:32pm 14 Nov 2023
Copy link to clipboard 
Print this post

These new graphing functions will help a lot with my current projects.

Now we 'need' a fast SAVE GIF so that all these nice charts can get served up on web pages with nice compact files. MP charts are too slow for changing data.

It's a pity that PCX files are out of fashion, they are easier to produce in Basic.

Jim
VK7JH
MMedit   MMBasic Help
 
stanleyella

Guru

Joined: 25/06/2022
Location: United Kingdom
Posts: 2129
Posted: 08:09pm 14 Nov 2023
Copy link to clipboard 
Print this post

getting touch no deviation each rc is getting harder

PicoMite MMBasic Version 5.07.08RC18
OPTION SYSTEM SPI GP18,GP19,GP16
OPTION CPUSPEED  378000 'KHz
OPTION LCDPANEL ILI9341, LANDSCAPE,GP15,GP14,GP13
OPTION TOUCH GP12,GP11
OPTION SDCARD GP22
> GUI CALIBRATE
Done. No errors
Deviation X = -3, Y = -4 (pixels)
> GUI CALIBRATE
Done. No errors
Deviation X = 3, Y = 2 (pixels)
> GUI CALIBRATE
Done. No errors
Deviation X = 2, Y = -4 (pixels)
> GUI CALIBRATE
Done. No errors
Deviation X = 1, Y = -1 (pixels)
> GUI CALIBRATE
Warning: Inaccurate calibration
Deviation X = 259, Y = 0 (pixels)
> GUI CALIBRATE
Done. No errors
Deviation X = 0, Y = 0 (pixels)  
 
Pluto
Guru

Joined: 09/06/2017
Location: Finland
Posts: 358
Posted: 08:19pm 14 Nov 2023
Copy link to clipboard 
Print this post

Thanks for all good news Peter!
Have just tested the new LINE PLOT and MATH(CROSSING) functions. Great.

MATH(CROSSING array() [,level] [,direction]
Thinking about possible oscilloscope applications:
-level= trigger level
-direction= trigger direction, UP/DOWN.

When I run your example program, I believe that direction -1 means UP (and +1 is DOWN). If that is correctly understood, wouldn't be more logical to have +1 for UP    and -1 for down   ?

Thanks again!
Fred
 
vegipete

Guru

Joined: 29/01/2013
Location: Canada
Posts: 1109
Posted: 08:40pm 14 Nov 2023
Copy link to clipboard 
Print this post

Is there a MATH function to count the number of times a particular value appears in an array?
Visit Vegipete's *Mite Library for cool programs.
 
stanleyella

Guru

Joined: 25/06/2022
Location: United Kingdom
Posts: 2129
Posted: 10:03pm 14 Nov 2023
Copy link to clipboard 
Print this post

Is there a "slow Line" where xstart,ystart to xend,yend can be broken down to individual steps please? thinking of games. cheers stan.
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9122
Posted: 10:46pm 14 Nov 2023
Copy link to clipboard 
Print this post

  Quote  When I run your example program, I believe that direction -1 means UP (and +1 is DOWN). If that is correctly understood, wouldn't be more logical to have +1 for UP    and -1 for down   ?


You have to think that the screen is upside down. i.e y=0 is at the top. This makes everything confusing. The code logic is that 1 is a rising edge of "real" data and -1 is a falling edge.

A possibility to set a long list of options in one go from a file in A: after updating the firmware?

Easy to do but remember there if the options are lost then there is a high likelyhood that the A: drive is also gone. You could save to the B: drive but then you would need to set enough options to read it first  

  Quote  getting touch no deviation each rc is getting harder

Anything with +/- 5 is good enough for a stylus and +/- more than that for a finger

Now we 'need' a fast SAVE GIF

SAVE IMAGE COMPRESSED creates small files albeit with only 16 colours

Is there a MATH function to count the number of times a particular value appears in an array?

No: what is the use case?
Edited 2023-11-15 08:46 by matherp
 
karlelch

Senior Member

Joined: 30/10/2014
Location: Germany
Posts: 172
Posted: 11:02pm 14 Nov 2023
Copy link to clipboard 
Print this post

  Quote   Easy to do but remember there if the options are lost then there is a high likelyhood that the A: drive is also gone. You could save to the B: drive but then you would need to set enough options to read it first  

True, but you could first load a config file via xmodem to A:, “execute” it there and have your settings back
 
vegipete

Guru

Joined: 29/01/2013
Location: Canada
Posts: 1109
Posted: 12:03am 15 Nov 2023
Copy link to clipboard 
Print this post

  Quote  
Is there a MATH function to count the number of times a particular value appears in an array?

No: what is the use case?

Just me being lazy. It's _not_ useful for something like counting zero crossings.
Visit Vegipete's *Mite Library for cool programs.
 
vegipete

Guru

Joined: 29/01/2013
Location: Canada
Posts: 1109
Posted: 12:12am 15 Nov 2023
Copy link to clipboard 
Print this post

  Quote  
  Quote   Easy to do but remember there if the options are lost then there is a high likelyhood that the A: drive is also gone. You could save to the B: drive but then you would need to set enough options to read it first  

True, but you could first load a config file via xmodem to A:, “execute” it there and have your settings back

Maybe
config run ["filename.bas"]
where "filename.bas" is just the output of config list saved in a simple file and transferred to the device by whatever means is convenient?

Rebuilding the config is a pain after (some) firmware updates because the USB serial port drops for each one and I have to reconnect each time with a bunch of clicks. (Me being lazy again. ;-)
Visit Vegipete's *Mite Library for cool programs.
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2135
Posted: 12:23am 15 Nov 2023
Copy link to clipboard 
Print this post

  Quote  A possibility to set a long list of options in one go from a file in A: after updating the firmware?

What a wonderful first world problem to have! So many extra features in an already excellent platform.

Copying and pasting from a saved Option List is so easy compared to the time Peter spent writing and compiling the code, an extra few moments isn't a such chore.

Stan, you don't have to recalibrate touch every time.
From your saved Option List include the previous calibration values and it's done.
eg
GUI CALIBRATE 0, 3820, 408, -1306, 946
 
Turbo46

Guru

Joined: 24/12/2017
Location: Australia
Posts: 1611
Posted: 12:37am 15 Nov 2023
Copy link to clipboard 
Print this post

  phil99 said  Copying and pasting from a saved Option List is so easy compared to the time Peter spent writing and compiling the code

True but Peter would only have to do it once.
  Spock said  Logic clearly dictates that the needs of the many outweigh the needs of the few.


Bill
Keep safe. Live long and prosper.
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3150
Posted: 12:47am 15 Nov 2023
Copy link to clipboard 
Print this post

  Turbo46 said  
  Spock said  Logic clearly dictates that the needs of the many outweigh the needs of the few.


Logic FAIL if the few are expected to do all the work.

~
Edited 2023-11-15 10:49 by lizby
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9122
Posted: 08:05am 15 Nov 2023
Copy link to clipboard 
Print this post

Try this - picomite only for test


PicoMite.zip

OPTION DISK SAVE fname$
OPTION DISK LOAD fname$

if no extension specified defaults to ".opt"

I've tested that the files transfer both ways successfully over XMODEM
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2135
Posted: 11:06am 15 Nov 2023
Copy link to clipboard 
Print this post

  Quote  I've tested that the files transfer both ways successfully over XMODEM

Ditto, perfect!
Loaded test .uf2, saved .opt, transferred .opt, nuked to wipe all.
Loaded test .uf2,  transferred .opt back, restored options.
> option list
PicoMite MMBasic Version 5.07.08RC18
OPTION SYSTEM SPI GP18,GP19,GP16
OPTION COLOURCODE ON
OPTION CPUSPEED  378000 'KHz
OPTION DISPLAY 60, 128
OPTION LCDPANEL ILI9341, LANDSCAPE,GP15,GP14,GP13
OPTION TOUCH GP12,GP11
GUI CALIBRATE 0, 3923, 3867, -881, -649
OPTION SDCARD GP17
>
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4243
Posted: 12:00pm 15 Nov 2023
Copy link to clipboard 
Print this post

Peter,

Don't release RC17 yet. I am investigating a problem with USB disconnect.
When I run the robot game on VGA, and stop it the legal way (no CTRL-C), after some time USB disconnects and reconnects. This may not be visible in windows (TeraTerm will automatically reconnect) but it is a problem in Linux since the USB reconnects as a different port. I was wondering if it could be modbus sound play, but that is correctly stopped. The VGA does not use FRAMBUFFER MERGE so that is not causing it. There are no interrupts in the game. I do not enable or disable watchdog in the game.

But I am not sure what does. It has some relation to the game itself, because when I run smaller test programs it does not happen.

Anything I could do to diagnose ?

Volhout

EDIT: it is a full reboot that is happening, not only USB.
Edited 2023-11-15 22:08 by Volhout
PicomiteVGA PETSCII ROBOTS
 
carlschneider
Senior Member

Joined: 04/08/2023
Location: South Africa
Posts: 158
Posted: 03:03pm 15 Nov 2023
Copy link to clipboard 
Print this post

Hi Peter

I have been trying my best to isolate the instability on the WEB response side of the Webmite.

I have considered the following scenarios (where stable is running for over 7 days without a freeze or crash)

1. No WEB activity whatsoever, meaning nothing in or out on any port on the Webmite. Webmite stable.
2. Using WEB OPEN TCP CLIENT and WEB TCP CLIENT REQUEST commands on Port 502 to read multiple registers on a ModBus TCP server on a one minute poll only. WebMite stable. Irrespective of whether the ModBus TCP Server responds or not.
3. Using an .html file containing {JSON$} only, where the JSON$ is assembled by the program. No other port activity other than this port 80 request. External request done through a curl requesting the .html file on a one minute poll. Webmite responds using the WEB TRANSMIT Page a%, file$ command. Webmite unstable. Responds for about 24-36 hours and then freezes or crashes to the console.
4. Replaced {JSON$} .html file with a .html file written by the program to the A: drive, containing the contents of JSON$. External one minute poll using curl .html request. WebMite responds using the WEB TRANSMIT Page a%, file$ command. Webmite stable for 6 days and then froze and crashed 13 hours into day 7, cf Console output #1 and Wireshark output #1 below.

So it would appear that there may be an issue with the embedded {variable} lookup of the WEB TRANSMIT FILE PAGE a%, file$. Avoiding the embedded {variable} appears to provide a more stable response. However at some point the WebInterruptService is unable to find the .html file, responds with 404 three times and then the WebMite errors to the console, cf Wireshark output #1.

Hopefully this triggers some thoughts on where the instability might be. In order to maintain a consistent base for comparison I have stuck with RC5.

WebMite MMBasic Version 5.07.08RC5
OPTION SYSTEM I2C GP20,GP21
OPTION COLOURCODE ON
OPTION CPUSPEED (KHz) 252000
OPTION DISPLAY 40, 157
OPTION LCDPANEL SSD1306I2C, LANDSCAPE, 2
OPTION WIFI *********, ************, PICOE6614103E76, 100.100.100.224, 255.255.255.0, 100.100.100.225
OPTION TCP SERVER PORT 80
OPTION TELNET CONSOLE ON
>

Console output #1 below:-
[908] WEB TRANSMIT PAGE a%, file$
Error : No response to request from connection no. 1
> [CYW43] do_ioctl(2, 263, 16): timeout
                                      [CYW43] do_ioctl(2, 263, 16): timeout
Wireshark output #1
No. Time Source Destination Protocol Length Info
15648647 2023-11-14 08:43:00.602327 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1
15648650 2023-11-14 08:43:00.852295 10.0.0.45 10.0.0.18 HTTP 242 HTTP/1.1 200 OK  (text/html)
15649708 2023-11-14 08:46:07.263449 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1
15649710 2023-11-14 08:46:07.590206 10.0.0.45 10.0.0.18 HTTP 242 HTTP/1.1 200 OK  (text/html)
15649842 2023-11-14 08:46:31.041198 10.0.0.45 10.0.0.18 Modbus/TCP 66   Query: Trans:     1; Unit:   1, Func:   3: Read Holding Registers
15649844 2023-11-14 08:46:31.045447 10.0.0.18 10.0.0.45 Modbus/TCP 73 Response: Trans:     1; Unit:   1, Func:   3: Read Holding Registers
15649978 2023-11-14 08:47:01.795606 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1
15650012 2023-11-14 08:47:09.240578 10.0.0.45 10.0.0.18 HTTP 242 HTTP/1.1 200 OK  (text/html)
15650212 2023-11-14 08:48:00.431608 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1
15650638 2023-11-14 08:49:00.964874 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1
15651012 2023-11-14 08:50:01.078533 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1
15651015 2023-11-14 08:50:01.588925 10.0.0.45 10.0.0.18 HTTP 54 HTTP/1.0 404
15651023 2023-11-14 08:50:02.511712 10.0.0.45 10.0.0.18 HTTP 54 HTTP/1.0 404
15651260 2023-11-14 08:51:00.692259 10.0.0.18 10.0.0.45 HTTP 135 GET /all.html HTTP/1.1
15651267 2023-11-14 08:51:01.002877 10.0.0.45 10.0.0.18 HTTP 54 HTTP/1.0 404

Thanks for all your efforts and consideration Peter.
Cheers Carl                                                        
Retirement is tough on Hobbies without a day job
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9122
Posted: 03:49pm 15 Nov 2023
Copy link to clipboard 
Print this post

The WEB TRANSMIT Page a%, file$ command makes an assumption of how much space it needs to create the web page based on the size of the file. It then allows 4K on top of this. If you are creating pages where the size is bigger than this allowance it will overwrite data areas it shouldn't be touching. I try to avoid this by cutting the output if the page will exceed the limit but it may be this causes other issues.
I did try to dynamically adjust the buffer but this made things much worse for reasons I simply don't understand so please check your code and see if it is possible you are exceeding this 4K + filesize limit.

This has been an issue for Geoff in the past hence the 4K allowance. I will add a parameter to the WEB TRANSMIT PAGE command to allow the user to set the buffer size
Edited 2023-11-16 01:52 by matherp
 
     Page 13 of 18    
Print this page
© JAQ Software 2024