Outdoor solar harvester v. 2.0


Link to blog post about the first version - that one only suited one specific panel size, and one set of internal parts.

What's new

  • New battery holder type supported: BLM (in addition to the old one, CGS).



  • New charger boards supported: CN3791, MCP73871, TP4056 (in addition to CN3065).



  • Most importantly: any arbitrary size of solar panel starting at 90x70mm is supported now, with 12 most commonly encountered sizes available as pre-generated STL files!



  • The lid is fixed in place with bolts and nuts (used to be screws). This is more reliable in the long run.


  • Internal space is better utilized now as I shrank the enclosure.
  • STL files now include base versions of models (suited for no specific panel, charger or battery kind). For those who need to make a harvester with yet unsupported hardware but don't want to bother with 3D modeling in CAD.
  • 3D printing:
                * Less supports needed (with 80° overhang angle).
                * There's now a document with print settings for each model under stl/.
    The frame part only needs supports under recesses for nuts. The rest of the "lip" is sloped 45°.
  • Improvements in assembly process:
                * Since we need to keep humidity away from electronics, the previous version required you coat all surfaces in epoxy. This was quite redundant, so we only coat the internal walls with epoxy now. That means less mess when dealing with epoxy!

    Only inner-facing surfaces are painted in epoxy.


                * Silica gel packets have to sit in the oven for 1h to recharge. This is the cheapest way to de-humidify internal space.

Bill of Materials

  • 3D printed parts: 1 x front (frame), 1 x back (lid) and 1 x optional tiny part for holding some charger boards in place
  • 23 x M3 bolts, 10mm. or longer
  • 23 x M3 nuts
  • 1 x Silicone or rubber washer
  • 1 x Solar panel
  • 1 x Charger board: CN3065 (good for 6V, 3W panel at most), CN3791 (there are 9V and 12V varieties of the board, charge current up to 4A), MCP73871 (I'd only ever seen 6V solar panel mentioned as a power source, but you could try lower rated panels too) or TP4056 (both short and long PCBs. You'll most likely have to desolder the charge current resistor and calculate the correct value for a given solar panel.)
  • 1 x 18650 battery, any capacity but try to match to panel's capacity and charger board efficiency. Try this "slightly branded" one or a complete no-name like this one: all of them are good enough for the job.
  • 1 x 18650 battery battery holder: CGS or BLM

How to build


Full source pack is at my GitHub repo here. There you'll find all STL models, Autodesk Inventor files and even some rendered animations for fun.
  • Print the enclosure:
                * One front part. Pick the part under stl/front/ with same dimensions as your solar panel's size - solar_panel_frame_<dimensions>.stl.
                * One back part: determine which one you need. In the folder stl/back/, there are files that follow the naming convention: back_lid_<charger_board>_<battery_holder>.stl.
                * Additionally, look for a file stl/back/charger_holder_<charger_board>.stl - if there is one for the charger you're using, don't forget to print that as well!
  • Glue the solar panel to the frontal part - I'm usually using silicone because it's intended to waterproof things that are in constant neighbourhood with humidity.
  • If you're printing with ABS: smooth the parts with acetone. Otherwise, coat the internal space of frontal part + inner-facing surface of the lid in epoxy. Let it cure.
    This lid was printed with ABS and smoothed with acetone afterwards. This is enough to keep water out. This frame was printed with PET-G and coated in two-component epoxy inside.

  • Now we need a washer to go in between front and back pieces. There's two options:
                * Use leftover silicone in tube and apply it to the lip on one of the parts:


                * Cut it out of silicone/rubber (I just bought some silicone bakeware for scraps).
    Cutting the silicone sheet with laser yields the prettiest washer.
    The template for washer is available at /enclosure/washer: SVG file for laser cutter, and in case you don't have a laser cutter readily available to you, grab the PDF file and print it to guide you during cropping silicone sheet to size.

  • Screw charger board and battery holder on to the back lid, solder everything together.

    6 soldered wires is all it takes to get it working, in any combination of internal components.

  • Verify it works: shine some light on the solar panel, and if there's an LED on your board it should turn on, if there's no LED in sight - measure the voltages at solar panel's terminals (should be non-zero value varying with light intensity), battery terminals and SP16 connector (should be any voltage between 3.0 and 4.2V, and slowly creep up as the battery's charging in the sun). NOTE: LED on MCP73871 will blink instead, and the frequency will be proportional to how much light is received by solar panel.


  • Bake the silica gel packets in over, 1h@120° C.

    1 hour at 120° Celsius are they are as good as new.

  • Immediately throw them inside the harvester and screw together lid and enclosure, with silicone washer in between them.



    Finished product. Notice the pink silinone wafer in between the lid and the frame.

This is all! Mount it somewhere with the GoPro style connector, and enjoy your new solar harvester!
As a suggestion to the problem of mounting that, I usually point at this 3D-printable mounting system designed around those action cam joints.

I wanted to mount the harvester reliably and sturdily on my balcony raining, so I rolled my own clamp out of plywood and threaded rods just for that. As an additional measure for angle/orientation adjustment, I repurposed two action cam adapters I had laying around (link1, link2):

All DOF you'll ever need: topmost joint regulates angle of incidence, the nut in the middle allows to choose orientation and the lower joint gives an additional freedom in pitch axis. 

Show off time:

How do I ...

  • ... make use of a solar panel with different dimensions?
    Open the model under enclosure/front/solar_panel_frame.ipt and modify the dimenstions in sketch "solar panel". This results in a model that you export as STL and print! Simple, isn't it?


  • ... make use of a different battery or charger board?
    If both charger and battery holder are custom, I'd recommend starting with the model located at enclosure/back/back_lid_generic.ipt.

    If either your charger or battery holder is supported, go for the model where it's featured. E.g.: you have a CGS-type battery holder (supported) and BQ24650 charger board (not yet supported). Take any of the back_lid_*_CGS.ipt files and modify it to accept your charger board.

Issues/Pull requests on GitHub are welcome!

Comments