Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 10:34 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 16 of 18    
Author Message
Bleep
Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 509
Posted: 03:50pm 21 Nov 2023
Copy link to clipboard 
Print this post

Hi Peter, or anyone else who might know.
The Wii Classic controller that you have now added to the firmware, is it 3.3V compatible, i.e. can directly connect to Pico, or are level shifters required?
Regards, Kevin.
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6798
Posted: 03:59pm 21 Nov 2023
Copy link to clipboard 
Print this post

Officially it's a 3V3 device, I believe. No level shifters needed.
Edited 2023-11-22 02:00 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: 9122
Posted: 04:12pm 21 Nov 2023
Copy link to clipboard 
Print this post

Certainly I'm not using any works fine with 3.3V as the power. You do need pullups on the I2C lines
 
Bleep
Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 509
Posted: 05:17pm 21 Nov 2023
Copy link to clipboard 
Print this post

Thanks for your answers, I've ordered one on Ebay. :-)
See what turns up!
 
karlelch

Senior Member

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

  matherp said  MATH SHIFT inarray%(), nbr, outarray%()

This command does a bit shift on all elements of inarray%() and places the result in outarray%() (may be the same as inarray%()). nbr can be between -63 and 63. Positive numbers are a left shift (multiply by power of 2). Negative number are a right shift.


MATH AND inarray1%(), inarray2%(), outarray%()
MATH OR inarray1%(), inarray2%(), outarray%()

These commands may be a good addition to MATH SHIFT  
(Rather than complex numbers, IMHO)

Cheers
Thomas
 
matherp
Guru

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

Tom and/or anyone else:

Do you have a test suite for the PicoMite? I'm in the middle of a massive edit to both improve some of the error checking in parsing and remove huge quantities of duplicate code (MATHS.C reduced by c800 lines of code). This should also increase the amount of flash available for the A: drive.
It is highly likely that there will be some cut-and-paste errors which would be good to find before releasing more widely.
Let me know and I'll post or send some test firmware
Edited 2023-11-24 04:53 by matherp
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4042
Posted: 07:05pm 23 Nov 2023
Copy link to clipboard 
Print this post

Yes. I have an automated test suite but it is far from comprehensive and MATH is certainly one of the areas poorly covered. However I can't commit to running tests until Sun/Mon and it's all driven from MMB4L so difficult for you to run for yourself.

Best wishes,

Tom
Edited 2023-11-24 05:07 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
matherp
Guru

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

Thanks Tom, No probs on the timing. I'll post when all done.

This is one of a set of routines that will save the space. Its been on my to-do list forever to get round to this. Gerry: these changes should also free up a lot of flash on the ArmmiteF4.

int parsefloatrarray(unsigned char *tp, MMFLOAT **a1float, int argno, int dimensions, short *dims, bool ConstantNotAllowed){
void *ptr1 = NULL;
int i,j;
ptr1 = findvar(tp, V_FIND | V_EMPTY_OK | V_NOFIND_ERR);
if((vartbl[VarIndex].type & T_CONST) && ConstantNotAllowed) error("Cannot change a constant");
if(dims==NULL)dims=vartbl[VarIndex].dims;
if(vartbl[VarIndex].type & T_NBR) {
memcpy(dims,vartbl[VarIndex].dims,  MAXDIM * sizeof(short));
*a1float = (MMFLOAT *)ptr1;
if((uint32_t)ptr1!=(uint32_t)vartbl[VarIndex].val.s)error("Syntax");
} else error("Argument % must be a floating point array",argno);
int card=1;
if(dimensions==1 && (dims[0]<=0 || dims[1]>0))error("Argument % must be a 1D floating point array",argno);
if(dimensions==2 && (dims[0]<=0 || dims[1]<=0 || dims[2]>0))error("Argument % must be a 2D floating point array",argno);
for(i=0;i<MAXDIM;i++){
j=(dims[i] - OptionBase + 1);
if(j)card *= j;
}
return card;
}

Edited 2023-11-24 05:17 by matherp
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 896
Posted: 10:37pm 23 Nov 2023
Copy link to clipboard 
Print this post

  matherp said   Gerry: these changes should also free up a lot of flash on the ArmmiteF4.

I will keep and eye on this.
thanks
Gerry
Latest F4 Latest H7
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4243
Posted: 11:53am 26 Nov 2023
Copy link to clipboard 
Print this post

Peter,

Is there any reason to run the audio pwm at 32 kHz when playing MOD files. I assume it should be a multiple of 8kHz? Why not 40kHz or 48kHz.
The audio filter is not performing optimal for 32kHz. 40kHz or 48 would be beter.

Volhout
Edited 2023-11-26 21:54 by Volhout
PicomiteVGA PETSCII ROBOTS
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4042
Posted: 11:56am 26 Nov 2023
Copy link to clipboard 
Print this post

Peter,

I have been dusting off my unit-tests in anticipation of your refactoring work and found this wrinkle which is invalid on the PicoMite (but valid on MMB4L):

> Dim sys.VERSION As Integer= 123456
Error : Variable type
> Dim sys.VERSION AS Integer = 123456
>


IMO it should be able to handle the "missing" space.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
homa

Guru

Joined: 05/11/2021
Location: Germany
Posts: 351
Posted: 05:52pm 27 Nov 2023
Copy link to clipboard 
Print this post

Hello Peter,
the new version with support for the VS1053 is awesome!!! Thanks for that.

I have noticed that the version WebMite 5.07.08RC21
> option list
WebMite MMBasic Version 5.07.08RC21
OPTION SYSTEM SPI GP10,GP11,GP12
OPTION COLOURCODE ON
OPTION LCDPANEL ILI9488W, RLANDSCAPE,GP8,GP15,GP9,GP13
OPTION TOUCH GP16,GP17
GUI CALIBRATE 0, 281, 3950, 1305, -885
OPTION SDCARD GP22

has a bug with the command "backlight n".
It is actually supposed to be dimmed to the percentage value n. But at <100 the light goes off and at backlight 100 it goes on again. But with an old version without WebMite (PicoMite 5.07.01?!?, I can look it up again if necessary) it works.
Can you please check this?

Matthias
 
vegipete

Guru

Joined: 29/01/2013
Location: Canada
Posts: 1109
Posted: 06:17pm 27 Nov 2023
Copy link to clipboard 
Print this post

Is there a possibility of AUTOSAVE (and optionally APPEND) getting an optional filename$ parameter?

Yes, this closely matches XMODEM SEND, but it would allow chucking a (non-MMBasic) file out the serial port at the PicoMite without actually typing anything.

I do my writing/editing mostly on a PC. The first line of my program code is "autosave". I just copy-all from the editor (Notepad++) and paste to the terminal emulator (Teraterm). The ability to autosave to a file would make text file transfers simpler. Now, a text file replaces the active MMBasic program, and needs a manual save. Then the basic program must be reloaded.
Visit Vegipete's *Mite Library for cool programs.
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6099
Posted: 07:26pm 27 Nov 2023
Copy link to clipboard 
Print this post

  homa said  
has a bug with the command "backlight n".
It is actually supposed to be dimmed to the percentage value n. But at <100 the light goes off and at backlight 100 it goes on again.
Matthias


Different displays are wired differently. Somme will work as expected (like mine) and some will be inverted. Even the same driver chip will have versions that differ with the backlight.

Jim
VK7JH
MMedit   MMBasic Help
 
homa

Guru

Joined: 05/11/2021
Location: Germany
Posts: 351
Posted: 09:58pm 27 Nov 2023
Copy link to clipboard 
Print this post

  TassyJim said  
  homa said  
has a bug with the command "backlight n".
It is actually supposed to be dimmed to the percentage value n. But at <100 the light goes off and at backlight 100 it goes on again.
Matthias


Different displays are wired differently. Somme will work as expected (like mine) and some will be inverted. Even the same driver chip will have versions that differ with the backlight.

Jim


BUT it is the same display! And the old firmware works: PicoMite MMBasic Version 5.07.01


> gui test lcdpanel
> backlight 10
> backlight 20
> backlight 30
> backlight 40
> backlight 100
> option list
OPTION COLOURCODE ON
OPTION SDCARD GP22
OPTION SYSTEM SPI GP10,GP11,GP12
OPTION SYSTEM I2C GP26,GP27
OPTION LCDPANEL ILI9488W, RLANDSCAPE,GP8,GP15,GP9,GP13
OPTION RTC AUTO ENABLED
OPTION TOUCH GP16,GP17
GUI CALIBRATE 0, 251, 3862, 1278, -854
PicoMite MMBasic Version 5.07.01
Copyright 2011-2021 Geoff Graham
Copyright 2016-2021 Peter Mather

>
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2135
Posted: 11:08pm 27 Nov 2023
Copy link to clipboard 
Print this post

Two tests to see what is going on.

1) Set an AIN pin and wire it to the Pico BL pin, via an RC filter and see what the output is as you change the Backlight setting.
Or monitor it with a voltmeter, via an RC filter.

2) Test the display by re-routing its BL pin to a PWM pin and see what happens as you vary that.

Edit
Loaded your settings on a WebMite RC21 and got 50kHz on GP13 with duty-cycle varying in proportion to Backlight setting. Tested from 5% to 95%.
Except Backlight 0 no PWM just 0V
and Backlight 100 no PWM just 3.3V

If you only get On and Off from GP13 perhaps PWM is not making it to that pin.
Change Backlight to another pin and setup GP13 with PWM to see if that works.
Edited 2023-11-28 13:12 by phil99
 
matherp
Guru

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

Phil

Thanks for confirming it is all working - saves me breaking out the scope.
I did make a change recently to increase the PWM frequency from 1KHz to 50KHz to take it out of the audio range as it was introducing interference on audio. Why this should have an impact on homa's display I don't know.
 
matherp
Guru

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

Tom

Are you using the inverted mono audio capability? If not I'll remove it as it uses quite of lot of RAM in the interrupt routine
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4042
Posted: 11:51am 28 Nov 2023
Copy link to clipboard 
Print this post

  matherp said  Tom,
Are you using the inverted mono audio capability? If not I'll remove it as it uses quite of lot of RAM in the interrupt routine


No, I am not using it and IMO it can be removed. I appreciate you having added it and I did play with it for some time before deciding it was unsuitable for the Game*Mite because it made porting programs that used PLAY functions other than PLAY SOUND unnecessarily difficult. It also helped that I had in the meantime discovered that I could get adequate sound by just wiring up "half" of the PAM8302A.

Thanks,

Tom
Edited 2023-11-28 21:52 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2135
Posted: 12:53pm 28 Nov 2023
Copy link to clipboard 
Print this post

Edit
Ignore the rubbish below. Just a Seniors Moment. Copy'n'paste error.

I don't know if this is related to Homa's Backlight issue but there seems to be a little quirk. When setting the backlight to gp17 (lowercase) it came out on GP7 instead. Both in Option List and the actual pin. If uppercase GP17 is used backlight is on GP17. Standard PicoMite.

> OPTION LCDPANEL ILI9488, RLANDSCAPE,GP15,GP14,GP13,GP7,gp17
PicoMite MMBasic Version 5.07.08RC21
Copyright 2011-2023 Geoff Graham
Copyright 2016-2023 Peter Mather

> option list
PicoMite MMBasic Version 5.07.08RC21
OPTION SYSTEM SPI GP18,GP19,GP16
OPTION SYSTEM I2C GP8,GP9
OPTION DISPLAY 60, 128
OPTION LCDPANEL ILI9488, RLANDSCAPE,GP15,GP14,GP13,GP7
OPTION TOUCH GP12,GP11
GUI CALIBRATE 0, 3820, 408, -1306, 946
OPTION SDCARD GP22

> OPTION LCDPANEL disable

PicoMite MMBasic Version 5.07.08RC21
Copyright 2011-2023 Geoff Graham
Copyright 2016-2023 Peter Mather

> OPTION LCDPANEL ILI9488, RLANDSCAPE,GP15,GP14,GP13,GP17
PicoMite MMBasic Version 5.07.08RC21
Copyright 2011-2023 Geoff Graham
Copyright 2016-2023 Peter Mather

> option list
PicoMite MMBasic Version 5.07.08RC21
OPTION SYSTEM SPI GP18,GP19,GP16
OPTION SYSTEM I2C GP8,GP9
OPTION DISPLAY 60, 128
OPTION LCDPANEL ILI9488, RLANDSCAPE,GP15,GP14,GP13,GP17
OPTION TOUCH GP12,GP11
GUI CALIBRATE 0, 3820, 408, -1306, 946
OPTION SDCARD GP22
>

This is repeatable.
Edited 2023-11-28 23:03 by phil99
 
     Page 16 of 18    
Print this page
© JAQ Software 2024