Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 06:19 17 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 : Micromite MMBasic V5.3 Beta 10

     Page 1 of 2    
Author Message
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3167
Posted: 04:43pm 12 Jan 2017
Copy link to clipboard 
Print this post

I have posted on my website a new beta of the Micromite firmware (Ver 5.3 Beta 10) for test and experimentation. This version builds on beta 3 with most changes related to the Micromite Plus version.

It can be downloaded from: http://geoffg.net/Downloads/Micromite/Micromite_5.3_Beta_10.zip

The highlights include:
- TRIANGLE drawing command
- GUI RESET LCDPANEL command. This will reinitialise the LCD panel after power down.

In addition the MX470 version adds:
- PLAY command which will play stereo WAV files or generate precise sine waves
- Transparent text on supported displays.
- BLIT command which allows moving objects to be displayed over a background image.
- OPTION CONTROL command which can be used to change the number of GUI controls allowed.

The full list of changes is in the Change Log. Most of the new features have come from Peter Mather and his eXtreme version. Thanks Peter.

This should be the last beta before the final version of 5.3 (due in a couple of weeks).

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

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9078
Posted: 06:05pm 12 Jan 2017
Copy link to clipboard 
Print this post

PLAY command!!!
AWESOME!!!

I was just about to redesign one of my annunciator systems, so having integrated WAV file playback now is bloody perfect.

Thanks Geoff and Peter!!!

What I would like to know, is how Peter managed to get WAV file playback to work.
I am pretty sure he himself said this could only be done with an external CODEC chip.

Just when you think the MM+ can't get any better, you two guys come up with more amazing features.

Do either of you ever sleep?


Smoke makes things work. When the smoke gets out, it stops!
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2294
Posted: 06:11pm 12 Jan 2017
Copy link to clipboard 
Print this post

hi geoff,
is there any chance the following two problems will be fixed?

Const A%=123
Print A, A%
Const B$="hello"
Print B$, B
End

> run
123 123
hello hello
>

c$ = "4026782977,junk"
d$ = "4026782977,more.junk"

Print Val(c$), Val(d$)
a% = Val(c$)
b% = Val(d$)
Print a%,b%
Print a%-b%

> run
4026782977 4.02678e+09
4026782977 4026782720
257
>


also, pasting text into the editor using teraterm is still an issue. setting transmission delays of 20ms/char and 100ms/line (for me, using MX170 and peter's 1455 serial bridge) completely breaks the editor's ability to decode escape sequences - pressing any function key causes the editor to fault.


cheers,
rob :-)Edited by robert.rozee 2017-01-14
 
CircuitGizmos

Guru

Joined: 08/09/2011
Location: United States
Posts: 1421
Posted: 06:37pm 12 Jan 2017
Copy link to clipboard 
Print this post

Wow!

Micromites and Maximites! - Beginning Maximite
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 10:10pm 12 Jan 2017
Copy link to clipboard 
Print this post

Music, Speech, BLIT, Text overlay, ..... WOW - this truly is an excellent update to MMBASIC.

I do strongly recommend everyone who can, to upgrade their MicroMite as soon as possible and play with these new features - you will love them.

Now if I can ask for some help:

Please can anyone with a SC Back Pack 64 (as featured in November 2016 edition) AND an ILI9341; please try the following.

It was something uncovered yesterday in the frantic last few hours of stress testing and Peter does not have a SC BP64 so could not replicate the issue.

First of all, obviously update to this excellent firmware release that Geoff and Peter have worked tirelessly on.

So once on v5.3 B10; ensure the ILI TFT is inserted, AND an SD card inserted into the BP64 SD socket (not the TFT SD Socket) then check OPTION LIST includes the following settings:

OPTION LCDPANEL ILI9341,L,2,23,29
OPTION TOUCH 1,3
OPTION SDCARD 21,22


Turn the display's backlight on with: PWM 2,1000,100

Now simply type GUI TEST LCDPANEL

Do the circles draw correctly continuously? I am experiencing a corrupted screen (and what is best described as pixelated 'squashed' circles) and then everything drawn on the screen after is just wrong!

No need for this test on other modules - I have only seen it on the SC BP64.

Appreciate anyones feedback.

WW

EDIT: An SD card MUST be inserted as described above. Everything works ok without the SD card!Edited by WhiteWizzard 2017-01-14
For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3167
Posted: 10:18pm 12 Jan 2017
Copy link to clipboard 
Print this post

Rob,

Your first "issue" is not a bug. The types of A and B are defined by their values and they produce the same value with or without the correct type suffix.

Try:
Const A%=123
Print A, A$

and you will get an error.

I'm not sure that the the second "issue" is really worth chasing down (it is extremely contrived) - but it is on the ToDo list regardless.

Finally, you should not be pasting into the editor. I plan to see if the editor can be made to cope with such behaviour but it is not a high priority.

Geoff
Geoff Graham - http://geoffg.net
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2294
Posted: 02:17am 13 Jan 2017
Copy link to clipboard 
Print this post

it does look like an error to me. try:

Const A% = 123
B% = 456
Print A, A%
Print B, B%

> run
123 123
[4] Print B, B%
Error: B already declared
>


if the 4th line generates an error, why does not the 3rd? it seems that when dealing with constants the interpreter doesn't match the "$" or "%" at the end. this is really confusing behaviour until you figure out what is going on. i discovered the above behaviour in an actual program, not through experimentation.

i also see that an error is (incorrectly) generated by:

> const C! = 123
Error: Conflicting variable type
>


the problem with VAL() also showed up in an actual program (the same one) when GPS data being handled came out with a small numeric error. the code and data were most definitely not contrived, simply splitting off fields from an NMEA format string returned by a bog standard GPS receiver.


cheers,
rob :-)



Edited by robert.rozee 2017-01-14
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 07:18am 13 Jan 2017
Copy link to clipboard 
Print this post

@Geoff

One thing I insist on before you do anything else: PLEASE add a 'Donation' button on your website

At least this will contribute to whatever it is you eat or drink to stay awake for all those hours. . . .

WW
For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
lew247

Guru

Joined: 23/12/2015
Location: United Kingdom
Posts: 1676
Posted: 08:21am 13 Jan 2017
Copy link to clipboard 
Print this post

I'v e just flashed my Explore 100 with 5.3 but the computer can't find a serial driver for it
Is there any driver I need to download for this?
The board was working fine with V5.2
The computer only finds com1 which isn't the E100



Edit: I agree with Phil - put a donate button on the site please you do amazing work Edited by lew247 2017-01-14
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 08:28am 13 Jan 2017
Copy link to clipboard 
Print this post

Hi Lewis,

I am doing exactly the same thing now. I had to use an external 5v PSU (remember to remove J1), and all works fine.

BUT if the TFT is unconnected then it appears 'dead'. I think this is something to do with lack of a T_IRQ pull-up (something I was discussing with PeterM recently).

Stay tuned - I may have updates later.

BUT I can say there are no extra drivers required.

WW
For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
lew247

Guru

Joined: 23/12/2015
Location: United Kingdom
Posts: 1676
Posted: 08:53am 13 Jan 2017
Copy link to clipboard 
Print this post

Thanks Phil
I've always used the 5V psu, I prefer not to rely on usb power
Unfortunately its not worked on mine, and removing the display does nothing either, it just wont assign a com port
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 09:00am 13 Jan 2017
Copy link to clipboard 
Print this post

Lewis,

Just try re-flashing first, then with TFT connected, run through the OPTION setup.

For your info, I have:

LCDPANEL SSD1963_7,L
TOUCH 1,40,39
SDCARD 47
KEYBOARD UK

Feeding time at 'the zoo' here so will be an hour or two before I continue with MM stuff.

WW



For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
Zonker

Guru

Joined: 18/08/2012
Location: United States
Posts: 761
Posted: 12:22pm 13 Jan 2017
Copy link to clipboard 
Print this post

Agreed..! You two make up an awesome team...

I will be working with the E-100 board and will "load-up"...

Thanks MUCH for this awesome release..!!

I also agree about the Donate Button..!

I appreciate the many LONG hours you both have spent on everyone's behalf...!

Such POWER in ONE chip..! WOW... Edited by Zonker 2017-01-14
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 5923
Posted: 04:37pm 13 Jan 2017
Copy link to clipboard 
Print this post

  robert.rozee said   setting transmission delays of 20ms/char and 100ms/line


I found that character delay of zero and line delay of 300mS seems to work reliably for pasting.
Only tried with short programs so far.

Jim

VK7JH
MMedit   MMBasic Help
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 01:29am 14 Jan 2017
Copy link to clipboard 
Print this post

Anyone in the UK wanting to upgrade their Micromite(s) to v5.3, then send your 'bits' to me (along with a pre-paid return envelope) and I will gladly help you out.

Alternatively, feel free to drop in for a coffee if you can get to the Heathrow area!

WW
For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
circuit
Senior Member

Joined: 10/01/2016
Location: United Kingdom
Posts: 232
Posted: 11:21am 14 Jan 2017
Copy link to clipboard 
Print this post

  WhiteWizzard said   Anyone in the UK wanting to upgrade their Micromite(s) to v5.3, then send your 'bits' to me (along with a pre-paid return envelope) and I will gladly help you out.

Alternatively, feel free to drop in for a coffee if you can get to the Heathrow area!

WW


A most generous offer, but perhaps best to wait until the definitive final code is published...
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2294
Posted: 01:54am 15 Jan 2017
Copy link to clipboard 
Print this post

i believe the below code should fix the bug in VAL():

// Returns the numerical value of the ?string$?.
// n = VAL( string$ )
void fun_val(void) {
char *p, *q, *tl, *td;
int count;

p = getCstring(ep);
q = p;
if(*p == '&') {
switch(*++p) {
case 'h':
case 'H': iret = strtoll(++p, &tl, 16); break;
// note that we MUST supply a variable for the
// third arg of strol() due to a bug in C32 2.1
case 'o':
case 'O': iret = strtoll(++p, &tl, 8); break;
case 'b':
case 'B': iret = strtoll(++p, &tl, 2); break;
default : error("Invalid prefix");
// remove second superfluous semicolon (;)
}
} else {

float tempf = (float) strtod(q, &td);
long long int i64 = strtoll(q, &tl, 10);

if (td > tl) {
targ = T_NBR;
fret = tempf;
count = td - q;
return;
} else iret = i64;
}
count = tl - q;
targ = T_INT;
}


instead of checking the whole string for "E' or "." it performs two conversions, one floating the other integer. whichever one converts the most characters of the string is returned.

the above code also maintains a variable called count that contains the number of characters used in the conversion. i'd suggest it would be extremely useful to expose this in an extended syntax:
result = VAL (string$ [, count])

this will make it much simpler to split up strings of data returned from GPS and similar serial devices.

note: the above code is UNTESTED, but i reckon should be pretty close to being right. it may also be ok to assign to fret and iret directly, not using temporary variables, which would save a few lines of code.

programming in C is definitely NOT my forte. i shall now go and wash out my brain with soap!


cheers,
rob :-)Edited by robert.rozee 2017-01-16
 
paceman
Guru

Joined: 07/10/2011
Location: Australia
Posts: 1329
Posted: 03:15am 15 Jan 2017
Copy link to clipboard 
Print this post

Geoff, for the graphics TEXT command for the MM2 would it be possible to add an argument to the end of the current list that changes the string to print vertically? No changes would be needed for all the other arguments.
For example:
HEATER (as is currently - horizontal)

or:

H
E
A
T
E
R (xtra argument - vertical)


Greg
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3167
Posted: 11:10am 15 Jan 2017
Copy link to clipboard 
Print this post

  robert.rozee said   i believe the below code should fix the bug in VAL()

That is a neat bit of lateral thinking - thanks Rob, I will give it a go.

Geoff
Geoff Graham - http://geoffg.net
 
2001cpx

Regular Member

Joined: 03/10/2013
Location: Canada
Posts: 59
Posted: 02:02pm 15 Jan 2017
Copy link to clipboard 
Print this post



from Zonker
  Quote  I also agree about the Donate Button..!


Yes ! Me Too ,Very Happy!!!

"Color Maximite,(Duinomite-Mega,Mini),CGmmStick,GCmicroboard2b,Micromite + explore 64,100,LCD backpack,Lcd Backpack V2,TFT Backpack,Micromite Extreme,Armmite L,F,H,CMM2"
 
     Page 1 of 2    
Print this page
© JAQ Software 2024