First step: Designing the module:
If you ask anyone in the field of robotics they will tell you design is one of the most important steps in building a robot. Thus this step is the most time consuming and repeditive one.
Before you even think about starting on that there module you have in your mind ask yourself, what will this module do? What is its purpose for being built? If you cannot answer that question your module will most likely not be useful to anyone else either thus they will not buy it resulting in you loosing all that time and money in prototyping, testing and manufacturing your product.
First step to designing your board is to find other boards like the one you are going to make and observe their features as it could be a starting point for your module. some things to observe are:
Most of these points will help you start off designing your module and make you see what you can do to improve on their board to attract more customers. i mean, who is going to buy your board if it is the same or worse than a cheaper, prettier competiters board?
Now that you have looked at a few competitors boards we can start on the actual design faze.
the first step is to find a decent board editor to design you board layout in, i would highly recommend cadsoft's eagle as it is relatively easy to use and has a lot of help tutorials to get you started.
From here on in my motor controller shall be an example.
The first step to doing this is to find out what the name of the main chip is. Mine was the l298. check if eagle has this in their library by clicking "add" and searching for it. If they have it, great we can continue. If not you will have to design a custom footprint for it. Remember to open up the schematic editor and check for the part in there too as sometimes it doesnt come up in the board editors search results.
I am not going to cover that here as there is enough tutorials for this already out there.
Click on the part and place it in the center of the screen.
Now would be a good time to refer to that parts datasheet as we will need to know the pinout of the chip. The page we want is the pin connections page. looking something like this:
For the first few days it is good just to get the know the pin layout and have a mess around with different positioning of the different things on the board such as the IC(s), headers, led's etc...
Now after you have done that you should probably have a much better understanding of what each pin does on the ic (as long as its not a 100 pin QFP).... You should also know which pins need to be acessed by the I2C microcontroller/human. it is vital for these pins to be able to get to the microcontroller so be sure to experiment with different trace configurations before deciding that you have to use 10, 000 jumper wires.
After you have played around with your design in your editor a bit you should have something like this:
Note: That this was not my first version as the first one had jumpers going everywhere and you wouldnt see a thing, this is ver: 2.0.
As most of you can tell this board is not to size yet as that doesnt really matter, what matters more is making sure you will be able to make the right connections in the right places as you can always squeeze down the sizeing later on.
After a few more days of designing you will come out with a much prettier design that is a lot easier on the eyes and to understand:
This is the ver: 3.0 board that has the controller on board for I2C, same size as the axon and axon 2 for ease of stacking and is all neat and beautiful with few jumpers. I got bored so i filled in some of the board with the common gnd.
And lastly, when you are happy with the design you can add extra stuff in. i added UART headers and crystal space onto my board and cleaned it up some more.