Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 14:53 04 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 : ArmmiteF4 User Manual

     Page 3 of 4    
Author Message
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3017
Posted: 01:52am 16 May 2021
Copy link to clipboard 
Print this post

Manual says this: "BLIT WRITE will copy the memory buffer '#b' to the display. The
destination coordinate is 'x' and 'y' using the width/height of the buffer."

But it appears (with ARMmite MMBasic Version 5.07.00b12, firmware dated April 11) that BLIT WRITE still requires the width and height of buffer area, unlike on the CMM2. The previous F4 manual showed this. Was an update to the firmware intended (or did I miss it)?

(Incidentally (or not) on the F4, preprocessing or the program editor changes SPRITE SHOW to BLIT SHOW, which is illegal; it would be better if it changed it to BLIT WRITE. (And maybe dropped any page parameter.)
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 844
Posted: 03:55am 22 May 2021
Copy link to clipboard 
Print this post

Draft 3 of the Armmite F4 Manual.
Should include all corrections identified previously plus other refinements.

The hyperlinks in the contents should work and by clicking go directly to the section. The contents are also available as bookmarks to allow easy navigation.

Armmite F4 Manual.pdf


Regards
Gerry

Just a note to record the Options used to export to PDF from word2016 so that bookmarks are created


Edited 2021-05-22 16:28 by disco4now
Latest F4 Latest H7
 
Chopperp

Guru

Joined: 03/01/2018
Location: Australia
Posts: 1032
Posted: 07:00am 22 May 2021
Copy link to clipboard 
Print this post

Excellent work Gerry.
ChopperP
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 5735
Posted: 07:16am 22 May 2021
Copy link to clipboard 
Print this post

Luvverly stuff, Gerry. :)  Thanks!
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3017
Posted: 12:12pm 22 May 2021
Copy link to clipboard 
Print this post

Thanks very much for this. This is a very valuable resource.

Still (and sorry) . . .

"BLIT READ [#]b, x, y, w, h[,pagenumber] Set the pagenumber to FRAMEBUFFER to read from the framebuffer -- see the FRAMEBUFFER command"

I searched for FRAMEBUFFER and these are the only occurrences, so I think "[,pagenumber]" is a holdover from the CMM2.
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
Chopperp

Guru

Joined: 03/01/2018
Location: Australia
Posts: 1032
Posted: 12:17pm 24 May 2021
Copy link to clipboard 
Print this post

Hi Gerry

I couldn't find any reference in the F4 manual to MM.BACKUP & RTC Memory refered to from matherp about 2/3 of the page down here

This was a while ago now so some things may have changed.

Brian
ChopperP
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 844
Posted: 01:13pm 24 May 2021
Copy link to clipboard 
Print this post

  Quote  I couldn't find any reference in the F4 manual to MM.BACKUP & RTC Memory refered to from matherp about 2/3 of the page down here


They are not use from 5.07 onwards. This RTC memory is now used for storing the OPTIONS (80 Bytes) and VAR SAVE variables (4K). This freed up flash for the enhancements in 5.07


  Quote  "BLIT READ [#]b, x, y, w, h[,pagenumber] Set the pagenumber to FRAMEBUFFER to read from the framebuffer -- see the FRAMEBUFFER command"


Has been updated for next release/draft. no reference to pagenumber or Frambuffer.
BLIT READ [#]b, x, y, w, h  is correct syntax

Gerry
Edited 2021-05-25 09:08 by disco4now
Latest F4 Latest H7
 
Chopperp

Guru

Joined: 03/01/2018
Location: Australia
Posts: 1032
Posted: 07:03am 25 May 2021
Copy link to clipboard 
Print this post

Re-read Peter's first post on the F4 update thread....

  Quote   As a result LOAD and SAVE NVM have been removed as has function MM.BACKUP.

I missed that bit.

I use MM.BACKUP with one of my F4's. Will obviously need to do some major changes to the program before I get around to updating the firmware.
ChopperP
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 5913
Posted: 07:07am 28 May 2021
Copy link to clipboard 
Print this post

TIMER function
  Quote  Returns the elapsed time in milliseconds (eg, 1/1000 of a second) since reset.
This is a fractional floating point number with a resolution of 1uS.


The resolution is actually only 1mS, not uS
Hopefully, the firmware can be changed to match the manual!

Jim
VK7JH
MMedit   MMBasic Help
 
flasherror
Senior Member

Joined: 07/01/2019
Location: United States
Posts: 159
Posted: 04:16pm 28 May 2021
Copy link to clipboard 
Print this post

Gerry,

I have partially read Draft 3 and have some comments.

Page 10 - "Typically, it will execute a program at up to 90,00 lines per second". Should be 90,000?
Page 21 - Should include baud rate for USB console since this is the first section on USB console. I think default rate is 38400 not 115200?
Page 22 - "Switching to Serial Console" section mentions that default serial baud rate is 115200 but not sure this is correct. I think it's 38400 when I tested with 5.05.08
Page 24 - "Using Serial Console via a USB Serial Converter" mentions that default serial baud rate is 115200. I am connected at 38400 with 5.07.00b12 right after flashing firmware. Also baud rate references on Pages 25,26
Page 31 (Board versions table) discrete misspelled
Page 32 - Are serial (COM) port pins 5V tolerant? How about I2C? 5V tolerance should be discussed somewhere, saves having to refer to datasheet. Maybe add to Page 27 onwards?
Page 180 - Highlight/bold "Do not do anything at this point" section because in a bad piece of UI design the STM32 Cube programmer prints "Download completed" message before it verifies it. First time I flashed I unplugged the board after I saw the message because I assumed it was displayed after verification.

Also the following are my suggestions:
1. On Win7 for using the USB console, this requires STMicroelectronics Virtual COM Port drivers to be installed. (This driver is separate from the drivers installed with STM32 Cube Programmer software)
Virtual COM Port drivers at www.st.com/en/development-tools/stsw-stm32102.html
This could be added to Pages 21, 25, 181

2. Some older firmware versions do not support LIST COMMANDS and LIST FUNCTIONS. I believe Version 5.07.00b12 does but 5.05.08 doesn't. (Page 131)

Overall the manual so far is fantastic and I hope these help improve it!
Edited 2021-05-29 02:33 by flasherror
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3017
Posted: 04:39pm 28 May 2021
Copy link to clipboard 
Print this post

  [ said  QUOTE=flasherrorPage 21 - Should include baud rate for USB console since this is the first section on USB console. I think default rate is 38400 not 115200?
...

I think anything between 38400 and at least 115200 will work. I don't have to switch to 38400 after flashing.
  Quote  Page 32 - Are serial (COM) port pins 5V tolerant? How about I2C? 5V tolerance should be discussed somewhere, saves having to refer to datasheet. Maybe add to Page 27 onwards?

I believe all available digital pins are 5V tolerant. DAC1 and DAC2 are not. PC13, PC14, PC15 exhibit some squirreliness--best avoided.
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
circuit
Senior Member

Joined: 10/01/2016
Location: United Kingdom
Posts: 231
Posted: 07:20pm 28 May 2021
Copy link to clipboard 
Print this post

When printed, (yes, I do print all the MM manuals) the table on page 11 splits overleaf to page 12 without column headers (Micromite Family).  This is not so much of problem if the pages were facing pages, but they print overleaf.  The table appears to fit on a single page so may I suggest doing a page split immediately after the text on Page 11, leaving a much more readable table on page 12.  Alternatively, place column headers on the remnant of the table.  

Overall, congratulations on a most excellent and very welcome resource.  I look forward very much to printing and binding the definitive edition.
 
flasherror
Senior Member

Joined: 07/01/2019
Location: United States
Posts: 159
Posted: 01:37am 29 May 2021
Copy link to clipboard 
Print this post

  lizby said  
I think anything between 38400 and at least 115200 will work. I don't have to switch to 38400 after flashing.


Hmmm...
The MMBasic boot message is displayed automatically on reset and does not wait on a keypress before it is sent, so the firmware cannot be doing auto-baud detection. Are you sure you didn't change your baud rate setting to 115200 after first boot?
In another thread here [discussing ARMmite L4 (not F4)] Peter mentioned the baud rate is 38400, so I assume it might be the same thing with F4 firmware?
Not sure why I'm seeing a different default baud rate unless there are multiple firmware versions with different default baud rate settings.
Edited 2021-05-29 11:41 by flasherror
 
flasherror
Senior Member

Joined: 07/01/2019
Location: United States
Posts: 159
Posted: 08:15pm 29 May 2021
Copy link to clipboard 
Print this post

Something to discuss and possibly include:

Possible warning for powering board via external 5V and using USB console:



On V33 PCB R25 was NOT a fuse (as shown on schematic) but 0 ohm resistor.
This is a potential issue if board is externally powered (external 5V supply) and USB connected for USB console!
PCB should have had Schottky diode to isolate USB 5V power from PCB 5V supply rail? (This is a similar issue for STM "Blue Pill" boards that was fixed in "Black Pill" revisions)
Any suggestions for dealing with this?
1. Remove R25 - but means that board cannot be powered by USB
2. Remove R25 and solder a Schottky diode in its place (anyone have a part # that will fit here?)
3. Use USB isolator?
4. Forget about USB console and use Serial Console on 4-pin USART1 header. This would avoid having to modify the board but will require USB to serial converter.
Edited 2021-05-30 06:57 by flasherror
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 5913
Posted: 09:43pm 29 May 2021
Copy link to clipboard 
Print this post

  TassyJim said  TIMER function
  Quote  Returns the elapsed time in milliseconds (eg, 1/1000 of a second) since reset.
This is a fractional floating point number with a resolution of 1uS.


The resolution is actually only 1mS, not uS
Hopefully, the firmware can be changed to match the manual!

Jim

Firmware now matches the manual!

Jim
VK7JH
MMedit   MMBasic Help
 
flasherror
Senior Member

Joined: 07/01/2019
Location: United States
Posts: 159
Posted: 11:36pm 29 May 2021
Copy link to clipboard 
Print this post

  flasherror said  

Possible warning for powering board via external 5V and using USB console:


Nuts... After I posted I found that the issue is mostly discussed on Page 22 of Draft 3. However I would include Option 4 (use serial console instead of USB console if powering the board using external 5V power) in this section as I think it might be the easiest option.
Edited 2021-05-30 09:37 by flasherror
 
flasherror
Senior Member

Joined: 07/01/2019
Location: United States
Posts: 159
Posted: 01:50am 31 May 2021
Copy link to clipboard 
Print this post

Sorry if I'm posting a lot, but I happen to be exploring the ARMmite F4 at the moment. I thought I would share some more comments which might be useful in the manual.

Link the following useful documents:
General board info (for V2.0 but current v3.3 boards might be the same?)
https://stm32-base.org/boards/STM32F407VET6-STM32-F4VE-V2.0
Useful pinout diagrams
https://os.mbed.com/users/hudakz/code/STM32F407VET6_Hello/shortlog/

Suggestions for LCD display sections

Some pins on J2 (PE7 to PE15) are also used for the FSMC connector and cannot be used by MMBasic regardless whether LCD is connected. This means that these pins can't be used for LCD RESET, DC, CS or touch controller pins. If you do you'll get a "Pin is Invalid" message when doing OPTION LCDPANEL command (see next)

For display configurable pins (e.g. RESET, DC) you will get an error if attempting to use an invalid pin:
>OPTION LCDPANEL ILI9341, LANDSCAPE, PE15, PE13
Error : Pin | is invalid
(PE13/15 are invalid pins)

Also, PC13/14/15 are not recommended for general IO use (potential SD card corruption?)

Compare SPI connected display speeds with parallel displays (Circles per second)
My ILI9341 SPI display does approx 55 circles per second
Don't have a parallel display so can't check

Add use of CLS with RGB easy color specifier
cls(rgb(yellow))
clears screen with Yellow color
I found yellow, green, blue, red, white, gray to be valid - are there any more?

For ILI9341 2.8 (same one shown on P47), do you really need a LED backlight resistor if not using PWM to control the backlight? That is, can you directly connect LED pin to 5V. The schematics look like the LED has a 3.9 ohm resistor so no external resistor might be necessary? (despite what P48 of Draft 3 says)
Edited 2021-05-31 11:57 by flasherror
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 5913
Posted: 02:35am 31 May 2021
Copy link to clipboard 
Print this post

I can't answer your other questions but check the RGB() function for the available colour shortcuts.
  Quote  'shortcut' allows common colours to be specified by naming them. The
colours that can be named are white, black, blue, green, cyan, red, magenta,
yellow, brown and gray. For example, RGB(red) or RGB(cyan).


Jim
VK7JH
MMedit   MMBasic Help
 
flasherror
Senior Member

Joined: 07/01/2019
Location: United States
Posts: 159
Posted: 02:41pm 31 May 2021
Copy link to clipboard 
Print this post

  flasherror said  
For ILI9341 2.8 (same one shown on P47), do you really need a LED backlight resistor if not using PWM to control the backlight? That is, can you directly connect LED pin to 5V. The schematics look like the LED has a 3.9 ohm resistor so no external resistor might be necessary? (despite what P48 of Draft 3 says)


I did some investigating for my 2.8" SPI display (labelled 2.8 TFT SPI 240x320 V1.2). This is the one (red board display) that is pictured on the Armmite F4 manual.


The above is a photo of v1.1 but it looks the same as V1.2

I think there may be a difference in backlight driver between previous V1.0 PCB revisions and newer ones.

The only schematic I can find shows that the LED (anode) pin connects to the relevant display pin through a 3.9 ohm resistor. I do not actually have a V1.0 or V1.1 display PCB to check so I presume this is for pre-V1.1 displays. See image below:



But, for V1.2 of this display board, the LED pin drives a transistor which in turn drives the backlight through a 8.2 ohm resistor. This means that since the LED pin drives a transistor (with its own 1K base drive resistor) there does not need to be a current limiting resistor for the LED pin for V1.2 displays. Of course the presence of a resistor would not hurt anything but if I'm right V1.2 doesn't need the external resistor. Also, the backlight would probably be able to be driven directly from an I/O pin, no external driver transistor needed. See PCB image below (had to break out the digital microscope for this one):




The original Micromite manual and Armmite F4 manuals indicate that this resistor is required, but this might have been because the earlier display version required one.
The change in LED backlight circuitry means that V1.2 Backlight LED Anode voltage seems to from the VCC pin (haven't traced the circuit). Not sure if backlight will operate brightly if display is powered from 3.3V (and jumper J1 is shorted to bypass the onboard 3.3V regulator)

I cannot find a schematic for V1.2 of this board, anyone have one? I would like to confirm the backlight circuit in V1.2 displays.
Edited 2021-06-01 00:46 by flasherror
 
flasherror
Senior Member

Joined: 07/01/2019
Location: United States
Posts: 159
Posted: 02:06pm 04 Jun 2021
Copy link to clipboard 
Print this post

1. I think there is an incorrect reference to ST7735 displays in F4 Manual (Draft 3).
The OPTION LCDPANEL command section on P110 does not list ST7735 display as an option, but on P69 ST7735 is mentioned:
"MMBasic will automatically translate all colours to the format required by the individual display controller
which, in the case of the ILI9341, ST7735 and ILI9163 controllers, is 65K colours in the 565 format"


2. Is it possible to use ST7735 SPI displays with ARMmite F4?
Edited 2021-06-05 00:12 by flasherror
 
     Page 3 of 4    
Print this page
© JAQ Software 2024