Frankenduino or Ueber Arduino ?

Well, both, kinda sorta eehhh….. But let’s take a step back.

A good while ago I designed and made an adapter board that combines a Teensy++2 and a WIZ812MJ Ethernet Module and currently the hardware in the photo below is installed and happily working in a Lighting system that employs five(5)  HP LED shields (the older version). To the left is a TP-Link TL WR703n pocket router that connects to the WIZ812MJ Ethernet Module. An additional Ethernet Jack and Cable is used on the board to connect the I2C bus signals to another little adapter board plugged into the LED shield .  This way 5 LED shields are daisy-chained together in the said LED lighting system.

IMG_0185

I had to modify it from what is shown in the photo though and that was one of the reasons that  I wanted to upgrade the concept for future installations. I had a Teensy3 as a Reward from the Kickstarter Project and as shown in the last post it works quite nicely and uncomplicated with the LED shield. It has to be said though that the shown configuration is NOT recommended. The Teensy3 is a 3.3V micro-controller and the outputs are not 5V tolerant. An I2C level converter should be used, e.g the one from DSS circuits or from Adafruit.

Also,  the system above had some limitations. The Teensy++2 employs an Atmel processor that can run the I2C bus at max 400KHz, so it is not FM+ compatible, however all the components on the the HP LED shield are  FM+ compatible (with the Exception of the temperature sensor!)  so can be operated up to 1MHz. Also FM+ compliant components allow for much more drive current (30 mA vs. 3 mA) allowing for much higher allowable bus capacitance (4000pF vs. 400pF). In essence one can operate the I2C bus much more populated with devices and/or longer cable length at higher bus frequencies resulting in higher data transfer rates. The Teensy3 is able to operate the I2C bus at frequencies well in excess of 1MHz. Alltough it is not per-se FM+ compatible.

Another problem that I ran into and which is the reason I had to modify the hardware shown above, is that the power supply for the whole equipment to the left of the LED shield came from the little on-board 5V switching power supply of the HP LED shield.  As long as it only has to operate an additional Arduino or Teensy that’s fine but the Ethernet & WiFi router hardware is more demanding and instead of the +5V from the LED shield I had to hardwire the VIN from the HP LED shield to an extra TSR-1xxx switched mini power supply to supply power to the Teensy++2 WIZ812MJ adapter board.

It would be nice as well to be able to just stack a processor board directly onto an HP LED shield or onto a stack of these, without the immediate need for an Ethernet cable.

So I started to lay out a board with all the necessities, but noticed it looked rather bare in terms of traces. The WIZ820io needs the usual SPI connections (+3.3V, GND, MISO, MOSI, SS, SCK) and the I2C bus only requires 3 traces (SCL, SDA, GND). That would have been a total waste of all the pins the Teensy3 has to offer and I decied to see if I could route at last some of these these to the usual Arduino pins on the periphery of the board. And the results of that effort is what I jokingly call an Ueber Arduino or perhaps its more a Frankenduino :

Teensy2-WIZ820io_LEDsieldboard

Teensy3 and LEDshield

While I am waiting for Tindie.com to re-activate the fundraisers I am continuing to play with the hardware and software at hand.

The photo below shows a Teensy3 connected toe the LED shield and illustrates how little is necessary to connect a non Arduino microcontroller to the LED shield. Only three wires – SCL, SDA GND – are required, a 4th one to supply +5V from the LED shield’s on-board switched power supply to the Teensy 3. The Teensy3 is an Arm Cortex M4 powered board and has much more capable I2C hardware allowing it to run I2C frequencies up to 2.4MHz. Most Arduinos only support 100KHz and 400KHz. The hardware on the LED shield OTOH all supports FM+ mode so up to 1MHz. The Arm Cortex M4 is a 32bit microcontroller and can be operated at 96MHz. All for $19. Pretty sweet deal!

I am currently in process of getting the EthernetBonjour and ArdOSC libraries to compile and run on the Teensy3 to allow zeroConf networking and OSC control through TouchOSC from any iPhone/iPad and many supported Android devices. This already works on a Teensy++2 which is an Atmel processor based board and I hope not to run in too many obstacles.

IMG_2370

Patience

As I was editing the necessary information on Tindie.com I noticed that I can add a product to the Tindie store but it was not obvious how to create a fundraiser. I just got offline with them and as it turns out they’ve taken fundraisers down for the time being.
They are working on a project to put them back online within the “next few weeks”. Until then, unfortunately we have to be patient.

Arduino Yún

So the Arduino team has announced an new product, the Arduino Yún.
Looks like a very interesting product. My own LED lighting projects tend to be installed in places where plugging in a USB cable is inconvenient at the least. So one main feature for me will be the programmability of the Yún per WiFi!

While the High Power RGB LED shield only requires three pins from any Arduino or other Microcontroller board (SCL, SDA, GDN) it would be nice to be able to just stack it on top of an Arduino and not have to worry about wiring it up on a breadboard etc.
Looking at some of the photos the Ethernet Jack on the Yún looks very close to the Header and also looks tall enough to interfere with a lot of other shields.

Our led shield is very short and it should fit. Should it not fit a little filing on the interfering edge of the board should do the trick. There are no traces close to that area and its save to file of a mm or so.

Little update…

I have not posted in a while so a little update is overdue.

After completing the first prototype I received some of the little SMD containers from Adafruit and labeled them. I also prepared a simple little PDF file with about 15 sheets outlining which components were to be installed next. While it still was not as fast as I’d hoped I was able to make 4 more prototypes in about 3 hours. Obviously there is still potential for optimization!

So far, so good. Meanwhile several people have voiced interest in purchasing the shield when it becomes available. A guesstimate is that currently about 75 shields are accounted for. We have requested an updated quote for 100 shields from our chosen manufacturer and we are waiting to receive it to determine the price. Once we have received it we will start a fundraiser on Tindie.com.

I also have not just been sitting around but have worked some on the library. The one thing the library is really missing is a good fading algorithm. For my LED lighting system I developed an adapted 3D Bresenham algorithm.
The original algorithm was developed when most computers did not have specialized hardware to support floating point operations but only integer. While calculating floating point was possible, it was very slow. (Anyone remember Fractint ?) Equivalently most Arduino compatible micro controllers do not support floating point operations using specialized CPU operations thus are very slow when compared to integer operations. The initial Bresenham algorithm was developed to draw a line across a rasterized computer screen and uses only integer math, thus is very fast. For a RGB fading algorithm a 3D version of that algorithm was needed and I found an implementation on the Internet that suited our needs. It had to be modified and taken apart to allow fading several RGB LEDs synchronously but it works very nicely. As I recently found out, depending on what Microcontroller it runs on it can also be blistering fast.
In my own projects I have moved away from the original Arduino’s and have toyed around with a Teensy3. It is a fraction of the size of an Arduino UNO, costs only $20, is US made and employs a Freescale Arm Cortex M4 processor running at up to 98MHz. The new I2C library recently written by user nox771 also better supports the faster I2C hardware on the Teensy3 and supports I2C bus speeds of up to 2.4MHz. Ohh…. I forgot to mention, when using Teensyduino a plugin for the Arduino IDE the Teensy3 is fully Arduino compatible and comes with many libraries that one would have to dig around quite a bit somewhere else to find.
The hardware on our shield supports FM+ mode so up to 1MHz bus speed.
At that bus frequency a complete fade from RGB(0, 0, 0) to RGB(255, 255, 255) using the CIElab lightness corrected library function takes 53 ms!

What’s next…

That is a question I’ve been contemplating about for the last few days. Having produced a first functioning prototype is quite encouraging! The question is now what to do with that success. 

While there have been some people that have shown interest in buying one, currently the number possible orders does not exceed 20. That on the other hand would not justify having   50+ boards manufactured as that would include having to lay out about $2000 in advance. We have been in contact with a manufacturer in Germany (where the co-host of this blog is located) , specialized in manufacturing small series. This by the way is not a garage shop but a company that has been doing this for 20+ years and they’d be providing us with a complete turnkey solution. We send them the layout and money and they send us back completed boards. However, that only makes sense if the number of boards is larger than 50 for the first batch and would also really only make sense if there would be several batches of 50+ boards after that.

We could investigate to find a less costly alternative, however, the reduction in cost would have to be rather significant 30%-50% to really make a difference. We have a costed BOM and the price of all the components assuming Newark as the source of supply is about $27 for a qty of 50 boards. That does not leave much room for the labor to actually build the board.

My current thinking is to set up a fund raiser at Tindie and then post on a few forums to determine if there is enough interest to justify having 50+ boards manufactured. Another option would be InMojo. They are also offering assembly and serve as a sales platform for open source hardware.

Meanwhile, as I’ve mentioned above, my early success is really encouraging. Should there not be enough interest I can imagine making these myself depending on what QTY is involved. Making the first prototype was my first venture into SMD and Solder Paste and Reflow Soldering in a Toaster Oven. I started around 6:00PM in the evening getting all the materials ready, building a makeshift stenciling fixture etc. I was done with testing the prototype and had written the blog post by 11:00 PM. I believe it took me a good 120 minutes to populate the board. I had not made an assembly plan and I was doing it on my computer desk going back and forth between the layout and schematic in Eagle to see where the component went and and then I had to use the BOM with the Newark part number and find the bag/reel/tape with the component, and get them out of the packaging  to be finally be able to place the thing on the board.

With some better preparation and a little hardware I believe I should be able to get it to well under 30 minutes per board. I have ordered several of these and several of these and with some intelligent, labeling and an assembly plan things should progress much faster.

I have sets for 4 more prototype boards and will see how quickly these can be assembled with better planning within the next week or so.

Once that is completed I intend to send one or more to my partner-in-crime in Germany to do some testing under load. I don’t have enough LEDs to test the thermal side of things and he has managed to burn out one shield already. This should tell us how many LEDs the shield really can sustain! I only use one RGB LED @700mA per shield in my own lighting projects (trippylighting.com) and none of the thermal considerations are of any concern 😉

Toast anyone ? – First functioning prototype!

You can read about it and look at a finished board, however, until you try to pick up these dust-like 0402 capacitors or 0603 resistors with a tweezer and try to place these precisely on a pair of solder pads you really don’t know what you are dealing with.

I started with the smallest components first and about halfway through populating the board I had serious doubts this board would ever work! Nevertheless I decided to continue to at least see if how reflow soldering in the toaster oven would work. While this is certainly not my first electronics project this is my first attempt at a more advanced SMD board and reflowing with a toaster oven was also a first for me.

And again, I’ve read in many places before that the components don’t have to be placed absolutely perfect and the reflow solder process is somewhat forgiving and surface tension will correct some mistakes. There are a number of videos available online that show this, but it’s still thrilling to see it actually happen and have the board come out looking very nicely reflowed.

It is even more thrilling to stack the thing on top of an Arduino connect it to an RGB LED and have it going through a color changing routine immediately. Well…almost. I had placed the diode in the on-board power supply in reverse, but that was quickly fixed with a trusty soldering iron. Anyway here is an image of the first functioning prototype still stacked on top of the Arduino and hot, right out of the oven, so to speak 😉

Image

Board Quality….

Before I ordered the 10 prototype boards I had done a good bit of research on to see what people had to say about different vendors. Amongst these was a post that compared the precision of the drill position of two different vendors, namely ITEAD and OSH Park with OSH park being of much better quality.

While the ITEAD quality may be fine for many boards, it won’t work for our boards as can clearly be seen in the image…..ohhh….wait…not in the image I posted a few days ago. But the photo I took with my Canon S90 shows the problem quite clearly. To see it you may have to my other blog @ trippylighting.com (I know, what a shameless plug ;-))

While I am assuming that these boards will work OK for prototyping purposes, I would not want to order production quantities from ITEAD. I believe we’ve mentioned that we have received a quote from a manufacturer and if we decide to hand it over to them, they would provide a turnkey solution and would do everything, including sourcing the components, assembly etc. Having seen a few videos on their web-site I am confident their quality is much higher!

Packet from China

Clearly my product photography skills need some improvements. Snapping pictures with the iPad on the kitchen tablet leaves something to be desired, however, I could not resist posting, now that the prototype PCBs that I had ordered from Itead Studio arrived.
These look much sharper than in the image 😉

The only thing I am still waiting on are the Panasonic Inductors, which were not available from the big three here in the US ( Digikey, Mouser, Newark). I finally found them on the German RS components web site, tracked down a US rep and got a quote for some prototype quantities today. So I hope that it will not take longer than two weeks for them to get here.

Meanwhile my Panasonic InR toaster oven nicely follows a ROHS temperature profile. PID controlled with the Arduino Reflow Oven Shield

The Mylar stencil arrived weeks ago from Pololu and I hope to be able to post about the first fully assembled prototypes within the next 4 weeks.

20130313-210517.jpg

Thermal Performance

Reducing the PCB in size certainly has some benefits , however, the reduction of surface area can also easily reduce thermal performance, if care is not taken. The LED driver chip LT3496 has a rather large (compared to the size of the chip 😉  ) thermal pad on the underside that is reflow soldered onto the top ground plane of the PCB. Also thermal vias are placed directly under the pad and surrounding area to help conduct the heat to the bottom ground plane. Both planes serve as heat spreaders. So the question that interested me was how much ground plane is necessary and how many vias are needed, what size should they have and how densely (or not) should they be spaced ? Read the rest of this entry