BEAM Solar Powered Pummer (Heart Shaped PCB)

by NanoRobotGeek in Circuits > Art

22193 Views, 71 Favorites, 0 Comments

BEAM Solar Powered Pummer (Heart Shaped PCB)

IMG_1550-1.png
BEAM robotics heart shaped pummer PCB
IMG_1374.jpg

This is a project that I have been meaning to finish for over a year now. it is a heart shaped, BEAM based pummer circuit I made to charge up during the day and flash like a heart beating at night. The solar engine is a SIMD1 solar engine by Wilf Rigter and the pummer is a modified version of his power saver flasher which flashes 2 LEDs off the one oscillator.

See:

http://solarbotics.net/library/circuits/bot_pummer...

http://solarbotics.net/library/circuits/se_noct_SI...

My final design lasts about 3 hours from when the sun starts to go down.

I personally love creating PCBs as a step up from breadboard or perfboard circuits, and I especially like designing PCBs that go a little beyond just connecting components. Hopefully through this Instructable you will see that while a PCB designer such as Eagle can be superbly powerful, creating a functional and aesthetic circuit such as the one presented here can be quick, fun and really accessible. I spent a day designing it all and only spent around $30USD on the PCB and components! Granted I already had assorted resistors, caps, and a soldering iron.

EDIT: What Is a Pummer?

It seems in the comments that there is a little confusion as to what a pummer is, which is very fair.

BEAM robotics is a "style" of analogue circuit building, popular in the late 90s and early 2000s. BEAM circuits use minimal, analogue components, often to complete simple and very organic tasks. In BEAM robotics, a pummer is a type of circuit that displays a pattern of lights or sounds.

See the Wikipedia pages for a broader overview here:

https://en.wikipedia.org/wiki/BEAM_robotics

https://en.wikipedia.org/wiki/Sitter_(BEAM)

Prototyping

IMG_1575.jpg
IMG_1572.jpg
IMG_1573.jpg
IMG_1574.jpg

The first step is to prototype the circuit on a breadboard. I used a design almost exactly the same as Wilf's pummer from the link in step 1 however I replaced a 100k resistor at the output of the pummer with an LED and added a resistor between the output capacitor and the output LEDs to get a less bright, but longer flash. You can see here in the second photo the waveform at the node between the output LED and resistor in Wilf's original design. The peak above 2.2v is where the LED lights and the dip below just dumps charge through the 100k resistor. In my revision seen in photos 3 and 4, both the peak above 2.2v as well as the lower peak create a flash (because the voltage is being regulated to ~2.9v by the blue LED, in photo 4 you can see the other 2.2v difference, this time between the 2.9v rail and the node between the output LEDs). This revision does mean that the reference voltage LED does have to be a higher voltage than your output LEDs (and hence the circuit will run for less time) however there is less wasted charge. I like this way better however 2 oscillators, with the second acting as a slave to the first and using something closer to Wilf's original circuit would also work. Just let me know if I can clarify any of this and excuse the photos of the oscilloscope screen, I had some trouble saving to USB.

As I was almost following WIlf Rigter's design exactly, I mostly used this step to calculate what value components I was looking at using to make the flashes beat at a heart-like rate.

Once I had the circuit operating as expected I used this circuit to calculate roughly how long my pummer would last once it started flashing at night.

To calculate how long our circuit will last we can use 2 formulas based on the charge stored in, and the charge leaving the storage capacitor.

First we know that Q=CV that is, the charge in the capacitor, "Q", is equal to the capacitance x the voltage across the capacitor.

We also know the formula for current I=Q/t where "I" is the current, "Q" is charge and "t" is time.

Rearranging these we can get I=(C*ΔV)/Δt where "ΔV" represents the change in voltage and "Δt" change in time (in seconds)

Hence, by measuring the voltage at one point in time and then measuring it again a certain amount of time later (I usually go about half an hour for more accurate results) we know have all the numbers on the right half of the equation and we can see how much current the circuit is drawing from the capacitor on average.

Now knowing "I" and knowing that the capacitor will charge up to about 4.5-5v during the day and shut off at around 2.8v for this blue LED we can calculate the time it will take to go from fully charged to fully discharged. Δt=(C*ΔV)/I

As an example, using the first equation I found this circuit draws around 200uA. Now looking at the second equation and knowing the capacitor is 1 farad,

Δt = (1*(5-2.8)) / (200X10^-6)

Δt = 11000 seconds

Δt = ((8500/60)/60) hours

Δt = 3.06 hours

Drawing the Schematic

Screen Shot 2021-01-06 at 12.38.57 pm.png
Screen Shot 2021-01-06 at 3.54.47 pm.png
Screen Shot 2021-01-06 at 4.25.40 pm.png

Once I was sure my design worked on the breadboard I begun drawing up the schematic in my PCB designer of choice, Eagle.

Placing the components

First step was placing all the components I knew I needed (I missed a couple the first go around but just having the important components where they need to be is the most important part). All of the basic, surface mount components such as the SOT-23 transistors and 0804 resistors/caps came from the standard Eagle libraries.

I kept some of the resistors and capacitors (namely R3, R4, R5 and C3) as through hole components such that their values were easier to change and experiment with for different effects. R3 and R4 dictate the time between the flashes of each of the large, red LEDs and C3 and R5 dictate the brightness and length of each flash. These too, all came from standard Eagle libraries however you may have to do some measuring or snooping on datasheets to see which capacitor footprints you need.

LED1 is used only as a reference to regulate the output voltage of the solar engine (see http://solarbotics.net/library/circuits/se_noct_SI... for more details on how this works). Hence it could have just been another small surface mount component but I decided to opt for a 3mm LED again to simplify things if I wanted to change it out for different regulator voltages. LEDs 2 and 3 are the large, 10mm red LEDs that will flash in the final design and all of these footprints can be found in the basic Eagle libraries also.

The pads for the solar panel as well as the surface mount 74HC14 were also pulled from the standard Eagle libraries.

The 1n4148ws surface mount diodes I downloaded an external library for which worked well.

Similarly I could not find a footprint for the 1F capacitor in the standard libraries however I did find it in a Sparkfun capacitor library. Unfortunately, although the external footprint of this part was correct, the holes for the leads were much too small and were almost too small to drill out larger. Fortunately, as you will see in later steps I got very lucky and this was an easy fix. It is always hard to see all of these minor details before the board has been manufactured and as you will see I did make a few more mistakes.

Connecting the components

Connecting the components in Eagle went off without a hitch however there are a few things to note with the 74HC14 chip. Firstly we must ground the input of each of the other 5 gates which you can see in the final photo.

We also need to connect the chip to a GND and VCC net to power the chip. Luckily in my schematic I included a GND however I forgot to include a VCC which meant after routing that my chip's VCC pin was left floating. Another issue I needed to fix later down the line.

Final Component Values

Following are the valued I found to work best in the end, and some information on why:

R1: ~100k

R2: ~10k

R3: 2.2M (can be a little smaller for faster beats. This value got me a BPM of ~38 which is quite slow even for a sleeping BPM however it is calming, still very much reads as a heart beat, and it extends the amount of time the circuit can flash for each night)

R3: 470k (this value changes the time between the first and second flash, I found ~500k to work great)

R5: 100ohm (not even really necessary however it makes the each flash a little dimmer and linger a little longer, it also probably extends the life of the LEDs tho that is unlikely to be a concern)

C1: 100nF

C2: 1uF

C3: 10uF (tho 22uF seemed to work just as well, as long as it has enough time to charge up, in theory the higher this capacitance the brighter and longer each flash can be however it will use more power)

C4: 1F (I have yet to test this circuit in winter or during an overcast day as its pretty sunny down under at the moment however with this panel and a 1F capacitor the circuit is fully charged before midday and I can almost fully charge a 7.5F capacitor off the same panel so a larger capacitor is not a bad idea)

C5: 470uF (this capacitor can be much smaller or even omitted however when it is, the blue reference LED on the SIMD1 regulator will light after every pules due to the excess current dumped onto the power rails, through the LEDs, by C4 so I just chucked a really large capacitor on to rid any artefact of this.

Creating the Board

Screen Shot 2021-01-06 at 3.26.06 pm.png
Screen Shot 2021-01-06 at 3.44.59 pm.png
Screen Shot 2021-01-06 at 3.35.18 pm.png
Screen Shot 2021-01-06 at 3.45.24 pm.png
Screen Shot 2021-01-06 at 3.48.31 pm.png
Screen Shot 2021-01-06 at 3.48.58 pm.png
Screen Shot 2021-01-06 at 3.50.43 pm.png
Screen Shot 2021-01-06 at 3.51.04 pm.png

Next we can create the board. Eagle defaults to a rectangular board however we want a heart shaped board. To change this I deleted the board outline, moved to the dimensions layer and drew up the board with lines and arcs as shown in the photos. Once complete, the inside of the board will go a different colour to the background.

Placing the Parts

Screen Shot 2021-01-06 at 3.51.16 pm.png
Screen Shot 2021-01-06 at 3.52.29 pm.png
Screen Shot 2021-01-06 at 3.59.23 pm.png
Screen Shot 2021-01-06 at 4.09.46 pm.png
Screen Shot 2021-01-06 at 4.10.21 pm.png
Screen Shot 2021-01-06 at 4.34.38 pm.png

Next we must place the parts. I started by roughly sketching on paper where I wanted the large components to go.

Next I drew up the outline of the solar panel using lines on the tPlace layer. This is the layer for white silkscreen on our final PCB. I drew the rectangle to size, placed it where I wanted on the board and moved the solar pads to where they should be, making sure to get the polarity correct.

When drawing up PCBs like this I tend to group components roughly in roughly the orientation I laid them out in the schematic. so I grouped up the left and right (solar engine and pummer) sides of the circuit as I had the laid out on the schematic as seen in photo 4. These components will need to be moved about a little when routing but this is generally a great place to start.

Next I placed the large components where I wanted them, as these will mostly dictate the aesthetics of the final PCB, and then fit the 2 groups of smaller components in where they best fit.

Routing the PCB

Screen Shot 2021-01-06 at 4.38.00 pm.png
Screen Shot 2021-01-06 at 4.37.23 pm.png
Screen Shot 2021-01-06 at 4.37.35 pm.png
Screen Shot 2021-01-06 at 4.37.48 pm.png
Screen Shot 2021-01-06 at 4.38.41 pm.png
Screen Shot 2021-01-06 at 4.47.45 pm.png
Screen Shot 2021-01-06 at 4.49.43 pm.png

Next step is to route the PCB. To do this I first do a ground fill on either side of the board to clear all the GND air wires. To do this I will draw a polygon encompassing the entire board on both the top and bottom layer and name them both GND. To fill in the polygons click "Ratsnest" and to clear the ground fill for the rest of routing click on "Ripup" and then ripup all visible polygons. You will now notice that all the ground air wires have been cleared.

Next we will route the rest of the air wire how we see fit. As a general rule, try to route as much as you can on one side. Once I had done this I had to more connections that could have been made on the top side however I decided they would be cleaner done on the backside and lucky I did as it made fixing the mistake with the small capacitor holes much simpler.

PCB Details

Screen Shot 2021-01-06 at 7.05.32 pm.png
Screen Shot 2021-01-06 at 7.05.41 pm.png
Screen Shot 2021-01-06 at 7.05.52 pm.png
Screen Shot 2021-01-06 at 7.06.15 pm.png

I then added some details on the PCB. I first remade the ground fills as luckily the top fill is red by default in Eagle so I could get a better feeling of how the final board would look.

In the same way we drew the board outlines I added some small hearts in both the silkscreen (tPlace) and tStop layer. The tStop layer is where we tell the PCB manufacturer to not include any of the red solder mask exposing the copper underneath. So with the HASL finish we will end up with these lines being silver (with an ENIG finish they would be gold). I also wrote "JLCJLCJLCJLC" in a location which would end under the solar panel. This is a way we can tell the PCB manufacturer (in this case JLCPCB) where to place the order number, otherwise this number will appear in a random place on the board which would not be great on a board where we care a little more about aesthetics.

Finally I wrote a little PCB title and date on the back of the board.

PCB DRC

Screen Shot 2021-01-06 at 7.30.07 pm.png
Screen Shot 2021-01-06 at 7.30.58 pm.png

Next we can do a design rule check, DRC (and error rule check, ERC) to make sure our board is ready for manufacture, for all the boards I have sent to JLCPCB I have done both the default Eagle DRC as well as this JLCPCB specific DRC I found on the internet.

Ordering the PCB and Components

Screen Shot 2021-01-07 at 9.24.25 pm.png
Screen Shot 2021-01-07 at 9.24.34 pm.png
Screen Shot 2021-01-07 at 9.26.29 pm.png
Screen Shot 2021-01-07 at 9.26.05 pm.png
Screen Shot 2021-01-07 at 9.26.11 pm.png

Once we are satisfied with the PCB we can order the PCB from our board house, in this case I chose JLCPCB as I have had good luck with them in the past and the price is right for this kind of PCB.

To order the PCB we will tell Eagle to generate the gerber CAM data and then upload it to the JLC order page. Here we can see, in the gerber viewer, a rendering of how our final board will look

All the order setting can remain the same except we will change the PCB colour to red and say that we have specified a location for the order number.

I had some of the components for finishing this board already however the rest I bought of element14. The only component you can not buy from element14 is the solar panel which I used to buy off ebay however they are slowly disappearing off ebay and I had to buy 10 of them from aliexpress. They are 25x45mm, 5V solar panels.

Brand New PCBs!!!

IMG_1374.jpg
IMG_1377.jpg

Within a week the PCBs had been manufactured and delivered to me in Sydney!

... Problems With the Brand New PCBs!! ='(

IMG_1376.jpg

I was going away for a 5 day holiday so, knowing that I had wanted to do this project for a while, I prototyped, designed and ordered these PCBs as well as the components all in the one day I had before going away. As such I made a couple of mistakes with the PCBs which could have been avoided with more time.

1. Text

One small problem is that I wrote text that I intended to be on the silkscreen layer (to tell me which resistor should control the longer pause between flashes and which to control the shorter), on the tStop layer by accident. In the end this wasn't a huge issue and the PCB house just moved the text slightly and so it wouldn't interfere with a trace running under one of the resistors.

2. Small capacitor holes

As mentioned previously, the footprint for the 1F capacitors that I took from the Sparkfun library had too small holes to fit the legs of the capacitor I had.

3. Missing power connection for the 74HC14

Also mentioned previously, I never made a connection to the 74HC14's VCC pin.

Soldering the PCBs

IMG_1378.jpg
IMG_1380.jpg

To solder the PCBs I used 2 tips, a chisel tip for the through hole components as well as to drag solder the 74HC14. And a fine tip for soldering the rest of the SMD components.

This whole PCB can be done with just one of these tip however. Soldering the SMD components with the chisel tip is really not too much harder at all and soldering each pin of the 74HC14 chip individually with a fine tip is something I have done many times and I actually find it incredibly relaxing.

Don't forget safety glasses.

Fixing the Small Holes

IMG_1485.jpg
IMG_1487.jpg
IMG_1387.jpg

I begun by placing the 1F capacitor which is not the ideal first component to place (usually you want to go smallest/thinnest to largest/tallest), however I really wanted to make sure this fix worked before soldering the rest of the PCB.

To fix the small holes I got very lucky. Drilling out the plated through holes means that once drilled, the top and bottom pads will no longer be connected unless you reconnect them manually. Luckily all my connections to the capacitor legs were on the bottom of the PCB where I was to solder to anyway meaning all I had to do was carefully drill the holes out to the required 1.4mm and solder to the remaining copper (of which there was very little!). Had I instead made connections on the top side of the board, a bodge job such as that shown later on would have been necessary to remake the connections I broke when drilling out the holes.

I also carefully scraped away a little of the solder mask from the connections coming off the holes in the hopes that the solder would wet there too and make a better mechanical connection.

Soldering the Solar Engine (SMD Components)

IMG_1388.jpg
IMG_1389.jpg
IMG_1390.jpg
IMG_1391.jpg

To solder SMD components by hand I first put a little solder on the right or top most pad. Next I hold the component in place with some fine tweezers in my left hand while I reflow the solder with the iron in my right hand to make the connection to the component. Once I am happy with the component placement I solder the other side and then I can go in with a little more flux/solder if necessary and clean up the original side (as often the joint goes dull after reflowing a couple times if I struggle to place the component the first time).

Then I clean up any flux residue with some isopropyl alcohol, a toothbrush and a paper towel.

Soldering the Solar Engine (THT Components)

IMG_1392.jpg
IMG_1393.jpg

Next I soldered the 3mm LED used for the voltage regulation of the solar engine.

From here I can actually charge up the capacitor as it is already in place and ensure the solar engine and its voltage regulation are working as expected.

Soldering the 74HC14 and Other Surface Mount Components for the Oscillator

IMG_1395.jpg
IMG_1396.jpg
IMG_1397.jpg
IMG_1399.jpg

Next I solder the SMD components for the pummer/oscillator part. I start by soldering 2 opposite pins of the 74HC14 as I would with any other SMD component. Next I solder the other SMD components as usual.

Finally I swap to my chisel tip and with the 74HC14 secured at 2 places I drag solder the remaining pins. This requires quite a bit of flux.

Soldering the Remaining Through Hole Components

IMG_1401.jpg
IMG_1408.jpg

Next I soldered the remaining through hole components as with any other PCB, starting with the lower, resistors and capacitors and finishing with the large capacitor and 10mm LEDs.

Fixing the Missing Connection

IMG_1402.jpg
IMG_1403.jpg

This is where I realised I was missing a connection to VCC of the 74HC14.

To fix the missing connection to VCC I cut a small length of enamelled copper wire to connect the 74HC14's VCC pin to the nearest VCC point I could find (in this case the filter capacitors leg). I felt that this was the cleanest bodge wire I could come up with and luckily I don't feel it is an eye sore in the final design.

Initial Testing

IMG_1411.jpg

As you may be able to tell, I really like testing electronic circuits as I go. It makes troubleshooting so much more approachable and simpler. Even on a relatively simple project like this, a backwards diode or capacitor is trivial to find when you are testing as you build however may be harder to diagnose if you assemble the whole board in one shot.

As I knew the Solar panel would be pretty hard to remove once attached, I connected it with some wire to begin with and left the circuit outside for a couple days to make sure I was happy with its operation.

Small Changes, Diffused LEDs and Resistor Values

IMG_1510.jpg
IMG_1511.jpg

I decided I was happy with the design however the short pause between the second flash of each pulse I wanted just a little smaller so I soldered up a new PCB went from a 680k ohm resistor to a 470k ohm.

More importantly I chucked up 2 new LEDs in my drill press and sanded them with 360 grit paper until they were a little diffused as the clear lens, while great at projecting light, did not do much to illuminate the actual LED when it was sitting on my table.

... and Finally, the Solar Panel

IMG_1512.jpg
IMG_1513.jpg
IMG_1514.jpg
IMG_1515.jpg

Finally I soldered the solar panel down. I cut 3 short lengths of 0.8mm brass rod (solid core wire would work the same also) and soldered 2 L shaped pieces to the panel.

The smaller length I hot glued directly to the PCB to support the back of the panel (to prevent pushing on the back of the panel, levering on the panel and pulling off the PCB pads).

I then heated the PCB with a heat gun until the hot glue was liquid again, applied more hot glue and stuck on the solar panel. Heating the PCB made it much easier to glue the entire panel as well as makes for a more solid connection. I could have also scratched up the panel and/or board for a better connection however I find sufficiently hot hot glue to do a good enough job.

Finally I used a liberal amount of solder to connect the brass rods to the PCB.

PCB Coating

IMG_1549.jpg
IMG_1550.jpg

The real final thing to do for me was to add a PCB sealant as I wanted to leave this outdoors. I don't really like the look as much with the clear coating and it made the LEDs much less diffused but at least now it should last much much longer. I will likely make another 1 or 2 of these so I may mask off the diffused LEDs when coating those ones.

Finished!

BEAM robotics heart shaped pummer PCB

All done! In the end I am quite happy with the way this turned out especially after having been sat on this idea for so long. Enjoy this final video showing off the coated circuit as well as how it looks at night again =D.