Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.
Photo

Fix It Shield


  • Please log in to reply
10 replies to this topic

#1 Paul Newton

Paul Newton

    Advanced Member

  • Members
  • PipPipPip
  • 724 posts
  • LocationBerkshire, UK

Posted 04 December 2011 - 10:45 PM

I bought an Ardumoto motor driver shield that was designed for the Arduino. As with many Arduino shields it appeared to be compatible with the Netduino until the pinouts were scrutinised (unfortunately after I purchased it). Neither of the PWM inputs it required were connected to Netduino PWM pins, and I also later found that it was not possible to connect the shield's motor supply to the Netduino Vin as it caused the Netduino to become unstable when it shared the supply. As a result I have been placing the shield and the Netduino side by side and linking them with wires. What I needed for this shield, and future ones, was a shield that would allow me to connect, disconnect or remap any of the pins between the Netduino and the shield (or even between one shield and the next). Behold my weekend's work, the FixIt Shield. The FixIt shield is built from tri-pad veroboard using only the most basic DIY and soldering skills, with additional parts easily available. The shield comprises a split lower board that attaches to the Netduino (or another shield), and wings that route the signals to the shield above via a set of headers and jumpers. The lower board connects to all of the Netduino signals. The board is "split" because the higher digital signals (D8-D13, Gnd and Aref), are not aligned to the same 0.1" pitch as the rest of the connectors. The "wings" are mounted at right angles to the lower board using right angle headers. At the top of the wings are sockets into which the upper shield is plugged. An array of 0.1" headers on the wings allow each Netduino signal to be routed normally using a 0.1" jumper. Removal of the jumper allows the signal to be simply disconnected, or to be routed to any other position that feeds the shield above using a wire fitted with sockets. Extra header pins are present to allow signals to be tapped for other purposes, and the remainder of the lower board is available for prototyping using the unused tri-pad PCB pads. Below is a photo of the completed shield being used to correct the wiring of the Ardumoto. I neglected to buy any jumpers before starting the shield, hence there are none in the picture, and all connections are made by wire. The orange wires in the foreground are being used to connect two of the analogue inputs to the potentiometers above. The red and black wires connect the 5V, 3.3V and ground signals. The pink wires just visible are used for the digital PWM and direction signals of the motor driver. I am currently drawing up diagrams of the shield, I will try and attach them, and photos of construction, to this post in the next few days. Paul

Attached Files



#2 Stefan

Stefan

    Moderator

  • Members
  • PipPipPip
  • 1965 posts
  • LocationBreda, the Netherlands

Posted 05 December 2011 - 08:57 AM

Ohh that's clever! It could also help to stack shields that have overlapping pins. Almost everyone experienced this; two shields that both want to use GPIO D10 for example. Put this in between and it's solved!
"Fact that I'm a moderator doesn't make me an expert in things." Stefan, the eternal newb!
My .NETMF projects: .NETMF Toolbox / Gadgeteer Light / Some PCB designs

#3 Paul Newton

Paul Newton

    Advanced Member

  • Members
  • PipPipPip
  • 724 posts
  • LocationBerkshire, UK

Posted 05 December 2011 - 12:50 PM

Ohh that's clever!

Thank you!

It could also help to stack shields that have overlapping pins. Almost everyone experienced this; two shields that both want to use GPIO D10 for example. Put this in between and it's solved!

Exactly.

Also, all those shields that need a modification to make them run off 3.3V instead of 5V - just add one of these and route the Netduino's 3.3V output to the shield's 5V input.


I have used a design that "Almost everyone" should be able to build at home in a few hours. Building it is great soldering practice!


The only problem is that it is quite tall. I would not want to use very many at the same time.
In its current "DIY" form it could be made a little shorter by losing some flexibility, but only 0.2". To make it the same size as a normal shield you would need a custom PCB.


I will try and post more details as soon as possible so others can improve on my design.

Paul

#4 Paul Newton

Paul Newton

    Advanced Member

  • Members
  • PipPipPip
  • 724 posts
  • LocationBerkshire, UK

Posted 06 December 2011 - 06:07 PM

This is taking a lot longer to document than to build - so I as going to start posting in parts.

Background

The idea behind the FixIt shield is to take each signal from the Netduino to a pair of 0.1" header pins.
Next to those header pins are another pair of pins that are connected to a matching socket that goes to your shield.

If you do nothing, the Netduino signal is not connected to the shield.
If you place a 0.1" jumper on the centre pair of header pins, you connect the Netduino signal to the shield (as normal).
Alternatively, you may use a patch wire (fitted with a socket) to jump from one signal to another ("remapping").

In the diagram FixItShieldExample.jpg, I have shown three signals on the two 8 way Netduino digital connectors.
Aref is joined to the shield as normal, but D8 of the Netduino is connected to D0 of the shield using a wire.


Q: You only need two rows of headers; why the extra two rows of headers?
A: It allows access to the signals to take them to the prototype area, or to take the same signal to two places (even when the jumper is fitted).

Q: Why use headers when its easier to connect a wire into a socket?
A: Headers are cheap, and the centre pair of header pins can be joined using a jumper which is much neater than a wire.

Q: But I can use sockets for the outer two rows can't I?
A: Yes.


The diagram EndView.jpg shows the FixIt shield end on.
I have coloured the signals connected directly to the Netduino blue, and those connected directly to the shield red.
I have called the PCBs on the sides "wings". They are glued in place with super glue and connected using right angle headers.
The sockets at the top for the shield to plug into are also glued in place.
The top half shows my "Mark I" version, the bottom shows the Mark II version with sockets for the outer rows. I have not built a Mark II yet - let me know if it does not work! (Sockets do mean its much easier to make jumper wires for remapping.) If you chose sockets, make sure the jumpers stick out above the sockets - otherwise you will not be able to pull them out again!
The top half also shows an example of a jumper being used on the left hand side to join a signal directly to the shield. The prototype area is also being used to pass the same signal into an IC and the output of the IC is taken to a different shield signal.

Not all jumpers are made equal - some jumpers have an extra piece of plastic on top that allows them to be removed easily when packed together. Jumpers.jpg shows this.

I will describe assembly in the next post.


Paul

Attached Files



#5 Coding Smackdown

Coding Smackdown

    Advanced Member

  • Members
  • PipPipPip
  • 78 posts
  • LocationLewisville, TX USA

Posted 06 December 2011 - 07:39 PM

This is a really good piece of work. Once you have it all documented it definitely should get posted to the WIKI. Thanks for sharing your idea!
Brewing Award Winning Beer with a Netduino!
http://diybrewery.com

#6 Paul Newton

Paul Newton

    Advanced Member

  • Members
  • PipPipPip
  • 724 posts
  • LocationBerkshire, UK

Posted 06 December 2011 - 08:14 PM

This is a really good piece of work. Once you have it all documented it definitely should get posted to the WIKI.

Thanks for sharing your idea!


Your welcome!

What I would really like to see is everyone else helping to improving it.
Once I have had an idea it is sometimes hard to step out of the box and spot a better way to do it.

Paul

#7 Paul Newton

Paul Newton

    Advanced Member

  • Members
  • PipPipPip
  • 724 posts
  • LocationBerkshire, UK

Posted 06 December 2011 - 08:59 PM

Sorry that there are so many words for something that is actually quite simple to do!

Assembly

Referring to BoardShapesAndLayout.jpg. The top half of the diagram shows the size and shape of the PCB. The bottom half shows where the headers and sockets are fitted. I have coloured the outer rows of headers on the wings in red - these are the ones you might want to fit sockets instead. Sockets will make patching easier as you can use solid core wire instead of making fly leads with sockets.

Preparing the baseboard and wing PCBs
First mark up the tri-pad board (with a pencil or felt pen) and cut out the pieces needed: three wings and two base board sections.
Note that the base board has to be split in two. I don't know why, but the two 8 way connectors are not on the same 0.1" pitch alignment. So the D8-13 8 way connector has to be a separate piece of PCB. (If this were made with a custom PCB, it could all be one piece).

Be careful to pay attention to the positions of the pads on the copper side of the board.
They have to be in the correct places.
The top of the diagram shows you what both sides of the boards look like. Measure twice - cut once.

The height of the baseboard is limited by the power connector and the Ethernet connector on the Netduino Plus. As such, the top of the base board has a notch cut into it to go around the Ethernet connector of the Netduino Plus. This may not be necessary if you have a normal Netduino, or if the FixIt shield is mounted on top of another shield.

There are two main ways to cut the board: snapping by hand, or using a moto tool (e.g. a Dremel).

Snapping:

Use a pair of wire cutters, cut into one hole at the edge of the board where you want to make a "cut". Don't try and cut more than one, the board may fracture out of control.
Gently flex the board with your fingers where you want the snap to go. (You can use a thumb nail to concentrate the force in the correct place.) You will hear the board click as it breaks, sometimes you will need to turn it over and repeat from the other side to make a clean break.
Keep going until the cut is the correct length.
You can use this method easily with straight runs; cutting an inside corner is harder because you have to make two cuts in different directions and have the break stop in the right place.

Once you have "snapped" the board to shape, you will have a rough edge like a perforated postage stamp.
Mostly this can be ignored.
However in this design, where the two baseboards meet, you will have to use a file to take away the excess.
You will also need to file the excess edges where the two digital wings meet.



Moto tool:


SAFETY SAFETY SAFETY - use the correct protective gear.
I used my Dremel with a "cut off wheel" to cut up my PCB; the wheel exploded when I pushed too hard and the bits shot into my face. Luckily I was wearing safety glasses and dust mask.
Moto tools sound like a good idea, but it does take quite a long time to make the all cuts necessary, and cutting creates a lot of dust.
On the plus side it is easy to grind the edges down to allow the boards to fit neatly.

After cutting/snapping, check that none of the copper from the pads is sticking out at the edges or touching another pad.
Also check that the baseboard and wings are not too big to fit together. (e.g. along columns r & s in diagram, and rows 11.5 & 13).

Constructing the baseboards
Next prepare the straight headers that join the FixIt shield to the Netduino.
They come in various lengths - I bought mine in lengths of 36 pins.
  • Cut/snap them into the correct lengths (13 + 8 + 8). This can be done very easily using cutters or snapping with fingers.
  • Use a small pair of small pliers to pull out the middle pin of the 13 way header (this leaves 2 x 6).
  • Use a flat tool (e.g. screw driver) to push all the other pins so that there is no metal protruding on one side. See ModifiedHeader.jpg.
  • Now when you insert the headers into the base board the legs are almost as long as those on a regular shield. The picture ModifiedHeader.jpg shows the 13 way header cut up with centre pin removed, and pins pushed through. For comparison there is a stackable socket also in the picture.
  • For each header in turn, put the header into the PCB, and solder one pin first. Then check that the header is in the correct place, and that it is pushed flat onto the board. If it is not OK, you can squeeze the header whilst re-heating the joint - it will then pop into place. Once you are sure its OK, solder the remaining pins.
The picture SplitBaseboard.jpg shows the baseboard plugged into the Netduino plus using the straight headers.
Note that the picture does not match my plans! It shows a slightly different size for the D8-D13 board (front left). The picture shows my first attempt; I have since changed the plans to make the main prototype area bigger. This means it will be easier for you to mount ICs than for me.

Next prepare the right angle headers to join the base board to the wings
I also bought these in long lengths of 36.
  • Cut/snap them into the correct lengths (6 + 6 + 8 + 8). This can be done very easily using cutters or snapping with fingers.
  • Insert them into the base boards, and solder one pin on each header.
  • Take each wing and check that it fits neatly onto the header (See the EndView.jpg in my previous post). If the wings are too big, see if they can be shortened slightly. If the wings are too small, you may be able to adjust the right angle headers by carefully pushing the pins towards the baseboard.
  • When you are happy with the fit, take the wings away and solder the rest of the header pins to the baseboards. Do not solder to the wings yet.
Making the wings

You might want to make the D8-D13 wing first because it can be completed on its own. Picture Digital8to13Insitu.JPG shows this wing completed, attached to its baseboard, and connected to the Netduino and shield.

Prepare the sockets that the shield plugs into.
I bought a set of stackable sockets (2 x 6 + 2 x 8) in a kit for the Arduino. These have pins that are straight and too long. I have seen some shops selling sockets with short legs already folded to 90degrees - but I have not seen ones with 6 or 8 pins.
  • Fold the legs over tight against the socket.
  • Insert each socket onto its wing, and check it fits squarely.
  • Remove the socket, and CAREFULLY apply some super glue to hold the socket in place. The only thing that superglue is guaranteed to stick to anything is fingers!
  • The glue makes the joint stronger, and holds the socket still while you solder it in.
  • Solder it in!
  • Use wire cutters to remove the extra leg length. See picture SocketGluedAndSoldered.JPG.

Next add the headers to the wings. (4 x 6 + 4 x 6 + 4 x 8 + 4 x 8)
The soldering is easier if you apply these one row at a time working away from the socket.
Again, always solder one pin first and then check the alignment before soldering the rest.
You may have chosen to use sockets for the outer two rows instead of headers, or you might have chosen not to fit the outer two rows. That's up to you.

Final assembly
Finally attach each wing to the baseboards.
Before you solder a wing, check that it fits squarely onto the right angled header pins. See picture Digital8to13Assembled.JPG
When you are happy, use some super glue to stick it into place. When the glue is dry, solder the right angle header to the wing.

Repeat for the other wings.

That's the construction done!

In the next post I will show some photo examples of using jumpers and using wires to remap signals.

Attached Files



#8 Paul Newton

Paul Newton

    Advanced Member

  • Members
  • PipPipPip
  • 724 posts
  • LocationBerkshire, UK

Posted 06 December 2011 - 09:20 PM

Using the FixIt shield.

As mentioned at the start, I have an Ardumoto shield whose PWM inputs are not pin compatible with the Netduino.
Also I found that if I connect Vin from the shield to the Netduino, the Netduino becomes unstable. This is probably due to electrical noise from the motors.

So I want to do the following:
  • By default connect all pins. This is so that I can add my potentiometer shield on top: http://forums.netdui...tiometer-shield
  • Do not connect Vin.
  • Connect Netduino PWM D9 to Ardumoto PWM D3.
  • Connect Netduino PWM D10 to Ardumoto PWM D11.

Picture VinNotConnected.JPG shows a row of jumpers connecting all the analogue and power signals - except Vin.
Picture PwmSignalsRemapped.JPG shows a row of jumpers connecting all the digital signals except D9 and D10, which have been remapped to D3 and D11.
Note that in this example I have lost the Netduino signals D3 and D11. I could have remapped these to D9 and D10, but I have not bothered as I did not need them.

The pictures show two short wires fitted with sockets on the ends. These are actually crimp sockets that are supposed to go into a shell to make up a multi way connector that fits onto a header. I found that I could make small numbers of jumper wires easily with a pair of fine nose pliers. I would recommend using some heat shrink sleeve over the ends to prevent short circuits - I have not got around to this yet.

Also note that the jumpers I have used here are the short variety - they are difficult to remove.
They would be even more dificult to remove if the outer header rows were actually sockets.

Picture FullyAssembled.JPG shows the FixIt shield attached to the Netduino, with the now working Ardumoto shield on top.

That's it. One fixed shield.

I'll try and get a shopping list posted tomorrow.

Paul

Attached Files



#9 Paul Newton

Paul Newton

    Advanced Member

  • Members
  • PipPipPip
  • 724 posts
  • LocationBerkshire, UK

Posted 07 December 2011 - 09:13 PM

Shopping list

Below are links that show pictures of the parts I have used with prices in £Sterling. Most come from hobbytronics in the UK, except the tri-pad PCB which came from Maplin.

(The Maplin tripad PCB photo is rubbish, I have a better one on my Potentiometer shield post http://forums.netdui...tiometer-shield)

There are lots of ways you could make the shield. The prototype I built turns out to be the most expensive!
I thought that using headers would be cheaper, but using some or all sockets instead of headers actually cuts down the total cost.
If you go for all sockets (so that you don't need the jumper links) you will need to make up lots of very short loops of wire.

Parts I actually used in my shield:

£1.25 stackable header kit http://www.hobbytron...able-header-kit
£0.19 36 way header http://www.hobbytron...6way-header-254
£0.30 36 way right angle header http://www.hobbytron...36way-header-ra
£0.30 5x jumper links http://www.hobbytron...ets/jumper-link
£2.25 50x female crimp pins http://www.hobbytron...crimp-conn-pins
£4.19 PCB 100x160mm (39 rows with 20 tri-pads per row) http://www.maplin.co...ipad-board-1922
Note that these jumper links are not the good/best ones, but the shaped top does help a little when pulling them out.

Sockets that could be used instead of headers for the jumper area on the wings:

£0.11 8-way socket http://www.hobbytron...ader-female-1-8
£0.10 6-way socket http://www.hobbytron...ader-female-1-6


Example parts lists

Option 1 - Only using 0.1" headers for the jumper area

1x £4.19 £4.19 Tri-pad PCB
1x £1.25 £1.25 Stackable header kit
1x £0.30 £0.30 Right angle header strip (8 pins left over)
4x £0.19 £0.76 Straight header (1 pin + 2 pins left over) see below
6x £0.30 £1.80 Jumpers (2 left over)
1x £2.25 £2.25 Female crimp pins (remapping lead sockets)

Total £10.55 plus stranded core wire for remapping leads

Option 2 - Use 0.1" headers for the centre rows, and sockets for the outer rows

1x £4.19 £4.19 Tri-pad PCB
1x £1.25 £1.25 stackable header kit
1x £0.30 £0.30 Right angle header strip (8 pins left over)
3x £0.19 £0.57 Straight header (1 pin + 22 pins left over) see below
4x £0.11 £0.44 8-way socket
4x £0.10 £0.40 6-way socket
6x £0.30 £1.80 Jumpers (2 left over)

Total £9.35 plus solid core wire for remapping leads


Option 3 - All sockets - Cheapest!

1x £4.19 £4.19 Tri-pad PCB
1x £1.25 £1.25 stackable header kit
1x £0.30 £0.30 Right angle header strip (8 pins left over)
1x £0.19 £0.19 Straight header (7 pins left over) see below
8x £0.11 £0.88 8-way socket
8x £0.10 £0.80 6-way socket

Total £7.61 plus solid core wire for remapping leads

Breaking the straight headers into the correct lengths

If you go for option 1, the straight headers need to be broken up as follows:

strip 1 - 13 + 8 + 8 + 6 (1 pin left over)
strip 2 - 8 + 8 + 8 + 6 + 6
strip 3 - 8 + 8 + 8 + 6 + 6
strip 4 - 8 + 8 + 6 + 6 + 6 (2 pins left over)

If you go for option 2, the straight headers need to be broken up as follows:

strip 1 - 13 + 8 + 8 + 6 (1 pin left over)
strip 2 - 8 + 8 + 8 + 6 + 6
strip 3 - 8 + 6 (22 pins left over)

For option 3, you just need one strip:

strip 1 - 13 + 8 + 8 (7 pins left over)


That's all folks.

#10 Stefan

Stefan

    Moderator

  • Members
  • PipPipPip
  • 1965 posts
  • LocationBreda, the Netherlands

Posted 16 December 2011 - 05:07 PM

It looks like someone was working on a simular idea: http://www.sparkfun.com/products/11002
"Fact that I'm a moderator doesn't make me an expert in things." Stefan, the eternal newb!
My .NETMF projects: .NETMF Toolbox / Gadgeteer Light / Some PCB designs

#11 Paul Newton

Paul Newton

    Advanced Member

  • Members
  • PipPipPip
  • 724 posts
  • LocationBerkshire, UK

Posted 16 December 2011 - 10:11 PM

It looks like someone was working on a similar idea:
http://www.sparkfun.com/products/11002


Hi Stefan,

Well I was surprised when I started that I could not find anyone else who had made a shield like the FixIt shield; there was an obvious need for a solution to the problems of incompatible shields.
I can't tell when the Go-Between was made available - is it a recent addition?


The Go-Between is very similar to the FixIt shield, but there are differences that are worth considering:

  • The Go-Between schematic shows it does not allow the power rails to be split / remapped. So if, for example, you have an analogue shield that you would like to convert to use 3.3V instead of 5V, you can not do that with the Go-Between shield.
  • The FixIt shield can look confusing with so many connections present. The Go-Between user guide makes it looks a lot more user friendly.
  • The Go-Between does not allow remapping between Analogue and Digital signals - but that sort of remapping is probably not a requirement very often.
  • The Go-Between is a ready made high quality PCB. The FixIt shield is a make at home shield that requires a few hours of work to build.
  • Once built, the FixIt shield can be customised again and again by simply moving the jumpers or wires around. The Go-Between shield requires soldering every time you change it.
  • Unlike the FixIt shield which is very tall, the Go-Between is the height of a normal shield - that's much better if all you need to do is remap some signals.
  • The Go-Between shield does not give access to the signals for connection to other components. So, for example, you can't use it to insert a logic gate to control a digital signal, or to insert a pair of resistors to reduce a 5V analogue signal down to 3.3V levels.

I think if all you need to do it swap over some of the D0-D13 and A0-A5 lines, this is very good solution.

I hope that the idea of surface mount soldering does not put people off using it!

Paul




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.