We're back with a bonus round! Did you think the previous episode was the last? We're (once again) talking test jigs in this episode of The Factory. We've designed our board, panelised it for production but we still need to test every unit that comes off the assembly line! We work with a standard test jig at Core Electronics, and in this episode we come up with a testing philosophy and jig daughterboard.

Transcript

Well, didn't expect to see you again! Yes, we're back for the sixth installment of Design a Product with Us, the series where we design a PiicoDev project from scratch before your very eyes. In the last episode, we were doing panelization. The panels arrived, it's just the same thing but there's lots of them in a panel.

This episode is all about test jigs. We've made a product, here's one that I've assembled from that panel that I broke apart. We've made a product, but we've got to test it, so we need a jig. Let's get to it!

For a lot of that stuff, we use a templated jig. This is our template that we can reuse for a lot of different boards. We have space for a Raspberry Pi Pico that can run the show, a bunch of supporting components, and then for PiicoDev products, we can just have a connector glued to the board here that we can plug devices onto to test them.

We can assemble these exactly as they are for a lot of PiicoDev modules. Some other modules need a little bit more circuitry though, and for that, we can make a daughter board. This outline section here has a big breakout header, so we can put a daughter board onto this motherboard and have a specific circuit to test our specific device. In this case, you pick it up Servo driver.

So, what do we need to test with something like this? We have a few really important things. We can plug in with a PiicoDev connector and make sure that we can talk to the PCA 9685 chip, that will test that the chip is functioning and that we have a at least one working connector. We can inject a signal into one of the USB sockets to make sure that we have power and ground connected to each of these connectors, that will test both the continuity of the connector and that the soldering was successful for each of these four Servo channels. Finally, we can test that we can actually... the board

I have come up with a daughter board that will go onto a test jig motherboard. It has a big header down the left hand side for connection to the motherboard, a standard mounting pattern to hold it up off the board, a USBC receptacle to plug a USB cable into the test jig and route to the device under test, and four three pin headers for each Servo channel. For testing the PiicoDev connection, our standard test jig already has some provisional Footprints for that cable.

To make sure there are no shorts, I am generating a pulse on each of these pins and a unique PWM on HPN. If we drove all the channels with the same identical pulse, and there was a short between two pins, it would probably look like it still passes even though there might be a short. With a unique pulse length on each pin, we can make sure that we have signals coming out and no shorts. understand how to use them

Our schematic on the file left shows our connection to the motherboard. We have our USB test and then this whole section on the right is for testing the servo 3 pin headers. For the USB connector, we're just taking three volts and we're injecting that into the connector and we're also passing through a couple of resistors and through the CC1 and CC2 pins. This is to make sure that we have the 5.1 K resistors correctly soldered. These are the resistors that tell the Upstream power supply to give us up to three amps if it can.

We also check that the device under test has a ground connection and so for here we just make sure that gp22 gets pulled to ground by the device under test. If that ground connection isn't soldered correctly then this line will be pulled up to 3.3 volts.

Now for the tricky bit, it should be pretty simple in theory to test for each of these connections. We can look that the ground pin gets pulled to ground, we can look that the Power Pin gets pulled to power, and we can look for a pulse coming out of the signal pin. So we can have a digital pin assigned to every one of these three by four, that's 12 pins. The only problem is our Breakout, we've run out of pins if we do that. Our breakout doesn't have enough pins to service all of this.

There are a few things you could do about it. You could do I/O muxing, you could use an I/O expander, write some code and put that I/O expander on the daughter board so you can have a digital pin assigned to every single one of these things. We can do that, we have I/O expanders, we understand how to use them.

Even have analog switches which I considered using where you can literally just have that digital pin scan across multiple others by analog switching between them or you could use some logic ICs you could use AND gates or OR gates etc. That was the first solution that I thought of actually, to just use a couple of AND or OR gates because we want to check that all the voltage pins are tied higher and all the ground pins are tied low. So, a couple of AND or OR gates would just be perfect.

Now, we prefer to use components that we already have in production or the Core Electronics stocks, we can just put in an order and take them off the shelf to use in our test jigs. All the logic ICs that we have though, I think are only good for 5 volts and this is a three volt test. What we do have in spades however, are diodes, yes we've just got diodes by the real and so why not make a diode AND gate and a diode OR gate?

Here's how you might go about putting together a diode AND gate. This is pretty old-school but very effective and it uses components that we already have. We have our inputs A, B and C, they're all tied together on the output with a pull-up resistor and then the output has to be A AND B AND C. And so, we can use the same philosophy for example to test that all the voltage pins are connected. If any one of these voltage pins isn't high, if it's instead pulled low by a pull down resistor, then this AND gate will fail because this current will flow through the diode instead of pulling this line high, it'll essentially pull the output to low. Likewise, to check all the ground pins, if any of those ground pins are not pulled to ground, if they're instead allowed to float high by a pull-up resistor, then our diode OR gate will have a high output. All of these need to be low for this output to be low.

We have implemented a check for the ground pins and voltage pins. Let's break this down to just one channel and see what happens. We have our connector on the right here, this is our Servo connector and for servers pin one is ground. This is the pin we want to test. We have a pull-up resistor going to 3.3 volts, which means that if nothing is connected this will float up. If we have a connected device under test and the ground is connected, then this will be pulled down to ground. Now we have a diode and a pull down resistor, and so if this is connected to ground the output will also be connected to ground and we will have zero volts here. This will be pulled down to zero volts, which is our test gp20. If this is unconnected then it will be pulled up to 3.3 volts, we'll get current flowing through the diode and we'll see voltage at gp20.

We can just stamp that out for as many channels as we need to test. We've just got the same circuit four times, one for each channel. If any one of these pins is not being pulled down then it will pull gp20 high. We have a similar philosophy for checking the voltage on VCC or positive for each Servo channel. Here pin 2 is positive and if we come across we have a very similar circuit. This is just a diode and gate, and so all of these channels would have to be high to send GP 21 higher.

To execute our test we just make sure that gp21 is high and gp20 is low. Let's make it print out the schematic, grab the parts bin and start soldering the resistors. I've got my printed schematic so I can refer to the reference designators both on the schematic and on the daughter board. As always, starting with the smallest components first. We usually use 0402 in production but for these test jigs. display the status of the test

I'm using 0603 Parts because they're a lot easier to hand solder. I could have got a stencil for this jig but then we would have just had to curate the stencil and keep it somewhere. It's simple enough but hand soldering is okay. Now for the diodes, you can see that I'm soldering a single pad of each of those Footprints first and that way with the tweezers I can bring the diode in and Reflow just that pad to secure the diode. Then I can flip the board around and solder all the other pins on.

Go the four Servo test channels, these are just standard 0.1 inch female headers and now for the USB resistors and the USBC receptacle. The motherboards are pretty simple if that there's a lot of components that we don't need to populate because they're intended for other types of test jigs. So I'm really just soldering a bunch of pin headers, a couple of PiicoDev connectors, there's even a spot for a power supply load resistor so we can run this thing off a USB battery bank without the battery Bank turning off automatically.

And now to bring the motherboard and daughter board together, I stand off the daughter board using a couple of standoffs and then the two just plug together with male and female pin headers. Oh and I kind of regret this unsightly Gap. I fully plugged the pin headers into the socket header rather than having it flush with the daughter board so there's a kind of a weird Gap. I don't know, it's just next time, just a lapse in craftsmanship.

There all of that aside, we've got a fully assembled test jig. We have our Pico to drive the show, we've even got a ticket of OLED to show the status of the test. I forgot to mention this before but this standard jig has an option to include the OLED. We used to use colored LEDs but you couldn't indicate as Rich information. This OLED can actually display the status of the test.

Issue instructions or give unambiguous feedback has been a game changer. It's kind of poetic that we have a PiicoDev device being used to test other PiicoDev devices. Our daughter boards are on top and the sticker I've put on is our way of indexing equipment. Everything is indexed and has a place, so everything can be in its place and it's easy to find where the jig is on the shelf.

Let's take it for a spin. The jig will look like this for testing. There's helpful feedback on the display saying to connect the servo driver and there's a few scrolling ellipses to show that the code is still running. If there's a crash, you don't want a static screen, you want to see that heartbeat so you know the jig is still working.

Device to test: Step 1, connect the USB connector. Step 2, the PiicoDev connector has a green light. Step 3, plug it into the servo test headers. There you have it, we have an electrical pass and an instruction for the operator to check for a green LED.

For completeness, here's what a failed device looks like. This device has a non-functioning USB resistor and so this one is a fail. We don't really delve into providing any more information than that, we just want to sort pass fails. We could have a mode where we can hold down the button and maybe show which exact test failed if we want to sort these into different bins for rework or repair.

We have a bit of a deeper dive into the art of testing building and test jig philosophy. Now there are things that are just simply impossible to check with this test gene. For example, we can't check if this address switch is soldered correctly. There's no way for us to include test points on this board to check the switch. To check this switch, we would have to actually have test points and we would have to move the position of the switch.

So there's a bit of a question about testing philosophy here. You could design a totally exhaustive test where you actuate this switch and you have test points on the board to look for that and you have the test jig instruct the operator what to do when and you really increase the cost of testing there and you make a more exhaustive test. But I think for this type of device and the intended audience, this is an acceptable test. It could be more exhaustive, but is it necessary and would you want everyone to wear the cost of that? What do you think?

Let me know in the comments below. What I think this jig needs is a guide plate to help us support those four servo headers and also to help prevent the operator from plugging the servo driver in the wrong way around or like being off to the side or off by one pin. So I imported the daughter board into Adobe Illustrator and sketched out the outlines of a plate with some cutouts for holes and slots for those server headers. Jump on the laser cutter, cut it out and just install it with some M3 hardware. And of course, don't forget to include cutouts so you can access the screws underneath.

Every time, and there we have it: a completed jig with acrylic guide plate. Thanks for joining us for another episode in design a productivist with the factory. This will do for now, but in any case, that's all I have for you today.

It's been a pleasure. I hope you've learned something; I know I have. Until next time, thanks for watching. And the final step is to connect the pin headers to the pin socket. You plug it in. Why do you do this now of all times?

Comments


Loading...
Feedback

Please continue if you would like to leave feedback for any of these topics:

  • Website features/issues
  • Content errors/improvements
  • Missing products/categories
  • Product assignments to categories
  • Search results relevance

For all other inquiries (orders status, stock levels, etc), please contact our support team for quick assistance.

Note: click continue and a draft email will be opened to edit. If you don't have an email client on your device, then send a message via the chat icon on the bottom left of our website.

Makers love reviews as much as you do, please follow this link to review the products you have purchased.