Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 07:39 17 Sep 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 : ARMmite - where next?

     Page 1 of 2    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10400
Posted: 10:55pm 05 Mar 2015
Copy link to clipboard 
Print this post

I thought it was worth starting a new thread to take this discussion forward.

My views FWIW

This is a port of the Micromite MKII 4.6b firmware to run on the STM32F407VGT6. It is not realistically possible to support multiple variants of the STM chips within a single source set and I personally have no intention of modifying the code that is being developed to run on any other chip.

I am using the STM32F4DISCOVERY board as the development platform. This board has an integrated ST-LINK/V2 programmer (PicKit3 equivalent) on board which makes it very convenient.

It also has a range of peripheral components , ST MEMS accelerometer, ST MEMS audio, etc. These get in the way of development by tying up some of the processor pins. However, by trying to avoid these pins I have been able to get most of the Micromite MKII generic peripheral drivers working.

The STM32F407VGT6 chip is a 100-pin TQFP on a standard 0.5mm pitch. It is more expensive than a PIC32MX470F512L but is considerably faster which opens the door for MMBasic to handle additional applications where speed was previously an issue.

The STM32F4DISCOVERY board is very cheap and will make a good place to start for anyone who wants to play with the ARMmite without developing a dedicated board. However, for true embedded applications we need to look to Grogster to layout a proper chip carrier.

The STM32F4 range of chips are capable of much more than will ever be supported from Basic such as the many of the things darthmite identifies. These will only be usable by individuals modifying the code in C to make them work for specific applications. They will never be embedded in Basic as many of them depend on external hardware such as external memory and Cfunctions will not be able to support them.

Thus far I have done all of the work porting the Micromite code - basically for my own education and amusement, just two other people are actively working on contributing to the port in specific areas. The codeset that results will be very different from the PIC code although the core Basic language elements and structure are of course maintained.

This means that if, for example, Geoff implements SD card handling on the MX470, there will be little or nothing of that work transportable to the STM.

I haven't yet discussed with Geoff how/if we take this forward. Currently it is something to keep me amused until the weather warms up enough for me to continue working on my main retirement project


 
OA47

Guru

Joined: 11/04/2012
Location: Australia
Posts: 1000
Posted: 11:03pm 05 Mar 2015
Copy link to clipboard 
Print this post

Come on Peter,
You left us in suspense as the link did not work.
This one might:
Peters Project
www.tailwindbuild.blogspot.com Edited by Graeme Meager 2015-03-07
 
BobD

Guru

Joined: 07/12/2011
Location: Australia
Posts: 935
Posted: 11:07pm 05 Mar 2015
Copy link to clipboard 
Print this post

It worked OK from Peter's email but not the web site.Edited by BobD 2015-03-07
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10400
Posted: 11:23pm 05 Mar 2015
Copy link to clipboard 
Print this post

For some reason the hyperlink button isn't working properly today.

Details of my main retirement project are on: www.tailwindbuild.blogspot.com
 
Zonker

Guru

Joined: 18/08/2012
Location: United States
Posts: 772
Posted: 01:00am 06 Mar 2015
Copy link to clipboard 
Print this post

Sweet Matherp..!

I didn't know you were an airplane Guy...! Awesome... Right in the middle of a NICE GA build... Yes I know... This project WILL consume your time..! GO FOR IT..! I have built 2 Ultralights in the past, so I know how things go...

Keep working on your dream machine brother..!!
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3303
Posted: 01:33am 06 Mar 2015
Copy link to clipboard 
Print this post

First off Peter, I believe that you and your (small) team have done a tremendous job. You have jumped many hurdles with seemingly ease.

My view is that you should get it to some stage which could be called complete. This might not include some of the more complex features such as CFunctions but would have (say) 95% of the functionality. Then just release the firmware (hex file) to everyone.

With something to play with people will start using it practical ways and you will get plenty of comments and bug reports. Assuming that none of the bugs are fatal you can accumulate them and return to the project some months later. If you are anything like me you would have also thought of any number of tweaks and improvements in the intervening time and these could also be incorporated into the second version.

This is how the Maximite/Micromite has progressed. The first version of MMBasic (V1.1) only had the PIN command/function - no serial, no I2C, no PWM, etc. Over time these features and more were suggested (or written) by forum members and the feature set grew into what it is today.

Apart from the feature set I believe that the project needs one more thing to be ready for prime time, this is the documentation (which obviously I think is important). Without proper documentation you will only get a couple of dedicated experimenters using it and it needs more than that.

So, my recommendation is get it to a stable state for the STM32F407VGT6 and let the wider world have a play with it. You can always add more features later.

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

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9641
Posted: 02:03am 06 Mar 2015
Copy link to clipboard 
Print this post

  matherp said  The STM32F4DISCOVERY board is very cheap and will make a good place to start for anyone who wants to play with the ARMmite without developing a dedicated board. However, for true embedded applications we need to look to Grogster to layout a proper chip carrier.


I can design a layout, if you want. PM me your thoughts on this, if you would like to proceed. I would expect that this would probably be the 100-pin job to do over the 100-pin 470 chip.


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

Joined: 31/12/2012
Location: New Zealand
Posts: 2447
Posted: 02:52am 06 Mar 2015
Copy link to clipboard 
Print this post

a question: does the STM32F407VGT6 have the necessary hardware present (SPI channels, etc) to drive a VGA monitor in the same way that a maximite does? in that case, could it be a point at which micromite and maximite branches of mmbasic merge? please excuse me if this has been discussed before - i've only been lightly following things of late.

just a thought,
rob :-)Edited by robert.rozee 2015-03-07
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3303
Posted: 03:52am 06 Mar 2015
Copy link to clipboard 
Print this post

  robert.rozee said   a question: does the STM32F407VGT6 have the necessary hardware present (SPI channels, etc) to drive a VGA monitor in the same way that a maximite does?

This requires framed SPI and to my knowledge the STM32 does not have it. Without this feature the video would jitter on the screen and this was one of the reasons why I chose the PIC32 for the original Maximite.

Geoff
Geoff Graham - http://geoffg.net
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10400
Posted: 03:59am 06 Mar 2015
Copy link to clipboard 
Print this post

  Quote   does the STM32F407VGT6 have the necessary hardware present (SPI channels, etc) t


No - The Maximite uses a very specific feature of Microchips's implementation of SPI to do this. The STM does not support this feature (framed SPI)

Also, the pinout I'm developing does not allow for multiple SPI ports to be allocated to video
 
kiiid

Guru

Joined: 11/05/2013
Location: United Kingdom
Posts: 671
Posted: 04:07am 06 Mar 2015
Copy link to clipboard 
Print this post

A while ago I had a plan for a small module with STM32F427 which is essentially a pin-compatible upgrade of 407, but I got carried away with other ideas and never manufactured it.
I have placed the entire Altium project it on my server for free download in case anyone wants it for something useful and I am happy to support it to some extent if necessary.
It is not exactly a hobby style board with its 4 layers with microvias and 0201 components :) but there are many PCBA factories that can handle those with no problem. At least the size of 25x25mm is quite decent...

Download link

http://rittle.org

--------------
 
darthmite

Senior Member

Joined: 20/11/2011
Location: France
Posts: 240
Posted: 07:35am 06 Mar 2015
Copy link to clipboard 
Print this post

  Geoffg said  
  robert.rozee said   a question: does the STM32F407VGT6 have the necessary hardware present (SPI channels, etc) to drive a VGA monitor in the same way that a maximite does?

This requires framed SPI and to my knowledge the STM32 does not have it. Without this feature the video would jitter on the screen and this was one of the reasons why I chose the PIC32 for the original Maximite.

Geoff


Well , i myself have do VGA in 320 x 240 8bits colours directly with a st407 board.
It was not bad up to a point where the CPU get too much to compute.
One of my old video show the problem.
old video st407 VGA in 256 colours
Or st407 capability demo in VGA :
st407 VGA Demo
After this project that was considered from me as a ... Fail ... the st429 appear and
i was curious to see if the dma2d and ltdc internally fitted in the chip for LCD can be useful for VGA ...
Answer is ... yes
VGA in 16 bits colour from 320 x 240 to 640 x 480 (800x600 was not stable) is not a
problem for this chip.
Some video here :
st429 VGA 1st test
and here ...
VGA + other hardware demo on st429
You just need a simple R2R Dac to get this results , it was my now discontinued
project from last year.
As you will see , something is needed with all this hardware ... it's named .. mmBasic

Cheers.


Edited by darthmite 2015-03-07
Theory is when we know everything but nothing work ...
Practice is when everything work but no one know why ;)
 
micronut
Newbie

Joined: 03/09/2014
Location: United States
Posts: 37
Posted: 08:30am 06 Mar 2015
Copy link to clipboard 
Print this post

Where next?

How about porting MicroMite Basic to a Sam3X Arm chip. Why? This chip is in the Arduino Due, which I have. If this is done then you could use most of the shields out there. You could also add Ethernet and SD functions for those shields. Also it has a Master USB that could be used with many devices.
 
darthmite

Senior Member

Joined: 20/11/2011
Location: France
Posts: 240
Posted: 09:57am 06 Mar 2015
Copy link to clipboard 
Print this post

Tell me if I'm wrong but as i know Sam3X is a cortex M3 MCU , here we do it on
Cortex M4 and ...next ... probably Cortex M7
Sam3X is like PIC32MX it just have 4 more Mhz , here is no win in perf that
some here are in need (168Mhz for st407 , 180 on st429 , 200 on future st7xx).
The real next , i think that it can be the 'real' Maximite into a ST or 'other Cortex M4' , so we can have the real and original Geoff work into a better chip.
Actually the project is based on micromite.
And if it's just for the Arduino Due , i think it's not really challenging to made one.
But before the 'next' we have to made the 'now' at 100%

Cheers.


Theory is when we know everything but nothing work ...
Practice is when everything work but no one know why ;)
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9641
Posted: 03:36pm 06 Mar 2015
Copy link to clipboard 
Print this post

@ darthmite - Those VGA demos are stunning. I think I am in love.

Based on what you obviously know about VGA on these chips, do you think it is something that could be natively included into MMBASIC control?

What about the MMBASIC interpreter overhead?
Would that affect the VGA speed much?

Perhaps there could be some kind of option - I know, I know - Geoff is loathe to add even more options, but OPTION VGA ON or OPTION VGA OFF would pre-configure certain pins on the 407 chip for VGA use, and the "Off" option would just leave them as I/O or whatever they were originally going to be.

Depending on a few factors, PERHAPS this beast is the way forward for Geoff for the Maximite III concept?

Geoff - what are your thoughts on this?

Assuming that we would probably lose some of the 407's memory to the video requirements, and perhaps a little more if a filesystem for an SD card was to be added, but it looks like the 407 has plenty of grunt in this department.

Thoughts?
Opinions?
Smoke makes things work. When the smoke gets out, it stops!
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10400
Posted: 10:39pm 06 Mar 2015
Copy link to clipboard 
Print this post

Grogster

Do we really want to stick with VGA as the output device?

Once the STM port is slightly more complete my idea is to integrate my screen driving routines into Basic itself. This way they would be available without having to load any Cfunctions.

You can't achieve high resolution VGA without having buffer memory equivalent to the screen size. So for example to get 1024x768 with 256 colours requires 768K of buffer memory. As the STM32F4 have a maximum of 256K this means you need external memory which is what darthmite uses to buffer the displays in his demo.

If we want to do similar without external memory (i.e. without building up a "real" computer) then the display itself should have its own buffer which the various TFT displays do. This then frees up the processor memory for our use and keeps us in "single chip" territory.

The 429DISCOVERY board includes a 64Mbit SDRAM chip external to the processor. This allows it to use DMA to update its onboard screen but again takes us completely out of single chip territory which is why I'm focussing on the 407 as the optimum target for the ARMmite.



Edited by matherp 2015-03-08
 
darthmite

Senior Member

Joined: 20/11/2011
Location: France
Posts: 240
Posted: 11:04pm 06 Mar 2015
Copy link to clipboard 
Print this post

@ Grogster The micromite (Pic32 or ARM version is more mean as a little
stand-alone chip we can put in everything with no or very less external component.
On the st407 with VGA i have need 320 x 240 bytes = 76800 bytes
  Quote  What about the MMBASIC interpreter overhead?

Now put the whole micromite behind the video system will not be realistic if you
like that something run smoothly.
  Quote  
Would that affect the VGA speed much?

Here you go with the st429 that is exactly the chip who do it in background
It will not affect the speed because the picture is pushed out with the dma2d.
Anyway , for get the best out of this project , micromite = st407 , maximite = st429.

Cheers.

Theory is when we know everything but nothing work ...
Practice is when everything work but no one know why ;)
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9641
Posted: 11:31pm 06 Mar 2015
Copy link to clipboard 
Print this post

Perhaps we can get an HDMI output.

I hear you, guys, and matherp - I love your TFT routines, and the demos are great.
My only problem with these, is that I have not yet found a screen which is big enough.

Even the 10-inch iPad's are really too small for a mimic-panel for a security system, which is what I need them for, and with VGA or Composite on a flat-panel TV or VGA monitor, it allows nice big text that can be seen from across the room easily.

THIS is why I am still obsessed with VGA.

However, if a big enough TFT comes along, I would go that way.
I have to be honest and admit that I have not tried the 7-inch sized screens you can get, which matherp himself linked me to in a PM, so I might get one of those, and play with it on the 470 first.
Smoke makes things work. When the smoke gets out, it stops!
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2447
Posted: 12:24am 07 Mar 2015
Copy link to clipboard 
Print this post

  Grogster said   Perhaps we can get an HDMI output.


the moment one considers HDMI there appears a brick-wall, in the form of the us$20 RPi model A+. there is little point designing hardware that costs more that the A+ yet is less 'able'. and by able i mean in terms of not just cpu speed and ram, but also power consumption and availability. not to forget that HDMI port that the A+ sports within the us$20 cost.

to me, it seems that a philosophical crossroads have been arrived at, where a whole load of factors come into play. at the forefront is the aesthetic appeal of the 170/470/695 as bare-bones single chip solutions. both micromite and maximite are currently incredibly elegant from the hardware perspective.

the 'ARM development board' directions seem to all move away from simplicity, while encouraging spiralling hardware costs. a big LCD screen is really cool, but it rapidly leads to a design that costs more than an off-the-shelf Android tablet.

i've also heard little mention of power budgets, which in my world are extremely important.


rob :-)Edited by robert.rozee 2015-03-08
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 4071
Posted: 01:18am 07 Mar 2015
Copy link to clipboard 
Print this post

Perhaps for the big screen / HDMI situations the thing to do is use a cheap device that does that and connect it to a 'mite. There are lots of very cheap devices that output HDMI, for example, some are cheaper than the cheapest RPi.

John
 
     Page 1 of 2    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025