Firmware engineers regularly work on dev kits or prototype boards ahead of the release of the production hardware. This pre-production hardware is often provided as bare PCBs without power supplies and sometimes without standard connectors. Between wiring up the required power rails and running wires to peripheral devices like sensors or actuators, a firmware developer can end up with a rat's nest of janky connections and precariously situated PCBs. Then a cat jumps up on the desk, knocks a 12v wire onto a 3v rail, and all work stops until replacement hardware can be obtained.
Dangerlab™ is a mechanical solution for such devkits that requires minimal tools and skill to assemble. It's based on 30.5cm (12") square, foamed PVC sheets commonly available from places like TAP plastics or on Amazon. Using these sheets, some standard m3 or m2.5 fasteners, and the 3D-printed library of parts here, a software developer can quickly assemble a kit that is (mostly) cat-proof and even portable if this is desirable.
I've seen developers use various materials for mounting devkits and I've tried them all myself. Aluminum is nice when you have a machine shop available but developers will need to have a drill press and a set of thread taps if they want to modify the setup after it is manufactured. Aluminum FOD can also destroy electronics very quickly so any metal is a bit dangerous to use around raw PCBs. Polycarbonate, acrylic, or Lexan sheets are strong and can be drilled by hand with some ease but they are more brittle and have a tendency to crack if you're not careful. These materials are also really hard to cut by hand.
Foamed PVC is as workable as poster board but is entirely plastic and doesn't buckle when loaded the way cardboard and poster board tend to. Any FOD is non-conductive, you can cut it with an xacto knife, and you can punch holes in it with an awl if you don't have a drill and bits on hand (although I really recommend always using a drill). I've found that it can hold the sort of loads one has in devkits without sagging as long as you keep the span between support to around 30cm or so. Finally, Foamed PVC not all that expensive compared to other materials.
Foam core solutions like Foamed PVC have a problem, however, when using standoffs and other fasteners; they tend to warp unevenly under pressure making standoffs lean to one side when tightened. They're also elastic enough to stretch when tightening down certain fasteners where the head will simply slip right through the surface. Danglerlab solves this by using oversided feet, washers, and brackets to distribute the load over a wide enough area for foamed PVC.
The Dangerlab models are all optimized for FFF printing using PETG. Most of the parts will also work with carbon-fiber reinforced polycarbonate and some, where rendered in white, can be printed using PLA+. For the most part, however, PLA is not suitable for parts experiencing tensile forces and should be avoided.
At least one copy of any Dangerlab part can be printed on a PRUSA mini making the mini's bed size the minimum print area (x/y) supported. No part is over 60mm high (z).
Each Dangerlab devkit requires a considerable number of parts so I'd recommend printing large batches of parts whenever your printer is idle and storing up a backlog for use when needed. I've listed an Akro-Mils cabinet below you can use to store parts as you print them.
So, yeah, this is all plastics. Two things, however, should be considered about this when using Dangerlab
While you can punch dirty holes in foamed PVC sheets with an awl and you might get things done using a box cutter for additional openings, I'd recommend the following tools to make working with the Dangerlab system easier and safer:
For details on each assembly I've provided access to my Fusion 360 files directly.
| Assembly Thumbnail | Assembly | Model |
|---|---|---|
![]() | Type 1 Riser Assembly - This riser is one piece and easier to print but relies on an M3 stud in the Acorn Nut to get the 15mm extension out of the top. McMaster-Carr sells pre-cut 25mm studs which are too short. You can, however, buy these studs and use some thread locker to fix them 3mm out from the end of the standoff used inside of the Acorn nut. Otherwise you can cut your own 28mm studs from M3 thread-bar but you'll need to know how to cut thread bar and restore the threads after the cut (spoiler alert: use an M3 die). | https://a360.co/44xXbhJ |
![]() | Type 2 Riser Assembly - This riser comes in two parts which are threaded together. Because you have to print threads you'll need a healthy printer and should use a 0.1mm layer height and 0.4 nozzle. This all adds up to a lot more print time then the Type 1 assembly, however, the Type 2 uses a standard 25mm M3 Hex bolt to get the proper 15mm standout. Note that the Acorn nut is on the opposite side from the Type 1. | https://a360.co/4j0aomO |
![]() | 60mm Fan - Provides cooling that fits between levels. Note that the fan in this model is configured to hang over the edge of the baseplate it's attached to. You can turn the side-mount bracket around to have the fan mounted inside the edge of the baseplate. | https://a360.co/4j3af2b |
![]() | 4.5mm Stand-Off - This is the most common assembly in the Dangerlab system. Print lots of these. | https://a360.co/4iUVL4g |
![]() | Banana Jack Power Intake - If you are using external power supplies this gives you a banana-plug hookup that sits under a baseplate. It also accommodates an Adafruit perma-proto PCB so you can add a power LED or other circuitry to this intake point. Other than fasters, you'll need the following special parts for this accessory:
| https://a360.co/4mqeuYy |
![]() | IEC Power Intake - NOT UL APPROVED (use at your own risk). Provides an insulated enclosure for setting up an IEC, 3-prong disconnect to service power. Uses this connector with switch from McMaster-Carr and provides a 16mm round opening on the rear panel for a strain relief. Note that this part requires two 75mm M4 bolts. | https://a360.co/44zgWp1 |
![]() | Multi-standoffs - These provide a solution for stacking PCBs on top of each other where the holes don't quite align. They also act as an M3 to M2.5 adapter if needed since either side accepts either size. In addition to M2.5 square nuts you'll need M2.5 12mm thumb screws (for example, these Vernier Caliper thumb screws) | https://a360.co/3GPiK3f |

To start your first Dangerlab baseboard print out the Riser Ruler, Riser Ruler square, a 1mm shim, and at least one 6mm Acorn Nut. You'll need a M3 square nut and a 14mm M3 Hex bolt to assemble this.

Now, using an 18" cork backed ruler align one edge from diagonal corners of your base sheet and draw a line, using a pencil, for the middle 10cm or so. Repeat this for the other diagonal to get a 10cm “X” showing the center of the sheet. Drill a 3mm hole at this center as accurately as you can. Place the ruler on the sheet and insert an M3 screw/bolt through the center point on the ruler and the hole you just drilled. Align the ruler with one edge of the sheet and set the square as shown in the following diagram. Draw a line through the middle of the ruler with your pencil.

Now remove the square and rotate the ruler until the 45º guide aligns with the line you just drew, as shown in the following diagram.

Mark the point where the circle is at the end of the ruler or just go ahead and drill an M3 hole through the circle if you're in a hurry. Rotate the ruler three more times and drill three more holes until you have this…

Note, you don't have to nibble the corners as shown unless you are using side feet (see Example - Basic, Two-Level with Feet… below) but if you do, just hack off about 4mm with your Olfa knife.
Now we put the five feet on the bottom to elevate it and keep it from sliding around by using soft rubber feet. Here we use our first Big Dumb Washers so you'll need to print out 10 of these bad boys. That said, given how common the BDW is you should print out at least 50 when starting to use the Dangerlab system.

With all five feet installed you should have this…

Now to install some standoffs for a devkit. Each requires the following parts:

There's a bit of a trick here that is one of the things that makes Dangerlab so easy to use. Put your PCB down as close to the PVC baseboard as you can and mark the holes you want to add supports for. Now, putting the PCB aside, drill a holes that are at least 2mm larger then the standoff's hex screw diameter. For example, using a 20mm M3 hex screw to secure the standoff feet you'll want to drill 5mm holes. Now assemble all of your standoffs but do not tighten them down to the base board. Fit the PCB to the standoffs and tighten it down. Now, when you go back and tighten all of the BDEs they'll naturally align themselves to be vertical without putting any stress on the PCB.
And there we go. You should have something like this now…

These are the basics. From here you can decide to use risers for travel covers or to make multi-level devkits. You can also explore the various accessories Dangerlab provides like power hookups, escutcheons, wire tie-downs, etc.

This is a very simple Dangerlab setup that provides a single baseplate and a removable cover to protect the contents of the baseplate when transported. Since the travel cover doesn't have anything mounted on it, this configuration can omit the center support providing only a foot with no riser for the center hole in the baseplate.
See “Example - Getting Started” above for how the center foot is assembled and how to drill the five standard holes in each baseplate.
Each of the corners are made out of the following parts:

Acorn Nut Note: In the above diagram, two different Acorn Nuts are used. The 4.5mm Acorn Nut is used because it is difficult to source the 30mm M3 studs needed when using the 12mm, 6mm hex standoffs that fit in the universal Acorn Nut (You can always buy M3 thread-bar and cut your own but cutting thread bar is a bit of an art and requires more tools then listed above). The Universal Acorn is used for the lid closure but you can also use a 4.5mm Acorn Nut with a 4.5mm hex, 16mm F/F standoff if you like. The Dangerlab system has three different Acorn Nut designs for just this reason; to allow you to print a solution that fits the fasteners you have on hand.
Acorn Nut Flange Adhesive Note: While using transfer adhesive to stick the flanges to the PVC sheets isn't necessary for any structural reason it's quite convenient when the nuts and/or risers are removed since you don't have to store the flanges separately. It also just looks nicer since the flanges will cover up any ragged hole in the PVC. I highly recommend you fasten your flanges down using transfer adhesive for the simple nut flanges or fasteners with the riser brackets.

This example is more complex and demonstrates using multiple levels to make compact, portable devkits for complex firmware rigs. I default to this format where the bottom level is just power supplies, connectors, and rails; and the top level is where all the interesting stuff is mounted. The side-feet make the kit more portable where the whole thing slides vertically into a large, rain-proof tote-bag suitable for bus commuting.
Another hack for any kits that include IP networking is to mount a raspberry pi and a small switch on the first level. This allows you to write automation scripts on the pi that can run independently; a must for writing long-running component tests.

This is just silly. You probably should't build one of these but here it is; three-levels under a travel cover across four base modules. It should work structurally…I think, but it'd be really hard to use since you'd have to disassemble a lot of the kit to get to the stuff in the center. It's also not really portable. I present this as an anti-pattern to consider; make sure you think about how you will get to all of the parts of your devkit before you choose a super structure. It might be that multiple, independent Dangerlab rigs with interconnects is a better way to compose large setups instead of a monolith like this.
This is an ongoing project. Check back for more documentation and refinements.
The author marked this model as their own original creation.