Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 12:42 07 Oct 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 : ArmmiteFH743 V5.08.00 Beta Releases

Author Message
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 1028
Posted: 11:02am 14 Aug 2025
Copy link to clipboard 
Print this post

Armmite H743 5.08.00 Beta Releases
For referenece the previous Armmite H743 5.07.02  thread is here

This update will erase any program and reset the Options.
This update enhances the allocation of heap memory as per the Picomites,system memory is now allocated from the bottom up and does not have to search past memory  allocated to variables from top down. This can offer significant performance improvement when many variables are used.
Function INKEY$ changed so it automatically resolves Function and special keys sequences to a single char as per picomites and CMM2.
CAN support added.
Many other additions and fixes mostly derived from recent Picomite development as covered in next post. Any command changes are included in the updated manual.

Armmite H7 User Manual
Armmite H7 Firmware  on GitHub
CFunctions Header File (ARMH7CFunctions.h)
Source Code on  GitHub
FotS Armmite H7

The links above will always point to the latest Manual, Firmware, Source and a FotS page dedicated to the ARMmiteH743 version. 

Footnotes in this first post will be used to reference further updates as required.

Footnote added 2025-08-21 16:30 by disco4now
Beta 1 update
The above links now all point to Armmite H743 5.08.00b1
F4 H7FotSF4xGT
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 1028
Posted: 11:04am 14 Aug 2025
Copy link to clipboard 
Print this post

Armmite H7 5.08.00 Beta 0 - Details
This firmware will cause a full reset of MMBasic as it has some additional commands.
The Program and Library areas will be cleared and Options set to default.
Please report any issues with any of your existing programs.

Conversion of existing programs
BASE$([2,8,16],n) commands will automatically be convert to appropriate BIN$,OCT$,HEX$ when saved.
CLEAR VARS will automatically convert to ERASE when saved.
BITBANG becomes DEVICE, automatically converted when saved.
Any MM.INFO(various..) are kept as is and work as usual. Convert to MM.xxx as you please.

The changes
The allocation of heap memory is enhanced so memory required to execute commands, SUBs and Functions is allocated from the bottom up and does not have to search past memory previously allocated to variables from top down. This can offer significant performance improvement when many variables are allocated.

Function Inkey$ changed so it automatically resolves Function and special keys
sequences to a single char as per picomites and CMM2.
INKEY$() function now internally in the firmware calls the MMInkey(); function in lieu of the getConsole(); function. This now aligns across the Picomites, CMM2, ARMmiteF4 and ARMmiteH7. The Micomites call the getConsole(); internally.
The call to MMInkey(); will resolve any supported escape sequences sent by a VT100 terminal to a single ascii character as detailed in the manual Appendix J.
Previously to detect Function keys etc which send an escape sequence you would have to make your own arrangements to recognise the ESC character and then decode the following escape sequence. Any current program doing this will need to be adjusted to recognise the appropriate single ascii character for the key.
If you really want to access the raw characters use the INPUT$() function which still calls getConsole(); when a filenmr of ) is used. e.g. char$=INPUT$(100,#0)

Firmware now uses FLASH BANK0 Sector 1. Previously this was skipped for OPTIONs but OPTIONs are actually in FLASH BANK1
The address of the CallTable is now 0x080004A0 in lieu of 0x080402A0.
The ARMH7CFunctions.h file used for CSUBs is updated to match this.

CAN [OPEN|CLOSE|START|STOP|FILTER|SEND|READ] commands added
SYNC [period][,units] command added
MATH PID command and function added.
BYVAL and BYREF qualifiers added to SUB and FUNCTION definitions.
PWM will set output pin to OC(Open Collector/Drain) if frequency given as -ve number.
PWM fixed issue where a frequency change was not recorded, so returning to the original frequency did not result in an update.

Support for LCD Display ST7796S 480*320 SPI
OPTION LCDPANEL accepts [,INVERT] to invert colours on ILI9341 and ILI9488

MEMORY command Fixed issue where it erased saved variables.

Functions MM.HRES, MM.VRES, MM.VER, M.I2C, MM.FONTHEIGHT, MM.FONTWIDTH, MM.HPOS, MM.VPOS, MM.ONEWIRE, MM.Errno, MM.ErrMsg$, MM.WATCHDOG, MM.DEVICE$,MM.WIDTH,MM.HEIGHT
are now all implemented as written and none of them are converted to MM.INFO calls by the pre-processor
MM.DISPLAY added, indicates whether a OPTION LCDPANEL CONSOLE is used.
MM.CMDLINE$ is now a function and does not need to create a variable.

All pins can now optionally be set using the port syntax (PA0-PG15)
MM.INFO(PINNO port) added. returns the pin number.

MM.INFO(NBRPINS) added, returns number of pins (100/144)
MM.INFO(OPTION VCC) added returns current value for VCC
MM.INFO$(ID)  Returns the unique hex 12 byte ID of the Armmite chip as a string.
MM.INFO(ID48) Returns a 48bit hash of the ID as an integer. Not guaranteed unique world wide but most likely unique for a hobbyist. Suitable as a serial no. for the device and at 6 bytes fits inside a CAN message.
MM.INFO(HEAP) added
MM.INFO(BOOT) will return the reason for the last MMBasic Restart.
“Power On”, ”Reset Switch”, “MMBasic Reset”, ”CPU RESTART”, “Watchdog”, “EXECUTE Timout” or “HEAP Restart”.
These could be written to a log file in MM.STARTUP to see the history of an unattended device.

OPTION CONSOLE [BOTH|SCREEN|SERIAL|NONE] added
OPTION NOCHECK [ON|OFF] added.

MATH C_ADD etc commands that act on cells added as per picomites.
MATH SHIFT added  as per picomites
MATH WINDOW added as per picomites
MEMORY PACK/UNPACK added.
MEMORY PRINT/INPUT added

MATH M_MULT Fix for not  giving correct results.
MATH M_MULT Improved as per Pico RC5
MATH M_PRINT Improved as per Pico RC5
MATH V_PRINT array() [,hex] 'outputs the contents in hex
MATH command accepts either C_MUL or C_MULT. (as per Picomite)
LINE command enhanced. LW given as -LW will set LW in all directions
LINE AA command added as per picomites
LINE GRAPH command added as per picomites
LINE PLOT command added as per picomites
MATH CROSSING() added
LIBRARY RESTORE will restore any existing library after OPTION RESET provided no explicit LIBRARY DELETE has been given.
LIBRARY SAVE future proofed for 16bit tokens.

I2C READ allows >255 chars if INT or Float array used.(as per Picomite)

CommandLine Buffer automatic OVR mode on right arrow removed.

USBKeyBoard:
Fixed issue where USBKeyBoard did not connect reliably.
Console message now given when USB Keyboard is either Connected or Disconnected.
Added delay in USBKeyboard handling of CAPS/NUM/SCROLL Lock to improve operation of LEDs on some keyboards. see https://www.thebackshed.com/forum/ViewTopic.php?TID=17037
USBKeyboard mappings corrected so that SHIFT+(F1-F12) resolve to correct codes
i.e. 0xB1- 0xBC in lieu of 0xD1-0xDC. See Manual Appendix J

INSTR fixed when an expression is used as the index to an array as the first parameter (as per picomite RC9)

Comments are no longer tokenised as per Picomites.
SORT command extra sort option
LINSTR Fixes bug in changing the regular expression if a variable.

SHIFT F3-F8 Added as per picomite 6.00.02B0
//NB: SHIFT F1, F2, F9, F10, F11, and F12 don't appear to generate anything

ADC START now accepts additional parameters as per the Picomites that allow mapping of the the output data to a desired range.
ADC TRIGGER now allows a timeout value to be set. 'timeout' is the number of ADC samples to take before abandoning the wait for the trigger condition. Setting a value equal to the frequency of the sampling would give a timeout of 1 second.
ADC TRIGGER,channel,level[,timeout]

LONGSTRING PRINT allows ; to suppress CRLF
PIN("TEMP") adjusted to calculate using correct value of 130 degrees for REV V chips.

BITBANG becomes DEVICE as per picomite latest release.(automatically converted)
DEVICE BITSTREAM
DEVICE LCD
DEVICE HUMID
DEVICE WS2812

HEX$,BIN$ and OCT$ now restored. BASE$(2, etc accepted but automatically converted)
ERASE command restored. CLEAR VARS automatically converted

Automatic length adjustment for string constants.
Where a constant string is less that 16 characters no heap will be used. The data is stored within the pre-allocated table for the variable definitions.
String variables defined with a LENGTH of less than 16 (was previously < 8) are also stored within the variable definition and require no heap allocation.

@( function added. i.e. PRINT @(x,y[,m]) when outputting to the VT100 console or LCD

TEMPR(Pinno [,timeout]) 'new optional parameter timeout to override the default (200mSec) to allow for slow devices.
TEMPR START pinno [,resolution(0-3)] [,timeout]  'new optional  parameter timeout to override the default (100, 200, 400, or 800mSec) to allow for slow devices.
F4 H7FotSF4xGT
 
PhenixRising
Guru

Joined: 07/11/2023
Location: United Kingdom
Posts: 1568
Posted: 11:13am 14 Aug 2025
Copy link to clipboard 
Print this post

Oh, absolutely outstanding.

Heck, I just lost all focus on what I'm supposed to be doing  

Many, many thanks, Gerry    
 
darthvader
Regular Member

Joined: 31/01/2020
Location: France
Posts: 92
Posted: 11:40am 14 Aug 2025
Copy link to clipboard 
Print this post

Great work !!
Do you think that your firmware can be made compatible with this board ? :
STM32H747I DISCO

Here it's a all in one board , it start to be dusty on my desk  
Theory is when we know everything but nothing work ...
Practice is when everything work but no one know why ;)
 
PhenixRising
Guru

Joined: 07/11/2023
Location: United Kingdom
Posts: 1568
Posted: 12:02pm 14 Aug 2025
Copy link to clipboard 
Print this post

  darthvader said  Great work !!
Do you think that your firmware can be made compatible with this board ? :
STM32H747I DISCO

Here it's a all in one board , it start to be dusty on my desk  


Well they already named it "DISCO"  

Very nice but capacitive touch controller would need support(?)

I was also wondering about:


 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 4084
Posted: 10:40am 15 Aug 2025
Copy link to clipboard 
Print this post

Wow! A lot of changes!

John
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10453
Posted: 11:00am 15 Aug 2025
Copy link to clipboard 
Print this post

I was also wondering about:


Can't work - H750 only has minimal flash
Edited 2025-08-15 21:00 by matherp
 
BishopXXL
Newbie

Joined: 13/01/2019
Location: Germany
Posts: 37
Posted: 01:09pm 20 Aug 2025
Copy link to clipboard 
Print this post

Hi Gerry,

I was delighted to see your update of the ArmmiteFH743.
I'm a big fan of your work on the STM32 family.
Thank you so much for this!!! I hope more people will get excited about it.
I have five Nucleo modules from the 743/753 family here, both zi and zi2.
While testing, I got the idea to adapt my program for AES128 encryption.
In the manual, I read a note on page 181 :

LONGSTRING AES128 ENCRYPT/DECRYPT Encrypts or decrypts a long string

Can I find out more about this command somewhere, since I haven't been able to execute it yet?

Best regards, Thomas
 
PhenixRising
Guru

Joined: 07/11/2023
Location: United Kingdom
Posts: 1568
Posted: 01:37pm 20 Aug 2025
Copy link to clipboard 
Print this post

  BishopXXL said  Hi Gerry,

I was delighted to see your update of the ArmmiteFH743.
I'm a big fan of your work on the STM32 family.
Thank you so much for this!!! I hope more people will get excited about it.


   
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 1028
Posted: 11:16pm 20 Aug 2025
Copy link to clipboard 
Print this post

  BishopXXL said  Hi Gerry,
While testing, I got the idea to adapt my program for AES128 encryption.
In the manual, I read a note on page 181 :

LONGSTRING AES128 ENCRYPT/DECRYPT Encrypts or decrypts a long string

Can I find out more about this command somewhere, since I haven't been able to execute it yet?

Best regards, Thomas


Yes it is mentioned at page 118 of the manual.
It was a nice summary from the Picomite manual that I included, but alas no actual code was include in the firmware. So I only copied the manual , not the code !!!.
I will look at including in the next update.
Its good that you are doing some testing.
Regards
Gerry
F4 H7FotSF4xGT
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 1028
Posted: 06:41am 21 Aug 2025
Copy link to clipboard 
Print this post

Armmite H7 5.08.00 Beta 1 - Details
The links in the first post now point to Armmite H7 5.08.00 Beta 1.
MATH(BASE64 ENCODE/DECODE added
MATH AES128 ENCRYPT/DECRYPT added
LONGSTRING AES128 ENCRYPT/DECRYPT added
LONGSTRING BASE64 ENCODE/DECODE added

This post has some examples of using the commands.
AES128 examples here
Edited 2025-08-21 16:41 by disco4now
F4 H7FotSF4xGT
 
BishopXXL
Newbie

Joined: 13/01/2019
Location: Germany
Posts: 37
Posted: 01:37pm 21 Aug 2025
Copy link to clipboard 
Print this post

Hi Gerry,

WTF, you're so fast    
Thank you for your new version.
I just quickly tried out the AES128 "ECB."
It works as expected!!
I'll continue testing in the next few days.
I'm planning to build a PCB. A kind of PLC with RS485,
digital IO with galvanic isolation, ST7796S, SD card,
SSR, etc...  and 24 V input voltage and an STM32H753 ZIT6 or VIT6.
The difference is only €1.
The 753 should work with your firmware (currently running on my NUCLEO-H753ZI).
Yes, it's not exactly cheap at €15.38 each Chip.
Since I'm slowly approaching retirement, I also need something to play with after work.


 Thank you again for your support - Gerry

Thomas
Edited 2025-08-22 00:23 by BishopXXL
 
DigitalDreams
Newbie

Joined: 03/05/2025
Location: United Kingdom
Posts: 34
Posted: 09:38am 22 Aug 2025
Copy link to clipboard 
Print this post

When searching for info on the NUCLEO-H743ZI it is listed as discontinued and the NUCLEO-H753ZI is suggested as it's replacement !?. Is this 100% compatible with Armmite ??.

I'd also like to see an example of a NUCLEO-H753ZI connected to colour touch screen and keyboard etc. Are there any impressive examples with details ?. I expect the end result to be much more powerful than a Pico2 running PicoMite ?.
 
BishopXXL
Newbie

Joined: 13/01/2019
Location: Germany
Posts: 37
Posted: 12:22pm 22 Aug 2025
Copy link to clipboard 
Print this post

Hi DigitalDreams,

let's put it this way... there's a target audience for the Pico2 and one for the STM32 family.
Considering how much a Pico2 costs and what it does, it's easy to decide
which one to choose.
The situation is different if you want to do something in the industrial sector – I will put it cautiously.
I have been working in research and development for fire protection systems for 35 years.
There, we developed a new control panel with an STM32 as the processor core.
It always depends on the goal/project you want to achieve.
I'm also currently playing around with the NUCLEO board and have connected the SD card.
Next, I'll test the display. I'll let you know the results.
What led me to the STM32 was the required AES128 hardware encryption.
Yes, it looks like the H743 and H753 are compatible.
The H753 includes additional:

Security Features – The Main Difference

The STM32H753 offers additional hardware security features:
Crypto/Hash Hardware Acceleration (e.g., AES-128/192/256, GCM, CCM, Triple-DES, MD5, SHA-1, SHA-2),
Secure Firmware Install (SFI),
Secure Boot / Secure Firmware Update (SBSFU)

STMicroelectronics:
The STM32H743 does not have these advanced security features.

The H753 is pin-compatible with the H743.

So, I'm looking forward to Gerry continuing to develop his H7 project and surprising us with new enhancements!

Regards, Thomas
Edited 2025-08-22 22:24 by BishopXXL
 
DigitalDreams
Newbie

Joined: 03/05/2025
Location: United Kingdom
Posts: 34
Posted: 12:32pm 22 Aug 2025
Copy link to clipboard 
Print this post

  BishopXXL said  Hi DigitalDreams,

I'm also currently playing around with the NUCLEO board and have connected the SD card.
Next, I'll test the display. I'll let you know the results.

The H753 is pin-compatible with the H743.

So, I'm looking forward to Gerry continuing to develop his H7 project and surprising us with new enhancements!
Regards, Thomas


Thanks Thomas, looking forward to the results with a display on this beastie. I'm wondering what would be the best display to add to this (for speed, resolution, maybe touch etc). A quality small keyboard panel would be good to see too....

The encryption doesn't interest me but the core power vs Pico2 @378Mhz and digital/analogue connectivity coupled with a modified MMbasic does very much so.
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10453
Posted: 05:37pm 22 Aug 2025
Copy link to clipboard 
Print this post

There are quite a few demos of displays with the ArmmiteH7 on my youtube from 6-7 years ago

e.g.
https://www.youtube.com/watch?v=EJf4K9C444M

SSD1963 is my preferred display for the H7 and there is a breakout board I developed for the Nucleo that allows various displays to connect here

Search from the bottom up of page 2 of the thread for the final version of the gerbers
Edited 2025-08-23 04:26 by matherp
 
zeitfest
Guru

Joined: 31/07/2019
Location: Australia
Posts: 608
Posted: 11:49pm 22 Aug 2025
Copy link to clipboard 
Print this post

  Quote  MATH M_MULT Fix for not  giving correct results.


Was that a matrix-only bug? [I am thinking of trying a stm micro]
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 1028
Posted: 04:10am 24 Aug 2025
Copy link to clipboard 
Print this post

The specific MATH M_MULT bug fixed was (some matrix cells are not updated when b() and c() larger in size than a()).
Most of the bugs/improvements mentioned have been found during development/testing of the Picomites and where relevant have been ported to the H7 and F4 code.
F4 H7FotSF4xGT
 
Print this page


To reply to this topic, you need to log in.

The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025