Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 21:49 18 May 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 Alpha Firmware

     Page 9 of 17    
Author Message
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3027
Posted: 10:44pm 04 Jun 2021
Copy link to clipboard 
Print this post

  Mixtel90 said  As for software compatibility, expecting to pick up a piece of code written on a F4, drop it on a CMM2 and expect it to run perfectly isn't going to work unless it's something very simple.

But the CMM2 is a different beast entirely, for reasons already amply covered. The PicoMite doesn't have to be a different beast from the MM2, MM+--except for features which it has which the others don't (same as from MM2 to MM+).

I'm not trying to change Peter's mind, and perhaps if the SD and LCD (except for CS, D/C, RST, LED, T_INT, T_CS) are preconfigured (but changeable)) it won't make that much difference.

I'm sure all forum members will be able to work with whatever Peter comes up with. No worries, no regrets.
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9082
Posted: 07:16am 05 Jun 2021
Copy link to clipboard 
Print this post

My thoughts on the default-vs-assignable pin I/O:

I use the MM2 chip almost daily, and the 28-pin and 44-pin versions are my go-to MCU's now for embedded projects.

I personally don't have a problem with defining the I/O pins.
I don't care if some are defined by default, or that you have to define them yourself.
To me, it is a non-issue.  To me. And only my 2c.
I'm so used to using CONST to define constants that reference all the I/O pins used in a project with more memorable names to make reading the code easier, that defining the pins for a certain function or feature is more of the same and just as easy IMHO.

I certainly can see where CaptainBoing is coming from, but I will just say this: when designing a PCB for the MM2 series of chips, having certain pins(like UART/SPI/I2C etc) fixed to certain pins, means more care has to be put into planning the layout of the PCB, so that those interfaces are connected to the correct pins.

When the UART/SPI/I2C Cfunctions were released a few years ago, this was wonderful, as I could then assign things to any spare pin, and just use the Cfunction to talk to them.  I was not locked to specific pins, so I think configurable I/O is a good thing.

No offense, CaptainBoing.....
Smoke makes things work. When the smoke gets out, it stops!
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 5770
Posted: 07:43am 05 Jun 2021
Copy link to clipboard 
Print this post

@lizby

But both F4 and CMM2 are MMBasic platforms. *Someone* is going to comment that as such they should be software compatible. That isn't the case, as you point out. I could have chosen any MMBasic platforms and the argument would have been the same - none of them are *fully* software compatible.

The RPPico in its own right is different from all other platforms simply because the RP2040 is entirely different to any other SOC. This is a golden opportunity to make use of those differences. Porting MMBasic to it is part of that opportunity. You can already program it in C/C++, MicroPython (Python 3) and CircuitPython. Adding MMBasic to that list - in a form that isn't entirely unfamiliar to those programmers - can only be a good thing.

I think I can see good reasons for keeping SD and LCD pin settings more or less standard. Those settings are non-volatile and used earlier in the boot sequence to get the display running and the SD card booted. There's no such requirement for any other IO.
Edited 2021-06-05 17:45 by Mixtel90
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 1813
Posted: 08:02am 05 Jun 2021
Copy link to clipboard 
Print this post

" I was not locked to specific pins, so I think configurable I/O is a good thing."
Yes, I think everyone agrees with that. The question many are asking is should it be mandatory? You can explicitly define all your variables if you want to, but you don't have to. I like the idea of predefined pin functions that can be redefined. On MM2 & MM+ that is, to some degree  how it works. You don't have to use a SPI pin for SPI.
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 5770
Posted: 08:23am 05 Jun 2021
Copy link to clipboard 
Print this post

Defining IO pins is mandatory anyway though.
PIN(1)=1 won't work without a SETPIN 1,DOUT.
Why should SPI OPEN work without SETPIN SPI a,b,c ? It's not logical.

On the MM2 you don't have a choice. SPI OUT will always be on pin 3, it's hard-wired in the chip. If you use it you will lose that analogue input, that's hard wired too. The Pico has no such restrictions and it doesn't seem sensible to introduce them, especially as other programming languages are already making IO configuration mandatory.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8605
Posted: 01:30pm 05 Jun 2021
Copy link to clipboard 
Print this post

a15


PicomiteV5.07.00a15.zip
 

This will mess up any options and flash programs so please use FLASH ERASE ALL before programming

When you then upload you may see a message
"Error reading options - resetting to default"
this is expected

Changes:
The SDcard is no longer pre-configured.

use

OPTION SDCARD  SD_CLKpin, Option.SD_MOSIpin, SD_MISOpin, SD_CSpin


to set the pins you want to use. For the previous wiring use OPTION SDCARD 4,5,6,7

Available RAM has reduced from 96K program/memory + 32K variable memory to 80K program/memory + 32K variable memory.

The reason for this is to lock many of the MMBasic core routines into RAM. This has resulted in a major performance increase of around 50%

I've also updated the Pico SDK to the latest version except for the USB routines which I had to restore to the previous version as they seem to have done something wrong in the integration of the Tinyusb CDC library
Edited 2021-06-06 00:52 by matherp
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2294
Posted: 03:08pm 05 Jun 2021
Copy link to clipboard 
Print this post

hi peter,
   i think you might have meant to write:

from (alpha 14)
96k program memory
96k global variable memory
32k local variable memory

down to (alpha 15)
80k program memory
80k global variable memory
32k local variable memory

to allay fears, with alpha 14 the largest possible string array is:
dim a$(380)
that consumes 97280 bytes (95k)

while with alpha 15 the largest possible string array is:
dim a$(310)
that consumes 79360 bytes (78k)


i measure the speed improvement as going from 23561 sps / 9668 lps (alpha 14) up to an impressive 37533 sps / 15402 lps (alpha 15). this is just shy of the performance of an MZ2048.


cheers,
rob   :-)
Edited 2021-06-06 01:10 by robert.rozee
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2294
Posted: 03:14pm 05 Jun 2021
Copy link to clipboard 
Print this post

btw, it would be rather cool if program memory and global variable memory could be shared. since both are sitting in RAM, could this be somehow accommodated? the one problem i see is retaining variables when chaining programs.


cheers,
rob   :-)
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 5770
Posted: 08:28pm 05 Jun 2021
Copy link to clipboard 
Print this post

Using a15

Get message & heartbeat on power up

Only options are
display 33,100
colourcode on

no SD installed.

Loading from flash fails with a lockup. Heartbeat stops.
flash list works, flash save appears to work as file is listed.
options are lost on power down or reset.

Went back to a14
memory has gone back, problems with flash fixed but signon message still says a15.
Edited 2021-06-06 06:41 by Mixtel90
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8605
Posted: 09:28pm 05 Jun 2021
Copy link to clipboard 
Print this post

  Quote  memory has gone back, problems with flash fixed but signon message still says a15.


Makes no sense

OPTION RESET
CLEAR VARS
FLASH ERASE ALL

load a15

then again
OPTION RESET
CLEAR VARS
FLASH ERASE ALL
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 5923
Posted: 09:54pm 05 Jun 2021
Copy link to clipboard 
Print this post

> CLEAR VARS
Error : Unexpected text: VARS


I assume it should be just
CLEAR

The time taken to calculate FACTORIAL 47 with my big integer maths program on an earlier firmware was 14.3 seconds
That's now down to 7.37 seconds.

Jim
VK7JH
MMedit   MMBasic Help
 
led-bloon

Senior Member

Joined: 21/12/2014
Location: Australia
Posts: 204
Posted: 09:58pm 05 Jun 2021
Copy link to clipboard 
Print this post

a14 signon message has got a15 in the version string!
No big deal.
led
Miss you George
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 5770
Posted: 10:09pm 05 Jun 2021
Copy link to clipboard 
Print this post

Have reloaded a15
no options messed with at all. No SD.

>clear vars
Error: Unexpected text: vars

flash list shows all empty
flash load 1 locks up & stops heartbeat

power off

boots up ok
flash is empty
edit: for i=1 to 20:? i,:next
runs ok
list is ok
flash save 1
it's shown in flash list
new
list and it's gone
flash load 1 and it locks up
nothing I do from the keyboard rescues it.

reset button
starts up as expected
flash load 1 locks it up.
reset
flash run 1 works!
cpu restart
flash run 1 works
cpu restart
flash load 1 locks up.

This is weird.....
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
led-bloon

Senior Member

Joined: 21/12/2014
Location: Australia
Posts: 204
Posted: 01:31am 06 Jun 2021
Copy link to clipboard 
Print this post

Not weird .. it's called "a bug"
Whether it has been there all along, or crept in over time, who cares!
Peter will note and fix when he's ready, and he thanks you for your testing
of this alpha code
led
Miss you George
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8605
Posted: 07:28am 06 Jun 2021
Copy link to clipboard 
Print this post

a16

fixes bug in flash load


PicomiteV5.07.00a16.zip


  Quote  >clear vars
Error: Unexpected text: vars


my bad - should have been "VAR CLEAR" NB: VAR SAVE not yet implemented will allow up to 16K of save space
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 5770
Posted: 08:16am 06 Jun 2021
Copy link to clipboard 
Print this post

I thought I'd try my other Pico. Interesting results. As far as MMBasic goes it seems to perform in the same way as the other, but with the following exceptions:
MMBasic installs ok and runs with the same expected problems but using a reset button (pulls RUN down to 0v) Tera Term doesn't reconnect. In fact, the only way to make it work again is to re-flash it. Same happens on disconnecting power - heartbeat doesn't restart. Sounds familiar? I've been using that one with MicroPython and not had any problems. CPU RESTART operates normally so I'm wondering if this is an on-board PSU issue.

Just tried a16 on it. a16 is *much* better, but all dead after a reset button again of course.
a16 now installed on the original and working fine.
Edited 2021-06-06 18:30 by Mixtel90
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
romba6

Newbie

Joined: 04/07/2020
Location: United Kingdom
Posts: 37
Posted: 11:05am 06 Jun 2021
Copy link to clipboard 
Print this post

I have an identical situation. 2 picos at a16, 1 operates immediately (and has done so for every revision) the other (which I bought last week)  only works after re-flash, i.e no re-connect/heart beat.
Tried on teraterm/win10 on laptop and also Putty on Raspberry PI. Behaviour identical. Also tried with R/S button - no change. Strange problem indeed.
 
cdeagle
Senior Member

Joined: 22/06/2014
Location: United States
Posts: 261
Posted: 01:17pm 06 Jun 2021
Copy link to clipboard 
Print this post

I've been testing my astronomy software using alpha version of PicoMite MMBASIC without any serious problems so far. Larger programs such as NPOE will not load and display "Error : The file/directory object is invalid".

Here is a picture of the PicoMite setup I'm using. Reset switch uses button K1. Includes a Sparkfun MicroSD breakout.




 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8605
Posted: 01:35pm 06 Jun 2021
Copy link to clipboard 
Print this post

a17

PicomiteV5.07.00a17.zip

Lots of internal work preparing for I/O. More work on flash and option storage

New OPTION

OPTION CPUSPEED cpuspeedinkhz


This allows you to set the cpu speed - after option reset it will be the "new" default 125,000

I've been running completely reliably at 250,000KHz and that has been the speed for all recent alphas. I'm wondering if some of the issue people have been reporting is because their chips don't like the overclock.

Use option reset, flash erase all and var clear to clean up before and after loading the alpha

  Quote  Larger programs such as NPOE will not load and display


Can you post the code so I can have a look? thanks
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 5770
Posted: 01:39pm 06 Jun 2021
Copy link to clipboard 
Print this post

I put MicroPython back on the misbehaving Pico. Pressing Reset or power-cycling breaks the connection to Thonny (it doesn't reconnect automatically but I think that might be normal for Thonny). It restarts the unit and auto-runs main.py just as it should. I've not tried the well-behaved Pico under MicroPython so I don't know if there's any difference.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
     Page 9 of 17    
Print this page
© JAQ Software 2024