The process of taking my breadboard circuit to SMB part circuit was such a struggle omg. Here is the board I ended up with, which looks really nice, but unfortunately does not work. Code appears to upload through the Arduino IDE, but there is some issue with the board stuck in a reset loop.
Even though my circuit doesn’t work, the code does work!!! It works 100% on my breadboard circuit and the Feather Huzzah. Here a screenshot of the main website that my circuit was supposed to be serving. I was able to control a whole strip of neopixels during my testing.
Keep reading to see the process of building my circuit.
I started off with this design with 16 LEDs. The schematic looked good.
The board I designed is great with only two air wires and 0.5mm copper traces.
Only problem is that when I imported my board from Eagle to Bantam it didn’t include the solder pads for components. Only the traces were milled, which left little space for my components to sit on. Youc an see it on one of my boards that came off the Othermill bed.
Of course, I tried to solder my tiny little SMD parts on anyways. I even made a solder stencil using the laser cutter. This is what my Illustrator file looked like, and then I used the 50W Epilog at 10% speed and 12% power to raster the plastic transparency paper.
After putting my SMD parts on, it didn’t work out so well. I am pretty sure that because there were no copper pads for the LEDs to rest on, the metal terminals on the LEDs connected the data and power lines to the ground plane. I had two failed attempts ):
In an attempt to save my project and try one last time, I made a new design with copper traces 1mm wide and reduced by 4x4 LED grid to a 3x3 grid. I made the board bigger to accommodate the larger traces and made sure that the pads showed up in the Bantam software.
Honestly, I have no idea why the copper pads for my components show up only sometimes in Bantam. It takes a bunch of fiddling around to get Bantam to match what I designed in Eagle. I really dislike Bantam’s software and I think I’m going to acid etch my circuits in the future. But after a bunch of nonsense, I got it to cut the way I wanted it to~.
From there, I followed the process of adding the solder paste and using the pick-and-place machine. I did reflow and it looks good so far. I was waiting on new ESP8266 modules in the mail, so I hadn’t soldered those on yet. At this point, I was pretty sure things were going to work out.
Before soldering on my ESP8266, I taped off the end of the module in case any of its copper pads might cause a short with the traces on my board. And then I soldered it on.
I was able to get the code to upload after putting it into bootload mode.
All of this seemed good, but then when I reset the ESP8266 to run the code it kept outputting error messages like this. All the while, the blue LED on my ESP8266 was blinking every time it sends the error messages to the Serial monitor.
I also got errors like this about the reset.
I know that the chip is at least somewhat working since I was able to use esptool.py to get the MAC address and communicate with the chip a little bit.
It is possible that there is something wrong with my pull up or pull down resistors. Or maybe some kind of power issue. I did test all the voltages and did a very thorough continuity beep test. It is also possible that there is something wrong with the firmware. I tried using esptool.py to erase the flash and upload new firmware, but I’m not really sure if that did anything.
So close, yet so far. I spent many hours trying to debug it. Who knows, in the end maybe there is something wrong with the chip itself since I bought it off Amazon and it didn’t even appear to be cut off a reel.
Eventually, I may return to it. I’m still unsure if there if there is a simple fix (replace the ESP8266?) or if it is something more complicated. I am thinking about revisiting it during the summer to fix it. I think that this project would be great as a larger scale interactive LED piece since people in class seemed to have a little bit of fun using the 2 LED version from my prototype.