Build an 80 W solar panel from bare cells
A complete plan for hand-building a 36-cell monocrystalline module on a student budget: design it, solder it, seal it, then measure it with an I–V curve tracer you also build. The result is a panel that can charge a 12 V battery and a data set you can defend in an interview.
Watch the module assemble
The whole build in eight stages, from bare cells to power on. Drag to orbit the hologram, or pick a stage to jump to it. There's also a full-screen version.
What “from scratch” means here
Making crystalline silicon cells needs a clean-room furnace, so no one builds a practical panel from raw silicon at home. What you can do, and what real module factories do, is start from individual bare cells and turn them into a working, weatherproof module. That's the main track. If you want to claim you made the photovoltaic material itself, there's an optional side experiment for that.
Module assembly
Buy 36 bare silicon cells and build the full module: tabbing, stringing, busing, bypass diodes, junction box, encapsulation and frame. Then characterize it against your design.
Dye-sensitized cell
Make a Grätzel cell from titanium dioxide, berry juice and iodide electrolyte. It's tiny and inefficient (well under 1%), but it's a photovoltaic device you truly fabricated. Details below.
Be honest about cost. A commercial 100 W panel costs less than this build. The value of the project is the engineering and the data, not the savings. Say so in your report. Reviewers respect it, and it shows you understand the industry.
How a panel works, in five facts
- A cell is a large diode. A silicon wafer with a p–n junction. Light frees electrons, and the junction's built-in field pushes them out through the metal fingers and busbars.
- Each cell gives about 0.6 V no matter how big it is (≈ 0.68 V open-circuit, ≈ 0.56 V at max power for modern PERC). Size sets current: bigger cell, more amps.
- Cells in series add voltage. A 12 V battery needs roughly 14.4 V to charge, and a hot panel loses voltage, so 12 V panels use 36 cells: ≈ 20 V at max power when cool, still above 15 V when hot.
- A series string is only as strong as its weakest cell. One shaded or cracked cell limits the whole string's current and can overheat (a hot spot). Bypass diodes let current route around a bad group of cells.
- Heat costs power. Crystalline silicon loses about 0.35–0.45% of its power for every °C above 25 °C. A panel at 60 °C on a summer roof makes roughly 13% less than its label.
I–V curve explorer
Drag the sliders to see why the design is 36 cellsSingle-diode model (ideality 1.2, small series resistance), typical PERC coefficients. Hand-built modules usually land 5–15% below the ideal because of front-sheet reflection and solder-joint resistance.
Electrical and mechanical design
The reference design uses 156.75 × 78.4 mm half-cut mono PERC cells with 3 to 5 busbars. Avoid 9-busbar and “MBB” multi-wire cells: their thin busbars are very hard to solder by hand. If you can only find 166 or 182 mm half-cells, the design still works. Set the explorer above to your cell to get the new current, power and size.
| Parameter | Per cell | 36 in series | Why it matters |
|---|---|---|---|
| Voc | 0.675 V | ≈ 24.3 V | Max voltage your charge controller and tracer must accept |
| Vmp | ≈ 0.56 V | ≈ 20 V | Must stay above ≈ 15 V when hot to charge a 12 V battery |
| Isc | 4.75 A | 4.75 A | Sets fuse, wire and diode ratings (use ≥ 1.25 × Isc) |
| Pmax | ≈ 2.6 W | ≈ 94 W ideal | Expect 75–85 W after hand-build losses |
| Area | 0.0123 m² | 0.442 m² | Used for efficiency calculations |
Layout: 4 rows of 9, wired as a serpentine
Cells in a row connect front-to-back. Each row turns around at the end and runs back the other way. With an even number of rows, both output leads end up on the same edge, right next to the junction box. So does the midpoint tap that the bypass diodes need.
Encapsulation choice
This decision affects the project more than any other. Factories laminate cells in EVA film under vacuum at about 145 °C. You probably can't do that, so choose deliberately and explain the trade-off in your report.
| Method | How | Pros | Cons |
|---|---|---|---|
| Sealed sandwich (recommended) | Cells float on a backing board, held by one dab of silicone each. Clear front sheet, perimeter sealed with butyl tape and silicone, framed. | Cheap, reversible, no special tools. A cracked cell can be replaced before final sealing. | The air gap adds two reflecting surfaces (≈ 8% optical loss). It can fog if moisture gets in. |
| EVA vacuum-bag lamination | Glass / EVA / cells / EVA / backsheet in a vacuum bag, cured in a lab oven at ≈ 145 °C. | The industry method. Best optics and durability. Strong résumé story. | Needs a big enough oven and a vacuum pump. Real risk of cracking cells. |
| Resin potting | Pour clear epoxy or resin over the cells. | Looks finished. | Epoxy yellows in UV and cracks cells as it shrinks. Avoid. |
Bill of materials
Prices are 2026 US estimates from online sellers and hardware stores, and they vary a lot by region. Untick anything you already own or can borrow from a university lab. Your ticks are saved in this browser.
Buying tips that save money and pain
- Order cells first. Cells from overseas sellers can take 2–4 weeks to arrive. Kits that bundle cells, tabbing ribbon, bus ribbon and a flux pen are usually the cheapest option.
- Buy about 15% spare cells. You will break some. Everyone does. B-grade cells (cosmetic flaws) are fine for this project. Just measure and sort them.
- Silicone must be “neutral cure”. Common acetoxy silicone smells of vinegar and releases acetic acid, which corrodes cell metallization. Check the tube's label.
- Use UV-stabilized polycarbonate or glass for the front. Plain acrylic works but yellows and scratches. A salvaged tempered-glass shower door or table top is a classic free source if the size fits.
- Ask your department. Most engineering labs lend soldering stations, multimeters, a bench power supply, a heat gun and a drill. That takes the tools off your budget entirely.
Tools and safety
Tools (borrow where you can)
- Temperature-controlled soldering station, 60 W or more, with a 2–3 mm chisel tip
- Digital multimeter (DC 10 A range) and, ideally, a DC clamp meter
- Heat-resistant flat work surface: a silicone mat on a sheet of MDF or glass
- Cutting jig for ribbon (a strip of wood with a stop block), flush cutters, steel ruler
- Drill, pop-rivet tool, hacksaw or mitre saw for the aluminium frame
- Infrared thermometer (for hot-spot checks and the temperature correction)
Electrical. The finished panel makes about 24 V DC and nearly 5 A. That's below the shock threshold, but it's enough to arc and burn at a loose connection. A panel is live whenever light hits it. Cover it with a blanket or cardboard before touching wiring.
Fumes and lead. Tabbing ribbon is usually coated in tin–lead solder. Solder under fume extraction, don't eat at the bench, and wash your hands after each session.
Glass and cells. Cells are about 0.18 mm thick and break with razor edges. Glass edges cut. Wear safety glasses when cutting ribbon, frame or glass.
Heat. The tracer's MOSFET gets hot during sweeps, and so does a panel in the sun. Never leave a panel short-circuited and unattended in full sun if a cell is cracked, because it can form a hot spot.
Build procedure
Each stage ends with a pass check. Don't move on until it passes. A fault found at step 3 takes minutes to fix. The same fault found after sealing costs you the panel.
Inspect, measure and sort every cell
- Check each cell against a bright light for cracks, chipped edges and snail trails. Put cracked cells in a separate box. They make good practice pieces.
- Measure every cell's short-circuit current under the same light: outdoors in steady sun, or under a halogen work lamp at a fixed distance. Clip the multimeter's 10 A leads directly to the front (−) and back (+) contacts.
- Number the cells on masking tape and log them in a spreadsheet. Sort them into bins within ±3% current and build the panel from one bin. The whole string runs at the weakest cell's current.
- Check polarity. On standard p-type PERC cells the front is negative. Many n-type (TOPCon) cells are the reverse. Confirm with the meter.
All 36 chosen cells within ±3% Isc, no visible cracks, results logged.
Make a layout jig and practise
- Draw the full 4 × 9 layout at 1:1 on the backing board, or on a sheet of MDF you'll use as a template. Mark the 2 mm cell gaps and 8 mm row gaps.
- Cut 180 tabbing ribbons (36 cells × 5 busbars) to ≈ 150 mm: just under two cell lengths plus the gap. A stop-block jig makes them identical.
- Practise on broken cells until your joints are smooth and silver. Set the iron to ≈ 330–360 °C.
Your practice joints hold when you tug on the ribbon, and the cell doesn't crack.
Tab the cells
- Run the flux pen along each front busbar. Lay a ribbon on the busbar with its long overhang past one edge, always the same edge.
- Solder in one steady stroke along the busbar, pressing the ribbon down with a wooden stick ahead of the tip. The ribbon's coating is the solder, so don't add more. Don't linger. Heat builds up and cracks cells.
- Tab all 36 cells before stringing. Let each one cool flat on the mat.
Re-measure Isc on 5 random tabbed cells. They should be within 2% of their earlier readings. A big drop means a crack.
String the cells into rows
- Place cells face-down in the jig. Each cell's ribbon overhang lies across the back contacts of the next cell in the row. Flux the back pads and solder the ribbons down.
- Build four rows of 9. Flip rows 2 and 4 around so the serpentine works: rows 1 and 3 run left to right, rows 2 and 4 right to left.
- Keep the 2 mm gap. Cells that touch can short or crack as they expand in the heat.
Each row in sunlight reads Voc ≈ 5.7–6.1 V (9 × ≈ 0.65 V) and Isc close to a single cell's.
Bus the rows together and bring out three leads
- Carefully turn the rows face-up onto the backing board. Solder wide bus ribbon across the row ends to join row 1→2 (right edge), 2→3 (left edge) and 3→4 (right edge).
- On the left edge, bring out three bus ribbons through slots in the backing: A (start of row 1), B (the row 2/3 junction) and C (end of row 4).
- Slip Kapton tape or a strip of backsheet under any bus ribbon that crosses over a cell of different polarity.
- If your backing is aluminium composite, first cover it with an insulating film (PET or a scrap of backsheet). The skins are metal, and no ribbon or lead should ever be able to touch them.
- Fix each cell to the backing with one pea-sized dab of neutral-cure silicone at its centre. That lets the cells expand without cracking.
Across A–C in sun: Voc ≈ 22–24.5 V. Across A–B and B–C: each ≈ half of that.
Fit bypass diodes and the junction box
- Glue a junction box over the three leads on the back. Solder or clamp A, B and C to its terminals.
- Fit D1 across A–B and D2 across B–C, with each diode's cathode (bar) toward the positive end of its group. Use 15 A Schottky diodes such as 15SQ045. In the dark they don't conduct. When part of the panel is shaded they carry current around it.
- Attach the MC4 output leads with 4 mm² (12 AWG) solar cable. Mark + and −.
Shade one row completely with cardboard. The output drops by about half the voltage instead of collapsing. That's the diode working.
Full electrical test before sealing
- With the front sheet laid loosely on top, run a full I–V sweep with your tracer (see Test). This is your “pre-lamination” baseline.
- Check every joint again with the panel lit and look for hot cells with the IR thermometer while short-circuited for about 30 s. A cell more than 10 °C hotter than its neighbours is cracked or badly soldered. Replace it now.
Pmax within about 10% of the explorer's prediction for the measured irradiance. No hot spots.
Encapsulate and frame
- Clean the inside of the front sheet with isopropyl alcohol. Run butyl tape around the perimeter of the backing as a spacer and moisture barrier. Tuck desiccant sachets into the border outside the cell area.
- Lower the front sheet onto the butyl and press it down evenly.
- Cut the aluminium angle with 45° mitres. Fill the channel with neutral-cure silicone, slide it over the edge sandwich and rivet the corners.
- Run a final bead of silicone along every seam, and around the junction box and cable glands.
After 24 h curing, the panel survives a hose-down test with no water inside and no fogging after a day in the sun.
Label it
- Make a real nameplate for the back with your measured STC-corrected values, polarity marks and a “live when lit” warning. It looks professional in photos and on a poster.
Test and characterize
This section is what turns a craft project into an engineering project. Building a panel is common. Building your own instrument, measuring the panel properly and explaining where the missing watts went is what stands out.
The I–V curve tracer
An Arduino steps a 12-bit DAC that drives a logic-level MOSFET's gate. The MOSFET acts as a variable load, sweeping the panel from open circuit to short circuit in about a second. An INA226 sensor records voltage and current at each step.
Arduino sketch
Install RobTillaart/INA226 and Adafruit_MCP4725 from the Library Manager.
// I-V curve tracer: an MCP4725 DAC drives an IRLZ44N as a variable load, // an INA226 measures panel voltage and current. Send 's' over Serial to sweep. #include <Wire.h> #include <INA226.h> #include <Adafruit_MCP4725.h> INA226 ina(0x40); Adafruit_MCP4725 dac; const float SHUNT_OHMS = 0.010; // the 0.01 ohm shunt you fitted const float MAX_AMPS = 8.0; const int STEP = 8; // DAC codes per step: up to 512 points void setup() { Serial.begin(115200); Wire.begin(); dac.begin(0x60); dac.setVoltage(0, false); // gate low = MOSFET off = open circuit if (!ina.begin()) { Serial.println("INA226 not found"); while (1); } ina.setMaxCurrentShunt(MAX_AMPS, SHUNT_OHMS); Serial.println("Ready. Send 's' to sweep."); } void sweep() { Serial.println("volts,amps"); for (int code = 0; code < 4096; code += STEP) { dac.setVoltage(code, false); delay(2); // let the load and the INA226 settle float v = ina.getBusVoltage(); float i = ina.getCurrent(); Serial.print(v, 3); Serial.print(','); Serial.println(i, 3); if (v < 0.2) break; // reached short circuit } dac.setVoltage(0, false); // back to open circuit so the MOSFET cools Serial.println("done"); } void loop() { if (Serial.available() && Serial.read() == 's') sweep(); }
Python logger and analysis
Needs pip install pyserial numpy matplotlib. It runs one sweep, prints the key parameters, and saves a CSV and a plot for your report.
# Run one I-V sweep on the tracer and report the module's key parameters. # Usage: python sweep.py COM5 import sys, time import numpy as np import matplotlib.pyplot as plt import serial PORT = sys.argv[1] if len(sys.argv) > 1 else "COM5" MODULE_AREA = 0.565 # m², outer frame dimensions CELL_AREA = 0.442 # m², 36 x cell area irradiance = float(input("Irradiance during sweep (W/m²): ")) temp_c = float(input("Back-of-module temperature (°C): ")) with serial.Serial(PORT, 115200, timeout=5) as s: while b"Ready" not in s.readline(): # Arduino resets when the port opens pass s.write(b"s") rows = [] for raw in iter(s.readline, b""): line = raw.decode(errors="ignore").strip() if line == "done": break if line[:1].isdigit(): rows.append([float(x) for x in line.split(",")]) v, i = np.array(rows).T i = np.clip(i, 0, None) p = v * i k = p.argmax() voc, isc = v.max(), i.max() ff = p[k] / (voc * isc) print(f"Voc {voc:.2f} V Isc {isc:.2f} A Vmp {v[k]:.2f} V Imp {i[k]:.2f} A") print(f"Pmax {p[k]:.1f} W Fill factor {ff:.3f}") print(f"Efficiency: {p[k] / (irradiance * MODULE_AREA):.1%} module, " f"{p[k] / (irradiance * CELL_AREA):.1%} cell area") # Correct to STC (1000 W/m², 25 °C cell). Cell runs ~3 °C above the back sheet. gamma = -0.0037 p_stc = p[k] * (1000 / irradiance) / (1 + gamma * (temp_c + 3 - 25)) print(f"Pmax corrected to STC: {p_stc:.1f} W") stamp = time.strftime("%Y%m%d-%H%M%S") np.savetxt(f"iv_{stamp}.csv", np.c_[v, i], delimiter=",", header="volts,amps", comments="") fig, ax = plt.subplots(figsize=(7, 4.2)) ax.plot(v, i, label="Current") ax.set_xlabel("Voltage (V)"); ax.set_ylabel("Current (A)") ax2 = ax.twinx() ax2.plot(v, p, color="tab:orange", label="Power") ax2.plot(v[k], p[k], "o", color="tab:orange") ax2.set_ylabel("Power (W)") ax.set_title(f"{irradiance:.0f} W/m², {temp_c:.0f} °C back sheet: Pmax {p[k]:.1f} W, FF {ff:.2f}") fig.tight_layout() fig.savefig(f"iv_{stamp}.png", dpi=200) plt.show()
Keep the MOSFET alive. It dissipates up to ≈ 90 W while passing through the max-power region. Mount it on a real heatsink with thermal paste, keep sweeps short (the sketch takes about 1 s), and wait 30 s between sweeps.
Measuring irradiance on a budget
You need to know how much sunlight hit the panel, or efficiency means nothing. A pyranometer is expensive. Instead, use a spare cell as a reference sensor. Put a 0.05 Ω, 5 W resistor across its contacts, mount it in the same plane as the panel, and measure the millivolts across the resistor:
Isc is almost exactly proportional to irradiance, so this works well. Calibrate it once on a clear day against a nearby weather station's published solar radiation data, and say so in your methods.
Measurement protocol
- Clear sky, within about 1.5 h of solar noon, panel tilted to face the sun squarely (its shadow is smallest).
- Let the panel stabilize for 10 minutes. Tape a thermometer probe (a DS18B20 works) to the back, behind a centre cell.
- Read irradiance, run the sweep, read irradiance again. If the two readings differ by more than 2%, a cloud passed. Discard the sweep.
- Take three sweeps per session and report the mean and spread. Repeat on at least three different days.
- Also sweep: one row shaded (shows the bypass diodes), and early morning versus noon (shows irradiance and temperature effects). These make excellent report figures.
What to calculate
The CTM ratio is your best analysis tool. Break the loss into its causes: front-sheet reflection (measure one cell's Isc with and without the front sheet over it), resistive loss (lower fill factor than a single cell), and mismatch (the spread of your binned cells). Explaining where the missing watts went is what makes this an engineering report.
Stretch goal: electroluminescence imaging
Forward-bias the panel in a dark room with a bench supply at about Isc, and it glows faintly in near-infrared. Photograph it with a camera whose IR-cut filter has been removed (cheap webcams are easy to modify) using a long exposure. Cracks and dead areas show as dark lines. Factories use exactly this for quality control. Before-and-after-sealing EL images make a striking poster panel.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Voc low by ≈ 0.6 V or a multiple of it | A cell shorted by a stray ribbon, or soldered in reversed | Measure each row's Voc, then each cell's across its ribbons |
| Zero output | Open joint or broken ribbon | Cover the panel, then check continuity row by row |
| Current well below one cell's Isc | A cracked or weak cell limiting the string, or shading | IR thermometer under short circuit. The weak cell runs hot. |
| Fill factor below 0.65 | Series resistance: cold joints, thin wiring, bad MC4 crimp | Reflow dull or grey joints. Use 4 mm² cable. Re-crimp connectors. |
| Rounded “knee” with steps in the curve | Mismatched cells, or partial shade triggering a bypass diode | Re-sweep in full sun. Check your cell bins. |
| Output halves with no shading | A bypass diode shorted or fitted backwards | Test the diodes in diode mode. Check each cathode faces the + end. |
| Fog or droplets inside | A seal leak, or no desiccant | Dry it in the sun on its side, re-seal the seams, add desiccant |
| Brown or green spots on the busbars | Acetoxy silicone, or leftover flux corroding | Only neutral-cure silicone. Wipe flux residue with isopropyl alcohol. |
| Ribbon lifts off the busbar | Too little flux or heat, or dirty busbars | Re-flux, let the iron recover, one slow steady stroke |
Make a photovoltaic cell yourself
The dye-sensitized solar cell (Grätzel cell) is the one PV device you can make from raw materials in a teaching lab. Expect about 0.4–0.5 V and a few milliamps in sunlight. Its value is the contrast: it lets you compare a device you synthesized with industrial silicon in your report.
- Materials: 2 FTO-coated conductive glass slides, TiO₂ nanopowder (P25), dilute acetic acid, blackberries or raspberries, potassium iodide and iodine in ethylene glycol (iodide electrolyte), a graphite pencil or candle, binder clips. Educational DSSC kits bundle all of this.
- Photoanode: make a paste of TiO₂ and dilute acetic acid. Mask the edges of one slide's conductive side with tape and spread a thin, even layer with a glass rod (“doctor blading”).
- Sinter at about 450 °C for 30 minutes on a hot plate or in a lab furnace, then let it cool slowly.
- Dye: soak the TiO₂ film in crushed berry juice for 10 minutes. The anthocyanins bind to the TiO₂ and turn it deep purple. Rinse with water, then ethanol, and dry.
- Counter-electrode: coat the second slide's conductive side with graphite (pencil) or candle soot.
- Assemble: offset the slides face-to-face, clip them together, and let a drop of electrolyte wick between them. Measure Voc and Isc in sunlight with the multimeter. The INA226 tracer's resolution is too coarse at milliamp currents, so do the I–V curve with a potentiometer and two meters.
Lab only, with supervision. Iodine stains and irritates skin. Ethylene glycol is toxic. The 450 °C sintering step is a burn hazard. Use gloves, goggles and a fume hood as your lab's rules require.
Eight-week plan
The schedule is built around the one thing you can't speed up: shipping the cells. Order them on day one, then build the test rig while you wait.
Report, portfolio and résumé
Document as you go
- Lab notebook with dates, every measurement, and every mistake and what you changed.
- Photos of every stage on a plain background with a ruler in frame. Take a close-up of a good solder joint and a bad one.
- Raw data: the cell-sorting spreadsheet and every I–V CSV, named by date and condition.
- A GitHub repository with the tracer firmware, analysis script, BOM, wiring diagram and a README that summarizes your results.
Report structure
- Abstract: what you built and your headline numbers
- Background: PV physics, module construction, why 36 cells
- Design: specification, layout, encapsulation trade-off, bypass protection
- Build method, with photos
- Instrumentation: tracer design, calibration, irradiance method, uncertainty
- Results: I–V curves, STC power, efficiency, fill factor, shading and temperature tests
- Loss analysis: the CTM breakdown, and a comparison with a commercial panel on performance and $/W
- Conclusions and what you'd change: e.g. EVA lamination, better cell matching
Résumé bullets (replace the brackets with your measured numbers)
- Designed and hand-assembled a 36-cell, [80] W monocrystalline PV module on a [$200] budget, including series string layout, bypass-diode protection and weatherproof encapsulation.
- Built an Arduino-based I–V curve tracer (MOSFET electronic load, INA226 sensing, Python analysis) and characterized the module outdoors: [78] W STC-corrected, fill factor [0.75], [17.8]% cell-area efficiency.
- Quantified a [91]% cell-to-module ratio and attributed the losses to front-sheet reflection, solder-joint resistance and cell mismatch. Published the firmware, data and build documentation on GitHub.
Interview tip: be ready to explain why you chose 36 cells, what the bypass diodes do, and which single change would recover the most lost power. Those three answers show you understood the design rather than just following a guide.
Sources
- PVEducation.org, by C. Honsberg and S. Bowden: free, rigorous textbook on cell physics, I–V curves, modules and losses. Cite it in your background section.
- NREL Best Research-Cell Efficiency Chart: puts your cells and your DSSC in context.
- IEC 61215 and IEC 61730: the qualification and safety standards commercial modules pass. Mention which of their tests (damp heat, thermal cycling, hot spot) your build would fail, and why.
- B. O'Regan and M. Grätzel, “A low-cost, high-efficiency solar cell based on dye-sensitized colloidal TiO₂ films”, Nature 353, 737–740 (1991): the original DSSC paper.
- INA226 Arduino library and MCP4725 library, used by the tracer.