LED-driven, Laser Cut Settlers of Catan Board

by nicknewhouse in Circuits > Arduino

10452 Views, 134 Favorites, 0 Comments

LED-driven, Laser Cut Settlers of Catan Board

IMG_7043.JPG
IMG_6532.jpg

As you may have seen from my TikTok, I made a custom Settlers of Catan board using an Arduino, programmable LEDs, laser cut acrylic tiles/wood, 3D printed game pieces, and custom printed playing cards. This guide will explain the parts you will need to build a prototype of your own and also provide you with all the design files you'll need. If you find this guide difficult or confusing, don't hesitate to contact me and I'll try to help out!

You'll also get to check out the software I wrote.

Anyway my main passion is actually making music so if you'd like to support me, go check out Nick Newhouse wherever you stream music!

Order All the Things!

ore card 822x1122.png
sheep card 822x1122.png
wheat card 822x1122.png
wood card 822x1122.png
brick card 822x1122.png
longest road card 822x1122.png
largest army card 822x1122.png
catan card back 822x1122.png
roadbuilding card 822x1122.png
victory point card 822x1122.png
knight card 822x1122.png
monopoly card 822x1122.png
year of plenty card 822x1122.png

This build assumes you have some experience with microcontrollers (I used an Arduino) and that you either have the ability to solder together all of the LEDs or can make do with solder-less connectors. Some very basic woodworking knowledge (or a friend with a miter/table saw) will be handy as well. I won't list materials like wires, solder, soldering iron, wood glue, hot glue guns, drill, clamps, etc because (hopefully) you have those lying around or can borrow them from a friend.

If you don't want to buy everything all at once, definitely start with the electronics since they're the backbone of this build. You can rig up the LEDs and get the code running on the Arduino without doing any soldering.

What you'll want to order:

  • Required Parts:
    • Individually addressable RGB LEDs - I used 3 LEDs per resource tile and 1 LED per port (66) but you could (should?) theoretically use fewer (like 47).
    • Power Supply or Battery Pack for more mobile use
    • Power Adapter (unless using Battery Pack)
    • Arduino Microcontroller or Arduino Microcontroller 2 (both work great)
    • Capacitor (to prevent power surges to the LED strip)
    • Button (for randomizing the board)
      • My build uses a switch but a button is better for this use case. Feel free to shop around for one you like and can mount relatively easily.
    • 4 sets of Catan pieces with magnet recesses (3D files provided)
      • The link above is a subreddit where people around the world will 3D print your thing for a modest fee. It's what I used but if you own a 3D printer then just use the files I provided. Resin pieces tend to have a weightier, higher quality feel but are more expensive than PLA, up to you!
      • 15 roads, 5 settlements, 4 cities per player.
    • Catan playing cards (custom images provided)
      • This website is great for making custom card games. You can customize the front and back of each card.
      • I would encourage you to play with the RGB settings on your own board in case you want a different color palette. Feel free to hop into Photoshop and match the cards to your own color choices!
      • You'll need: 14 knight cards, 5 victory point cards, 2 roadbuilding cards, 2 year of plenty cards, 2 monopoly cards, 1 longest road card, 1 largest army card, and 19 of each resource card (brick, wood, sheep, ore, wheat).
      • I used the same back for all of the cards (even development cards) excluding the longest road/largest army cards which are just double sided.
    • Laser cut numbered tokens (vector files provided)
      • The above link is to Ponoko which I found to be a very reliable online laser cutting resource. Their customer service is also super helpful if you have any questions.
      • Use 1mm clear acrylic and make sure the black circles are cut and the red numbers/letters are etched.
    • Laser cut plywood game board (vector files provided)
      • I found my board on Etsy but the EPS files I've provided very closely resemble it but with the correct port locations.
      • If you decide to use another laser cutter, make sure that you read their documentation on laser kerf width since you want to make sure the fit with the acrylic tiles is snug (the kerf width affects this).
      • Again, make sure everything in black is being cut while everything in red is being etched (the red dots provide a guide for drilling the magnet holes).
      • You'll probably want the 6.2mm plywood or MDF for the top but the bottom can be thinner at 3.2mm. Frankly, the bottom doesn't need to be laser cut if you can trace/saw your own hexagonal base.
    • Laser cut acrylic resource and port tiles (vector files provided)
      • Again, I'd recommend Ponoko for cutting these. I've designed all the EPS files compensating for a 0.2mm kerf width.
      • You'll want a material such as the 5.6mm opal acrylic which does a solid job at diffusing the LEDs.
      • 19 resource tiles and 9 port tiles
    • Some kind of stilt to separate the top and bottom pieces of wood/MDF
      • The distance between your LEDs and the acrylic will partly dictate how the light is diffused. I used 6 pieces of 1/2 inch scrap wood on each of the vertices to distance the bottom and top plywood layers.
      • You'll also need a way to secure the bottom and top plywood layers together (perhaps strong velcro or medium sized magnets)
    • 1/4 inch thick wood for the perimeter paneling of the board
      • This is where you'll need the miter/table saw to cut 30 degree angles
  • Optional Parts:
    • 3mm Magnets for the board/game pieces
      • You'll also need a drill/drill bit that will fit the magnets snuggly. You might want to glue them in place regardless of the fit
      • You will need 242 (if my math is correct)
    • Small bags for the cards and various game pieces
    • Wood stain or paint (for a nice finish!)
    • 5mm foam board / reflective tape
      • This is for preventing light bleed between adjacent LEDs of different colors (highly recommended if you want stark contrasts between colors).

Connect Your LEDs to Your Arduino

IMG_6872.JPG
IMG_6469 2.JPG

I know my desk is a mess, we don't have to get into it.

The goal here is to make sure you can get the code running on your Arduino without any issues and that all of your LEDs are working. I'm not great at drawing schematics so I'll just tell you what my connections are since there aren't too many:

  1. Digital pin 1 on the Arduino connects to the Din on your first LED.
  2. The ground of your first LED connects to the ground on your Arduino.
  3. The 5V of your first LED connects to the Vin (or Raw).
  4. Your power supply's ground connects to your Arduino's ground.
  5. The positive side of your power supply connects to the Vin pin (or Raw) on the Arduino.
  6. One side of your button connects to the Arduino's ground.
  7. The other side of your button connects to a digital pin.
  8. The capacitor can be stuck right into the power connector as shown (the ground side will be indicated by a strip along the "can" or a longer leg).

Note: the LEDs will attempt to draw more current than your microcontroller can provide with USB bus power alone so try not to power your LEDs for long periods of time via the micro USB or you'll risk damaging the hardware.

If you haven't downloaded the Arduino IDE, do that now. You'll be able to connect your Arduino directly to your Mac/PC using a micro USB cable. There's a ton of online documentation on uploading programs to an Arduino from your computer. I had trouble getting my Mac to recognize my Metro Mini but my Windows 10 machine worked without issue. Make sure your Board and Port are correct for your specific Arduino in the Tools menu and try to get the Blink program uploaded to the device (File -> Examples -> Blink).

Once you've successfully uploaded a program to your Arduino, open up the Catan program (led_catan_board.ino). I've left some comments in the code that explain which values you can safely change to get different colors. For now, make sure that the `NUM_RESOURCE_LEDS`, `NUM_PORT_LEDS`, `LEDS_PIN`, and `SHUFFLE_PIN` correspond with the correct numbers of LEDs and the pins you're using on your Arduino. Try uploading the program to your Arduino--if all goes well you should see your strip light up and your switch/button should randomize the LEDs for you. There should be four 3:1 ports LEDs among the last 9 LEDs that slowly change through the rainbow.

Drill and Insert Magnets Into Board

IMG_7116.JPG

This should be relatively self-explanatory but a few things to note:

  1. The side into which you're inserting the magnets is not the top. This way the magnets remain hidden and any splintering wood isn't visible.
  2. Don't drill too deep! I basically eyeballed the depth but you can get a choke for your drill bit that will make it the same depth every time.
  3. If you used my EPS files and had the red dots etched then you should have the perfect guide for where to drill.
  4. MAKE SURE THE POLARITIES ARE THE SAME FOR EVERY SINGLE POSITION ON THE BOARD. It's imperative that you don't accidentally put some magnets in with the negative side up and others with the positive or else your game pieces will repel certain locations on the board.
  5. Depending on the magnet fit you may want to apply a little glue so the magnets are secure.

Glue and Solder LEDs to the Bottom Board

Screen Shot 2021-08-06 at 2.51.37 AM.png

For my prototype, I had to manually cut and wire together all 66 LEDs that I was using which was a huge headache. Hopefully you've ordered the ones I recommended which will minimize soldering.

  1. Use a pencil to trace the hexagons and ports onto the lower layer of wood/MDF.
  2. Pick one of the "corner" hexagons drawn on the bottom layer and begin hot gluing your LEDs to the bottom board starting with the first LED coming off of your Arduino. A few things to keep in mind:
    1. Glue them right side up!
    2. If you're doing 2 LEDs per resource tile (for example), then make sure you're gluing 2 LEDs per hexagon before moving on to the next.
    3. Bend the wires as needed to keep them mostly flush with the board.
    4. Glue the LEDs in a spiral pattern (outermost hexagons first, then move in). You'll ultimately end up in the center hex and will have to cut off extraneous LEDs from the strip. These will be used for the ports.
    5. Because the ports are spaced out more, you will have to cut and re-connect the port LEDs. Glue down the 9 port LEDs.
  3. Keep in mind where you want to position your Arduino. It should probably not be too far from your first LED. You can glue it down now if you'd like.
  4. Cut and strip all of the lengths of wire you'll need to attach all the disconnected LEDs.
  5. Solder the LEDs back together (in the right direction! There's a tiny arrow on each LED).

At this point you should hook your Arduino back up to the first LED (if needed) and make sure everything is still lighting up as expected.

Attach Stilts to Board

64013360232__4C5A3014-35D0-4CF2-8137-957C7A10738A.JPG

The LEDs should be given some distance from the frosted acrylic. I elected to cut six small pieces of 1/2 inch scrap wood at a 120 degree angle and glue each of them flush with the six vertices under the top piece of plywood. This allows you to either magnetically or with velcro attach the bottom piece of plywood to the top piece with some distance between the two. In addition, it will ultimately allow you to more easily glue/screw in perimeter pieces onto the board (which I have yet to do on my own).

There's probably a few ways to create a smaller profile board so I encourage you to be creative here with how you assemble the board. Keep in mind you will want easy access to the electronics though!

Stain/paint and Insert the Acrylic Pieces

If you're planning on cutting and attaching the perimeter pieces to finish off the look, you may want to do that before staining/painting so you can do it all at once. Keep in mind you'll want to make a hole for the power jack and for your button/switch to be easily accessible.

Staining/painting should be relatively self explanatory--no need to stain the inside, just the outside. Apply stain in the direction of the grain and be sure to add a protective layer of some sort so your board doesn't get scratched.

Once the stain/paint is fully dry, it's time to fit your acrylic pieces into the board. I recommend flipping your board upside down and placing the board on a towel to prevent damage. Laser cutters actually cut at a slight angle so one orientation may be more snug than another. Be careful when inserting because if the fit is too snug you may accidentally split the wood (this happened to me). That said, you can use a rubber mallet or a hammer with a towel over it if you need a bit more force.

This really shouldn't happen if the measurements are precise, but if your pieces are a tiny bit too small then your best course of action is probably super gluing the tiles in place. Be sure to inquire about the materials and kerf width to your laser cutter when you provide them with the files. I had to order my acrylic tiles twice because of a bad fit.

Cut and Glue Reflective Barriers Between Adjacent Tiles

IMG_7118.JPG
IMG_7117.JPG

If you're going the extra mile, you'll want to prevent light bleed using some sort of divider. Foam board and some reflective tape does a great job of preventing bleed and diffusing the light even more:

  1. Apply tape to your foam board in advance
  2. Measure the distance between the top of your bottom board and bottom of your top board. Subtract maybe an eighth of an inch to account for wires/hot glue. This will be the height of each divider that you're about to cut.
  3. Measure the length along each resource hexagon. This will be the length of each divider.
  4. Cut all of your reflective foam board pieces to size with a box cutter or x-acto knife.
  5. Hot glue all of your dividers in place between each of the resource hexagons and between the port LEDs and their adjacent hexagons. I chose to glue these to the bottom board but you could theoretically glue to the top instead.

Glue Magnets Into Each of the Game Pieces

IMG_7115.JPG

MAKE SURE THE POLARITIES ARE ORIENTED CORRECTLY WHEN DOING THIS!!!

I used a clear superglue for this. Be sure to wipe off any excess glue so that there's a nice flat surface on the bottom. You might find it a bit awkward to prop the settlements/cities upside down while the glue dries. I recommend using a couple notebooks and creating a small channel between them in which you can prop them all up. Don't let the pieces get too close to each other though since the magnets might try to flip each other!

Finishing Touches!

IMG_7120.JPG
IMG_7119.JPG

At this point you're close to finished (assuming you've already ordered and received the tokens and playing cards).

One final thing you'll likely need to do if you haven't already is solder any temporary connections to the Arduino permanently. At this point you can secure the Arduino to the board (velcro, hot glue, etc). You should also secure the power connector and shuffle button to their respective locations (in the holes you've left for them in the perimeter).

The last thing you have to do is make 3 friends to play with since you probably lost all of yours while you spent weeks on this project. If you have ANY questions at all, please ask! I'm not an expert but I'm so excited that people seem interested in this build and design and would love to help anyone who attempts to make one for themselves.