Tiniest Teensy?

Status
Not open for further replies.
I presume that the usual BGA madness applies, i.e. Lots of layers with signals that then get extracted with vias. Some of these vias will go all the way through (power caps on opposite side), some will be blind, allowing the signals emerge, spider-web like.

Trouble is, I don't think osh park allows blind vias, which likely would make your job a lot easier by allowing you to gradually thin out the number of "tree trunks" bisecting all layers and creating road blocks for your signals. Perhaps Paul can offer advice since his latest MCU effort involves a BGA as well?

I'd also read this cautionary tale at EEV blog. It appears that adhering even to the minimums over at OSH park can lead to trouble. Granted, they retried three times but each time, the board houses OSH used apparently didn't care enough to use a 10 mil drill when asked for and substituted a 13 mil drill instead. One obvious caveat is that this post is from 2014, however. Laen may have improved his QC or choice of fab houses since. http://www.eevblog.com/forum/projects/pcb-fab-hackvana-vs-oshpark/

But I'd have a look at Hackavana.
 
Last edited:
Yes, I was ging to suggest Hackvana.com as well. Mitch who runs Hackvana is a pleasure to deal with and very knowledgeable.
Before OSH park offered 0.8mm thick PCBs with 2oz Copper I found Hackvana to be the the only alternative for my LED driver boards.
 
Last edited:
Yes, the usual way to do this (standard in Silicon Valley fab houses) is to use laser-drilled vias, preferably blind micro vias, and then fill them by plating over with copper to get traces to internal flip chip or BGA pads. The only problems are 1) EAGLE is not really set up to design this kind of board, but could probably be shoe-horned to do so, and 2) the process is very expensive, turning a $3 board into a $300 dollar pcb. Not really what I want or the customer can afford.

Ideal would be a smaller QFN K20 equivalent but there is no such animal AFAIK.
 
There is the smaller, 48 pin version of the chip, IIRC. But I fear the registers will be sufficiently different to cause all sorts of stuff to blow up because the io will be different.

If you are comfortable changing pin assingments and all the other details with the external interfaces of the chip, that could be an option. But it'll be a lot of work and high risk from an implementation point of view vs. the mk20 on a teensy or the BGA version.
 
I was able to get down to 14.3 mm wide using the VLH7 LQFP package.I dumped the ferrite beads and 32kHz crystal and had to rearrange a bunch of things to satisfy requirements but it wasn't that hard. Going even narrower will be difficult, but I don't think there will be any need to do so. I'll get the boards in a couple of weeks and put a few together to make sure they still work. In the meantime, here is what the board layout looks like; you can see I had to make a few compromises...

prodigyHoops.png prodigyHoops.back.png

I moved the boot loader to the back of the board and I added a 1 Mbyte SPI NOR flash. There is a lot of stuff on this 0.75 sq. inch board. The only thing missing is a larger flash; going to 4 Mbytes will be easy, 128 or 256 will require a longer board.
 
Last edited:
Finally got the boards and assembled one. I am always surprised when things work the first time! Here is what the board looks like:

tinyteensytop.jpg tinyteensybottom.jpg

I put a 1 MB SPI flash on the board. I ran Paul's hardware test but the program didn't seem to ever finish. No error, just read the chip then tried to write 512 signatures or something and never finished. Anyway, the program correctly identified the capacity so it must have seen it. Battery charger works and I get a ACK from the MPU9250 I2C, in addition to getting serial out from the Teensy via USB. I was a little worried about this latter since I had to shoehorn the USB connector onto the side of the board and I connected the USB ID under the connector. Probably doesn't matter since it is not being used, Still, it's a rather ugly arrangement and I am pleasantly surprised it seems to work without a hitch.

I didn't expect a problem I did have assembling the board, which is that the components are so close to the edge it was hard to manipulate the board to apply solder paste but also hard to handle with the components being subject to jostling as I struggled to move the board from my desk to the reflow station. Not a lot of edge space for fingers!

This must be a world record tiniest Teensy at 14.3 mm wide. Calling Mr. Guinness...
 
Too Teensy! Maybe incorporate assembly time mouse bitten board extentions to break off afterwards?

Now you just need to redo the board to incorporate 4 BIT parallel flash access from FrankB for 3+ times the throughput.

<edit>: What does it have for motion sense?
 
Last edited:
Well, this is essentially a Prop Shield without the shield. It doesn't have an audio amplifier and it uses the MPU9250 accel/gyro/magnetometer all integrated into one 3 mm x 3 mm package. It has a battery charger, since the idea is to semi-permanently mount the board into the led-containing hoop. The idea of the flash (next version will have a 5 mm x 6 mm Macronix 16 Mbyte SPI NOR flash) is to store images/data, etc that the user can access during "performances". I don't really understand how these props are used except at the most superficial level.

I might have to add BLE to the board or possibly wifi. And of course, I am tasked with realizing essentially the same thing using the ESP8266. In this case, I will have to add an FTDI chip since the users want to be able to program the SoC and get serial data out through the USB connector just like the Teensy. And when the ESP32 becomes available, I will switch to using this, in a month or two according to Espressif. I just don't know how long it will take for the ESP32 to be supported with an Arduino overlay.

Most of my projects want lots of sensors and memory and connectivity and fast MCUs with lots of peripherals in a very small area and at low cost. Like Paul has said (echoing the ancients): rich capability, low cost, small size - pick any two.

This should be interesting!
 
Last edited:
Cool - so it is basically a built in : mpu9250-nano-board

If only it had Serial#1 or #2 pins exposed. Nice that is has SPI and I2C ports in 14.3mm by 32mm!

Why NOR flash versus NAND?: NOR seems it is less dense - but offers direct execute in place ability with full random access with reads several rimes faster and slower writes?
 
It would be straightforward to expose Serial 1 or 2. The NOR flash is sort of the standard. Cheap and easy to use.
 
Impressive! I assume the 14.3 mm width is of the board itself, exclusive of the USB connector overhang, but I presume the USB connector is intended to extend through to the outside of your mounting structure?
 
Yes, there is a cutout in the plastic hoop for the USB extension. Presumably the user could program, charge, and get serial output without ever having to remove the board once emplaced. I just hope the board doesn't have to get even naroower; there is at most another 100 or 200 microns before a different MCU will be required. But the idea of exploring use of the ESP8266 is to make it to the 10 mm width which some special applications require. Should be a piece of cake since the ESP8266 is only 5 mm x 5 mm.
 
I put a 1 MB SPI flash on the board. I ran Paul's hardware test but the program didn't seem to ever finish. No error, just read the chip then tried to write 512 signatures or something and never finished. Anyway, the program correctly identified the capacity so it must have seen it.

Be warned, the SerialFlash library's EraseEverything will say Flash memory has 1048576 bytes, even with nothing connected to SPI! I suggested in the Prop Shield thread that EraseEverything should do some sanity checks. The RawHardwareTest will also report 1MB even with nothing connected to SPI, but JDEC ID of zero should alert you, and tests usually fail, not hang as you experienced.

what specific part is your 1 MB SPI flash?
 
Yes, better check the ID.
Without any flash, the output of eraseevrything is:
Code:
Flash Memory has 1048576 bytes.
Erasing ALL Flash Memory:
  estimated wait: 3 seconds.
  Yes, full chip erase is SLOW!
Erase completed
  actual wait: 0 seconds.
 
Last edited:
Yeah, I (re)discovered I had set the #CS on the flash to Teensy pin 16 but was using the default pin 10 for the flash test! Complete nonsense. I am going to redesign the board for a 128 Mbit macronix SPI flash anyway. I used the 1 Mbyte Winbond W25Q80BLUXIG. I use these on the ESP8266 breakouts and Electric IMP003 breakouts and they work very well.
 
Well I finally got back to this and was able to test out an idea Constantin proposed. Since for some applications the requirement is super small with on-board sensors, etc. and only a few GPIOs exposed I have been interested in using one of the smaller MK20 packages. There really is no such analog beast for the MK20DX256VHL7 but there is one for the MK20DX128VLH5, the 5 mm x 5 mm MK20DX128VMP5. This is less than one-quarter the area of the LQFP chip and makes possible super smallness. The only problem is it is 0.5-mm-pitch BGA and to get to the internal pads one would normally require laser drills with either back plating or via-in-pad methods. These are all standard but costs literally 100 times more than a similar size 4-layer pcb from OSH Park. Not a great deal for rapid prototyping where a lot of cut and try takes place. So I have been experimenting with using OSH Park to make use of these kinds of 0.5-mm-pitch WLCSPs. I had some success with the MAX14676 (a fantastic PMIC for small wearables) so I thought I'd try my luck making my tiniest Teensy even tiniester.

Here is the board layout:

TinyTeensy3.0.brd.pngTinyTeensy3.0.bottombrd.png

You can see that I just specified vias on the inside pads with 4-mil drills. This isn't supported by OSH Park design rules and is a challenge even for modern Silicon Valley fabs but they can do it. What OSH Park does is the best they can, meaning they just use 10 mil drills and somehow there is enough of an annular ring left in the pad and the ring doesn't contact any of its neighbors and the tiny 6-mil traces that wend their way through the array of vias don't make contact anywhere. In EAGLE it all looks OK, but when the 4-mil drills become 10 mil drills at the fab all bets are off and this shouldn't work, but it does.

Here is what the pcb looks like from the fab:

TinyTeensy3.0.pcb.jpg

You can see the vias in the middle of many of the inner pads. It doesn't look great and in fact when I first saw it I didn't think there was any chance this could work. I used a hand syringe of low temperature solder paste and a hot air gun to mount all of the components. The challenge was the MK20, all the rest I have done many times before with success. The other difference though besides the MK20 is I had to use the MINI54TAN boot loader since this 50 MHz MCU is a Teensy 3.0 and the newer MLK02 boot loader I prefer doesn't support it.

This is what the final product looks like:


TinyTeensy3.0.toppcb.jpg TinyTeensy3.0.bottom.pcb.jpg

I was simply astounded and deeply gratified when I pushed the reset button for the first time and heard the familiar ker-plunk from Windows. After I switched the IDE to a Teensy 3.0 I successfully downloaded a blink program and got the rgb leds flashing and some serial output. It shouldn't work but it does!

There is plenty of room for size reduction with this board, I could easily shave off 1 or maybe 2 mm from the width. Alternatively, I could expose a half-dozen more GPIOs to edge pins.

This is basically a prop shield with a switch, battery charger, MPU9250 IMU with interrupt, a voltage divider to monitor LiPo battery voltage, and a 16 MByte SPI flash to store images etc. The pins exposed are an SPI port for an led string, a couple of timer pins for an IR sensor and the I2C bus. Not general purpose like a regulation Teensy but purpose-built for lighted hoops and such. This basic design could easily be adapted to serve many applications where small size is a must.

I still can't believe it works!
 
Last edited:
That is amazing! The usual caveats re: vias in pads for BGAs apply but given that it works, it's impressive to say the least! Awesome project, congratulations!
 
Thanks! I wouldn't rely on this kind of pcb for anything more than prototyping.

For production I would require more conventional laser-drills with back plating to avoid the obvious problems with solder seepage through the vias, etc. But it is quite surprising and very useful to be able to prototype with 0.5-mm pitch BGAs using the very inexpensive and otherwise high quality pcbs from OSH Park. This method is unlikely to work for 0.4-mm-pitch BGAs though and I wouldn't even try it.

I suggested to OSH Park they might offer: 0.5-mm-thick 4-layer pcbs, 4-mil laser drills, via-in-pad production, and 4-mil trace minimum but they have politely deflected my suggestions to date. Something about the costs being too high and demand too low, Oh well!

To their credit, I think there is a realistic possibility they might offer six-layer pcbs at some time, which for some tight designs on super small pcbs is very handy.
 
I just came across this thread and found it a great read, very informative :)
@onehorse, I see the vias under the BGA are tented with stop mask on the bottom, maybe that helped with preventing solder creep? Because the air in the vias could not escape and make room for the solder during reflow?

Somewhat OT: I read that OSH replaced 10mil vias with 13mil in the past, is that still true? They currently specify a minimum annular ring of 4mil which makes me think the drill is actually a 10mil, but I'd much appreciate a confirmation on that.

-Ben
 
I am pretty sure for 4-layer pcbs the minimum drill is 10 mil with 4 mil annular rings. To go smaller really requires thinner pcbs, which is one reason I would like a 0.8-mm or 0.5-mm thickness option. Such boards are lighter and smaller so fit and fly in more applications.
 
Status
Not open for further replies.
Back
Top