Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 02:42 19 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 MkII beta testers needed

     Page 7 of 8    
Author Message
G8JCF

Guru

Joined: 15/05/2014
Location: United Kingdom
Posts: 676
Posted: 12:41am 13 Nov 2014
Copy link to clipboard 
Print this post

Hi Keith, Bo

Thank you very much for trying out the new version so promptly.

I get 1 min 13 secs every time for flashing B20.

I can get the time down to 47 secs if I use COM1 instead of the Console for the connection from the PC to uMite, AND I use 8 bit data transfers rather than AsciiHex. I have tried 8 bit transfers across the Console connection, but the uMite locks up totally - power cycle required. I can't use COM1 for production because one can't load in a MMBasic program via COM1 (only via the Console).

What's interesting is that when using 8 bit data transfers, the number of bytes transferred per 32 bit word is halved from 8 bytes to 4 bytes, and the time falls from 73 secs down to 47 secs, ie a 55% improvement, or about 4 KBytes/sec. If I drop the com speed to 115,200 then the programming time lengthens to 73 secs, ie about 2.7 KBytes/sec. 73 secs comes up too frequently ! I'm going to have to look very carefully at how I calculate the metrics to see if I've done something incorrectly.

There clearly is something else at work here because at 230400, that means 23,040 bytes per sec - Start+Data+Stop = 10 bits - which means that theoretically 192KBytes could be programmed in less than 10 secs !

Anyway, for practical purposes, I think we've reached the best that can be done without a lot of fiddling, and complicating the h/w connection between uMite and PC. I would be interested to know if anybody has a USB3 to serial adapter whether that makes any difference.

The clock pulse time is around 1uS - I did try and shorten it further, (40nS seems to be the minimum period time from the datasheet), but I have 30cm cable from the uMite to target device and it stopped working. I should probably re-wire the chips so that the wire lengths are really shortened, and also put a ground lead in between PGD/PGC to minimise crosstalk. On the other hand, the current settings/values seem to be quite tolerant of varying h/w configurations, so maybe it's safer to leave the settings/values as they are. After all 73 secs isn't too bad in my book.

BTW, all Verbose does is tell the PC program to write strings to the Verbose window, but, yes, setting verbose does seem to ever so slightly impact the overall programming time, when I would have thought that an i7 with 4 cores and 8GB of RAM would have no difficulty in flat-lining the COM link.

If/when the Maximite gets updated to 4.6 with CFunctions, it would then be very interesting to see what kind of programming times can be achieved since the Serial link will not be the bottleneck

Once again, thank you for your continued support, interest, enthusiasm, and suggestions.

Peter




The only Konstant is Change
 
Keith W.
Senior Member

Joined: 09/10/2011
Location: Australia
Posts: 118
Posted: 01:43am 13 Nov 2014
Copy link to clipboard 
Print this post

Hi Peter,

Just a thought. When using the Console port with 8 bit data is MMBasic detecting a Ctrl C amongst the data transferred?

I might look for a high speed plug in RS232 card to try. A local store is closing shop. What is the actual transmission rate?

Keith.Edited by Keith W. 2014-11-14
 
G8JCF

Guru

Joined: 15/05/2014
Location: United Kingdom
Posts: 676
Posted: 03:51am 13 Nov 2014
Copy link to clipboard 
Print this post

Hi Keith

Ah Ctrl+C, good point. I'll try Option Break 0 and see if that allows binary transfers across the Console I/F. Thanks for that tip. I just hope that power cycle will restore Ctrl+C functionality :)

As to actual transmission rate, I don't know unfortunately.

Peter


The only Konstant is Change
 
G8JCF

Guru

Joined: 15/05/2014
Location: United Kingdom
Posts: 676
Posted: 08:48am 13 Nov 2014
Copy link to clipboard 
Print this post

Hi Keith

re switching off Ctrl+C, nice idea, but it didn't help :( Option BREAK 0 does of course work.

I've carried out further tests and it does appear that the Console port handles 8 bit characters without any problems, so it must be something else.

Edit : carried out further tests and the problem seems to be that the Console drops characters at high rates, and sometimes freezes up until the stream of chars is stopped - I guess the Console input buffer is sized for human input/lines of MMBasic rather than sustained high rate data comms.

PeterEdited by G8JCF 2014-11-14
The only Konstant is Change
 
Keith W.
Senior Member

Joined: 09/10/2011
Location: Australia
Posts: 118
Posted: 12:19pm 13 Nov 2014
Copy link to clipboard 
Print this post

OK Peter,

I was also concerned about other “Special” characters such as “,” and <CR> <LF> as well as CTRL+C that may have an influence on “Input”.

Is there a sweet spot where the Baud rate is low enough to work via the Console port with 8 bit comms, however you do still gain a processing advantage due to 8 bits? Does it work at 115,200 Baud?

Seems that you have hit the limits but have attained a very good result. Not even time for a coffee during programming.

Keith.
 
Oldbitcollector

Senior Member

Joined: 16/05/2014
Location: United States
Posts: 172
Posted: 04:19pm 13 Nov 2014
Copy link to clipboard 
Print this post

@plasma

Would you be willing to share the text/ascii version of your Ws8211 Cfunction? I'm a linux user and have not found a way to make your terraterm executable work correctly.

Thanks in advance!
Jeff

My Propeller/Micromite mini-computer project.
 
plasma
Guru

Joined: 08/04/2012
Location: Germany
Posts: 437
Posted: 08:41pm 13 Nov 2014
Copy link to clipboard 
Print this post

@ODBC

Yes the cfunction will out this weekend,
also the source .
Is a linux version from the tool needed?
 
Oldbitcollector

Senior Member

Joined: 16/05/2014
Location: United States
Posts: 172
Posted: 04:46am 14 Nov 2014
Copy link to clipboard 
Print this post

@plasma,

Thank you!

I don't need a linux version of the tool. I'll just copy/paste the ascii code directly into my program.


My Propeller/Micromite mini-computer project.
 
dmasz
Newbie

Joined: 12/09/2013
Location: Poland
Posts: 21
Posted: 05:06am 14 Nov 2014
Copy link to clipboard 
Print this post

Hi All,

I don't remember if any of forum members has mentioned of compile/port uMite firmware
to big PIC32 processor same as used in Color MaxiMite or MaxiMite. (if no VGA needed, why not?)

this will give plenty of RAM, Flash, high processor speed, many IOs
many PWMs etc

Is it good idea, pls comment?

br
Dan
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 05:53am 14 Nov 2014
Copy link to clipboard 
Print this post

I would love that.Six comports, 128kb (or more with the mz) memory. Yummy. :)


Microblocks. Build with logic.
 
dmasz
Newbie

Joined: 12/09/2013
Location: Poland
Posts: 21
Posted: 06:22am 14 Nov 2014
Copy link to clipboard 
Print this post

PIC32MZ is kind of song of the future and Harmony ;-)

but PIC32MX765F512L / PIC32MX695F512L
or PIC32MX765F512H / PIC32MX695F512H
is available right now.


 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3167
Posted: 12:41pm 14 Nov 2014
Copy link to clipboard 
Print this post

  dmasz said  I don't remember if any of forum members has mentioned of compile/port uMite firmware to big PIC32 processor same as used in Color MaxiMite or MaxiMite. (if no VGA needed, why not?)


I get this question often, could MMBasic be ported to this processor? Or that development board?

It could be done, but the problem is that it takes quite a lot of time to port a complex piece of software like MMBasic to a new platform. It is not so much recompiling the source (which is easy) but each processor has its own way of handling the hardware elements such as the clock speed, flash memory, I/O pins, I2C, serial, SPI, etc, etc.

For example, recompiling the MMBasic interpreter for the MX150 chip used in the Micromite was easy and was finished in an afternoon. But then it took two months to get all the hardware related features working not to mention the time in beta test and writing the documentation.

So yes, the uMite firmware could be ported to the processor used in the Colour Maximite and it would be a potent package indeed. But I am worried about how many people would use it and would it be worth the many weeks of work? The same applies to the various ARM processors and the hundreds of different development boards that can be purchased. To be realistic I need to pick a small subset of processors to work with and stick to just that.

Geoff

Geoff Graham - http://geoffg.net
 
JohnL
Senior Member

Joined: 10/01/2014
Location: Seychelles
Posts: 128
Posted: 02:43pm 14 Nov 2014
Copy link to clipboard 
Print this post

  Quote  But I am worried about how many people would use it and would it be worth the many weeks of work?


Yes I think that "Basic interpreter" is not competitive nor appropriate for most embedded applications in 2014 when you consider and compare most other options.

Maximite is more of a personal computer where interactive Basic is more appropriate. But Micromite is an embedded controller where Basic interpreter becomes problematic and very inefficient for obvious reasons. With all due respect, you will not get objective feedback from most of the biased people on this forum.

I personally think that MMbasic as a language has lot of potential, but you need to adapt it for 2014 and make it competitive with other C options.You need compiling option ALL BASIC and get rid of Cfunctions.

My suggestion for embedded microcontroller would be to look at splitting MMbasic into common CORE language part and then library hardware drivers for very popular ucontrollers, maybe even Atmel 328 (Arduino), STM ARM.

Even more important consideration regarding ongoing development and support is, do you make it open source to bring more of competent developers on board. Or put a price on it? How many people would be prepared to pay for a more professional version of MMbasic? I would.

 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3678
Posted: 10:05pm 14 Nov 2014
Copy link to clipboard 
Print this post

It won't fit on an Atmel 328, not by a long way. That's a small-memory chip.

ARM chips have a vast range of memory sizes, speeds etc and would be capable. They've been discussed numerous times.

PIC32MZ is perhaps what Geoff's waiting for despite its lateness, bugs and cost.

It's his hobby so he does whatever he likes...

Basic compilers exist - if you want one then use one. MMBasic has various features that would make it tough to compile but more to the point why? It'll just be a bit faster but speed is rarely an issue and when/if it is the usual fixes would be faster uC (Microchip have fouled that up) or use some C (thus CFunction I suppose).

JohnEdited by JohnS 2014-11-16
 
JohnL
Senior Member

Joined: 10/01/2014
Location: Seychelles
Posts: 128
Posted: 12:37am 15 Nov 2014
Copy link to clipboard 
Print this post

Old wise saying.

"Do not cast pearls before ...."




Edited by JohnL 2014-11-16
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3678
Posted: 12:53am 15 Nov 2014
Copy link to clipboard 
Print this post

You lost me.

John
 
plasma
Guru

Joined: 08/04/2012
Location: Germany
Posts: 437
Posted: 01:03am 15 Nov 2014
Copy link to clipboard 
Print this post

i love MMBasic!

 
G8JCF

Guru

Joined: 15/05/2014
Location: United Kingdom
Posts: 676
Posted: 04:59am 15 Nov 2014
Copy link to clipboard 
Print this post

@JohnL

As JohnS says,

  Quote  Basic compilers exist - if you want one then use one.


Also, why do you (@JohnL) seem to despise CFunctions so much, this being at least the second time you've said "get rid of CFunctions" ?

BTW, if one is interested in trying out Compiled Basic on ARM for free then head on over to http://www.coridium.us/ where one can apply for a FREE LPC812 based module which will run Coridium's compiled ARMBasic. I applied and within 10 days a board arrived all the way from the US to here in Scotland. For more power, get a Teensy 3.1 module for US$20, (MK20DX256 32 bit ARM Cortex-M4 72 MHz 250K flash 64K Ram), and then (if one wants Compiled Basic) get a Coridium license for US$5, or just stick to C/C++

But for me, a GBP 2.50 DIL chip with MMBasic and CFunctions is just about the most optimal way of getting something up and running quickly and cost-effectively !

Peter


The only Konstant is Change
 
paceman
Guru

Joined: 07/10/2011
Location: Australia
Posts: 1329
Posted: 04:34pm 15 Nov 2014
Copy link to clipboard 
Print this post


Have to agree there Peter, and as for the "pearls before...." comment, I'd be more inclined to see the pearls as sour grapes.

  JohnL said  
  Quote  But I am worried about how many people would use it and would it be worth the many weeks of work?

Yes I think that "Basic interpreter" is not competitive nor appropriate for most embedded applications in 2014 when you consider and compare most other options.


That's obviously not the view of most members of this forum and the users of MMBasic and the Micromite - but given your opinion below I guess that's not surprising.

  Quote  ... With all due respect, you will not get objective feedback from most of the biased people on this forum.

Then why bother being a member of the forum?

  Quote  I personally think that MMbasic as a language has lot of potential, but you need to adapt it for 2014 and make it competitive with other C options. You need compiling option ALL BASIC and get rid of Cfunctions.


"....a lot of potential." That's very generous of you.. but then it's been very capable since the inception of the Maximite and been rapidly expanding on it's potential for several years thanks to Geoff and the enthusiasm of users.

The suggestion of getting rid of CFunctions though is dumb. It's available there now for those who are capable of writing some 'C' and expands the Micromite useability into other areas. Over time, libraries, great or small will develope.

  Quote  My suggestion for embedded microcontroller would be to look at splitting MMbasic into common CORE language part and then library hardware drivers for very popular ucontrollers, maybe even Atmel 328 (Arduino), STM ARM.


Good to see some suggestions - contributions would be even better.

  Quote  Even more important consideration regarding ongoing development and support is, do you make it open source to bring more of competent developers on board. Or put a price on it? How many people would be prepared to pay for a more professional version of MMbasic? I would.


Well, if Geoff was interested in commercial development of MMBasic I'd guess he might think about that - maybe in future he will. MMBasic was never intended as a commercial proposition by Geoff but it's development so far has made it very useable by a lot of commercial 'builders' and a real boon for hobbyists and amateurs with an interest in electronics.

Greg
 
micronut
Newbie

Joined: 03/09/2014
Location: United States
Posts: 37
Posted: 05:42pm 15 Nov 2014
Copy link to clipboard 
Print this post

Peter,
Thanks for the link to Coridium. I just signed up fro the Beta Tester program
 
     Page 7 of 8    
Print this page
© JAQ Software 2024