![]() |
Forum Index : Microcontroller and PC projects : ARMmite - where next?
Page 1 of 2 ![]() ![]() |
|||||
Author | Message | ||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10400 |
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: AustraliaPosts: 1000 |
Come on Peter, You left us in suspense as the link did not work. This one might: Peters Project www.tailwindbuild.blogspot.com |
||||
BobD![]() Guru ![]() Joined: 07/12/2011 Location: AustraliaPosts: 935 |
It worked OK from Peter's email but not the web site. |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10400 |
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 StatesPosts: 772 |
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: AustraliaPosts: 3303 |
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 ZealandPosts: 9641 |
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 ZealandPosts: 2447 |
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 :-) |
||||
Geoffg![]() Guru ![]() Joined: 06/06/2011 Location: AustraliaPosts: 3303 |
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 KingdomPosts: 10400 |
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 KingdomPosts: 671 |
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: FrancePosts: 240 |
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. 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 StatesPosts: 37 |
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: FrancePosts: 240 |
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 ZealandPosts: 9641 |
@ 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 KingdomPosts: 10400 |
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. |
||||
darthmite![]() Senior Member ![]() Joined: 20/11/2011 Location: FrancePosts: 240 |
@ 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 ![]() Now put the whole micromite behind the video system will not be realistic if you like that something run smoothly. 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 ZealandPosts: 9641 |
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 ZealandPosts: 2447 |
![]() ![]() 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 :-) |
||||
JohnS Guru ![]() Joined: 18/11/2011 Location: United KingdomPosts: 4071 |
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 ![]() ![]() |
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |