Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 09:02 24 Sep 2020 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 F4 - alternate ?

     Page 1 of 2    
Author Message
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 405
Posted: 08:11am 03 Aug 2020
Copy link to clipboard 
Print this post

I stumbled upon this one:

Smaller F4 board

There is no LCD interface, the RTC battery must be wired external.
The 44 pin headers have the IO pins arranged identical to the board I am using now, but the power pins are at different location.





I have ordered one, and will test if MMBasic runs on it.

Volhout

P.S. haven't found schematics yet, so not sure it works...
If nothing goes right ... turn left
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 883
Posted: 11:41am 03 Aug 2020
Copy link to clipboard 
Print this post

Interested to know what you find out. The STM32F407VE is the 100-pin 512KB version; the STM32F407VG is the 100-pin 1MB version.
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 405
Posted: 11:11am 06 Aug 2020
Copy link to clipboard 
Print this post

I finally found readable schematics (on the micropython github site).
It looks possible to put Peter's code on it.
However.....

The original F4 board has a 16 bit parallel drive LCD. The IO pins (occupying most of port D and port E) will not be accessible with the original F4 software.

So the only benefit for this board is that it is physically smaller.

Differences:

- W25Q16 flash chip select on pin PA15 (versus PB0 on F4)
- BOOT1 fixed to GND (that is fine)
- A LED connected to PA1 (versus 2 LEDs at PA6 and PA7 on F4)
- SPI LCD connection at SPI2 (versus 16 bit paralle LCD on port D and E at F4)
- KEY0 and KEY1 are missing
- no battery holder
- pinout GPIO connectors different (especially GND/Vref/5V/3.3V pins)

Is it worth to pursue..?
At 6 dollar, it is 4 dollar cheaper than the F4 board. If you need to attach an LCD, buy the original one. If you don't, you would need a special Armmite version to get access to the port D and port E pins.

I will report if Peter's code run's on it, once I get the board.

Schematics

STM32F407VX_M_schematics.pdf
If nothing goes right ... turn left
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 1638
Posted: 01:01pm 06 Aug 2020
Copy link to clipboard 
Print this post

it does look very comparable to the pic32MX470 - that is the exproler64/100 micromite+. except the potential for double the flash (if VGT processor fitted), 50%  more RAM, and a whole lot cheaper as it is assembled in china. and as a bonus you seem to get 2Mbytes of spare flash in the form of an onboard w25q16.

i wonder how long the supply of these boards will last? this is always the problem with anything like this from china; while there may be ample supply today, next month the product could disappear, or be replaced by something subtlety different.

what would be really neat would be having a version of mmbasic for the F4 that is completely generic wrt PCB layout (apart from the USB console connection), which you could then fully configure for the actual peripherals on the PCB and pins available to the user. ie, a super-OPTION command where you can turn on/off the availability of pins according to what is exposed to solder pads, etc.

perhaps something like:
OPTION PORT A|B|C... mask
and/or
OPTION MAP m, n
(where m is a chip pin number, and n is a PCB pad number)

this would create a level of incompatibility between basic programs that use IO pins, but that may be a worthwhile tradeoff for being able to use just about any PCB variant as long as it has the same processor soldered in place.

just an idea - and unfortunately a great deal of work! it could well be something for the too-hard or not-worthwhile basket.


cheers,
rob   :-)
Edited 2020-08-06 23:05 by robert.rozee
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 883
Posted: 01:36pm 06 Aug 2020
Copy link to clipboard 
Print this post

I've ordered 2 of these to test. I will be happy with just the smaller size if the LCD pins cannot be freed up. Too bad there's no on-board battery.

There is an 8-pin LCD connector. It has the same pins as the 9-pin ILI9341 (not in the same order), except for the SPI CLK pin, so I don't know how that's supposed to work. Perhaps there is a purpose-fitted LCD as with the bigger F4 board.

How is firmware flashed to this board?

Thanks for those notes and the schematics.
Edited 2020-08-06 23:38 by lizby
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 405
Posted: 02:29pm 06 Aug 2020
Copy link to clipboard 
Print this post

I expect the firmware can be flashed identical to the F4 board (see thread "programming the Armmite F4" from Peter Mather.

Only the BOOT1 jumper cannot be changed, since it is not present on this board. But analyzing what Peter describes, and looking at the schematics of the original F4 board, BOOT1 is low in both cases (program and run). And this board has a pulldown at BOOT1, so that is perfect.

Of coarse you need to put the BOOT0 jumper (J1 pin 1-2) while programming.
And remove it in RUN mode (running MMBasic).

The W25Q16 writing uses SPI (it is written in MMBasic code I saw) and can easily be changed to the new chipselect pin.

It should simply work.

Given Peters strict answer to similar questions in the Armmite F4 thread, he is not fond of offering a Armmite F4 version without LCD support (meaning, you will not get access to the freed up pins on this board). I even got the idea that his preference would be to focus mainly on the H7 (the F4 kind of overlaps with the MMX and is only cheaper) and the L4 (the low power aspect). And now the CMM2 of coarse, that is consuming all of his time.
If nothing goes right ... turn left
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 405
Posted: 05:38pm 15 Aug 2020
Copy link to clipboard 
Print this post

Bad luck

Today I received my smaller STM32F407VET6 board (the DevEbox board).
With a jumper I connected J1 pin 1 and 2 and got the board to boot in DFU mode.
Witch the Cube programmer, I could write the ArmmiteF4.bin file, it programmed, and verified OK.

Then I removed the jumper, and ....nada....nothing.

It did not enumerate on my windows machine (same as my 'defective' Armmite F4 board).
Then I tried the first version Peter made (that one ran on my earlier defective board...it ran..kind of). Nada.

Tried a linux machine, and with 'lsusb' noticed it did not enumerate at all.

So I am out of luck.
It is either defective, similar to the old one.
Or it does not boot Peter's code because it does not have the LCD wiring on this board.

1- I will do an extra check on the schematics, to see if there is some wiring difference that may be critical.
2- I will (when time permits) to see if I can build micropython (there is a custom version for this DevEbox board) and check it that boots.
3- I may try the version with serial port, and see if that one works.

Not sure what to try first...maybe 3-

Worst case, there is $6,00 down the drain....
If nothing goes right ... turn left
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 405
Posted: 07:13pm 15 Aug 2020
Copy link to clipboard 
Print this post

1 - Extra check on schematics:

By adding a resistor 1.5k between the USB D+ line and 3.3V the board starts USB. This was a difference between the original, and this DevEbox board.

The Windows PC recognizes the board, but the message is "windows does not recognize it". That is exactly the behaviour of the earlier boards. In device manager: Device descriptor request failed".

Meaning: when you are lucky your board works, when not ... no solution, as I spend many evenings to get the old board working. no luck..
If nothing goes right ... turn left
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 405
Posted: 11:27am 17 Aug 2020
Copy link to clipboard 
Print this post

After one whole evening of trying to make it work:

- increase Vcap capacitors
- faster reset (add pullup and even vary)
- external 8MHz clock
- switch in 1.5k pullup at B+ after startup, not direct from 3.3V
- trying serial port version of MMBasic...

I fried the board (*). It does not even want to go back into DFU mode.

End of this experiment.....

Volhout

(*) just by soldering to these small 0402 capacitors and resistors you tend to damage the part itself (the board is still okay, but the parts break). In my work, this never happens (or very rare), but these cheap chinese board are very vulnerable. Looks like the components are lower quality (at least the once I destroyed..:(...)
If nothing goes right ... turn left
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 883
Posted: 09:45pm 24 Aug 2020
Copy link to clipboard 
Print this post

I got my STM32F407VGT6 1MB modules--like you ordered but with 1MB. I flashed the latest F4 firmware with STM32CubeProgrammer, and as you found, did not get USB enumerated.

I then reflashed with the 2019-05-25_191158_ArmmiteF4.zip firmware with console enabled (third page here: https://www.thebackshed.com/forum/ViewTopic.php?TID=11334&P=3 ), connected a CH340 USB/serial module to PA9 and PA10 at 38400 baud and got nothing, but I pushed the reset button maybe 5 times, and eh, voila:






I put the benchmark.bas file on the SD card and ran it and got this:

> run "benchmark.bas"
Maximite Benchmark tests

Benchmark 1
0.011

Benchmark 2
0.079

Benchmark 3
0.14

Benchmark 4
0.149

Benchmark 5
0.249

Benchmark 6
0.354

Benchmark 7
0.528

Benchmark 8
0.257
>

So it works. I'll test further. It's a nifty little module--amazingly inexpensive for something this fast, with this many pins, and with an SD card.

Once the fun dies down with the CMM2, I wonder it if might be possible to 1) update the latest firmware to use the serial console, 2) see about getting the normal flash to have the USB enumerated, 3) allow use of the full 1MB memory, and 4) recover the reserved pins for the display which isn't on this module.

I will have a play with the TFT pins. It does have spi clock. The schematic has RS where the board has D/C. What it lacks is RESET, but I think a software reset is possible.

Thanks, Volhout, for bringing this module up. Sorry you couldn't get yours running.
Edited 2020-08-25 07:57 by lizby
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 883
Posted: 04:10pm 25 Aug 2020
Copy link to clipboard 
Print this post

I ran Paul_L's ta.bas benchmark from Is This Thing Fast Enough? and added it as F4mini:

              i5  celeron   CMM2     MMX     MMX ARMMITE ARMMITE     MM+     MM+     MM2
             5GHz   2GHz          252MHz  200MHz      F4  F4mini  120MHz  100MHz Explore28
1 empty loop   266    844    1176    5109    6477    7083    7524   13532   16257  218620
2  read file  7047  19219  109740  170491  202206  190500  360407  491706  565035
3 write file  2891   8203  126305  189127  189466  221530  220821  325843  365102
4   mid$(x$)  1906   6125   24451   51147   64282  108169  101634  119408  143456 2402620
5    val(x$)  1391   4157   11555   26971   33824   51852   49796   70604   84823 1247490

I don't know what the speed is for either of the F4s. I added the Explore-28 MM2 speeds, omitting the file operations which aren't inherently available.

Not too shabby for a $7 module.
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 883
Posted: 06:24pm 25 Aug 2020
Copy link to clipboard 
Print this post

Well, perplexing. I appear to have lost it. In fiddling with the ILI9341 I did OPTION LCDPANEL DISABLE and then set it to something which didn't work (nothing appeared on the screen (I had made an adapter)). I did a fair amount of other stuff on the device, including power cycles, and then tried to reset the TFT.

This time, OPTION LCDPANEL DISABLE gave me "Error: invalid pin".  So I decided to reflash and try again from the beginning--also with the serial console firmware. It flashed without a problem, but now I can't get the MMBasic splash and prompt, no matter how many RESETs or other stuff I try.

I reflashed to the latest F4 firmware and got no USB, and reflashed again to the serial console version. No Joy.

I don't know how I got lucky the first time, and I can't reproduce it. Too bad, because it was looking pretty good, and running fine with everything I tried.
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 405
Posted: 10:22am 26 Aug 2020
Copy link to clipboard 
Print this post

Strange, sounds a bit like my unit. I know accidents happen unexpected, but I did my experiments in a pretty well controlled environment (ESD mats and such), and still succeeded to fry the unit.

Now you have similar strange behaviour. Maybe there is something wrong with these chips. or with the PCB itself.
You may try to cool (fridge) the unit and power up. Or heat it and try.

If that works you know the unit is unreliable, and unless you can find the problem (can also be in the silicon) you better throw it away.

Volhout
If nothing goes right ... turn left
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 883
Posted: 11:50pm 26 Aug 2020
Copy link to clipboard 
Print this post

I flashed my second one of these with the serial console version. Works fine. I soldered two pins to a CR1220 battery holder and a 2-pin socket to B1, and the built-in RTC works.

I had previously made a PCB to break out the F4 pins. There were no traces from one side to the other, so I just cut the center out of a blank one, soldered connectors, and plugged them in. As Volhout had noted, the pins are (almost) the same except that the power pins have been moved to the opposite end of the rows (and VR- and VR+ have gone away, but my PCB didn't use anything below them anyway). I used flying leads to provide 3V3 and 0V to where my board expected them.

Now I have serial console out from my PCB, 6 DS18B20s being read on 1,4,5,16,17,18, and 4 LEDs flashing on 95,96,97,98.

I'm afraid to try the ILI9341 again even though I won't repeat exactly what I did the first time (and I think I have a better idea of how to define the pins). What I did produced an error when I tried OPTION LCDPANEL DISABLE, but I still had the ">" prompt. When I reflashed, I couldn't get the prompt back.

I don't understand how flashing the same MMBasic version a second time could have caused the module to stop working, but I'm worried to try on the module that is working now. On the other hand, these modules won't do anybody any good if they can't be reflashed.
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 405
Posted: 06:59am 27 Aug 2020
Copy link to clipboard 
Print this post

Hi lizby,

Is there a date code on the chip ? Maybe these cheap chinees boards are manufactured using a batch ST dumped ?
If nothing goes right ... turn left
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 883
Posted: 03:17pm 27 Aug 2020
Copy link to clipboard 
Print this post

Here's what the chip looks like, but I don't know what it might tell me:


 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 2151
Posted: 05:58pm 27 Aug 2020
Copy link to clipboard 
Print this post

Ouch - that's a VGT i.e. STM32F407VGT6 but the Armmite is for the VET6.

Er, I haven't looked the differences up!

John
Edited 2020-08-28 03:59 by JohnS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 3869
Posted: 06:19pm 27 Aug 2020
Copy link to clipboard 
Print this post

VG version is fine - just twice the FLASH. However there is something very suspicious about the pricing of these chips. Check this out and compare with a unit price of $10.51 from ST direct in volumes up to 500. The pricing of the VET board seems more possible - cheaper chip on a board that sells for more and made in huge volumes
Edited 2020-08-28 04:20 by matherp
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 883
Posted: 06:30pm 27 Aug 2020
Copy link to clipboard 
Print this post

  matherp said  Check this out

Interesting. 10 for 3 Pounds. But how does the F4 board we have been using sell for $9 if the STM32F4VET6 chip sells for over $10?

It's too bad this doesn't "just work"--it's nice and compact, and aside from the issue with USB enumeration and possibly re-flashing, it seems to function with everything I've tried.
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 2151
Posted: 06:39pm 27 Aug 2020
Copy link to clipboard 
Print this post

I think the CPUs are what were left after some production run.

But they could be ones that failed some ST tests and then got smuggled out.

(Add your own theory...)

John
 
     Page 1 of 2    
Print this page
© JAQ Software 2020