C.A.M.P. kit guide

C.A.M.P. Kits

Cardboard Assembly Made Playable kits, or C.A.M.P. kits, are an optional kit you can use to turn the cardboard box your controller arrived in into a fully playable second controller. C.A.M.P. kits make an excellent hobby project, and if you've never built an arcade controller before this is a great way to dive in! C.A.M.P. kits also make a great first soldering project or activity with kids (under supervision! soldering irons are hot and knives are sharp!). At the end of the project, you'll have fully functional leverless controller that you can use or give away!

This guide will teach you how to turn your C.A.M.P. kit into a controller.

What comes in the kit?

  • Cardboard box: This is the box your kit arrived in.
  • 20x switches: Choose either Gateron or Kailh switches. Gateron switches are less expensive but still totally functional, though they will not work as spare parts for your Granola controller. Kailh switches are what Granola controllers use and are very high quality, but cost a bit more. You will use 18 of them to build the controller, two of them are extra for you to accidentally melt with the soldering iron.
  • 20x switch stakes: These are designed to be inserted into the cardboard box. They give you a template to cut holes, and also a stable base for the switches. Like the switches, you will use 18 to build the controller, and the other two are for you to accidentally break.
  • 20x button caps: You can pick any single color you want! You'll get one 30mm cap and the rest will be 24mm caps.
  • 25ft of stranded wire (26ga): You will cut and strip this wire to connect all your components together!

What do you need to provide?

This kit does not come with a PCB! You should choose one based on your needs and purchase it separately. I have some recommendations here and why you might pick them, as well as links to vendors. Vendor links are US centric unless otherwise noted, if you are outside the USA you should probably find different vendors to avoid paying shipping costs. If you are a vendor and want to be added to this list please reach out!

GP2040-CE board options

  • Raspberry Pi Pico: Inexpensive, ubiquitous, and very versatile, the Pi Pico is the standard for RP2040 projects. The Pico has a USB-Micro port so you will need an adapter if you want to use USB-C. There are no frills here; if you want features like USB passthrough you will need to wire additional boards up to the Pico. Still, this is a great board to get started with, and cheap enough that you can buy a couple of them just in case you break it. Get the version without pre-soldered header pins if possible.
  • Waveshare RP2040-Zero: Like the Pico, this is an inexpensive option that has an incredibly small footprint. Its small size makes it a little bit tricky to solder, but it has a USB-C port and all the same capabilities as the Pico. This is the board used in the very popular Flatbox rev.5 open source controller.
  • GP2040-CE Advanced Breakout Board: Designed by TheTrain, this is what you want if you need all of the GP2040-CE features. Thanks to the screw-down terminals, this is the simplest option to assemble. You also get an extra USB port for USB passthrough (PS4/PS5/Xbox support!). More expensive than the above options, but you can get them from a local vendor, or pool together with your friends to get it manufactured by a PCB maker (detailed instructions how to do this on the GitHub). Open source and fantastic!
  • GP2040-CE Basic Breakout Board: Another design by TheTrain, this is a stripped down version of the Advanced Breakout board that costs significantly less to produce. This is a nice middle ground between the tiny boards like the Pi Pico and the advanced breakout board. 
  • Design your own: This is probably not practical for most people, but if you want to learn about PCB design, making a game controller board is a fantastic place to get started. Because GP2040-CE is available already, you won't need to learn how to write any code, and there are lots of great resources for designing with the RP2040 microcontroller. I recommend KiCAD or EasyEDA for PCB design, just watch some tutorials and get started building!

Other board options

Brook boards are also very popular for custom arcade builds. Brook has been in the arcade business for a long time and have a good reputation for quality. These boards are more expensive and run closed-source firmware, so don't expect regular updates or new features, but you can expect good support and reliability.

Tools you will need

If this is your first electronics project, you will probably need to buy a few of these tools. I will recommend a few specific brands here, but my general philosophy with tools is that you should buy something very inexpensive at first, then replace it later with something nicer if you feel like you need to do that. Using an inexpensive tool first will give you an appreciation for the nicer stuff, and help you decide later what is more important to you as a builder when you choose to make a bigger investment. If you ever have questions, please join the Granola discord! There is a design channel where you can get advice from me and others.

  • One of the PCBs listed above and a USB cable to connect to your computer
  • Soldering iron that can reach at least 750F/400C
    • The Pinecil is amazing value, runs on USB-C and heats up incredibly fast
    • You can also get something for $10-15 on Amazon but it will lack safety  and convenience features of the Pinecil.
  • Solder (LEAD FREE!!!)
  • Wire stripper/cutter
  • Knife or something sharp
  • [Optional] Desoldering tools for fixing mistakes
    • Desoldering wick and a small jar of flux is usually sufficient
    • Also consider a "solder sucker" for pulling solder out of pins
  • [Optional] "Helping hands" soldering stand

Assembly guide

Button layout

Lay out all the components in front of you. Remove any identifying information  like your address from the box and decorate it however you want. You can also decorate at the end, but it will be easier to do it now before you add any of the parts.

1

Arrange the switch stakes on the top of the box where you want the buttons to sit on the controller. It helps to orient your stakes with the pins facing up so they lay flat, and use the button caps to figure out how wide you want the spacing to be. You can use your Granola controller as a guide, or just lay your hands naturally across the box and see what positions will be comfortable for your fingers. Don't be afraid to experiment to see what you like the best!

You will make four "groups" of buttons, generally:

  1. Direction buttons: Up, down, left, right
  2. Action buttons: A, B, X, Y, R1, R2, L1, L2
  3. Extra buttons: L3, R3
  4. Menu buttons: Start, select, home, touchpad

2

Once you are happy with the positions, flip the switch stakes over and push the pins into the top of the box so the stakes are held securely in place. You shouldn't need much force to push them through the cardboard, and they will hold on their own without any additional glue or tape.

3

Make the cuts

Use a sharp knife to cut out square holes in the box around each of the buttons. You don't need to make the cuts super clean, but you do want to create the maximum amount of space possible for you to fit the switches into later.

4

Place the button caps on your switches BEFORE inserting them into the box, then put the switches in your switch stakes and test the overall fit and function.

5

Make a small hole in the back for your USB cable or adapter to fit.

6

Solder the cables

Open the box and view your switches from the underside. Each of the switches will have one pin soldered to a unique pin on your PCB, and the other pin soldered to a common "ground" connection. We'll start with the ground connection. 

Ground Connection

The Ground connection will be one long daisy-chained cable that connects to one pin on every switch as well as the GND pins on your PCB.

7

Button Connections

The other pin on each switch will connect to the appropriate pin on your PCB. To learn where your pins should connect, refer to the pinout diagrams on the Downloads page on the GP2040-CE website. There are different pinouts for each PCB type, so make sure you look at the information for your board before you proceed. For this example we'll use the Raspberry Pi Pico, which has these pinouts:

This diagram references the GP2040-CE button names (see this table in the GP2040-CE docs). For the layout we'll use in this example, our wiring will look like:

8

We need to connect each labeled pin on this diagram to its appropriate switch. This can get messy fast, so it's best to plan out your wiring before beginning to solder. Avoid using too much solder also, since you need the pins to avoid touching each other. Like we did with the GND pins, it's easiest to insert the wire through the holes on the Pi Pico and then perform the soldering.

9

If you apply too much solder and it bridges across multiple pins, stop what you're doing and clean it up. The easiest way to do this is with a desoldering wick, but you can also try to break the surface tension by poking at it with your iron. This part can be frustrating, and this step is the most difficult part of the process, so don't worry if you don't do a great job. Soldering is an art form, you will get better as you complete more projects!

Upload the firmware and test your connection

Plug the controller into your computer. It should appear as a flash drive called RPI-RP2.

Head to the Downloads page on the GP2040-CE website and download the appropriate firmware for your board. This should be a file with the .uf2 extension.

Drag this file into the RPI-RP2 folder. After the file uploads to the controller, it will automatically reboot and now it should connect as a controller to your computer!

Visit "Set Up USB Game Controllers" in your Windows settings, or the online hardware gamepad tester website here. Test the function of all of your buttons.

10

If any button is not working properly, take a look at your connection wire and ground wire and see if you need to repair any of the connections. If anything obvious is wrong, correct it and move on.

If any buttons are mapped incorrectly, you can fix it by changing the pin mappings in the Web Configurator. See the GP2040-CE docs for info on this topic.

Enjoy!

You now have a fully functional cardboard controller! Go win your local with it!

Help contribute to this guide!

If you have any suggested updates or parts vendors to recommmend, please reach out on the Granola discord or email me!

Acknowledgements

The CAMP kit product was inspired by CountIfShine in the Granola discord, who built a controller on their own out of a Granola controller box.

Thank you to Drug Free Plays who kindly answered my questions about their cardboard controllers.

Crane's Budget Boxx guide and Super Toad Mods' guides on YouTube were very helpful in designing this guide as well.