Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 03:42 20 Dec 2025 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 User Manual V6.01.00 Updates

     Page 1 of 2    
Author Message
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3320
Posted: 08:50am 17 Dec 2025
Copy link to clipboard 
Print this post

I decided to start this topic for any PicoMite User Manual V6.01.00 updates to avoid cluttering the main firmware topic.

If you find anything wrong with the manual, please post it here.  I might not acknowledge every post but I will collect all suggestions and from time to time release a new revision in this topic.

The manual was checked and rechecked so there should be little wrong with it, but then that is probably just hopeful thinking.

Geoff
Geoff Graham - http://geoffg.net
 
twofingers

Guru

Joined: 02/06/2014
Location: Germany
Posts: 1704
Posted: 09:09am 17 Dec 2025
Copy link to clipboard 
Print this post

Hi Geoff,
thanks for your great work!

Can you confirm that the "PicoCFunctions.h" (V1.5,  #define BaseAddress   1000030C) in the C Routines folder is up to date and works with this MMBasic version? I'm asking because I have version v2.0.1, which seems more "modern" to me. I think CSUBs are being neglected and have been somewhat forgotten.





If there are any further updates to the manual, I would appreciate it if the size of the buffer required/expected by the Play MP3, WAV, and FLAC commands were also specified. For example, 30 KB heap is needed.

Kind regards
Michael
causality ≠ correlation ≠ coincidence
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3320
Posted: 09:31am 17 Dec 2025
Copy link to clipboard 
Print this post

Peter, I believe that this is one for you.

Geoff
Geoff Graham - http://geoffg.net
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 1075
Posted: 10:17am 17 Dec 2025
Copy link to clipboard 
Print this post

This is an up to date PicoCFunctions.h that covers both PICO and PICO2
v2.0.2  Calltable address now 0x1000023C for RP2350 v6.01.00 Release

PicoCFunctions.zip
F4 H7FotSF4xGT
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2876
Posted: 11:33am 17 Dec 2025
Copy link to clipboard 
Print this post

   page 62 said  OPTION LCDPANEL ILI9488, OR, DC, RESET, CS [,BL] [,INVERT]
Initialises a TFT display using the ILI9488 controller. This supports 480 * 320 resolution. Note that this controller has an issue with the MISO pin which interferes with the touch controller. For this display to work the MISO pin must not be connected.
This could at least be updated to "the MISO pin must not be directly connected."

Or a more complete description
Edited 2025-12-17 21:48 by phil99
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10719
Posted: 01:06pm 17 Dec 2025
Copy link to clipboard 
Print this post

Geoff. The PicoCFunctions.h above from Gerry (disco4now) should replace the one currently in the download
Edited 2025-12-17 23:06 by matherp
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3320
Posted: 03:01pm 17 Dec 2025
Copy link to clipboard 
Print this post

  matherp said  Geoff. The PicoCFunctions.h above from Gerry (disco4now) should replace the one currently in the download

OK.  The download has been updated.

Geoff
Geoff Graham - http://geoffg.net
 
twofingers

Guru

Joined: 02/06/2014
Location: Germany
Posts: 1704
Posted: 03:32am 18 Dec 2025
Copy link to clipboard 
Print this post

Hi Geoff,
I'm wondering if it would be useful to include the working command "MM.INFO(CALLTABLE)", which displays the BaseAddress, in the manual. Are there any reasons not to do so?
> ? hex$(MM.INFO(CALLTABLE))
1000023C

Kind regards
Michael


Additionally, it would be helpful, in my opinion, to mention the respective compiler command line for the different hardware (RP2040, 2350), e.g. for Pico2,
bin\arm-none-eabi-gcc -c -mcpu=cortex-m33 -mfloat-abi=hard -mthumb -Wall -Wno-main -ffunction-sections -O3 -fPIC -I. %1.c -o %1.o

or something similar.
This could also be done in a separate CSub-PDF. My goal is to lower the barriers to writing CSubs. As we have seen here, this can lead to amazing results.

I'm sorry if I'm causing any more work ...

Breakdown of the Compiler Flags:

arm-none-eabi-gcc: The compiler driver. it coordinates the preprocessor, the actual compiler, and the assembler.
-c: Compile only. This generates an object file without performing the linking stage.
-mcpu=cortex-m33: Defines the target architecture. The Cortex-M33 is the core of the RP2350 (Pico 2).
-mfloat-abi=hard: Enables the hardware floating-point unit (FPU) of the chip for calculations.
-mthumb: Generates code using the compact Thumb instruction set.
-O3: Optimization Level 3. The compiler attempts to make the code as fast as possible.
-fPIC: Position Independent Code. This is essential for CSubs because they are loaded into MMBasic RAM at varying memory addresses.
-I.: Adds the current directory (.) to the search path for header files like your PicoCFunctions.h.

Why this is important:

For MMBasic users, this command is often contained within a Batch file (.bat on Windows). The variable %1 acts as a placeholder for your C program's filename.

Note: If you were compiling for the older RP2040 (Pico 1), the flags would be -mcpu=cortex-m0plus and -mfloat-abi=soft (as the M0+ lacks a hardware FPU).
(Source: GEMINI-KI)

Edited 2025-12-18 13:57 by twofingers
causality ≠ correlation ≠ coincidence
 
toml_12953
Guru

Joined: 13/02/2015
Location: United States
Posts: 504
Posted: 04:41am 18 Dec 2025
Copy link to clipboard 
Print this post

The TAB function doesn't work the way the manual states. TAB(n) seems to output n spaces no matter what column the print starts in. The manual (page 200) says it will only output spaces until column n is reached. TAB as described in the manual would make it much easier to get tabulated output neatly aligned.
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3320
Posted: 04:43am 18 Dec 2025
Copy link to clipboard 
Print this post

  twofingers said  I'm wondering if it would be useful to include the working command "MM.INFO(CALLTABLE)", which displays the BaseAddress, in the manual?

Thanks, somehow it went missing.  I will add it in.

I'm not sure about the rest of your suggestion.  Writing CSubs is a complex subject and not of interest to the typical user.  So, it needs a separate and comprehensive manual/tutorial.  This is a big subject which will require someone with a deep knowledge of the subject to write (any volunteers?).

Geoff
Geoff Graham - http://geoffg.net
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3320
Posted: 04:45am 18 Dec 2025
Copy link to clipboard 
Print this post

  toml_12953 said  The TAB function doesn't work the way the manual states.

This sounds like a bug.  Peter?

Geoff
Geoff Graham - http://geoffg.net
 
Turbo46

Guru

Joined: 24/12/2017
Location: Australia
Posts: 1649
Posted: 05:36am 18 Dec 2025
Copy link to clipboard 
Print this post

CSUBs

To quote Sgt. Shultz "I know nothing". But after having success with Claude writing the code for a Micromite CFunction I thought I would ask Claude if it could write a document about writing CSUBs for MMBasic on the Picomite.

Writing_CSUBs_for_MMBasic_PicoMite.zip

And here it is. Maybe it will be useful for someone in the know as a starting point at least.

Bill
Keep safe. Live long and prosper.
 
BarryH

Newbie

Joined: 05/01/2025
Location: Australia
Posts: 25
Posted: 05:44am 18 Dec 2025
Copy link to clipboard 
Print this post

page 174 - SUB ... END SUB

2 paragraphs are duplicated

"Arguments in the callers list..."
"Arrays are passed by..."
BarryH
 
twofingers

Guru

Joined: 02/06/2014
Location: Germany
Posts: 1704
Posted: 11:32am 18 Dec 2025
Copy link to clipboard 
Print this post

@Bill,
I really like the CSub manual - it's exactly what I had in mind, thanks!
But it should be proofread critically again, perhaps by Peter? I would also add a few simple examples.
I could also do the layout, if desired.

@Geoff
  Geoffg said  Writing CSubs is a complex subject and not of interest to the typical user.

I completely agree with you, but times are changing - ¡Los tiempos cambian!
With AI, anyone can now write (or have written) C programs in natural language. AI even makes cryptic compiler error messages understandable and gives tips on how to fix the errors.

(BTW, I'm not an uncritical fan of AI; I see the downsides. )

Kind regards
Michael
Edited 2025-12-18 21:38 by twofingers
causality ≠ correlation ≠ coincidence
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10719
Posted: 11:55am 18 Dec 2025
Copy link to clipboard 
Print this post

The script referenced in the document is missing significant capabilities for other than a single function csub. The basic program to do it comprehensively is on github . I've raised an issue on the script authors github as it would be a great tool if he could expand it. " Writing CSubs is a complex subject" I agree and other than for a simple function I think it is unlikely an AI could write one at the moment. The other big issue with CSUBs is that testing is very difficult. Other than compilation errors it is pretty much go/no-go testing with many bugs just causing a crash with no diagnostic.
 
twofingers

Guru

Joined: 02/06/2014
Location: Germany
Posts: 1704
Posted: 12:23pm 18 Dec 2025
Copy link to clipboard 
Print this post

  matherp said  ... and other than for a simple function I think it is unlikely an AI could write one at the moment. ...

Would you bet on that?
Regards
Michael
causality ≠ correlation ≠ coincidence
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2876
Posted: 09:31pm 18 Dec 2025
Copy link to clipboard 
Print this post

Ville56 has found (in the Pico Radar thread) that when OPTION GUI CONTROLS is set it appears a touch ISR can't be enabled for ordinary touch functions.

Not entirely certain if this requires a mention in the manual or an adjustment to the firmware.
  Quote  I've set

Option touch gp 10,gp9

and in the code

setpin mm.info(pinno t_pin), intl, __t_isr
where t_pin = "GP9"

which gives me

[30] SetPin MM.Info(pinno t_pin), intl, __t_isr
Error : Pin 12/GP9 is reserved on startup

so for some reason it cannot connect the pin interrupt to the pin already assigned in the option touch ...

According to the manual it should work that way but it doesn't.

  Quote  solved ... had "option gui controls 10" set. This seems to finally lock the touch irq pin. In the list pins it shows up as

GP9     12     Boot Reserved : TOUCH IRQ

in both cases, so the unlocked state is not really obvious.

Edited 2025-12-19 07:58 by phil99
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5542
Posted: 12:38pm 19 Dec 2025
Copy link to clipboard 
Print this post

Geoff,

It may be just me, but I find the command list (in several places) is corrupted. Maybe you could confirm this is also shown at your original ? See below picture. This is the user manual that I just downloaded (19/12/25 13:00 CET).



Volhout
PicomiteVGA PETSCII ROBOTS
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 4173
Posted: 12:46pm 19 Dec 2025
Copy link to clipboard 
Print this post

Seems OK to me, though file shows as

Dec 18 20:54 PicoMite_User_Manual.pdf

GMT here.

John
Edited 2025-12-19 22:46 by JohnS
 
Pluto
Guru

Joined: 09/06/2017
Location: Finland
Posts: 404
Posted: 02:20pm 19 Dec 2025
Copy link to clipboard 
Print this post

Command list also corrupted in my user manual. Dated/downloaded 16.12.2025.
 
     Page 1 of 2    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025