Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 09:29 21 Oct 2026 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 V7.00.00b8 and release candidates

     Page 4 of 5    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 12034
Posted: 03:02pm 17 Oct 2026
Copy link to clipboard 
Print this post

The RC2 release on github has been updated with the fixes for Mattias' bugs and another one that no-one has reported
 
ville56
Guru

Joined: 08/06/2022
Location: Austria
Posts: 641
Posted: 03:46pm 17 Oct 2026
Copy link to clipboard 
Print this post

Peter,

just a silly question:
is there a reason why an array DIMed in main cannot be REDIMed in a SUB or FUNCTION via its passed variable name? It fails with Error : Cannot find 'variable name'.

It is possible to use the global variable name tough but this is IMHO not a very flexible approach but there may be limits by design ...
                                                                 
73 de OE1HGA, Gerald
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 12034
Posted: 03:56pm 17 Oct 2026
Copy link to clipboard 
Print this post

Give me an example of what you want to work and I'll look at it
 
ville56
Guru

Joined: 08/06/2022
Location: Austria
Posts: 641
Posted: 04:59pm 17 Oct 2026
Copy link to clipboard 
Print this post

just an example of how I wanted to cope with the array-extension:

'
OPTION EXPLICIT
OPTION DEFAULT NONE


dim integer i_array(1) 'define array with initial size 1

 re_dim(i_array())    'call sub to change the size of the array
 end

sub re_dim(i_ar() as integer)
 redim preserve i_ar(20)     'REDIM fails
end sub

                                                                 
73 de OE1HGA, Gerald
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 12034
Posted: 05:22pm 17 Oct 2026
Copy link to clipboard 
Print this post

Sorry but this one is a no
The change would be significant, not trivial. The error is the symptom of a deeper limit: REDIM cannot reach the caller's array through a parameter, and making it do so touches the call mechanism and the caches around it.

Why it fails. Inside the SUB, i_ar is a local record that only aliases the caller's array: at MMBasic.c:3461 the call setup points its data at the caller's memory, flags it T_PTR, and copies the dimensions. REDIM works by erasing the variable and dimensioning it again, and erase at MMBasic.c:7665 searches only the global records, so a local is never found and the user gets "Cannot find i_ar". That is the whole of the current behaviour.

Why the fix is not small. Letting erase see locals would not help, because erasing the alias and dimensioning again would create a new local array that dies at END SUB, leaving the caller's array at its old size. For the program to work REDIM would have to:

Recognise the T_PTR alias and find the caller's own record. The local keeps only a data pointer, not the caller's record, so that means searching every live record, globals and outer frames, for one that owns that memory. A call like re_dim(a(3)) passes an element offset, so the pointer does not even match the owner's base.
Reallocate the caller's memory, copy the contents, and rewrite its dimensions and size in place.
Fix every other alias of the same memory: this frame's parameter and any outer frames' in a recursive chain, each with its own copy of the dimensions.
Invalidate everything that caches the record or its address: the DO-condition fast path, the symbol bindings, and anything compiled code holds. Today's REDIM gets that for free because erase releases the record and a fresh one is made.
A mistake in any of those corrupts memory silently rather than erroring, which is what makes it a significant change.
 
ville56
Guru

Joined: 08/06/2022
Location: Austria
Posts: 641
Posted: 05:38pm 17 Oct 2026
Copy link to clipboard 
Print this post

thank you for investigation. This is what I meant with "limitation by design".  It is an incredible piece of software what you have created. Really great work.
                                                                 
73 de OE1HGA, Gerald
 
ville56
Guru

Joined: 08/06/2022
Location: Austria
Posts: 641
Posted: 06:59pm 17 Oct 2026
Copy link to clipboard 
Print this post

Peter, another minor issue:

on the same hardware there still is different behaviour of WEB SCAN :

PicoMitePC3 MMBasic USB RP2350B Edition V7.00.00RC2

Performing wifi scan
ssid: WLAN12170466                     rssi:    0 chan:   1 mac: 34:2c:c4:e9:01:c1 sec: 7
ssid: UPCE8DCA59                       rssi:  -74 chan:   1 mac: ac:22:05:e0:e6:2c sec: 7
ssid: JN88fg                           rssi:  -67 chan:   1 mac: 0c:72:74:57:9f:25 sec: 5
ssid: Drei_H288A_24G_9fb2              rssi:    0 chan:   9 mac: c0:b1:01:11:23:c6 sec: 5

The rssi values are partially implausible. 0 is only a theoretical value and would mean a very strong signal if it is on a dB scale. But on one of the next scans the same networks may show up with a plausible -xx value.

Also the number of networks reported an each scan differs considerably between PicoMitePC3 and WebMite builds. PC3 build reports less networks and also the rssi values with WebMite build seems to go further down (e.g. -87 dB).
To me it seems that there is a difference in the initialisation of the radio part between the builds mentioned. also noted that the "Performing wifi scan" shows up somewhere between the network lines on PC3 build whereas it is always on top with webMite build if done interactively.

With the WebMite Edition on the same hardware the scans are much more plausible and the output is clean.
As already written, the hardware is always the same as well as the version, only the build differs.
                                                                 
73 de OE1HGA, Gerald
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 12034
Posted: 09:35pm 17 Oct 2026
Copy link to clipboard 
Print this post

The scan isn't reliable - ignore the rssi values. Either a wan is there or not
 
homa

Guru

Joined: 05/11/2021
Location: Germany
Posts: 715
Posted: 11:26pm 17 Oct 2026
Copy link to clipboard 
Print this post

  matherp said  The RC2 release on github has been updated with the fixes for Mattias' bugs and another one that no-one has reported


Great! I’ll give it a go tomorrow.
 
Peter63
Senior Member

Joined: 28/07/2017
Location: Sweden
Posts: 217
Posted: 03:28am 18 Oct 2026
Copy link to clipboard 
Print this post

  Quote  The RC2 release on github has been updated with the fixes for Mattias' bugs and another one that no-one has reported


I get a message saying there isn’t enough memory when I try to load a BAS file


> option list
WebMite MMBasic RP2350A Edition V7.00.00RC2
OPTION SYSTEM I2C GP10,GP11
OPTION FLASH SIZE 4194304
OPTION COLOURCODE ON
OPTION CPUSPEED (KHz) 200000
OPTION WIFI temp, ******************, PICO02C0FF9CC75
OPTION TCP SERVER PORT 80
OPTION SDCARD GP5, GP6, GP4, GP3
OPTION RTC AUTO ENABLE
>
> save"showtime.bas
> files
B:/
04:47 18-10-2026        973  general-server.txt
05:12 18-10-2026        150  index.html
05:09 18-10-2026        382  server1.bak
05:09 18-10-2026        382  server1.bas
05:19 18-10-2026         25  showtime.bas
04:49 18-10-2026        163  typical-web-page.txt
0 directories, 6 files
> list "showtime.bas
Print Date$, Time$
End
> run
18-10-2026      05:20:00
> new
> load"showtime.bas
Error : Not enough memory for 314368 bytes
>


Try to Nuke Pico2W

Tested further. The Error seems to only occur when I load things from SDCARD (B:). Works totally fine from A:

wait a sec, I think I got the connection wrong with the sdcard module...

Checked further. SDCARD seems to be connected properly. Tried writing a new program. Saved it to B: (SDCARD), but when I try to load the program I get the error "Not enough memory for 314368 bytes"
Edited 2026-10-18 15:51 by Peter63
 
terekgabor
Senior Member

Joined: 02/01/2026
Location: Hungary
Posts: 153
Posted: 07:05pm 18 Oct 2026
Copy link to clipboard 
Print this post

Hello Peter!

I am working on a kind of internet radio player on Picocalc.
First stage to browse radio channel addresses.

I tried to use de1.api.radio-browser.info for search stations.
But during connection with WEB OPEN TLS CLIENT I got error TLS client error -14.
Can you help me what can it be?

Thanks!
G@bor

Footnote added 2026-10-19 20:42 by terekgabor
I forgot: version is WebMiteRP2350V7.00.00RC2.
 
homa

Guru

Joined: 05/11/2021
Location: Germany
Posts: 715
Posted: 09:31pm 18 Oct 2026
Copy link to clipboard 
Print this post

  Peter63 said  
  Quote  The RC2 release on github has been updated with the fixes for Mattias' bugs and another one that no-one has reported

...
> load"showtime.bas
Error : Not enough memory for 314368 bytes
>

Try to Nuke Pico2W

Tested further. The Error seems to only occur when I load things from SDCARD (B:). Works totally fine from A:

wait a sec, I think I got the connection wrong with the sdcard module...

Checked further. SDCARD seems to be connected properly. Tried writing a new program. Saved it to B: (SDCARD), but when I try to load the program I get the error "Not enough memory for 314368 bytes"



> option list
PicoMitePC3 MMBasic USB RP2350B Edition V7.00.00RC2
...

No problem, I can easily load an x.bas file with "185856" bytes from b:/
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 12034
Posted: 09:49pm 18 Oct 2026
Copy link to clipboard 
Print this post

Peter63
You need to post the program and also try with a space before the filename
 
Peter63
Senior Member

Joined: 28/07/2017
Location: Sweden
Posts: 217
Posted: 02:28am 19 Oct 2026
Copy link to clipboard 
Print this post

Hi
Tried an earlier version of WebMite to make sure everything works.
WebMite MMBasic RP2350A Edition V6.03.00

Loaded program from SDCARD, works without any problems

  Quote  Peter63
You need to post the program and also try with a space before the filename


Here is the program
Print Date$, Time$
End


Tested on WebMite MMBasic RP2350A Edition V7.0.00b8
> load "showtime.bas"
Error : Not enough memory for 314368 bytes


Tested on WebMite MMBasic RP2350A Edition V7.00.00RC2
> option list
WebMite MMBasic RP2350A Edition V7.00.00RC2
OPTION FLASH SIZE 4194304
OPTION COLOURCODE ON
OPTION CPUSPEED (KHz) 200000
OPTION SDCARD GP5, GP6, GP4, GP3
> b:
> load "showtime.bas"
Error : Not enough memory for 314368 bytes
 
Volhout

Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 6184
Posted: 07:35am 19 Oct 2026
Copy link to clipboard 
Print this post

Peter,

Before you do a final release, you may want to look at the "additional manuals".
There are several manuals that show artefacts (mostly in tables).

In example "Game Input Devices" table "Common PS/2 Scancodes (set 2) at the boundary of page 5 - 6 - 7 - 8. The table is corrupt.
Confirmed on Windows 11 Acrobat reader, as well as Ubuntu Linux (Libre Office pdf viewer).

Regards,

Volhout
PicomiteVGA PETSCII ROBOTS
 
mozzie
Guru

Joined: 15/06/2020
Location: Australia
Posts: 468
Posted: 03:11pm 19 Oct 2026
Copy link to clipboard 
Print this post

G'day Peter,
Please don't take this as me being pushy, not sure if this was missed in a previous post:

  Quote  
This has also reminded me of a feature request I hope you would consider:

The original MicroMite allowed the COMn interrupt to be fired on the receipt of a specific char by using =n (=13 for CR) in the OPEN command parameter list. This was not AFAIK carried over to the PicoMite.
Is it possible to add this functionality, as it would make parsing variable length input from serial devices far more streamlined.
I get the feeling the PIC32 hardware may have made this simpler.


I consider this a very useful feature of the original MicroMite and would be great if the PicoMite could implement the same, possibly in a future release? V8.00.00

Regards, Lyle.
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1155
Posted: 05:08pm 19 Oct 2026
Copy link to clipboard 
Print this post

First of all:
I really love the Bluetooth versions!!!

But: I'm not sure if it's such a great thing that the device connects to any keyboard right away.
I had my Pico Computer 3 with me at the office today, and my coworker turned on her Bluetooth keyboard. My Pico Computer 3 connected to it immediately without me even wanting it to...

I'm having problems with one of my Bluetooth speakers:
> bluetooth scan
Scanning...
00:11:67:A1:18:2D  -68 dBm  Audio       "BT-WE"
1 device found
> bluetooth connect "BT-WE"
Error : Connection failed (Bluetooth error 0x05)
>

What does “Bluetooth error 0x05” mean?  

Frank
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 12034
Posted: 06:17pm 19 Oct 2026
Copy link to clipboard 
Print this post

"Bluetooth error 0x05" means authentication failure: the device and the board couldn't prove to each other that they're paired.

The number is the standard Bluetooth status code (ERROR_CODE_AUTHENTICATION_FAILURE in btstack). The connection itself got through, but the security step that follows it failed. It isn't a range problem: that would be 0x04, page timeout.

There are three usual causes:

The two sides disagree about the pairing. One side still holds the old stored key and the other doesn't. This happens when:
the device was reset or paired with something else and forgot the board;
the board lost its pairings while the device kept its key. Any upgrade that resets the options does this, such as the PicoMiteRP2350BTH coming from RC1.
Wrong PIN for a device that pairs the older way. Without a PIN the board answers 0000, and a device expecting 1234 rejects it.
The device isn't in pairing mode, so it refuses a fresh pairing.

Check the speaker manual and try adding the correct pin to the connect command. See the manual for syntax
 
Volhout

Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 6184
Posted: 04:59am 20 Oct 2026
Copy link to clipboard 
Print this post

Peter,

On  2040 (both MIN, and normal) rc2, I cannot read from PIO FIFO. Didn’t this happen before .?. You fixed it then,  but maybe the fix got lost.  
This is not the DMA read, or the ring buffer, but read into basic variables.

It is used in the frequency counter. Tell me if you want Some example code.

Volhout
Edited 2026-10-20 15:00 by Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 12034
Posted: 07:14am 20 Oct 2026
Copy link to clipboard 
Print this post

  Quote  Tell me if you want Some example code.

Yes please
 
     Page 4 of 5    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2026