Designing and building your own board

Lead Image © Dietmar Hoepfl,

Build a Board

We take you step by step through the process of designing and manufacturing a new breakout board product.

Building your own manufactured product, such as small surface-mount devices (SMDs) and printed circuit boards (PCBs), used to be extremely technically difficult. Getting the boards manufactured and shipped was even more complex. Now, however, multiple manufacturers in the US, Europe, and China will build and ship your boards to you, and you can do it all with PayPal and email.

In this article, I will go through the design and manufacturing of a new breakout board product from SwitchDoc Labs, the four-channel I2C mux board. If you want to build and manufacture your own product, you can do it!

The I2C Mux Board

Why do you need this? Is there a problem that your board will solve and a market for your board? To answer the question, you need to understand what an I2C bus does. An I2C (I-squared-C) bus is often used to communicate with chips or sensors that are on the same board or located physically close to the CPU. The I2C (Inter-Integrated Circuit) device bus was first developed by Philips (now NXP Semiconductors). To get around licensing issues, the bus is often called TWI (Two-Wire Interface). SMBus, developed by Intel, is a subset of I2C that defines the protocols more strictly. Modern I2C systems take policies and rules from SMBus, sometimes supporting both, with minimal reconfiguration needed. Both the Arduino and the Raspberry Pi support the I2C bus.

I2C provides good support for slow, close peripheral devices that only need to be addressed occasionally. For example, a temperature measuring device will generally change slowly and is a good candidate for the use of I2C, whereas a camera will generate lots of data quickly and potentially change often.

I use lots of sensors in projects. Project Curacao [1] has more than 17 different I2C sensors, and the solar-powered weather station WeatherPi has 10 I2C sensors. The problem with using a bunch of sensors on the I2C bus is mostly an addressing problem (although you can load a bus down with too many devices).

Addressing Your Sensor on I2C

The I2C bus used on board the Raspberry Pi and Arduino has 7-bit addresses (allowing 128 I2C addresses). Some addresses are reserved, leaving only about 112 available. Each I2C device uses at least one of these addresses. Note that each I2C device can have many internal registers and still only use one I2C address. You end up having address conflicts all the time when using an I2C address, because there is no standard and often you can't change an assigned I2C address on the device. Additionally, you might want to use more than one of the same device on your bus.

Buy this article as PDF

Express-Checkout as PDF

Pages: 8

Price $2.95
(incl. VAT)

Buy Raspberry Pi Geek

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content