Spark Logic

Is anyone interested in helping to make an Arduino Due which uses [edited:] a 100-pin STM32L471

lkcl Thu Sep 28, 2017 6:11 am

hi as i hinted at in the introduction hello here viewtopic.php?f=2&t=2629 i would like to (quickly) investigate the feasibility and viability of creating an Arduino Due compatible design which uses the 100-pin LQFP STM32F072V8T6.

the Reference Design from arduino.cc is in Eagle and is available publicly so it should be pretty straightforward and achievable. i’ve worked with the STM32F072 64-pin variant before so know what i’m doing, and love this particular series because it’s crystal-less and really really low cost. $1.66 in 10k volumes as opposed to (in the case of the ATSAM3X8E) more money than a quad-core 1.5ghz 64-bit ARM Cortex A53 processor can be bought for.

i’m aware that the 072 is only 48mhz: that’s absolutely fine for me, given that there’s a reasonable chance of hitting a BOM target that’s about the same as an 8-bit Arduino Mega 2560’s r3.

so the real question is: would anybody be interested in helping to do a feasibility study for the pinouts, help review the schematics and board designs (which i will continuously publish online – immediately – with each and every single modification made, because that’s what you do as a software libre and hardware designer) and so on.

even more than that, would anyone be interested to actually buy the resultant open hardware… or of course get it manufactured for themselves because it’s an open, libre project? the reason i ask that is, this is the arduino forum for stm32 boards… but the only boards i see which are arduino hardware-compliant are for the *uno* pinouts which was one of the very very early boards, and you only get a small range of pin-compatibility.

… and i would like to make a board that is FULLY compatible with the FULL pinout range of the *DUE*.

that would mean that people could use the FULL range of available Arduino-compatible shields in their projects.

Replies

lkcl Tue Oct 03, 2017 9:22 am

[ChrisMicro – Tue Oct 03, 2017 5:19 am] –
Hi lkcl,
there seems to be another STM32-DUE board:
https://www.seeedstudio.com/Arch-Max-v1.1-p-2632.html

oo good find chris – based on the 168mhz f407. includes ethernet, microsd, $40 for qty1 wow – $25 for 50 hm that gives you some indication of the BOM. they’ve not gone for proper pin-compatibility: only 8 ADC, no DAC… that’s a top-loading MicroSD card slot, very handy, i’ll take a look at that: top-loading MicroSD means no problems with positioning of the sd slot (push-push you might not be able to get the card out!) i have one reaaasonably-easy-to-get-at pin which could be used as CS without massive disruption to the current layout…

good find chris but zowee $25 even for 50. still, it’s a 168mhz MCU…

[edit/correction: zip archive contains the .brd file as well as the .sch file]

ag123 Tue Oct 03, 2017 1:31 pm

well shields were a fad, but if you aren’t too fussy about the pins and board layout, there are at least quite a few ‘competing’ stm32f407 boards making the rounds on ebay / aliexpress and various other places
https://www.ebay.com/sch/i.html?_nkw=stm32f407&_sacat=0

for some of those boards, volunteers here have helped to upload the schematics etc on the wiki here
http://wiki.stm32duino.com/index.php?ti … 4xx_boards

the idea is that after all these days, there are dupont wires
https://www.ebay.com/sch/i.html?_nkw=du … s&_sacat=0
that would overcome straitjacket fixed pins and board layouts demanded of shields

these days there are numerous breakout boards none of them fall along the lines of even the ever popular arduino uno form factor
https://www.ebay.com/sch/Business-Indus … w=breakout

and if one wants to connect any board to any breakouts, it’s either use a breadboard or ‘dupont wires’, and it forever frees one from the straitjacket notion of shields, shields will fall further behind as there are simply too many permutations of different boards to too many different permutations of breakout boards

lkcl Tue Oct 03, 2017 1:55 pm

ok chris so you’ll like this, i completely trashed the layout on the 417 and started again, this time following how they did it in that seedstudio max: in the top right corner. it’s a lot of work but i feel it’s important to do. it also gives me the opportunity to put in that MicroSD card slot (yay!), which, now that the centre’s clear i’ve put it to the right of…. yep you guessed it: the SPI port. it’s a cinch to route: 1mm tracks :)

lkcl Tue Oct 03, 2017 2:06 pm

[ag123 – Tue Oct 03, 2017 1:31 pm] –
well shields were a fad, but if you aren’t too fussy about the pins and board layout, there are at least quite a few ‘competing’ stm32f407 boards making the rounds on ebay / aliexpress and various other places
https://www.ebay.com/sch/i.html?_nkw=stm32f407&_sacat=0

yehh there’s actually a specific reason for making this board: i’m also doing something called the RD3D, which is a due-compatible 3D printing board, to which i will be porting RepRapFirmware. for that reason alone i need complete and full Due interoperability: power provision, voltage, main pinout functionality, everything.


for some of those boards, volunteers here have helped to upload the schematics etc on the wiki here
http://wiki.stm32duino.com/index.php?ti … 4xx_boards

nice!

i think, with the board proliferation, people are beginning to realise that you need some sort of standard headers, small ones. that’s sort-of happening for SPI in the arduino community: you can get shields with standard headers for WIFI and Ethernet for example.

other than that… yeah it’s a pain. but as roger just found out – and we’ve found out here, connecting up a different processor from which an original board was designed *specifically* around a particular processor, getting “interoperable” pinouts on 2-layer boards is… really *really* hard to do. that seed studio design actually had to go to 4mil tracks using the 407 for example.

so…. it doesn’t look like something that will be solved.. just have to live with it…

ag123 Tue Oct 03, 2017 8:49 pm

@lkcl
just 2 cents
i think what you are doing is really great and good effort for a board which fits the due ‘form factor’,

as in this thread
viewtopic.php?f=19&t=572&start=250#p34912

i’ve mentioned i actually bought this RAMPS-FD
http://www.ebay.com/itm/RAMPS-FD-32bit- … 2017526524
http://www.ebay.com/itm/GE-Pololu-Shiel … 2312531140

which would nicely fit as a due shield, it is a good thing really

however simply stm boards don’t just end with those ‘generic’ ebay boards
olmex https://www.olimex.com/Products/ARM/ST/
and ST themselves makes the nucleo and discovery boards as well
http://www.st.com/en/evaluation-tools/s … tId=LN1848
http://www.st.com/en/evaluation-tools/s … tId=LN1847

in addition, i start to see some parallels between these more ‘complex’ mcu boards in that they are somewhat ‘walking’ the path of where the present day pc has evolved and is still evolving
http://wccftech.com/amd-ryzen-am4-mothe … asus-x370/
some of the connectors are standardised, e.g the PCI, PCI-express slots, SATA hard drive cables and slots, drams slots are standardised so do things like SSD m2 slots etc, but the sheer number of pins and interfacing connections would make making a shield ‘madness’

then we can also take a look at the evolution of perhaps raspberry pi 3
https://www.raspberrypi.org/products/ra … 3-model-b/
and notably beagle bone black
https://beagleboard.org/black
https://beagleboard.org/black-wireless < a more recent evolution, keeping the connectors for ‘shields’
and even bigger ones intel nuc
http://nucblog.net/2017/02/kaby-lake-nu … -overview/

as the number of pins and peripherals intensify, serial interfaces are favoured e.g. usb, sata, pci-express, hdmi etc to reduce the pin counts
in a similar light SPI / i2c seemed favoured say vs discrete standalone interface with ‘simplier’ stepper drivers e.g. a4988
but that makes the stepper drivers literally ‘full blown’ mcus which interpret commands

then back to dupont wires, there is this nice video with innovative uses of ‘dupont wires’ (i think the video author is a member here)
https://www.youtube.com/watch?v=eI3fxTH6f6I

i noted/liked most the idea of ’empty shells’ (multiple pins), in effect that creates a means of new ‘standardised’ connections, this may encourage the peripheral boards e.g. the RAMPS shields to be organised instead into their modular groups of connectors e.g. the motor connectors, the endstops connectors, the FET (hot end) connectors, thermal sensors, auto leveling sensors etc. And the ’empty shells’ (multiple pins) concept may start to fit groups of different pins between the mcu boards and peripheral boards.
and i think even PC like cases may start to evolve for 3d printing between mcu boards and peripheral boards and as well to the peripherals
we may end up having the notion of ‘mix and match’ mcu boards and peripheral boards where groups of modular wires / cables connect between the boards

we may evolve towards a ‘modbus’ architecture
https://en.wikipedia.org/wiki/Modbus
http://www.simplymodbus.ca/FAQ.htm
in a sense we could think in terms of multiple ‘blue pills’ or ‘maple minis’ say hooked up over usb doing mod bus and each blue pill , maple mini connected to a modularised set of tasks, pheriperials

just some thoughts

lkcl Wed Oct 04, 2017 5:04 am

[ag123 – Tue Oct 03, 2017 8:49 pm] –
@lkcl
just 2 cents
i think what you are doing is really great and good effort for a board which fits the due ‘form factor’,

as in this thread
viewtopic.php?f=19&t=572&start=250#p34912

that’s really appreciated.


i’ve mentioned i actually bought this RAMPS-FD
http://www.ebay.com/itm/RAMPS-FD-32bit- … 2017526524
http://www.ebay.com/itm/GE-Pololu-Shiel … 2312531140

ooo ouch, you know the guy behind that stopped because the chinese company cloning them refused to stop selling faulty boards… faulty as in *design* faults?


which would nicely fit as a due shield, it is a good thing really

yehyeh, it.. *sigh* it would work well.. *if* it didn’t have a few niggles, you’ll no doubt be aware of them, they’re documented on the reprap wiki page

about the modular standardisation… you’ll like this: you’re talking to someone who spent about… 4 years refining a hardware standard, named EOMA68. four *years*! getting these things right is incredibly hard to do, and takes a hell of a lot of comprehensive research and consideration about exactly what it is you want to target. cost me about $USD 20,000 over that time… just in having to make the hard decision to throw away a working set of prototypes just because it’s ultra-ultra-important to get the *standard* right as opposed to “ship and sell product”.

examples of extremely good (complex, comprehensive) standards: PC-104 (the original one… which is basically an “AT 80286 computer”, but the absolute best one i’ve seen is COM-Express. now that’s a really good standard: absolutely nothing is “optional”, all speeds and functions are *hardware*-level-negotiated. USB bus: down-level compatible. PCIe: down-level compatible. SD/MMC: down-level compatible right the way from 8-bit all the way to SPI. *that’s* how you do a standard.

examples of absolutely piss-poor standards: Q-Seven, and the god-awful 96-boards. even the CEO, after i published a report slating their quotes open quotes standard which was basically dumped on a website – absolutely no invitation whatsoever to review it prior to finalisation – with the vague hope that people would use it, said “ohhh nooo problem, we can fix the standard in a later revision” MUPPET! no you can’t!! that just completely undermines confidence in the standard *even further*! the most broken thing about the 96-boards standard: no VREF… yet there’s a 1.8v VOUT. what the hell?? so you can’t rely *at all* on the CMOS voltage levels for any GPIO or any function, end result: you’re forced to include level-shifters on absolutely every single pin… and they want to make an arduino “converter” board?? wtf?? it’ll cost more than a frickin arduino to do it!

…. :)

lkcl Wed Oct 04, 2017 6:04 am

okaay this is looking waaaay better. not completed yet but still a vast improvement. with the extra space available i decided to start with the ADC lines, and surround them with GND VIAs and make sure there’s as much GND copper either above or below them. the 471 is in that top right corner (thanks for the top on that Max board, chris). it makes it far far shorter routing, but even so the ICSP (SPI) interface being in the way, the right edge connector is still a mess. still TODO, complete the routing on the PWM section. oh – you can see, i got the MicroSD card slot in. i think there’s like… one pin left spare on the whole chip!
Untitled1.jpg
Untitled1.jpg (175.71 KiB) Viewed 391 times

RogerClark Thu Oct 05, 2017 8:42 pm

[ag123 – Thu Oct 05, 2017 12:50 pm] –
EOMA68 is interesting indeed :D
http://rhombus-tech.net/

did you post this to the correct section?

lkcl Fri Oct 06, 2017 12:41 pm

[RogerClark – Thu Oct 05, 2017 8:42 pm] –

did you post this to the correct section?

he was responding to something i mentioned as background to what i’ve been doing (part of the reason i started this thread), apologies.

RogerClark Fri Oct 06, 2017 9:52 pm

no worries..

lkcl Sat Oct 07, 2017 2:10 am

ok so westfw has been helping out on the arduino.cc forum (you talked with him a lot on that huuuge maple thread which sparked the creation of stm32duino, roger). it’s looking really good. i also (thank you to the person who suggested it) swapped out the the through-hole switch for an SMT one from ALPS. almost ready i feel, to try a prototype!

ChrisMicro Sat Oct 07, 2017 4:36 am

to try a prototype!
That sounds interesting.

Meanwhile I was thinking back and forth what features could give the board more “added value” without increasing cost.

I know it is a little bit late, but this could probably considered for the next board:

Wireless connectivity could be useful: The STM32F407 black has a connector for the RFM24 where you can just plug in such a module. For a 3D-Printer user interface a connector for the ESP8266 could be useful.
( BLE ? )
An external EEPROM or FLASH can be useful.

lkcl Sat Oct 07, 2017 7:10 am

[ChrisMicro – Sat Oct 07, 2017 4:36 am] –
to try a prototype!
That sounds interesting.

Meanwhile I was thinking back and forth what features could give the board more “added value” without increasing cost.

I know it is a little bit late, but this could probably considered for the next board:

Wireless connectivity could be useful: The STM32F407 black has a connector for the RFM24 where you can just plug in such a module. For a 3D-Printer user interface a connector for the ESP8266 could be useful.
( BLE ? )
An external EEPROM or FLASH can be useful.

http://esp8266.github.io/Arduino/versio … digital-io

and a little more besides… all of which looks hellishly complicated for what should be a simple task of dropping on a header with 6 pins: SPI (3), CS (the last remaining free GPIO), GND and VCC. if it was straightforward i’d do it straight away. however it looks like it is an arduino-style project in its own right… and that tends to tell me that, really, i should leave it for now (so that people who *want* to choose a particular WIFI module can do so, and they’d enjoy the fun of that kind of research, exploring and solving a problem).

the other thing is, the ESP8266 has so many variants and is so flexible i don’t know where to start… or to guarantee what would actually be available. again, it comes down to standards: if there was a standard i’d do it immediately.

… some of these things are very frustrating on full investigation they’re great ideas… like when westfw suggested using an MCU instead of the CH340G. the thing is, the CH340G is about a $0.50 solution for USB-UART, so any MCU including XTAL would have to be.. $0.60 or less to be in the running.

*sigh* :)

lkcl Mon Oct 09, 2017 12:29 am

okaaay so a couple of things, i discovered by accident two processors, one the STM32F070 and the other the STM32L49x range.

the TSSOP-20 STM32F070 is as cheap as nuts: BOM-wise it’s on the level of the CH340G + 12mhz XTAL + SOT23-5 inverter buffer… so out that all goes and in comes the STM32F070, yay!

Untitled1.jpg
Untitled1.jpg (38.2 KiB) Viewed 384 times

david.prentice Mon Oct 09, 2017 7:46 am

Surely you can compare different STM32 chips by buying the relevant Nucleo or Discovery boards.

You are either going to aim for lowest cost or best performance.
In practice, you settle on a reasonable compromise.

Personally, I like to have Arduino headers and accessible male pins. The Nucleo-64 and Nucleo-144 designs are excellent for experiments, development. The Nucleo boards are cheap and widely available. You will find it difficult to compete on price, support or convenience.

If you want a Due-compatible there are several choices for target MCU. I don’t think the Chinese Due clones have enormous sales. An STM32 version would be even less. You need large sales to reduce the manufacturing cost to get anywhere near Due-clone or genuine Nucleo.

David.

lkcl Mon Oct 09, 2017 11:40 pm

[david.prentice – Mon Oct 09, 2017 7:46 am] –
Surely you can compare different STM32 chips by buying the relevant Nucleo or Discovery boards.

nice idea, too slow though. i’m based in Taiwan: i’d had to wait several weeks for the boards to arrive from overseas, in batches, then get to programming them. we did it a different way: just trusted the datasheets and online specs.


You are either going to aim for lowest cost or best performance.
In practice, you settle on a reasonable compromise.

well, we did quite an evaluation of the STML471 (thank you to everyone here early in this discussion), looking for something that had comparable performance and features to the Due, but also was commonly available enough to be under half the price of a Due (in Shenzhen pricing, not Western pricing). the STML49x for example is *double* ST’s price (!).


Personally, I like to have Arduino headers and accessible male pins. The Nucleo-64 and Nucleo-144 designs are excellent for experiments, development. The Nucleo boards are cheap and widely available. You will find it difficult to compete on price, support or convenience.

If you want a Due-compatible there are several choices for target MCU. I don’t think the Chinese Due clones have enormous sales.

no they don’t. there’s a number of possible explanations for that.

An STM32 version would be even less.

we’ll see. i’m going to take some prototypes along to Shenzhen Maker Faire 2017, which is on the 10th-12th november, see how people react.

You need large sales to reduce the manufacturing cost to get anywhere near Due-clone or genuine Nucleo.

i’m happy to find out – the chinese holiday ended recently so i can ask my friend who runs a factory to make some quotes. the main reason the due clones are so high-priced is: Atmel don’t bother to recognise the realities of selling in Shenzhen (their prices are non-competitive, not adjusted to reflect reality of China markets), plus the actual board design and component selection is not optimised for China. it’s also so heavily populated with components compared to the Mega that they had to go to 0402 component sizes. the only reason it sells *at all* is because of the 3D printing and the foreign westerner Arduino market.

thanks to ST’s distribution model being slightly different, the STML471 on the other hand appears to be available at half the price. i also based it deliberately on the Mega, which has a much lower component count as well as larger component sizes (0805 minimum).

it’s just one of those things, david, where i want to find out, you know what i mean? i hear you… and i *stilL* want to actually go ahead and find out. this is unknown territory, but the circumstances are slightly different: i’m actually *right here* in Taiwan, as opposed to being in the USA or Europe, so i can go over to SZ / HK, i can get boards made up and have them shipped to me in 24-72 hours without import tax, as opposed to 7 days at a cost of $USD 100 for Fedex/DHL or 28 days Postal Service plus customs delays, tax, tax-on-tax, tax-on-shipping, tax-on-tax-on… you get the picture :)

ChrisMicro Tue Oct 10, 2017 6:10 am

Just another thought: Probably the combination of CPU and FPGA is coming up right now because the FPGAs have reached and affordable price range.
There is this MyStorm project:
viewtopic.php?f=19&t=1276&start=10#p35393
But in my opinion the should have take a 168Mhz F4 because the whole thing is about speed.
At the moment I’m playing a lot with FPGAs.

Sign in to reply