Tonight I spent some time thinking about the pinout for the connectors. One of the major issues with Rev 1 was that the pinout was incompatible with the boards when they were touching each other. The lesson I learned from that mistake was to be very careful when using the mirror command on connector components in the schematic editor (the mirror command is usually more trouble than it's worth). I also learned that it's a good idea to have a supply of Arduinos on hand.

I've since fixed and tested the new pinout on the Rev 2 boards. The boards interconnect perfectly and have no issues with shorting power and ground. As a precaution, I added PTCs, a resettable fuse on the VLED line. With the design ready to work for normal usage, I wanted to focus on user error. A user will connect to one of the two "IN" connectors on the board. So far, I've only used individual jumper wires. However, it's possible that a user could use something like a ribbon cable with a matching pitch. I wanted to find out what would happen if the user flipped the cable around and installed it backwards.

First, I looked at the schematic. Normally, swapping power and ground would be a problem. However, in this case, swapping VLED and GND connects ground to the anodes of the LEDs. Next, I checked the "Absolute Maximum Ratings" section of the TLC5917 datasheet. The limits seemed tight, especially when applying negative voltages to the pins. This situation would arise if 12 V were applied to ground and 5 V were applied to the pins, such as CLK and SDI. The chip would think it was getting -7 V on some of its pins.

After thinking about the various ways to arrange the pinout, I was unable to come up with a solution that would stay inside the maximum ratings when the connector was reversed. The last thing I needed to do was test the pinout. Swapping my individual jumper wires around, I plugged it in and expected magic smoke to come out. I was pleasantly surprised when nothing popped. The only component that was getting hot was the 22R resistor bank on the Arduino, located near the USB connector. Fortunately, the resistor bank was able to survive a few minutes of punishment. I then swapped everything around, and the system functioned normally.

I'm satisfied with the current pinout. The system withstood a reversed connector long enough for the user to realize something was wrong. Hopefully, the instinct to disconnect the power when things don't go as expected will win out. Ultimately, it's expensive, if not impossible, to design for every contingency. I did test a few other pinouts and had far worse results. I hope my new Arduinos will arrive soon. 

LEDs Part 2

In my previous post, I went over how I selected the Lite-On LTST-C230TBKT blue LED. Today I'll discuss the process I used to check that this LED was a good selection.

The first thing I did was go to Octopart to see what prices and availability were like outside of Digikey. There, it looked like Digikey had the best price and the most in stock, but Mouser had 10,000, and a few other places also had these LEDs.

Second, I wanted to see what other color options existed in the same form factor and with similar electrical characteristics. Down at the bottom of the Digikey product page is a link to view the product in the online catalog.

There, I saw a bunch of color options, which looked promising. From that page, there is a link to view results as a parametric search. There were some non-reverse mount LEDs and multiple packages. After selecting only reverse mount, cut tape, and in-stock parts, there were nine options left (about one in each color). I could have red, amber, yellow, green, or blue LEDs. They all had the same current rating, so the current set resistor connected to the LED driver IC wouldn’t need to change. Because they all had the same package dimensions (which presumably meant that the land patterns for the PCB were the same), I could use the same PCB for any color.

Next, I wanted to see the options for buying reels of these LEDs. Digikey has a nice little "Alternate Package" box with a link to the reel packaging. At 11,000 LEDs, they would cost just under $0.07 each. If I built more than 500 boards and ordered more than 15,000 LEDs, that price would drop down closer to $0.06. That price was not bad and was a lot cheaper than other options I'd seen.

Finally, I wanted to check the datasheet. LEDs are simple, but I like to know that the manufacturer cares enough to test the product and publish the results. For this project, some of the exact details don't matter, but it's nice to know the product is well characterized. It's reassuring to have the spatial distribution of the light produced, for example, even if I don't need that data at this point. More importantly, the datasheet has land patterns and hole cutouts for the PCB and also has exact dimensions of the product and its packaging. The PCB information would make it easy to lay out the board. The dimensions of the reel would be useful for a contract manufacturer or assembly house so they know what they're getting and can set up their pick-and-place machines.

After I considered these features, this LED looked good. In my next post, I plan to go over my selection of the connector.

LEDs Part 1


In this post, I'll go over the LEDs I selected for the seven-segment display.

While designing these initial prototypes, I have been keeping in mind that the design needs to be straightforward to manufacture. I've also been considering the overall system design, especially the mechanical assembly of the final clock. The LED selection had a lot to do with that. Digikey has 19,037 options for discrete LEDs. Here's how I narrowed it down to one.

Let me start by mentioning that RGB LEDs, like the Neopixel, are cool. However, they are overkill for this product. They are also expensive and less available than single color LEDs.

The first way I narrowed the search was selecting only reverse mount, surface mount (SMD) LEDs, which Digikey calls "Surface Mount, Bottom Entry." This choice was important to the system design in two ways. Firstly, keeping all parts on the same side of the board is much cheaper for assembly. Double-sided boards require two trips through a pick-and-place machine and the reflow oven. Depending on the process, adhesives have to be used on the first side. This procedure adds complexity and cost to the final product. Secondly, reverse mount LEDs allow for a smooth front surface to mount both the diffusers and wave guide material. I want that part of the design to be very flexible and easy so users can make their own guides.

The second way I narrowed the search was selecting only blue LEDs. The brought the results down to 34. I wanted a blue clock, but I chose blue for another reason. Blue is a difficult LED color (difficult enough to win researchers a Noble Prize). Blue LEDs require the highest voltages, which means that, if blue LEDs work, lower-voltage LEDs, such as green and red, should also work. I'm also interested in a manufacturer that has a family of similar LEDs that differ only in color. Because of that feature, if I want to make variants of the segments with different colors, I can use the same boards and just swap out the LED part.

After further narrowing the search to cut tape packaging and in-stock items, there were only six results. Cut tape is important because I want small quantities for prototyping but reels for manufacturing. I have assumed that, if cut tape was available, I can also get the product in reels, but I will double check my final selection later.

At this point, any of the LEDs would work for prototypes. The next two columns I looked at were unit price and quantity available. If I make 500 boards with 22 LEDs per board, I'll need 11,000 LEDs. Digikey now lets you sort by price at a quantity. At production quantities, the Lite-On LTST-C230TBKT blue LED stood out as less than half the cost of the second least expensive option. It also had the highest quantity available, at over 51,000 in Digikey stock.

In my next post, I'll go over my process for double checking my LED selection.

Design Review

This blog documents the process of taking a prototype into low-level production. I'll start by going over the design of the full digit prototype. Below is the schematic, which is intentionally simple. Let's go into some of the design's details.

Click to enlarge.

LED Driver IC

When I started doing research for this project, I thought the LED driver IC would be a challenging part to find. As it turns out, there are many constant current (CC) LED driver ICs on the market with a wide variety of interfaces. I wanted a constant current LED driver with direct current instead of PWM because I wanted to dim the segments while avoiding ghosting issues. You can sometimes see this effect of PWM-based dimming if you glance back and forth across an LED source.

Instead of needing two chips, such as a shift register and a current source, the TLC5917 does it all and more. It works out of the box as a shift register with direct current drivers. The current is set with a single resistor. Additionally, the TLC5917 has special commands to dim the display based on a fraction of the set current. Beyond that, it can detect shorts and opens, and shifts out the results. If the microcontroller could also read in shift register data, it could do an incredible amount of diagnostics for less than $1 per board.

That's enough for now. In future posts, I plan to go over how I selected the LEDs and the connectors.

Optical Stackup

Today I'd like to go over the optical stackup I'm using for the full digit. The materials from top to bottom are

  • Standard copy paper
  • Two pieces of 1/8-inch-thick acrylic opaque white, laser cut to form segments
  • One piece of 1/8-inch-thick 40% transparent white acrylic, laser cut to a size of 6.0 inches x 4.2 inches
  • A PCB with reverse mount LEDs for a smooth top

I ordered the plastics from TAP Plastics. The files for the laser cutter will be posted to github.

Rev 2 of Full Digit Arrives

The Rev 2 boards in for the full digit recently arrived. I soldered up two of them and connected them together for a quick test. The major bug fix was in the connector pinout. Now the boards can butt up against each other like they were supposed to. I'm running this test using a Spark Core and a breadboard power supply from Adafruit. The colon is two decimal points. The digit on the right is upside down.


I'm starting this blog to document the process of taking an open-source hardware project from concept to product. I'll be diving deep into matters that include design for manufacture, component selection, supply chain management, pricing, assembly, marketing, sales, and logistics. In my professional career, I've worked on many projects up through the production stage. However, these projects were hardware tools for my company’s internal use. This blog will follow the first project I am making available to the general public.

My personal goals for this project are threefold:

  • Have a cool clock at the end.
  • Learn about Internet-connected modules, such as the Spark Core.
  • Gain experience with the process of taking a hardware project to market.

I can't guarantee I will make a successful product. Regardless, I intend to post updates on my progress here as I go through each of the challenges related to this project. Whether or not there is a successful product at the end, I know I will learn a great deal about the process. My hope is that you can learn with me.