siy - okay, I'll finish making the repositories in an hour. I need to go out now.
Edit: It was raining quite hard, so I have set up openstm32hw
git@github.com:gbulmer/openstm32hw.git
siy - okay, I'll finish making the repositories in an hour. I need to go out now.
Edit: It was raining quite hard, so I have set up openstm32hw
git@github.com:gbulmer/openstm32hw.git
gbulmer simple is key.
In the same vein as where you suggested everything be the same license as the current Maple libraries and github based,
I suggest that if we adopt an obvious design (Maple Mini) and then we can spend our time building rather that discussing.
The take home on 'nested' for me is that if you have a routing for a smaller chip, you can spread things a bit and insert a larger chip with minimal routing changes.
Can't see the point in using a smaller chip once you've done the spreading.
So I vote for not nested.
Also two sided. Its not hard to go from 2 layer to 4 and I've had pretty good success with ground planes on 2 layer boards. Staying on 2 layers means people don't have to get the more expensive Eagle license.
On the DIY front, I had this discussion with my university. They had a really elaborate DIY setup for the students. I argued they were teaching students a solution to a problem from the 90's. Boards built from services on the net are really cheap now. I did win that one.
The first board I sent out and got back two days later where the board cost and FedEx charges were about the same changed my opinion forever. Shucks just don't build the board your self. Instead spend the precious time you have available on the part that gives value like your circuit design/layout and software.
I also sold them on STM32 (I think anyway, haven't seen the actual course outlines yet and my friend has since retired from being head of the EE department.)
One other minor point. I suspect 0.8 inch width would be better than 0.9 as the board would then fit in a cheap 40 pin Zif socket to allow software flashing before shipping, should the board ever get to production.
About DIY. There are important difference between prototyping stage and production stage. The turnaround time is quite important for prototyping, since it significantly affects speed of the development. Definitely, I'll stop making PCB's for my prototypes at home once I'll find service able to make boards in 3-4 hours for less than a $1 each. 2 days and $20 for single PCB is way too slow and expensive. Again, this is for prototyping stage. Once design is ready and I plan make several PCB's then yes, ordering it somewhere is much cheaper and convenient. I've done that few times and completely agree with you that this is far more reasonable than make boards at home.
Rod - I agree on simple.
The main reasons (I can think of:-) for using a 48pin part is cost.
I did a quick check at Future, and a 48pin 32KB/10KB part is £1.56 (GBP) $2.45, one off Future STM32F103C6T6A
Edit: That has plenty of resources and performance for a micromouse-style robot.
So I could buy quite a few for the cost of FedEx'ing a second PCB (I remember FedEx charged me over £30 'handling charge' for an international parcel. The Handling charge means they invoice you for tax, and you can't pay the tax when you pick up the parcel :-(
But yeah, you're right, Keep It Simple.
I can understand your perspective. I have talked to a guy who ran an engineering company. He said he doesn't need electronic engineers to be able to solder. He preferred them to ask an expert, and that was how he ran development.
I think it is really useful for a bunch of reasons to have made your own PCBs. Even if you only do it once or twice in your life. I believe I learned very useful lessons when I tried making boards which has influenced my PCB design thinking. Also, it is great fun to make something from raw materials that works (or not :-) Folks are still using some old robot sensors we did, and that makes me smile.
Also, PCBs don't have to be etched. My young colleague Stephen, makes PCBs on the schools milling machine. In half a day he made a motor control PCB, and line sensor PCB, used an Arduino, assembled a laser cut robot chassis, and had a line follower working. Everyone gets a buzz out of that.
Chris at BCU has done some experiments using a laser cutter to 'expose' the resist. It takes less than an hour from start to finished etched board, and much of that is unattended. So he may get 4 or 5 revs in a day, for the cost of an hour. He typically gets boards made commercially once the PCB is working the way everyone wants.
I'm not trying to convert you. I'm only saying there are a lot of reasons for DIY, and it doesn't have to be very time consuming. Commercial boards are much easier to assemble, so I like them for final boards.
Yes, I'll try to stick with two layers for all those reasons, and two layers are cheap, available from lots of suppliers, (DIYable :-) and easier to debug than 4 layer.
One other minor point. I suspect 0.8 inch width would be better than 0.9 as the board would then fit in a cheap 40 pin Zif socket to allow software flashing before shipping, should the board ever get to production.
Sneaky.
I'd need to go and check again, but my feeling was 0.9" was doable (for a 2x28 pin, every pin coming out board) with common commercial design rules, but 0.8" pitch might be a bit restrictive. I'll have to look, but I assume this isn't urgent.
I have been assuming a small SWD header or USART header for programming. I have been using the USB/USART, but ST Micro's STLINK/V2 are low-cost, and frees up the USART.
Edit: siy, sorry my post crossed. I think we agree - time for tea :-)
gbulmer, definitely, dedicated SWD header is necessary. Or, at least, relevant pins (SWDIO/SWCLK/GND) should be near each one and accessible when board is inserted in the breadboard or installed somewhere. In my board I've initially just placed them together at one of the outer pin headers, but then added separate connector.
P.S. I've almost finished tweaking the board for 0.1" grid and will be ready to commit it into repository in a hour or so.
Rod - I forgot to add, to try to ensure boards are okay to assemble, I try to put all Surface Mount on one side.
For the same reasons, I use 0805 or bigger parts. The maple-mini uses 0402.
That immediately adds 0.03", or 0.75mm on the width of a part.
The maple mini rotates the stm32 by 45 degrees. Mimicking that routing with a 45degree rotated 64pin part adds an extra 4.2mm width, Further, there are extra power pins on the corner nearest to the header pins, so ideally they should have an extra decoupling capacitor nearby.
So I am far from confident that a Maple-mini compatible pin out, using a 64pin stm32, with all SMD on one side, could be made within 0.8" pitch. I don't think I could do it.
I can hand solder 0603 but not 0402 so I use all 0603 myself.
I did a layout of a 2 sided Maple Mini and I found the 45 degree rotation was a big help with routing and most likely how they chose the overall pin out in the first place.
I get over 90% auto routing at the moment with a minimum effort layout, so I'm pretty sure it will fit on 0.8" spacing.
I've done about a half dozen similar designs and in the later ones I removed all the disconnect resistors and transistors in favour of a prepackaged USB ESD, so there are parts I can delete yet.
The hard part tends to be getting the ground planes as large as possible at the end which takes some fiddling on a 2 sided board.
PA13/PA14 come out edge pins so SWDIO/SWCLK shouldn't be an issue. I have to say I've really appreciated dumping the JTAG programming dongle and just using a standard USB connection.
Guys, what if we also separate this discussion into two threads? Hardware and Software.
Rod
I did a layout of a 2 sided Maple Mini and I found the 45 degree rotation was a big help with routing and most likely how they chose the overall pin out in the first place.
Yes, I think that is how the pins out is defined. On such a small board, anything else would be a waste of valuable space. I think a 64pin part, being used to map to the mini pin out will need to be rotated 45degrees too.
I've done about a half dozen similar designs and in the later ones I removed all the disconnect resistors and transistors in favour of a prepackaged USB ESD, so there are parts I can delete yet.
Yes, my 0.9" pitch used integrated USB EMI/ESD, but discrete USB Rpup.
Using a digital transistor (bipolar PNP transistor with integrated resistors) would shrink it more.
I love huge ground planes. That is why I do double sided and not single sided.
Though I have only experimented on an old design, Eagle 6's ability to cut out polygons looks a significant improvement for complex ground planes.
PA13/PA14 come out edge pins so SWDIO/SWCLK shouldn't be an issue.
I am aiming to make it easier for beginners, so I think a separate pin header for SWD is less error prone. Ideally it would only fit the correct way, but that sort of connector wastes a lot of space.
Edit: bubulindo - yes, you're probably correct, it might help to pull them apart.
Which one is this?
I think is the thread where we decided to kick-start a new development phase.
So we should just create those two threads with a title like:
F4 Hardware/Software Development
And start discussing any development on this one. And of course, post the links to both threads with an explanation (in case people don't want to read the whole thing).
One thing, that Discovery board seems very interesting, is it possible to use with the libmaple? How to download the programs to it? I use a Mac, so that may be another problem, but if possible to use the current tools from libmaple, I'd definitely get one. :)
bubulindo, the F4 port of libmaple posted by ala42 in another thread contains support for F4 Discovery board. Don't checked yet how complete it is, but board definition for wirish is there.
For flashing and debugging F4 Discovery board under something other than winXXX, you, probably, can use following software: https://github.com/texane/stlink
Hi gbulmer
The board you are describing sounds a lot like a board I designed for a university club project. It uses the ret6 chip and I think it's the same width as the mini, just longer and not pin compatible. Every pin is broken out and I managed to squeeze an SD card slot on the board under the IC where it just fits between the pins.
https://plus.google.com/photos/108913710876271673911/albums/5659403537402436145/5659403536843069570
Mini64 design files are available at https://github.com/siy/openstm32hw . Once pull request will be processed they will be in main HW repo. The design is slightly different from previous versions (there are several floating around, published and sent privately), in particular all main headers now are on 0.1" grid.
P.S. At weekend I've made PCBs and assembled two boards with the design which is in repo. One board (with F103RET6) passed minimal testing (flashing of slightly modified Fade example from IDE). For second board (with F415RGT) some changes in ala42's F4 bootloader are necessary, I'm working on them now.
siy
For flashing and debugging F4 Discovery board under something other than winXXX, you, probably, can use following software: https://github.com/texane/stlink
It is very funny you posted that. I spent several days last week, and some of the weekend changing stlinkv2-util at http://code.google.com/p/arm-utilities/source/browse/trunk/stlink-download/?r=31
I haven't been able to make it reliably reset the STM32F4-DISCOVERY on my Mac. I'd even got to DTrace'ing stuff to try to spot the causes. So last night I duckduckgo'd (now that google are changing their privacy policy :-) and found that. Funny :-)
You must log in to post.