As detailed in the story, I made a mistake in my PCB files and am waiting for the new ones. Since I'm entering this project in a contest, I won't be able to edit it until the winners are announced. If you want to make the project yourself in the meantime, please use the documents and instructions from here https://www.hackster.io/jessyjones/modular-rgb-tiles-corrected-13f54a rather than what follows, as this is where I'll be making edits. If you just want to know about the project, read on !
OverviewThe goal of this project is to create color changing wall decor by combining hexagonal tiles.
You'll find an extensive story of how I made this in the following paragraphs, but if you just want to know how to make your own, skip to the last chapter.
IdeaSince I'd never made a custom PCB before, I thought the latest Hackster contest would be a good opportunity to design my first one. The contest description mentioned modularity, which I thought would be a nice thing since most PCB makers will ship you 5 copies of your PCB minimum, and I thought making a project where all those copies will be used could be a good challenge.
While I was aiming for modularity, I also wanted the PCB to be usable by beginners, and since I'm always looking for easy ways to spark interest in people who think maker projects are too hard for them, I aimed to come up with something novel that even someone who hasn't used a soldering iron before would be tempted to try.
Long story short, I made color hex tiles that can be combined in any configuration.
Each tile is actually a custom hexagonal PCB with 3 Neopixels on it, and the DataIn and DataOut pins of the first and last LEDs broken out on solder pads available on each of the 6 edges of the tile (similar to the edge pads that you can find on some protoboards).
The user can then combine these tiles any way they want, and solder together only the pads required for their specific layout.
One "main" tile, shaped like the others, includes a Wifi enabled micro-controler and an USB plug for power, so that the user can either write code to change the effects on their wall decor, or just use WLED for ready-to-use wireless control.
Being new to designing PCBs also meant that I had to choose a software solution to do so. I actually made half the project with one that was adequate enough, and started over from scratch, this time using Autodesk Fusion.
This decision became evident when I realised how closely tight my PCB Design and the enclosure would have to be, and making them both in Fusion saved me a lot of headaches, on top of keeping me in an UI that I'm now really familiar with. Given the amount of new things I still had to learn and troubleshoot, I'm glad I made that change !
Creating the PCBSince my PCB and 3D enclosure will share a lot of aspects, it made more sense for me to start with a document where I'd add all of the parameters I'd be using, including the diameter of the base hexagon.
After creating those, I made a sketch of the hexagon in the right size, and used the derive PCB option to create a board from this outline.
The PCB design includes 3 aspects in Fusion : the schematic, the PCB and the 3D board.
Starting with the schematic, I first added the RGB LEDs by searching for 2812 in the components list and selecting the one with a 50mm by 50mm footprint. I added 3 of those to the schematic and wired them so that the first LED's Dout went to the second LED's Din, the second LED's Dout went to the third LED's Din, and their VDD, VSS and VCC connected together (this should have alterted me but it didn't, you'll read later why).
Before moving forward, I decided to create the board and place my LEDs on it, even if I was still missing a lot of things. I learned how to use the routing tools to add traces to the PCB, selecting from the top and bottom copper layer as my PCB is simple enough to be double sided.
Then came the moment of integrating the edge pads themselves. I could not find specific directions on how to create edge pads, and after trying various approaches, I decided to create a custom component in Fusion.
Again, this is done in three parts : you have to create the component schematic, so that it can be inserted just like we've done with the LEDs, and then create a footprint that will be added to the PCB.
In my case the schematic was simple enough since this "component" doesn't have an active role, so I just needed to add a pin for each signal I wanted to make available on the pad : Vcc, GND, Din to the first LED, Dout to the third LED.
Same with the PCB footprint, it was just a matter of adding one pad for each of those.
After some trial and error, I realised it would be easier for me to break out each pin on 2 pads instead of 1 for each side of the hexagon, and to have the signals (Din and Dout) on one layer of the PCB and the Power (Vcc and GND) on the other.
Once I had finished creating the schematic and PCB footprint, I just add to associate each pad and pin and my component was ready to use. Fusion also allows you to add a 3D model but that did not make much sense for my use case.
Back to my project schematic and PCB, I added 6 instances of this component exactly as I would any other one. I connected the wires on the schematic and switched to the PCB view.
When I had started this PCB design in another software, the part I had struggled with the most was placing the pads on each side of the hexagon, since I needed them to line up perfectly for the user to solder them together, and had basically given up.
This time around, I was relieved to see that Fusion has a function that allows you to arrange objects on a grid or in a circle
This allowed me to place the pads exactly where I wanted.
Then came the routing step : this being my first time, I opted to create my route manually so that I did not make any oversight without realizing it (at least not on the routing part). I did have to add a few vias to the board but I ended up with something pretty similar to what I had in mind. I added a hole in the middle of the board to help with securing it in place in the enclosure.
Creating the enclosureWith that big chunk of the project done, I could go back to my comfort zone and create the 3D printed enclosure for the tiles.
Where I'd tried my best to have one single PCB for the tiles, I knew I could not design one single enclosure that would fit any tile layout, so I created a configured design instead so that the enclosures would have several versions depending on whether they had a neighbouring tile on each side.
Other than the bottom part of the enclosure (pictured in purple), the design remains the same for every tile.
As far as connecting the tiles together goes, I had the same set of constraints and could not use the walls of the enclosure. I ended upadding some holes in the base of the enclosure and created some joining pins to be inserted inside.
I usually add snaps to the sides of the bottom and top parts of my enclosures with a little clearance in between so that they can be snapped shut but still be opened if needed, however I had to stay clear of the sides since I did not know how many closed sides each hexagon shaped tile would have - anywhere from 5 to 0, as pictured above. I opted to add a feature in the center of the tile instead
Here's the same section view with the PCB in place. You'll notice the diffuser top has three beams that separate the tile in three, I'm hoping the light from each LED can be isolated from each other that way to allow for even more visual effects.
I added rigid joints between each component of the tile (bottom, diffuser, PCB) for the next step.
Creating the assemblyIn order to test the tiling feature (basically, the whole purpose of the project), I created a new design in Fusion and used it as an assembly by importing different versions of the tile, and creating joints between the PCBs. And the pads do align as intended !
One last thing (or two, really)If you've reached this part without skipping chapters, first of all, wow, thank you, but you might have also noticed there's something I haven't mentionned yet : what use are all those LEDs if there's nothing to drive them ?
Well that was the last step of learning how to make a PCB for me : using public libraries to import a component, in my case the ESP32C3 version of the XIAO board from Seeed Studio.
The library manager allows you to browse public librairies and the XIAO board has a dedicated one :
Then it's just a matter of adding it to the schematic, wiring the 5V pin to Vcc and GND to, you guessed it, GND, and choosing a GPIO pin for signal (in my case D0).
And, I managed to add it to the board and route it correctly without changing anything else, which means that there's no specific version PCB for the controler tile, any PCB tile can be used if you just add a XIAO board in the center.
And the other thing ?
Remember a few paragraphs ago when I mentionned the pins VSS and VDD that should have alerted me ? Well, I had actually chose the 6 pin version of the 2812 LED where I should have chosen the 2812B which has four pins and is much easier to use and solder (because of course, this was also my first time soldering SMD components), and most importantly which are the ones I had ordered.
As such, I've only (painfully) made two test tiles with the current design, just to check that everyhing else was okay, and ordered a new version of the PCB from PCBWay with the correct package and footprint (that should arrive in a few days). Since I'm entering this project in the PCB contest, I won't be allowed to edit it until the end of the contest, so while I'll still add the files for this version, please go to this version for the updated, corrected project especially if you plan on making your own.
Comments