The board bring-up phase can be quite a challenge for embedded developers because it involves the first interaction between code and the physical components on the board. It’s the phase where you take an expensive paper-weight (the circuit running no application) and start to bring it to life. Challenges during board bring-up include:
- working with components from many different manufacturers
- gleaning important bits of information from often poorly written datasheets
- writing applications that respond to user inputs instantaneously while using next-to no power
However, a well-designed Alpha board can make the process go more smoothly and quickly.
What is an Alpha board?
The Alpha board is the very first revision of the circuit. It will likely never be seen by the target-user. The sole purpose is to prove out the circuit — can it do what we want it to do and not catch on fire?
The physical layout of the Alpha board is usually much larger than the expected final product. This makes it easier for the person/people who have to debug it. Proving out a circuit design cannot be fully accomplished without running a program on the board. Often times, devices on the board need to be configured with specific initialization sequences in order for them to turn on and function as desired.
What makes an Alpha board good?
So what do I mean when I talk about a “well-design” Alpha board? Three things.
1. Make it large.
As I mentioned above, an Alpha board should be large. Most circuit components are very small, which makes them difficult to work with. When they are all squished together in an extremely tiny space, that makes things even worse.
Space out the components on the alpha board. Separate regions of the circuit from each other — for example, if you have a motor controller in your design, pull it and its supporting circuitry away from the rest of the components. That way, if something goes wrong, there’s room to cut and re-route traces.
2. Add jumpers for measuring current.
Most circuits these days have very tight power consumption requirements. Integrated Circuit components (ICs) usually have several power modes, which offer different levels of functionality while using different amounts of power.
As the developer is working on the application, he or she will need to measure the power consumption of each piece of the circuit to verify that everything is behaving as it should. This can be easily done with an ampmeter or shunt resistor if there is a place to insert it. That’s what the jumpers are for.
It’s important to have many of these jumpers so that if the board is consuming more power than expected, the developer can pin-point where the problem is and fix it. Here is a short list of all the places where you should have these jumpers:
- Any main entry point where power enters the board (battery connection, USB connector, power supply input, etc.)
- At the input and output of any voltage regulator
- At the Vdd input of every IC
3. Have test-points galore!
Having lots of jumpers is nice for measuring power, but there are typically many other signals on the board that a developer will want to inspect. This is where test-points come in.
Test-points are just spots on the board where a tool or probe can be attached for observational purposes. Without test points, developer are forced to probe signals directly on the pins of tiny chips. This can be very difficult to do, and it can lead to accidentally shorting out pins and causing problems. Put test points at the following locations:
- Every communication bus (SPI, UART, I2C, etc)
- Every voltage bus
- Ideally, breakout every pin of the microcontroller to a pin header (yup, every one!)
A well-designed Alpha board is a major benefit to any embedded project. It can speed up the board bring-up phase by offering easy access to crucial points of the circuit that are of important to developers. Creating a well-designed Alpha board adds no additional cost to a project. You always have to start out with a prototype so why not take advantage of it and make it as useful and beneficial as possible?