Creating a double-sized Teensy 3 to allow easy access to the pins that aren't reachable on a breadboard.
I've been having some trouble with the first Megsy / Teensy 3.2 / Teensy Audio Board stack, and thought perhaps it would be a good time to try to solder together a 2nd Megsy board.
Originally, I had intended to try to hand apply solder paste, and apply heat through the vias with my soldering iron. I don't have a mask for the solder paste though, and I was worried about the paste squishing out and bridging connections when I squish the two boards together. So I hadn't tried it yet, even though I had obtained the solder paste some months ago.
I went to a surface mount soldering lesson a few weeks ago, and they showed me how hand soldering is done when the part has a thermal pad on the bottom of the board. It was not too dissimilar to what I had considered for Megsy! They were heating the vias, but they were also using flux and regular solder and then just letting the solder flow through the vias to where it needs to go. Evidently, if you use flux, solder will flow like that.
I had never used flux before, despite Design Lab Resident Engineer Dan's exhortation to "make it look like somebody sneezed all over the board". But having seen it in action, it seemed like it was worth a try.
I bought a flux pen at Fry's for about $10, which was probably too much, but who wants to wait? Evidently me, because I didn't touch it for another 3 days...
When I finally got my courage back up, I put flux on both sides of the megsy board, and on the bottom of the Teensy. I used pin headers to line up the holes and started applying solder and heat.
I watched carefully. It seemed like the solder would bubble for awhile and settle, so I would hold the iron on each pin until the solder stopped bubbling, hoping that was enough time for good flow. A check on the top of the board for some holes that went all the way through shows that the solder did indeed go through the holes on BOTH boards! Bravo!
We'll just have to hope it made good connections to the pads on the bottom of the board. Or rather, I'll eventually have to wire up test circuits for that.
For the pin headers, the plastic spacer is on the top for the Teensy Audio Board to rest on, which makes it hard to get solder through, so I did the same thing with those. I was worried that the solder wouldn't flow well around the pins, but it seemed to flow fine.
I'll have to do some extensive tests to make sure everything works, but so far I've managed to upload software to it (blink!) and the reset button on the Megsy board does indeed trigger the reset line that is only accessible via a very small pad on the bottom of the board, so it looks good for my poor man's BGA connections working!
So far so good! I'll update this after I've done further tests.
So I finally had a chance to assemble a Megsy based on the PCBs I had manufactured by PCBway. The PCB was designed to be assembled as a sort of "poor man's BGA (ball grid array)" where you would place one board directly ontop of the other with solder inbetween and melt the solder by heating up the vias. That plan did work, but not quite as intended.
So my first mistake was using plain-old solder as you use for through-hole soldering, instead of using the solder paste that is used for surface mount components. I have zero experience with surface mount, so how could I know? The regular solder is a solid when heat is not currently being applied, which means that after I tinned the pads on both boards, they would not sit flat against each other. This made it very, very hard to get the solder up to the 650 degrees Fahrenheit needed to melt the solder. The idea was to apply a soldering iron to the plated through-hole on each pad to heat the solder on the other side. That is fine, but in order to get all of the pads to connect, I would have to heat them all at once, which cannot be done with a normal soldering iron!
What to do?
Well, since I have started my residency at the Supplyframe Design Lab, I have access to their nice rework tool, a sort of heat gun for doing surface mount components. Knowing that I needed to melt solder at 650 degrees Fahrenheit, I turned up the temperature as high as it would go, 500 degrees. Unfortunately, I did not realize that, unlike the soldering iron, the temperature was in Celsius, not Fahrenheit! So I was actually heating the board up to nearly 1000 degrees Fahrenheit! This became evident when the board started to blacken and bubble!
Oh my!I was worried that at I might have destroyed the board and the Teensy 3.2! At very least, surely some traces would have been rendered unusable, right? And the board was still not completely seated, because I couldn't apply pressure to the Teensy by hand with all of that heat going on. Or could I?
I grabbed some tiny binder clips from the stationery cabinet and put them on the corners of the Teensy board, and then applied heat again. Again, the board started to bubble and smoke. But the Teensy did settle a bit before the other lab occupants, alerted to my transgression by the smell of burning circuit board, suggested that I stop. I could feel their disdain; my first day and I've already surely fried a perfectly good $20 microcontroller! The horror!
Or did I?
I plugged the Teensy in, and it ran the intro flash sequence OK, and the computer did report a driver connection when it attached, so perhaps all was not lost.
At their suggestion, I did some tests with the proper solder paste for surface mount components, and determined that it was not going to solidify by heating the back of a board at reasonable temperatures. They declined to let me take the second Teensy with me to 23B Shop to try it on their reflow oven setup.
Feeling somewhat defeated, I went home for the day.
But it was nagging me... does the board work, or not?
When I got home, I immediately ran to my workbench and wired up the remaining pin headers so that I could try it in a solderless breadboard. I started poking at it with one LED, trying it with a blink demo and selecting each pin directly.
All of the digital pins were working, but of the new pins, only A14 was providing a signal from the analog pins. Thinking that perhaps those pins were on the end that was sticking up, I pushed solid wires through the holes in those pads to make sure a connection was made and tried again ( making a proper test circuit this time with all of the LEDs.)
Still no signal on most of the analog pins.
Then I remembered that the analog outs other than A14 were provided by use of PWM (pulse width modulation), and perhaps that wasn't available on all of the back analog pads as it was on the normal side pins. Maybe those pins are only input. A check of the documentation seemed to corroborate this. So I wired up potentiometers to these pins...Read more »
After a couple of rounds of revisions to add access for ALL of the pads, including external USB port support and the ability to mount a crystal on the board post assembly, I ordered some boards from PCBway, which came in less than a week!
They were very good about checking with me regarding my instruction to cut a hole in the board for the crystal, which was in my plans, but maybe not completely obvious. There were also some places where I had surface mount pads with holes in them that might have been confusing, but they paid attention to my notes. They sent me an email with a completely updated set of Gerber files as well as this picture from their hardware showing where they made changes.
I really appreciate them taking the time to verify that with me. I wasn't expecting that much service, especially from an overseas company, so it was a pleasant surprise, considering that I had only ordered $10 worth of boards!
My total order was $45. $25 of that was shipping. I spent $10 on these 5 boards, and another $10 ordering 10 single-sided MIDI I/O boards, of which they sent 11!
They also had free finger boards available, so I ordered a set of those. No doubt those are generated as waste area when panelizing boards and so mostly free for them, but if I had to buy those in the store they would cost me more than my entire PCB order.
The next step is for me to actually solder a few of these up! But I am out of Teensy boards, so I'll have to order more before I can try it out.
While there is the official PJRC solution to this problem, it does involve buying a lot of fiddly surface mount components that I am not confident in my ability to mount without destroying them. So I feel that this project still has some value.
I realized that I will probably need an external USB port at some point, so I needed to add those lines in an easily accessible way. While I was at it, I added some form of access for every signal on the bottom of the board. On the off chance that one decides that they need the crystal, I made through holes for that. Not every signal has a pin, but I think everything has exactly as much access as is neeed
Also, I decided that I should really work to make the pads and via placement more accurate, so I started with an image of the Teensy 3.2 PCB and carefully measured everything in Photoshop once I got the grid all lined up correctly.
I left the through holes on the bottom as per the original Eagle part, so you could still theoretically use it with a two row header if you want. I think my plan of the "poor man's BGA" will be the best way to use it, however.
I also ran design rules check (DRC) for the OtherMill on it, and other than a few of the through-holes being too small, it now passes. There is some flagging for overlap, but I did that overlap intentionally, so hopefully the software will be able to handle that.
The entire thing now needs about 60 pins to mount. Which is fine for a breadboard. If you wanted to socket it, you'd need a 32 pin and a 26 (or 28) pin socket. I think those are actually things that you can get.
Now I just have to decide whether to send it off for manufacturing, or wait and try to do it when I get access to a mill?
My lovely hand wired prototype was finally being put to use when I realized that I needed to pry it from the breadboard to check some signals. But when I pried it out, the pins seemed to like the breadboard better than the proto circuit board I had soldered it to, and some decided to stay behind.
What a mess!
So I asked about this in the PJRC forums, and evidently Paul has made a board available from OSHPark here:
Their bootloader chips are available here:
It's still missing the bill of materials and requires surface mount soldering to put it together. I'd have to know the cost of the other parts to determine whether it is economically better to build this or to buy a Teensy 3.2 and drop it on my board.
Let's take a guess.
The bootloader is $7 and the processor is available on Mouser for about the same price. The crystal is somewhere between $0.50 and $1. $1.50 for the USB connector. I'm going to guess $5 for the rest of the parts. So you can probably build this for maybe $21? It has a few pins that might be strange for Teensy shields, A10 and 11 where AREF and GND were before, but at least the audio shield seems like it won't mind that.
Mine is going to be $8 + $20 for a Teensy, so definitely more expensive, but it might be a little easier to assemble. (If I was going to sell them, I'd have to charge more... so it is already a loss as a product...)
Given that they have a reference board design available, I imagine the the official assembled boards will be on their way very soon.
Hmmm. Should I even bother to build mine?
I haven't even really had a chance to use the protoboard version that I soldered up before, but I had a brainstorm and CAD'ed up this PCB.
Here is the plan:
You tin the pads on the Teensy with solder, and tin the pads on the top of this board. Put all the headers on and slide the teensy ALL THE WAY DOWN, so the pads on the teensy are actually resting on the pads on this board. Then, flip it over and heat the vias with your soldering iron. Hopefully, the solder on the other side will melt and make a nice connection with the teensy board without bridging any connections. It's sort of a poor man's BGA! (That's ball grid array, for the layman).
There are a couple of nice design features I want to mention.
This should give you access to 10 additional digital pins (6 of which can also be analog input pins), and 5 analog pins (one of which can be the 12 bit DAC output.) In otherwords, you can now work with everything not on an edge facing pin header. This should be handy when trying to use the various Teensy add-on boards like the Teensy audio board and/or the TFT display.
I'm sure, right about the time I finish this, Paul will release a real Teensy++ with even more features. Which is the preferred situation, really.
I finally took some time and attached the rest of the necessary wires. I skipped PROGRAM, GOD ,3.3V, and VBat on the end since most of those are available elsewhere several times, or I don't bed then for projects and I can write them up later if I do.
There is a problem that 30 and 31 arm to have become bridged between the boards, but there isn't much I can do about those now. Taking it apart would likely destroy the teensy at this point. It is still 13 I/O pins I couldn't otherwise use!
I'll run some tests and then try soldering on the audio board. .
The first draft was going to be a little board that attached to the side of the Teensy on the non-USB side, but I quickly realized that this would interfere with the Teensy Audio Board, so I had to scrap that plan. That required me to desolder all of the headers I had already installed, which made quite a mess of them! I wonder why they don't make the plastic on headers something that doesn't melt at 700 degrees?
Next I had to cut a new board! The Dremel is great for this, and this time I determined how to do it without cutting diagonally and destroying a whole row of pins! The trick is to cut along the holes one row beyond the last row of pins that you want. Then you take the board and stick the edges on the flat side of the grinder until all the extra copper is gone! Mmmm! Breathe that powdered fiberglass!
Except that I did a much worse job and made a real mess of trying to bend the pins. This did add an unfortunate amount of extra spacing between the new board and the teensy that greatly shortened the pins that can go into the protoboard. I think there will still be enough space, I just have to make the Teensy Audio Board much closer to the Teensy than I normally do. So much for using that Reset button...
Finally, having soldered all the headers and the Teensy 3 in, I could start on the wires. I chose magnet wire (Maybe 34 gauge?) because the laquer insulation can be easily burned off with the soldering iron, and I originally was going to solder it directly to the Teensy board and wanted something that would break rather than rip the board apart.Finally, I began the soldering. It is painstaking and tedious work, that requires me to wear reading glasses just to see what I'm doing. It goes something like this:
Were we really intended to do this every time we want to use those pads on the bottom? It really is a huge pain!Well, I've done 6 wires tonight. I guess I'll do as many as I can stand each night and maybe I'll be done sometime this week.