Category Archives: Production

BBPSU 3.0 on the way!

It’s been a few years since I did a major revision of the Breadboard PSU, but that time has come. Below is a render of the most recent revision about to enter manufacture:

bbpsu30This version includes better thermal performance for the 5V regulator, by switching to a D-PAK (TO-252) package. This has more surface area and a larger heat sink area on the board itself, and provides a more stable surface to install a small heatsink.

The other major change is that rather than driving the 3.3V regulator directly off the DC input, it is chained off the 5V regulator. This actually allows more current to be drawn from the 3.3V regulator, since it has a smaller voltage drop to regulate down to. This does mean the total output is limited by the 5V regulator, but it is a considerable improvement in what you can draw from the 3.3V rail.

The remaining changes are mostly cosmetic. This happens to be the first version I’ve used Kicad for, which is unexpected to me given I’ve used Kicad on a number of projects now!

These should be available soon from nicegear.co.nz!

 

Kakapo net+sd shield

Those of you who have been following my personal twitter account will have seen endless pictures of the shiny new net+sd shield for the Kakapo.

20140927_160940

There’s plenty of shields with ethernet and SD card support, but there’s a few different things about this one compared to others:

  • The latest WizNet W5500 hardware TCP/IP chip
    • 32kB SRAM, 8 sockets
    • Automatic circular buffer management
    • Compact 48-pin LQFP chip
    • SPI support up to 80MHz
    • Variable length transfers to reduce overhead
    • 10/100 Full and Half Duplex support
  • Built-in I2C MAC address EEPROM
  • MicroSD card socket
  • W5500 chip is automatically reset by Kakapo reset sources
  • W5500 and SD card MISO shield pin is buffered; does not drive pin at all when deselected
  • Four status LEDs: Link, Activity, 100M and Full Duplex
  • Jumpers for easy disable/enable features; no soldering to free shield pins from features not required!
    • Jumpers for W5500 !CS line and !INT lines
    • Jumper for SD card !CS line
    • Jumper for I2C 4.7k pull-up resistors
    • Opening !CS jumpers enforces part remains deselected
  • MAC address sticker for easy identification
  • All pins used explained on the bottom side of the shield
  • Same pins used as the common Arduino Ethernet shield

The shield is going through some final testing, and will be available soon!

Kakapo roadmap

Now that the first batch of boards has been shipped off and are starting to make their way out to customers, I thought I’d post a bit of a roadmap on things that I plan to work on around Kakapo.

First up is to resolve some of the outstanding major tickets on libkakapo. The main one to sort out is the various problems with clock.c, namely that is takes control of hardware when it shouldn’t (breaking the philosophy that you should determine how it’s used, not the framework taking it away from you) and that RTC support needs to be broken out into it’s own code.

Less urgent is to expand the number of supported modules. I’d like to get watchdog, type 2, 4, and 5 timers, and a few other things with better support. Modules present on the XMEGA D4 will be highest priority, but given I use libkakapo myself on other projects, support for some of their modules is useful to me at least.

Anyway, if you’d like some idea what I think is on my to-do list for libkakapo, have a look over the issue tracking.

I also need to write up more tutorials which build on the examples provided in the libkakapo source. Those examples actually serve as test suites as well, since they provide a quick way to check the libkakapo driver works as I expect. But they should really have documentation associated with them here about what they’re doing and why they work.

On the hardware front, the next major addition to the family will be a W5500-based Ethernet+microSD shield. This is the latest revision of the Ethernet/IP chip commonly used on Arduino Ethernet shields. The first prototypes of the PCB go off to be made this weekend. You’ll see more updates on that soon, I hope!

Lastly, thanks to everyone who has expressed interest, committed code, and generally supported getting Kakapo out and about. I really appreciate the effort people have put in.

Quick shipping update

The first 16 Kakapo boards available to buy have been shipped to nicegear today. I still need to take proper product photos, but that doesn’t stop them working so it’s been down my priority list.

The next thing to work on is cleaning up libkakapo documentation inside the source and writing up more documentation here. I also need to submit a patch to avrdude to allow the avr109 programmer type to perform automatic reset. It’s not a huge patch, but I’m not sure when it’ll be merged.

First shipping batch almost complete!

A bit of a production update on the Kakapo. The first production batch of 16 boards has been completed, and are ready to pack and ship off to nicegear. There is also now a product page up so you can register to buy one before they arrive.

The next task is the final boxing. I had originally planned to use a set of black boxes with a sleeve, but they are quite large. They fit the boards plus the USB cable just fine, but I have been thinking about a more compact box.

BqsWn4YCEAAqwx1Playing around in Inkscape with a flat-box design and cutting from 160gsm card stock, I think I’ve come up with a nice compact box which is large enough for the board (in a bubble anti-static bag) and USB cable.

Now the question is, figuring out how to get lots of them made cheaply and easily. Hand-cut is fine for a prototype but it definitely won’t scale.

The pricing of things

The part about making electronics for people to buy that I really don’t do well is the price. Designing something, while it has some challenges, doesn’t stump me as hard as picking a price for the result.

Covering the obvious costs (ie, the components) is usually pretty easy. Covering my time is harder, since even for assembly time I don’t have a useful value for it. Not one I could reasonably apply.

There’s also some complexity in the cost of the components. I’m not making thousands or millions of these, so the prices for components are volatile and sensitive to quantity.

This then means the price for initial runs has to be just high enough to cover the big costs and a little more to help fund the next run, but not so high it won’t sell at all.

While I’d like to think I’m inventing new things, I am not and the market already has a price for many of these things. The heuristic of “cost times three” breaks down – I don’t have the same production capacity or immediate demand to make that viable against the market price.

A lot of the future is about getting better pricing on the parts I am using, and improving build processes so that it takes less time to do each build.

Funnily enough, I am working through the pricing for the Kakapo dev board, which is what prompted this post. Should be an announcement soon on what that looks like!

Kakapo production boards

20140610_181047

The Kakapo production boards have arrived! These are a 2×2 panel (so a total of 4 boards within each panel) and the new silk has turned out fantastically well. Hackvana has supplied these boards and they have delivered very high quality PCBs again.

The new Kakapo logo was redone for this run, mostly to make it look better in white rather than the black I had originally planned. The drawing was redone in Inkscape, with cut-out lines for adding detail to the solid area. I think it’s turned out great, the picture doesn’t do justice to how fine the detail lines actually are.

I expect to start production on these at the weekend, starting with shipping the final configuration to Nicegear for feedback and then ramping up making the first run.

It’s also about time I worked out the pricing, I’m aiming for around the same as an Arduino Uno, at least as close as I can make it. It will depend on how much small runs (as it currently is being made) adds to the costs.

The design of BBPSU

My Breadboard Power Supply is designed to overcome a number of problems with other existing plug-in power supply designs. At a glance, it might not seem to make much difference how my supply board is designed compare to other solutions – they all get you a stable voltage from a wall wart – but read on for how those differences actually matter.

Most Breadboard power solutions provide a single output from a DC jack. This is fine if you know you’ll only ever need one power rail. But increasingly ICs and components are only available with 3.3V, and other components don’t run at their top speed unless being fed at 5V. Having both available at once is more of a necessity than it has been in the past.

For example, Microchip make one of the only Ethernet chips you can plug into a breadboard: the ENC28J60. A small, through-hole IC, which provides almost all the hardware needed to add Ethernet – just a jack, some magnetics, and terminaton is required. But this part is 3.3V only. Similarly, to get the maximum speed out of a AVR MCU you can plug into a breadboard, say the ATMEGA328P (like an Arduino uses), you need to run them at 5V.

So my breadboard supply board provides you both at once. You don’t have to switch between one or the other. Both 3.3V and 5V are available from the same input and the same board.

The second problem with most supply boards is the way they connect to the breadboard. A breadboard has down each side two power rails (usually marked red for positive and blue for ground), and it’s natural instinct to connect a supply board directly to these rails.

But there’s problems with connecting that way. Not all breadboards have the same width. The main area of a breadboard, the grid of holes, is always spaced the same, but the number of columns varies between breadboards, and the distance from the grid to the power rails varies as well. This means most supply boards will either only connect to a single side rail or if they do try to connect to both, they are only able to connect to a few specific breadboards.

Instead, I noticed there’s one area of a breadboard which is always consistent – the IC well. Breadboards are designed to accept all DIP packaged ICs, their pins are always spaced on a 0.1″ grid. So all breadboards have their grid spaced the same way. And to split the sides of a chip into separate lines, they have a well down the middle. That too is spaced on the same 0.1″ grid, to ensure any DIP chip will fit.

That’s the better, more reliable, place to connect a supply board – it’ll always be the same spacing on any breadboard. Since it’s also split between sides, it makes it easy to provide both 3.3V and 5V at once – they are just different sides of the IC well.

Most supply boards droop off the end of the breadboard, which is both sloppy and may damage the breadboard or pins in the supply board. My supply board uses additional pins to provide stability, so there is no droop and the board and pins are firmly held in place without bending.

The LEDs for each side are also placed nice and close to the pins where the output is present, so you can see easily that each side is live. I’ve also put more emphasis on limiting the number of components down to what you really need, and not things which aren’t critical to have. This means my supply board is much cheaper, about 30% cheaper than other boards with only a single output, and you get two outputs from my supply board.

It’s also been designed to be easier to install a small heatsink on to the regulators. Linear regulators do generate a significant amount of heat, but most boards try to cram too many components around the regulators, making it hard to use a small heatsink to improve how much current can be drawn from the supply board.

By keeping the space either side of the regulators clear, it’s very easy to glue down a small heatsink designed for DIP packages to both regulators. Very few supply boards can accept a heatsink this easily.

Lastly, buying locally means you get customisation options. The boards can be supplied with custom voltages, or without pins or DC jack loaded so you can solder it into a fixed installation.

In summary, the hairy.geek.nz breadboard power supply:

  • Provides two outputs at once, instead of only one
  • Prevents damage to the breadboard by limiting droop from the power input
  • Fits to any breadboard
  • Provides a clearer indication power is on
  • Ensures you can easily install a heatsink if required
  • Is lower priced than most single-output boards
  • Can be customised to your specific needs

You can get the hairy.geek.nz Breadboard PSU from nicegear here.

Testing

The second part of getting up to better production standards is testing. While I’ve always done testing, it’s usually a slow process of fiddling with sockets and checking each point with a multimeter by hand.

For v2.0 of the Breadboard PSU an important design decision was to include better support for being able to test the assembled boards quickly. The intention was to take advantage of one of these.. a pogopin:

pogopin

Pogo pins are a spring-loaded conductive pin which can be soldered in like a header pin. They are small enough to fit standard holes boards already usually have for various kinds of headers, and come in a variety of tips, including ones which make solid contact with flat exposed pads.

The output sides of the board already have useful holes to connect a pin to, but the input side didn’t have anything. So v2.0 has two holes down by where the DC jack is soldered specifically for pogopins during testing.

The next part is making the testing frame. For this, I used the laser cutting services of Ponoko. These are the plastic cuts I designed and had cut:

The three pieces make up a bottom layer to hold a sacrificial PCB, and two top layers, one of which is just used to assist on placing the board. The small holes are to allow the pogopins to pass through, with bolt holes in each corner.

The sacrificial board is one of the boards from the panel with nothing soldered down to it. Pogo pins are soldered down on the existing holes, and additional wires are soldered to pads and holes which connect to the same signals.

The whole contraption, connected to a pair of multimeters and a DC jack, looks a bit like this:

From the side, you can see the way the pins are arranged to allow contact from a board under test:

This is probably not ideal, the pins are too high, but you get the general idea.

All that needs to be done now to test a board is press it down on the array of pins, and check the meters and LEDs are lit:

As you can see, the LEDs are lit confirming that they’ve been soldered down correctly (for once!), and the voltages of both sides of the output. This board was rejected after testing, as the 5V output is too low.

Testing is a critical part of making sure the products you make are working as the end user expects. By using a testing jig like this, I can test a board in about 5 seconds.

Using a small MCU, a more complete testing platform could be made, that automatically measures voltages, or flashes firmware images, or interrogates the target board to ensure it operates normally.

All you need is a bed of pogopins, and some imagination.

Panels

As part of expanding my production processes, I’ve taken the next step in production scale: panelised boards rather than separate boards. The idea behind this is rather than applying paste to one board, you apply it to a panel of boards which has multiple copies of the design. Once reflow is done, you can split these by hand into final boards you want.

For the newest revision of the Breadboard PSU, I got panels made by Hackvana, who do fantastic high quality PCB production ideal for hobbyists like myself. I worked with Mitch from Hackvana on the panel, providing a single design and then approving the panelised version he’d built. Only a few days later, the panels turned up, and they looked great.

To actually get them soldered up and ready to ship out to Nicegear, it’s almost the same process I normally would go through for a single board, but now it’s multiple copies at once.

The process begins with applying paste to the board. Here you can see the multiple copies making up the panel, and empty board around the outside. There are four holes in the corners which align with the holes in the metal plate below, and have 2.5mm pins in them. The stencil is taped down on top of the board, and also has holes where the pins are.

Applying paste is just like you would for any other board, smear solder paste on the stencil, and then scrape it off. Once you’ve removed the stencil and released the board from the pins, you get a panel with paste applied to the pads:

The grey paste can be clearly seen on the pads here.

Now we go through the process of dropping down our components. I use a vaccum pump with a fine tip I bought from AliExpress for this part. It makes it easier to lift the parts straight from the tape on to the board.

Once we’ve placed all the parts, the board looks like this:

Now we’re ready to cook the board. I have a “modified” toaster oven driven from an SSR by a PID controller called osPID. The reflow profile is loaded into the osPID controller and it pulses the mains into the toaster oven to hit the temperatures the profile needs. There is a thermocouple inside the oven so the osPID controller is getting closed-loop feedback of how the oven is performing.

This is the board being cooked in the toaster oven:

I try not to burn my fingers when removing the boards from the oven after the reflow process is done. You can see in the photo below the bright silver solder, showing it’s now all soldered down:

Now we just need to start breaking the panel apart into the separate boards. Hackvana have used a v-score cut along the dividing line between boards and the boards and rails, so they can be snapped apart by hand easily.

Finally we have all our boards separate and ready for testing!

Once all the through-hole soldering is done, we get our nice shiny finished product, ready to be sent out into the hands of eager users!