Why And How I Made a Custom PCB
Soldering the pins of NRF24L01 chips while making remotes and receivers was fun and challenging. Although it got a little monotonous over time. As much as I love soldering –the repetitive nature of building those remotes and receivers made it hard to maintain high making energies. (That’s a thing. Yes. It may be a thing). Tracking the precise pin alignment over and over again, especially in the absence of pin labels on the bottom of the chip, was not a particularly enjoyable activity. Bottom line: I wanted to find a way the radio chip could be connected more easily to the Arduino.
One of the “hand made” boards.
Thinking that there must be a way around soldering the nearly identical boards I made over and over again, I looked around and decided to turn in a direction I never explored. I wanted to make a custom PCB that would serve as a multipurpose Arduino & NRF24L01 breakout board, and consequently accelerate the development of any future RF Arduino projects. Deciding to agree with myself that the idea of making such a PCB was indeed worth the time and energy investment, I went ahead and started working on the board. I designed the custom PCB in Autodesk Eagle and used a local service manufacture it. Approximately a month later (there were some shipping delays), a stack of ten square green boards showed up in my mailbox. Unable to wait I immediately tested them, and they worked! Honestly, I was not 100% sure they would work, but they did! I am quite happy with them as you can probably tell from my excessive use of exclamation marks :).
Partially assembled board
The process of actually designing the boards was surprisingly straightforward and pretty easy. Once I decided on the features I wanted the board to include, I modeled the components in Eagle (2D appearance and schematic pin orientation), drew the wiring schematic, positioned them in a comfortable alignment, and let Eagle auto-rout the actual traces. After slightly manually adjusting the two trace layers that were generated, I sent the files to a website that helped me get them manufactured in China. In hindsight, I should have contacted the factory directly – it would have been cheaper and quicker. A lesson for the next board.
Now after we went through the background story, a bit about the boards themselves. Firstly, the board is designed for an Arduino Pro Mini. It breaks out 6 pins for sensor communication (or other low current devices), and breaks out 5 pins for servo control. The main difference between the Sensor pins (in picture on the right), and Servo pins (left) is the fact that the VCC (between GND and Signal) pins are regulated 5V in Servo, and fed directly from the Arduino for Sensor. That means that the Servo pins can tolerate a much higher current, and drive servo motors directly – without a need of an additional voltage regulator/source. The other main feature I included in this board is its ability to have buttons. Exciting right? Oriented to resemble a remote control, soldering on two pairs of buttons along with their respective pull-down resistors can transform the board into, well, a hand held remote control. The addition of those buttons is completely optional; lack of buttons will not interfere with the normal function of the board. Finally, it is also possible to add a button between the main voltage source and the rest of the board. This button could be beneficial in applications that only require powering on the board for short periods of time. Such as the remote that controls my room’s lights (only turns on for about a second each time). It is also possible to bridge the power-cut-off button holes to eliminate that function, or connect a switch of a different kind.
Receiving the boards shortly before moving in to the MIT dorms, I felt that I had to use them in order to automate the lights in my new room. After a few years of laziness, I got used to turning the lights off from bed and did not want lower my standards now :). Therefore, I soldered all the necessary components on to two boards boards, one with buttons and one without, attached a small plastic rod from a servo to the light switch, and connected the servo to the light switch’s housing using duct tape. About three months ago. The fact that it still holds up is amazing. Way more impressive than the fact that my creation works :).
Amazing picture of the highly professional PCB-servo-lever combo
Transmitter module. AKA light switch remote by the bed
More seriously though, I am very happy with the way this board ended up working. It was made because of a real need, and does its job very well (so far). If you would like to hear more information about the manufacturing/designing processes, or the board itself, feel free to ask!