Prototyping Boards
I started out my 'maker' journey using whatever I could find to provide a starting point for my initial project (see LoRa Gateway). Pretty quickly, I got to a point where I needed some sort of enclosure for my creations. I initially considered buying a 3D printer to address this issue but after doing my first custom PCB, discovering how easy and relatively inexpensive that was, and having noted the existence of a whole range of relatively inexpensive off-the-shelf enclosures, I turned my attention to creating a PCB that would both support my application and mount directly into one of these enclosures.
The boards described below represent my efforts to date in this direction. Initially, they were all just 'prototyping' boards that fit into common 100 mm × 68 mm and 85 mm × 58 mm (more recently being advertised as 83 mm × 58 mm—I've not purchsed any of these, so I don't know for sure that they're exactly the same) enclosures—if you need them, M2.6 x 6 mm phillips pan head self tapping mounting screws, used to fix the boards into these enclosures, can be purchased here.
These efforts then led to the development of more specific layouts that also fit these enclosures and, more recently, both smaller and larger enclosures.
I mucked around for ages, trying to finalise a circuit design before fabricating a PCB. When I 'did' my first PCB and discovered how cheap it was to fabricate (~A$6 for 5 boards, plus freight, which, admittedly, was the larger component, ~A$25, of the ultimate cost), I decided to follow a different route and simply refine a very general board design as I went along. This also provided the benefit that I would have a base for any project that I wanted to fit within one of the enclosures with which I was working.
The boards generally start with a standard 100 mil (0.1" or 2.54mm) pad matrix overlaid on a board base that fits neatly into the relevant enclosure. From there, pads are moved, removed or linked to provide the required functionality. Because the cost to fabricate a board is based purely on its size, not the complexity of the underlying design, there is no downside to packing as much 'functional flexibility' into one of these prototyping boards as is possible. Because you can also include additional boards on any fabrication order for just another ~A$6 (for 5)—the basic freight charge covers the cost of shipping up to (about) five different boards (i.e. 5 × 5 = 25 PCBs)—I am also tending to make several variants each time around, sometimes just including features that look like they might be of interest. It's an iterative approach that may seem wasteful on the surface, but it's a bit like instruction caching (if you're familiar with computer architecture)—sometimes you blow it, but most of the time you're a step or two ahead, and most of the basic boards end up being useful for general prototyping in any case.
Fabrication
I pretty much exclusively use JLCPCB for fabrication services because, for me, they are the most economical and their board quality is at least the equal of anything else I've seen. The board price is way lower than anywhere else I've looked, although the shipping costs were often far more significant than the price of the boards. This situation has improved of late, with the fabricator now allowing shipment by 'standard post', rather than insisting that shipment be by courier, originally DHL. For me, this has often more than halved the cost of shipping and resulted in little more than a couple of days extra shipping time.
Gerber File Names
There was a minor problem with some of the boards I had fabricated by PCBs.io (who no longer appear to be in business, but I leave this note here in case anyone encounters a similar problem with other fabricators). I had trouble uploading the CAM outputs produced by Eagle, with PCBs.io complaining about duplicated Board Outlines. As a result, I was only able to upload the Eagle .brd file.
The issue here is that in processing an Eagle .brd file, fabricators do not seem to include the Values layer by default, so that the boards ultimately don't have the Values layer on the silkscreen. This is only a minor issue in that the values of the individual components are not printed on the board (apparently this is 'normal')—this is entirely irrelevant for many of the prototyping boards because in most cases there are effectively no components and hence no values to print.
I ultimately discovered that my problem was that PCBs.io required that individual Gerber files have distinct file extensions. Eagle, however, by default, produces Gerber files with descriptive names, but all with the same .gbr extension. This is all configurable within Eagle and all of my CAM file archives should contain files named in a format that is more universally acceptable to fabricators. I have tested the listed Fabrication Filenames with JLCPCB, PCBs.io and OHSPARK.
[Default] Eagle CAM Filename | Fabrication Filename |
---|---|
copper_bottom.gbr | copper_bottom.gbl |
copper_top.gbr | copper_top.gtl |
gerber_job.gbrjob | gerber_job.gbrjob |
profile.gbr | profile.gko |
silkscreen_bottom.gbr | silkscreen_bottom.gbo |
silkscreen_top.gbr | silkscreen_top.gto |
soldermask_bottom.gbr | soldermask_bottom.gbs |
soldermask_top.gbr | soldermask_top.gts |
solderpaste_bottom.gbr | solderpaste_bottom.gbp |
solderpaste_top.gbr | solderpaste_top.gtp |
The only problems I have encountered in uploading CAM files for fabrication have been with the naming of the individual Gerber files so, if you are using a fabricator other than those I have listed and you're having problems, the first thing I would suggest doing is to check the fabricator's file naming requirements. The content of the files has always been fine, it has only ever been the respective names that have required modification.
Board Variants
As noted above, I have generally made several variants of any general prototyping board. The most basic is essentially an array of pads spaced at standard 100 mil (0.1" or 2.54mm) intervals, on a board that fits neatly into the respective enclosure. Variants may include additional elements such as pads for various JST or RJ connectors or cut-outs to accommodate enclosure intrusions from fittings such as cable connectors.
PCB Dimensions
My more recent boards are slightly smaller than the earlier ones so that they fit inside the enclosure lids, which I discovered had slightly smaller internal dimensions than the enclosures themselves. This was never a problem when using a single board, which invariably sat in the base of the enclosure, but when I started 'stacking' them, the top board sometimes needed to sit within the lid.
Mounting Holes
Not all enclosures are created equal. I have used enclosures, in various styles—with and without external mounting flanges, with either normal or clear plastic covers and, in the case of the larger enclosure footprint, 40mm or 50mm high—from several sources.
Enclosure Mount Point Configurations
While, to the casual observer, these all appear more or less the same internally, I have found subtle differences in the locations of the mounting pedestals, which impact how well the screw holes on my boards align with these mounting points. If you're interested, refer to the discussion of board outlines under PCB Board Design
Board Stacking
All boards include four common holes around their periphery to allow for stacking of two or more boards using M2 stand-offs, and various connectors for inter-board power and sensor connections.
Board Stacking Support
Raspberry Pi Zero
As I am currently using the larger enclosure for applications that involve a Raspberry Pi Zero, some variants of the larger board also include mount points for this processor module.
Pi Zero Mount Points
Batteries
All of my nodes are intended to run from a battery of one form or another, so 'base' boards include mount points for 18650 (in the larger enclosures) and/or 14500 (AA) battery holders and a JST PH2.0 socket for LiPo battery connection. Some of the more general 'pad array' prototyping boards also include mount points for 18650 and/or 14500 battery holders. More recently, I've started to include mount points for an 18500 battery holder on some boards.
Battery [Holder] Options
On the earlier 'pad array' board variants, the battery terminals are connected directly to pad 'rails' at either end of the board to provide multiple power connection points. While this is OK for components that can regulate their power supply, or if LiFePO4 batteries are used, this simple configuration was not well suited to applications that require a constant input voltage, or a voltage other than that delivered by the battery in use, as Li battery voltages generally vary in the range 2.8 – 4.2V, depending on their chemistry and state of charge. To this end, subsequent board versions include solder bridges to isolate the battery connectors from the board power buses. Where components do not require an externally regulated supply, the battery can be directly connected to the power 'rails' by bridging the on-board solder jumpers, otherwise the solder jumper pads serve as take-off points for battery power and connection to charging and regulator circuits.
Pad Spacing
On some general prototyping boards, I have included a row of pads down each 'long' side spaced at 2 mm intervals (rather than the 100 mil spacing) to allow the use of JST PH2.0 connectors in prototyping work. Others also have mount points for RJ11 connectors.
Different Pad Spacings
Vias in Pads
As a side note at this point, I recently read that one of the techniques I have used to save space on boards, incorporating vias in SMD 'landings', is considered to be bad practice. Apparently, solder paste, when applied as sparingly as it is in the automatic assembly process, is such that it can wick away through the via during the reflow process, leaving insufficient solder on the actual SMD 'landing' to yield a reliable connection. I've never had a problem with this, but I've also only ever hand-soldered components, whether using solder paste or conventional wire. This is, therefore, unlikely to be a problem if you're hand soldering. I have, however, definitely noticed that solder paste 'bleeds' through vias on pads, so this is definitely something that must be managed, one way or another.
Having recognised this issue, however, I would note that the 'landing vias' I use have close to the smallest drill holes generally allowable (0.35mm), so they're not potentially massive solder sinks and that may be a saving grace. Indeed, some commentary, based on actual experience, suggests that using vias sized as I have them (0.35mm via in a 0805 or greater SMD landing) should be just fine. This commentary maintains that provided the via takes up no more than 30% of the landing size, there should be no problem at all with this approach.
USB Connector
Anticipating the potential need for an on-board charging circuit, some configurations also include pads for a micro-USB connector. Unfortunately, there is a huge range of USB connectors with different PCB mounting configurations. The ones I am currently using, for which the current PCB mount points are designed, are as illustrated below:
micro-USB Connector
Prototyping
I just thought I'd add this in here for a bit of balance. Much as I'd like to think I plan and test things well, there are some things that just don't show up until you actually have something in your hands. There are, of course, also things that I should really have been able to avoid but didn't, for one reason or other.
The sequence in the illustration below are the iterations involved in getting to a 'fully operating as intended' NodeMCU processor board.
A4a-NodeMCU Processor Board Prototype Iterations
First there was a problem with component placement (not quite enough clearance for comfort) that I really should have noticed before getting the first boards made. Next, there was a problem with my board layout where I failed to notice that one of the nets was 'isolated'.
With that problem rectified, I was able to carry out a much wider range of tests than I had been able to do conveniently with my initial breadboard configuration and there were a few more configuration refinements. But all's well that ends well, and I finally ended up with a board that did what I originally intended, and more.
The current version of the board includes a few more refinements to the silkscreen.
100 × 68 Enclosure
The following is a selection of the 100 × 68 enclosure boards that I currently use, or have used, in various applications.
[10068-PB] Simple Prototyping Pad Matrix
10068-PB Eagle CAD Files | [65 KB] |
10068-PB CAM Files | [35 KB] |
[10068-PBC] Prototyping Base with edge Cut-outs
In assembling various node configurations, I often needed to include external connectors. This was not generally a problem with the larger enclosures as there was plenty of room in the 40/50 mm enclosure wall. But with some of the the more complex, stacked configurations the external connectors, which often protruded into the enclosure further than the edge of the standard shaped PCB, came into conflict with the enclosure contents.
To handle such situations, I created a board with cut-outs along the edges. I tend to use this board as the bottom board in a stack, providing the necessary room for external connectors that could be located low down in the wall of the enclosure so as not to interfere with any of the higher, generally component-bearing boards in the stack.
I included a 100 mil pad matrix in the 'middle' of the board just because I could.
10068-PBC Eagle CAD Files | [67 KB] |
10068-PBC CAM Files | [37 KB] |
[10068-PBLPI] Battery Mounts, Power 'Rails' and Edge Links
This is the current version of my first prototyping board. In addition to a standard 100 mil pad array, this board includes mount points for 14500 (AA) and 18650 battery holders, connected to Vcc/GND power 'rails'. It also includes a series of connected pad pairs along one edge and mounting holes for a Raspberry Pi Zero.
10068-PBLPI Eagle CAD Files | [56 KB] |
10068-PBLPI CAM Files | [229 KB] |
[10068-PBI] Battery Mounts and Jumpered Power 'Rails'
In addition to a standard 100 mil pad array, this board includes mount points for 14500 (AA) and 18650 battery holders, with jumper-configured power 'rails' (Vcc/GND).
10068-PBI Eagle CAD Files | [43 KB] |
10068-PBI CAM Files | [92 KB] |
[10068-PMJR] PH2.0 (JST) and RJ11 (vertical) Mounts
In addition to a standard 100 mil pad array, this board includes pads at 2 mm spacing, suitable for JST PH2.0 connectors, along the long edges and mount points for two vertical RJ11 (6P6C) connectors.
10068-PMJR Eagle CAD Files | [66 KB] |
10068-PMJR CAM Files | [70 KB] |
[10068-BCS-A4a] IoT Node Power/Sensor Prototyping Board
This is my current IoT node prototyping board. Most of the features on the board are optional—they can actually be configured, but switched in/out via DIP switches, allowing for the testing of different board configurations for different applications. A detailed discussion of all of the board features is provided elsewhere on this website (under the section dedicated to IoT node development).
This board revision is yet to be fully tested, although the only features affected are the inclusion of a solder jumper to bypass the MOSFET power switching circuitry and the option to use a fixed resistor configuration in the boost converter circuit.
10068-BCS-A4a Eagle CAD Files | [126 KB] |
10068-BCS-A4a CAM Files | [677 KB] |
[10068-BHWL] WiFi LoRa 32 Sensor Board
This is a power/sensor board specifically designed for the Heltec WiFi LoRa 32 development board, given that the Heltec boards include their own on-board power management circuitry. A detailed discussion of all of the board features is provided elsewhere on this website (under the section dedicated to IoT node development).
10068-BHWL Eagle CAD Files | [162 KB] |
10068-BHWL CAM Files | [567 KB] |
[10068-BHWL3] WiFi LoRa 32 V3 Sensor Board
The Heltec WiFi LoRa 32 V3 development board has much the same physical appearance as the V1 and V2 boards but is based on more recent ESP32-S3 MCU and SX1262 LoRa Node chip and has a completely different pin configuration. The 10068-BHWL3 1.0 board provides the same features as the 10068-BHWL v1.3 board (refer to the section dedicated to IoT node development). Any subsequent updates, since the V1 & V2 boards have been discontinued, will only be applied to the BHWL3 board.
This board is yet to be fully tested, although individual circuit subsections have been transferred directly from earlier, fully tested versions of the BHWL board.
10068-BHWL3 Eagle CAD Files | [162 KB] |
10068-BHWL3 CAM Files | [559 KB] |
[10068-BPS] Battery Power Supply Board
This is a power supply board primarily designed to provide [backup] battery power for a Raspberry Pi Zero [W] processor. A detailed discussion of the board features is provided elsewhere on this website (under the section dedicated to IoT node development).
This is a new board and is yet to be fully tested.
10068-BPS Eagle CAD Files | [94 KB] |
10068-BPS CAM Files | [401 KB] |
[10068-BHCP] CubeCell Plus Sensor Board
This is a power/sensor board specifically designed for the Heltec CubeCell Plus development board, given that it includes its own on-board power management circuitry. A detailed discussion of all of the board features is provided elsewhere on this website (under the section dedicated to IoT node development).
10068-BHCP Eagle CAD Files | [159 KB] |
10068-BHCP CAM Files | [548 KB] |
[10068-GPSJ] GPS Antenna Mount
This board was specifically designed to provide a mounting point for the NEO-6/7/8M GPS module antenna. The rest of the board incorporates a 100 mil pad array and mount points for two JST PH2.0 connectors (suitable for an I2C interface or the like) for additional prototyping work.
10068-GPSJ Eagle CAD Files | [77 KB] |
10068-GPSJ CAM Files | [75 KB] |
[10068-PDS] OLED Display/Sensor/Solar Panel Board
This board was specifically designed to provide a mounting point for an OLED display. In the process, however, it was easy enough to also include connectors for several sensors and a solar panel. Like the GPS Antenna Mount, the rest of the board incorporates a 100 mil pad array, but it also includes pads at 2 mm spacing along the edges for JST PH2.0 connectors. Like most of the other boards, this was designed to be used in conjunction with the BCS-A4a power board and associated processor, and as such includes standoff mount points common to all of the current 10068 boards.
10068-PDS Eagle CAD Files | [86 KB] |
10068-PDS CAM Files | [296 KB] |
[10068-SP] Solar Panel Board
This board was designed to provide support for solar power input. The PCB is designed specifically for an 80 × 35 mm 5.5V 70mA solar panel, or up to two 57 × 28 mm 5.5V 40mA solar panels, but can support any panel that fits on the board (additional board features may be limited by the footprint of the solar panel(s) used). The board includes reverse current protection diodes and optional support for I2C modules, in particular MAX44009 ambient light sensor and INA219 current/voltage monitor modules.
10068-SP Eagle CAD Files | [27 KB] |
10068-SP CAM Files | [133 KB] |
[10068-WS] Weather Station Sensor Interface Board
This board was designed to provide a 'native' interface for weather station sensors, initially the RJ11 connectors used with the Davis 6466M rain collector (6P4C) and 6410 anemometer (6P6C). The board also includes RJ11 (6P4C), JST PH2.0 and 100 mil pin header interaces for I2C devices as well as spare RJ11 (6P4C) and JST PH2.0 connectors for any other 'single wire' sensor. Since weather sensors are often used in exposed locations, ESD protection circuitry is included on all sensor lines.
10068-WS Eagle CAD Files | [61 KB] |
10068-WS CAM Files | [388 KB] |
85 × 58 Enclosure
The following is a selection of the 85 × 58 (more recently also being advertised as 83 × 58) enclosure boards that I currently use, or have used, in various applications.
[8558-PB] Simple Prototyping Pad Matrix
8558-PB Eagle CAD Files | [35 KB] |
8558-PB CAM Files | [166 KB] |
[8558-PBL] Battery Mounts, Power 'Rails' and Edge Links
8558-PBL Eagle CAD Files | [35 KB] |
8558-PBL CAM Files | [166 KB] |
[8558-PBI] Battery Mounts and Power 'Rails'
8558-PBI Eagle CAD Files | [34 KB] |
8558-PBI CAM Files | [86 KB] |
[8558-PMJR] PH2.0 (JST) and RJ11 (vertical) Mounts
8558-PMJR Eagle CAD Files | [45 KB] |
8558-PMJR CAM Files | [55 KB] |
[8558-BCS-A4a] IoT Node Power/Sensor Prototyping Board
This board is a variant of the 10068-BCS-A4a board described above. It is necessarily a cut-down version of the larger board, but it is yet to be revised to include recent updates to, and thus be fully software compatible with, the larger board.
Board configuration not yet tested
[8558-BHC] CubeCell Sensor Board
This is a power/sensor board specifically designed for the Heltec CubeCell development board, given that it includes its own on-board power management circuitry. A detailed discussion of all of the board features is provided elsewhere on this website (under the section dedicated to IoT node development).
Board configuration not yet fully tested
8558-BHC Eagle CAD Files | [132 KB] |
8558-BHC CAM Files | [360 KB] |
[8558-BHWSL] Wireless Stick Lite Base Board
This is a power/base board specifically designed for the Heltec Wireless Stick Lite V3 development board, given that it includes its own on-board power management circuitry. A detailed discussion of all of the board features is provided elsewhere on this website (under the section dedicated to IoT node development).
Board configuration not yet fully tested
8558-BHWSL Eagle CAD Files | [59 KB] |
8558-BHWSL CAM Files | [349 KB] |
[8558-GPS] GPS Antenna Mount
8558-GPS Eagle CAD Files | [40 KB] |
8558-GPS CAM Files | [49 KB] |
63 x 58 Enclosure
I've only just started working with the 63 x 58 enclosure, so all I have at the moment are a couple of basic prototyping boards comprising my usual 100mil pad matrix and 'stack' standoff mount points.
[6358-PB] Simple Prototyping Pad Matrix
This board neatly occupies the available space within the enclosure.
6358-PB Eagle CAD Files | [18 KB] |
6358-PB CAM Files | [31 KB] |
[6358-PBC] Even More Simple Prototyping Pad Matrix
This board occupies just the central part of the enclosure, leaving a bit of space for external connectors in the enclosure 'wings'.
6358-PBC Eagle CAD Files | [16 KB] |
6358-PBC CAM Files | [30 KB] |
95 × 65 and 130 × 95 NHP Enclosures
At the other end of the scale, I've more recently had need of a larger enclosure for my pump controller application. In part because I'd used them before, but also because they have no metal parts that rust, I've been using a range of locally sourced NHP N-Line enclosures. They're much more expensive that the ones sourced from China but, as already noted, they don't use any metal parts and looked like they might be better for outdoor applications.
The problem with a larger enclosure, however, is that both Autodesk Eagle, the PCB design tool that I currently use, and JLCPCB, the PCB fabricator that I currently use, limit the size of boards that can be designed [with the free version of the package] and fabricated [at their most economical rate] respectively. Fabrication is less of an issue than the Eagle limitation, because larger PCBs are only marginally more expensive. But it would appear that my original choice of Autodesk Eagle might not have been the wisest, since it would appear that Eagle is no longer being developed and users are being pushed towards Fusion360. The latter is much more powerful but it is 'cloud'-based and not a free standing application. That may not worry some people, but I'm not interested in anything that requires me to store data on a third-party server, nor am I interested in having to pay through the nose (Read: use a third party subscription service) to access my own data.
The upshot of that is that I am currently restricted by my PCB design tool to boards that are no larger than 80 × 100 mm. This left me with two choices when working with the 130 × 95 enclosure: use a PCB that was smaller than the enclosure, or design a PCB in two parts.
That latter option might sound illogical, but the PCB in my pump controller application is as much about providing a base upon which to mount components as it is about providing electrical connections and it turned out that I could indeed conveniently design the base board in two parts.
I did initially design a prototyping board for the smaller, 95 × 65 enclosure, but the board arrangement for my pump controller application, which uses the larger 130 × 95 enclosure, has been designed for that specific purpose from the outset. That application is described elsewhere on this site and the present description is confined simply to that of the PCBs involved.
[9565-PB] Simple Prototyping Pad Matrix
This board neatly occupies the available space within the enclosure. The various holes are located to allow fixing to the mount points within the enclosure, stand-offs for 'sandwich' arrangements, and for DIN rail mounting options. This is very much a prototyping board that provides a template, particularly for the various mounting holes, for subsequent board designs.
9565-PB Eagle CAD Files | [22 KB] |
9565-PB CAM Files | [45 KB] |
[13095-BP-L & 13095-BP-R] Base Board [Left & Right]
These, and the 9575-BPHC PCB described below, are specifically designed to support the Power Switch (Pump Controller) application.
These two boards fit neatly together to occupy the available space within the enclosure. They are designed to primarily provide mounting points for components and the secondary 9575-BPHC PCB within the enclosure so there is no requirement for electrical connectivity between the two halves. The left half, which contains no actual circuitry, is nonetheless fabricated as a PCB simply because this was the cheapest and easiest way to make it. I actually used an option with JLCPCB, my fabricator, to have this board made out of aluminium. This had the added benefit of providing some element of heat dissipation for the solid state relay used in the Power Switch application.
The cut-outs at the bottom of the boards are to accommodate cable glands and the cables entering the enclosure.
13095-BP-L | 13095-BP-R |
---|---|
13095-BP-L Eagle CAD Files | [16 KB] | |
13095-BP-R Eagle CAD Files | [24 KB] |
13095-BP-L CAM Files | [38 KB] | |
13095-BP-R CAM Files | [102 KB] |
[9575-BPHC] Base Power board for Heltec CubeCell
This board is the processor support PCB designed to be used, in the 130 × 95 NHP enclosure, in conjunction with the two-part base board described above. The board is mounted on stand-offs, in the same way as my other 'sandwich'-style board configurations, in the right half of the enclosure, above the right half board described above.
9575-BPHC Eagle CAD Files | [108 KB] |
9575-BPHC CAM Files | [220 KB] |