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 : ArmmiteF407 V5.07.02 betas - Library - No Battery and more.
Page 1 of 7 | |||||
Author | Message | ||||
disco4now Guru Joined: 18/12/2014 Location: AustraliaPosts: 896 |
Armmite F4 5.07.02 Beta 0 - Release This release combines the recent performance updates from Peter (@matherp) and changes I have been adding to the ArmmiteF4 over some time, mainly to reduce dependence on the backup battery and to implement the Library.Also added commands so I could use Tom's (@thwill) unit testing code. Also includes various new functionality from the Picomites. Summary of key changes Peter included the hashed variable lookup which can make a huge improvement to performance (solar eclipse now 52 seconds - was 75 seconds) and various other bits of tuning (size and performance). Library implemented. The program memory is no longer cleared if the Options are not seen to be set/valid. This means the program will survive even if battery backup ram is lost. Embedded Options allow configuration to be restored if battery is lost. Additional LCD Panels supported. Option.Brightness can now be made permanent and defaults to 50% Command Line Buffer and Editor added as per Picomites. The Armmite F4 was pretty full is terms of both Flash and Ram for the firmware, room for the addition stuff has been achieved by some tiding up of code however a couple of things have had to go. What is lost The MATH(CHI and MATH(CHI_p functions are removed to recover space.They required a reasonable size data table to support them, so removing them frees up significant flash. FONT 5 changed from 24 x 32 Large font to 16 x 10 Picomite font which frees up significant flash. The original Font 5 will need to be loaded as a defined font if required.If loaded into the library will be about 9K of program space. Armmite F4 User Manual The Armmite F4 manual has been updated with details of all enhancements and contains some other improvement/corrections.(see change log section in the manual for list of changes.) The footer of each page has the page number on both the left and right margins so one will survive if the manual is printed and bound. RESETTING MMBASIC DON'T FORGET HOW TO DO THIS - It will save you when you think all is lost!!! MMBasic can be reset to its original configuration using the following method: Holding KEY 1 down, while applying power (or pressing the RST button). Using the RST in lieu of applying power does not always seem to work so applying power needs to be used if RST does not seem to be doing it. You can connect ground to PE3 pin if you find it difficult to hold the small button down. This will result in the program memory , saved variables and Library being completely erased and all options (security PIN, console baud rate, etc.) will be reset to their initial defaults. This includes setting the console to the USB. A following Key 0 down with a RST (or power up) will switch to the Serial Console if you are not using USB console. You will need to Reset MMBasic after you upgrade to the new firmware as commands have changed and updating the firmware will not explicitly delete the program memory. I have many times thought I have killed an Armmite F4 and resetting MMBasic fixed it. Firmware and Manual The attached zip contains the 5.07.02b0 firmware, the matching Armmite F4 User Manual and the updated ARMF4CFunction.h header file. ArmmiteF4_5.07.02betas.zip Armmite F4 Manual.pdf Source Code and License Geoff has agreed to open-source the firmware on Github with the same licensing as the PicoMite. I will post source on GitHub once I have updated all the source files with the appropriate headers. Testing Peter tested GUI, general performance and a disk soak test after his performance updates were applies to my copy of the source. I have tested stuff as I implemented it but over a long period so hopefully it all still works. I have not tested the SK6812 RGBW led, so not sure whether it works. Anyone that can run existing working code on the new firmware will help verify all is OK. PAGE,WS2812,LCD and HUMID will automatically be saved in their new forms. New or Changed features The program memory is no longer cleared if the Options are not seen to be set/valid. This means the program will survive if battery backup ram is lost. The OPTION SAVE command is implement to allow OPTIONS to be set in the program if required, as for the Micromites. This allows running without a backup battery. The WindBond CS pin is set based on Option.FLASH_CS at startup. This ensures the WindBond won't respond to SPI1 unless the CS is pulled low. The LIBRARY command has been implemented, it uses the WindBond as a secondary storage for the Library during editing or loading of programs, but the library is ultimately stored and run from the normal Program flash. Command History is implemented. The MEMORY command now shows the Backup RAM 4K separately from the Flash usage details. Addition Supported LCD Panels ILI9486_16 480*320 16 bit panel with 34 pin connector SSD1963_5ER_16 East Rising 5" added. Has RGB reversed ILI9488 SPI 480*320 GC9A01 SPI 240*240 round IPS display ST7789 SPI 240*240 IPS display ST7735 SPI 160*128 display ILI9431_I SPI inverse display ILI9481IPS 240*320 IPS display (not recommended,but if you already have one.) New or Changed Commands ------ All this from Peter 5.07.01 betas update --------- It also uses the hashed variable table to provide a good speed update (c33% improvement) Breaking changes: WS2812 command now BITBANG WS2812 LCD command now BITBANG LCD HUMID command now BITBANG HUMID BEZIER drawing command removed - Not removed for now PAGE command now GUI PAGE New: Support of SK2812W LEDs (RGBW) Support for CRC8, CRC16, and CRC32 math functions Support for BITBANG BITSTREAM MID command updated as per latest Pico beta OPTION ESCAPE Support for escape sequences in strings and data statements as per latest Pico beta MM.INFO(EXISTS FILE) MM.INFO(EXISTS DIR) MM.INFO(OPTION suboption) as per Pico OPTION ANGLE Support for * command to use as RUN Support for MM.CMDLINE$ as per Pico Support for MEMORY commands as per Pico (COPY, SET, PACK, UNPACK) ------------------------------------------------------------------------- ------- And these from my notes as I went along.- some duplicates of above ---. BACKLIGHT The backlight brightness is now set based on the Option.Brightness setting. It is now defaulted to 50%. The value stored in Option.Brightness is changed by an optional parameter on the BACKLIGHT command. BACKLIGHT percentage [,S|,R] The option S parameter will update the default value which is then used at any future restarts or power ups. The option R parameter will also set the default value which is then used at any future restarts or power ups, but will also indicate that the backlight is to produce the reverse order for brightness. i.e. 0-100 produces a 100-0 output. This can be used to correct the brightness progression where the backlight driver of a particular display expects a reverse pwm signal and would otherwise show 100% as OFF and 0% and ON. The Option.DefaultBrightness will show in Option List if any display is configured. LIBRARY Command implementation The LIBRARY command is now implemented. LIBRARY SAVE as per Micromite LIBRARY DELETE " LIBRARY LIST " LIBRARY LIST ALL LIBRARY CHECK For F4 only. Checks if library code exists and if it does sets Option.ProgFlashSize to point to the start of the library code. Allows recovery of library if the Options have been lost. MEMORY command shows detail of Library and Saved Variables. BITBANG command added BITBANG BITSTREAM added BITBANG WS2812 now controls single LED if required up to 256 BITBANG WS2812 [O|B|S|W], pin, nbr, value%[()] BITBANG WS2812 W, pin, nbr, value%[()] now supports SK6812 RGBW Leds BITBANG HUMID for old HUMID command BITBANG LCD for old LCD command GUI PAGE replaces PAGE command. PAGE,WS2812,LCD and HUMID still accepted but converted to new format when saved. WINDBOND FLASH The WindBond flash is hard wired to SPI1 so can respond to the SPI if it's CS pin is not pulled high. The CS pin is now initialised when MMBasic starts, its value is stored as Option.FLASH_CS , the default value is 35 for the VET6 board. The allowed values are 35, 77 (VET6 Mini) and 0 (don't initialise). It can be changed using OPTION FLASH_CS xx It will show in OPTION LIST if not the default value of 35. Pin 35 is also PWM 1C on the VET6, so this is unavailable on the VET6 board unless OPTION FLASH_CS is set to 0. On the VET6 Mini pin 77 is used as F_CS so PWM 1C is available. Pin 77 is KEYBD CLK so would prevents the Keyboard being used. The WindBond is 2M and 68K can now be used by MMBasic, 64K as a scratch pad for the library code and 4K as a backup for the 4K of saved vars. SDCARD Error Messages Updated OPTION LCDPANEL CONSOLE now supported on SPI LCD PANELS that allow read from the panel.These don't have hardware scrolling so will be very slow. PEEK restrictions remove to all reading of registers (should be adjusted?) POKE allowed for SPI registers etc i.e. PEEKRANGE adjusted POKE DISPLAY cmd,data,data,.. Added as per Picomite POKE DISPLAY HRES,hres Added as per Picomite POKE DISPLAY VRES,vres Added as per Picomite MATH (CRC8,CRC16,CRC32 .... ) function added as per Picomite EXECUTE command added CALL subname$ added ? CALL functionname$ added SETTICK PAUSE ,target,[nbr] Added as per Picomite SETTICK RESUME,target,[nbr] Added as per Picomite VAR FSAVE -added Copies the 4K of battery backup ram to the WindBond flash. VAR FRESTORE -added Restores the save vars from the WindBond flash to the 4K of battery backup ram. OPTION SAVE and Running without Battery Startup and Reset Quick Reference MM.INFO is allowed and is alias for MM.INFO$ - now can return integer or string as required. MM.INFO$(LCDPANEL) MM.INFO(RESTART) MM.INFO(HEIGHT) MM.INFO(WIDTH) Command History. A 1K Command Line Buffer and Editor has been implemented. There are no programmable function keys, however F5 is configured to send the clear screen sequence to the VT100 terminal. F2,F3,F4,F10,F11,F12 are as per the Picomite. Enhancements when using LCDPANEL as CONSOLE Command Buffer and editing also available. FONT command does not now change the Prompt Font when OPTION LCDPANEL CONSOLE is enabled. Use OPTION LCDPANEL CONSOLE font to change the Prompt Font used by the console. LIST filename added As per Picomite RUN ShortCut * added As per Picomite RUN,parameter now set MM.CMDLINE$ as per Picomite INTERRUPT [myint] Command --cmd_csubinterrupt(void){ SETPIN pin, CIN [,option] options 1-5 implemented on count pins. Count pins call CSub CFuncInt1-4 if the exist as implement for Picomites. ON KEY asciicode,target variant added as per picomite and H7 Size of ERRMSGMAX increased to 64 to match CMM2 (from 32)so error messages can be longer. OPTION ESCAPE to allow escaping when entering special characters added. MID$ command enhanced to allow variable length replacements. SETTICK PAUSE, myint [,tickno] -Added SETTICK RESUME, myint [,tickno] -Added AUTOSAVE can now be terminated by entering Control-Z or F1 which will then cause the received data to be transferred into program memory overwriting the previous program. Use F2 to exit and immediately run the program.i.e. as per Picomites. GUI ACTIVATE for TextBox now allows accepts # and works with GUI Interrupt enabled. OPTION LIST now includes Device and MMBasic Version as first line of printout. Enhanced READ command -The command can now take arrays as a parameter. Enhanced RESTORE command -The command can now take a variable as a parameter. READ SAVE and READ RESTORE added as per PicoMite. CFUNCTION and END CFUNCTION added. Issues Resolved Fixed reporting the line of an error when goto/gosub to a line number is used. Fixed issue where ERROR in subroutine called by Interrupt appears in calling line (as fixed in CMM2) Fixed issue with ON ERROR when calling GOSUB with invalid label. (@Thwill reported) Fixed issue with ON ERROR when calling Function with wrong type. (@Thwill reported) LONGSTRING TRIM now allows 0 to LLen(a%()) to allow full buffer to be trimmed LONGSTRING RESIZE fixed as per CMM2 Picomite Fixed issue in GPS receipt (from Picomite) where the first read of GPS(DATE) may give an incorrect answer. Fixed PEEK(SHORT ...) - was returning WORD GUI SWITCH touch response corrected as per other platforms Hope you have not put those ArmmiteF4 boards back in there shoe boxes! Latest F4 Latest H7 |
||||
phil99 Guru Joined: 11/02/2018 Location: AustraliaPosts: 2129 |
This is excellent. Many thanks to you and Peter for all the work that you have put into the F4 project. |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 3148 |
Excellent indeed. The F4 is a great platform--very good news for it to get updates, and even better news that MMBasic now has an additional developer/maintainer. I've successfully tested a version of VegiPete's CrateAway for the F4 with the 800x480 IPS LCD. I tried several other of VegiPete's games which I had converted for the F4, but I was apparently using them with a keyboard, and they aren't handling the arrow keys properly for running from TeraTerm. I'll look into what it would take to support those. One issue so far: rgb(grey) was supported previously, but I had to change that to rgb(gray). PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 6756 |
Wow.... You've been a busy lad! The F4 is a lovely board for MMBasic. It's great to see it getting some TLC again. :) Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 3148 |
If there's ongoing development on the F4 and there's room, any chance of getting BLIT WRITE to support mirroring like SPRITE SHOW on the CMM2? This would be particularly useful on the F4 since there's so much less memory on the F4 than the CMM2 for supporting SPRITEs/BLIT objects. PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9080 |
Gerry Welcome to the developers club. You post a new release with massive enhancements and superb documentation and the first thing that happens is a request for MORE |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 3148 |
No, the first thing that happens (at least in this case) is that someone responds to his request: I ran existing code, a version of VegiPete's CrateAway configured for the 800x480 IPS display--which worked. In finding the thread about that code I saw that I had noted then (April of 2021) that BLIT WRITE didn't allow you to mirror a sprite, as the CMM2 did, and that was also an issue which I had encountered earlier today with Martin H.'s PicoMiteVGA PI*Bert program, in trying to get it to run on the PicoMite with an LCD. I'll continue to try running existing F4 programs on the new release, and will continue to express my appreciation of the work which the developers have done to give us the terrific (and, it appears ever-growing) MMBasic system. ~ Edited 2023-08-22 08:59 by lizby PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
palcal Guru Joined: 12/10/2011 Location: AustraliaPosts: 1873 |
Well done, looking foreward to playing. BUT I'm having trouble downloading the Manual. I get the PDF when I click the link but when I try to download all seems ok but I only get the first 8 pages and a lot of pages with a little square in the middle. "It is better to be ignorant and ask a stupid question than to be plain Stupid and not ask at all" |
||||
Chopperp Guru Joined: 03/01/2018 Location: AustraliaPosts: 1057 |
I had the same problem. I did a Print as PDF from the browser copy. That worked Brian Edited 2023-08-22 16:29 by Chopperp ChopperP |
||||
palcal Guru Joined: 12/10/2011 Location: AustraliaPosts: 1873 |
@ Chopperp, I couldn't find 'Print as PDF' still can't download it. "It is better to be ignorant and ask a stupid question than to be plain Stupid and not ask at all" |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9080 |
Manual downloaded fine for me so I've zipped it up and attach below if this helps 2023-08-21_204736_Armmite F4 Manual.zip |
||||
Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 6756 |
The manual downloaded fine here, opened straight into Edge. Everything's there. Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
phil99 Guru Joined: 11/02/2018 Location: AustraliaPosts: 2129 |
@palcal In the browser PDF viewer the download icon is next to the Print icon, top right. Or if you right-click in the text area the pop-up list includes "Save as PDF". |
||||
circuit Senior Member Joined: 10/01/2016 Location: United KingdomPosts: 243 |
Quite simply, Christmas has come early! This is fantastic - a million thanks. I am absolutely delighted (and somewhat in ecstatic disbelief) that the two things that I requested in the thread with Peter have appeared; operation without battery backup and the LIBRARY. I am cancelling my activities for the rest of the day and bringing my F4 boards out of store; I bought ten of them when the price was right and this new firmware has made them an excellent investment. |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 3148 |
For me, the manual shows perfectly in the Chrome browser, but when I save it and open it with Acrobat, I get the problem palcal describes. I downloaded MatherP's file, and it is the same in Acrobat: PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9080 |
Seems to be an Acrobat issue. Reads in Firefox, Edge, and perfectly with Foxit |
||||
JohnS Guru Joined: 18/11/2011 Location: United KingdomPosts: 3797 |
Downloaded OK for me & read OK too. John (on Linux) |
||||
disco4now Guru Joined: 18/12/2014 Location: AustraliaPosts: 896 |
There does seem to issues around the command/functions/options area. I think it is some hidden frames in the word document that are causing problems when I use NovaPDF to build the PDF. I am looking at it now. Latest F4 Latest H7 |
||||
disco4now Guru Joined: 18/12/2014 Location: AustraliaPosts: 896 |
OK see if these are better. Armmite F4 Manual.pdf Armmite F4 Manual.zip Latest F4 Latest H7 |
||||
morgs67 Regular Member Joined: 10/07/2019 Location: AustraliaPosts: 75 |
There seems to be a problem with the links between the items in the index pages at the front of the document and the paragraphs or page number. Works properly in the initial opening in a browser but any method of saving that saves all the pages correctly removes the links. Tony M edit -still same with the two new above Edited 2023-08-22 23:05 by morgs67 |
||||
Page 1 of 7 |
Print this page |