The aim of this project is to design a flexible PCB that can be attached to a coffee cup and will visually represent the temperature.
Wrote some code to bit-bang the control sequence, but nothing was happening.
Turns out the delay statements I was using were causing too much of a delay.
In googling the problem, I found a blog post on Steve Phillips website. see http://stevephillips.me/blog/using-ws2812b-pic-microcontroller I saw he was just using a few NOP() functions which tells the microcontroller to do nothing over the next few cycles.
If you want to see the code it can be found on git hub. https://github.com/Billy-Bogardus/FlexCoffeeLED/tree/1.1.0s
Ws2812b with pic16 on a flexible PCB
Got most of the components. Waiting for the resistors and capacitors.
Ordered metric 0603 components instead of 0603 imperial components. Ops. Moral of the story don’t trust the metric system. ???
All the tools needed to make a good prototype board The soldering Iron is a Weller WM 120. It’s only 12 Watts but it’s great for surface mount and even some through hole components.Defiantly needed the fine tweezers and Flux to help flow the solder where it belongs.Now on to the coding.
Just got my boards from OSH Park now to order components.
It has been a while since I posted.
Two weeks ago I completed the first revision of the board and was not happy with how it turned out.
First there were only 3 LED's on the board, which is OK, but I wanted more LED's.
Second, the LED's lowest supported voltage was 3.5V and the Temperature sensor chip I originally chose required a 3V power supply. Having two different Voltage levels required me to use a I2C logic level shifter and a LDO for the 3.3V supply.
For the new board I chose a smaller Microcontroller, as well as a different Temperature sensor.
I added pads so that the multiple strips can be wired together. the pads should also be compatible with standard WS2812B Strips.
For the New temperature sensors I chose the LM75BDP,118 from NXP because they were a good size and they used I2c.
I Chose PIC16F18426-I/ST as my processor because it was in a nice small package.
Got a Preliminary board designed and am considering throwing out this design altogether.
My goal was to make it all fit within 2 sq in. and it does fit. Below is a 3D view of the board from KiCad.
Before I try a different design I will complete this one. There is a pesky footprint that half of the pads are not passing the DRC.
There was also a Via that was too close to another Via that I was able to nudge over to clear one more Problem.
Lots of Fun work today. The Datasheet for the LED's appeared to recommend filter capacitors on the data line so Those were added. A Pin is placed on each side of the string so the boards can be designed to be daisy chained to add more LED's I want to add more LED's to the string and will do so if there is enough space.
Wired up the Temperature sensor. The data sheet for the sensor also recommended a filter capacitor on the data line.
Also Added a 3V Regulator so the whole board runs on a single 5V Power Supply.
The Resistors and Capacitor on the Left of the microcontroller were recommended by Microchips datasheet for the PIC18F25K80. I chose this Microcontroller because it had a broader temperature range and a fairly small footprint.
I learned how to use git today and added a Repository on git hub for the code and board files.
Used Mouser's free Library Loader to create a package outline for the MCP9904T.
The website for Library Loader is https://componentsearchengine.com If you particular editor does not have the components they will have them or they have a form to help generate one using values from the data sheet.
I am using KiCad, but it also works for Eagle, OrCAD, Altium, and several others.
Found some good articles on driving the WS2812B LEDs.
Here is what I was able to add to the KiCad Drawings Today.
The details are slowly coming together. I'm hoping to use the assigned footprints to plan the shape and size of the Flex board.
I was thinking it would be cool to plaster the whole outside of my coffee cup with RGB LED's (WS2812B).
Then I measured the cup and did the math.
Diameter = 3.24" Height = 3.83" Circumference = PI * Diameter = 10.178" Surface Area = Height * Circumference = 38.98 sq. in. Flex PCB Cost = $15/(sq. in.) * Surface Area Board cost = $584.70
That is quite expensive and I don't even have the components yet!
However, that is three copies of the same board so if i did a 1/3cup design I could combine them to cover the whole coffee cup.
Area = 12.99 sq. in. Cost = $194.90
That's still expensive for a design I have not proven yet.
How about trying this.
Area = 2 sq. in. Cost = $30 However I receive 3 boards. Therefor Total Area = 6 sq. in. Coverage = Area of PCB/ Surface Area of Cup * 100 = 15.39%
Now I just need to figure out the layout and the routing.
Enjoy a photo of the coffee cup I used for my measurements.
Found a chip for monitoring the Temperature Here are links to the documentation.
For now I am just brain storming.
Using Temperature Sensing Diodes: http://ww1.microchip.com/downloads/en/AppNotes/000001839A.pdf
Diode Selection Guide. http://ww1.microchip.com/downloads/en/AppNotes/00001838A.pdf