Skip to content

Final Project Summary

This page summarizes my work on

SKÖLL - the sun tracker

as a final project for Fab Academy 2025.

What does it do?

The machine I built rotates a sphere on an arm in a two axes movement (azimuth and zenith) around a pyranometer. It is controlled by the input of date, time and geographical position and points the sphere constantly into the sun to shade the sensor of the pyranometer.

This device is known as a sun tracker / solar tracker. It can be used for solar energy and meteorological applications. By shading the sensor of the pyranometer, the indirect (diffuse) solar irradiance can be measured and compared to the global irradiance measurement of an unshaded pyranometer.

Sun tracker

Below is a functional description diagram to visualize the input and output of the machine and it's boundaries.

Black box input / output

I also include the system diagram from week 16.

System diagram

Who has done what beforehand?

Obviously, this device has a very limited group of users and there are a few companies that sell this equipment. Some examples I found are:

As with all low-batch scientific equipment, the cost for one device can be very high, due to the development cost being distributed on few items.

I didn't have any detailed drawings of the interior components of this devices, but I reused some design features that I could clearly identify from the pictures.

For the mathematical model I could luckily use the SolarCalculator library for C++. That saved me quite some time.

The inspiration for the 3D printed harmonic drive I got from this design.

My work and sources

Note

No artificial intelligence was used for this project.

I designed all the main mechanical (non-standard) components from scratch, including the harmonic drive.

I also designed the main PCB and the breakout boards for the encoders.

I wrote the code for the microcontroller in C++ and included the following libraries:

Materials, Suppliers & Cost

I used a variety of suppliers and materials and kept track of the usage and costs.

Materials used in the final project

These are the materials I used for manufacturing:

  • Metals

    • stainless steel 304 / 316
    • carbon steel
    • soldering tin
    • copper (PCB stock, wires)
  • Plastics

    • PETG (filament)
  • Other

    • NBR (o-ring)
    • Soldering paste
    • Anti-seize paste
    • Contact glue (cyanoacrylate)

Part list

Here is the final part list, devided into three sections for better oversight.

Manufactured components

This table lists the components I made myself.

Pos Qty Description Material Machine
1 1 Main circuit board FR1 Roland MDX-20
2 2 Encoder breakout board FR1 Roland MDX-20
3 2 GT2 Pulley and wave generator PETG Prusa MK4s
4 1 Circular spline vertical PETG Prusa MK4s
5 1 Lower body PETG Prusa Core One
6 2 Motor bracker NEMA17 PETG Prusa MK4s
7 1 Upper body PETG Prusa Core One
8 2 Encoder plate PETG Prusa MK4s
9 1 Circular spline horizontal PETG Prusa Core One
10 1 Shading sphere PETG Prusa MK4s
11 1 Cover plate PETG Prusa Core One
12 1 Rod end 1 PETG Prusa MK4s
13 1 Rod end 2 PETG Prusa MK4s
14 1 Rod end 3 PETG Prusa MK4s
15 1 Rod end 4 PETG Prusa MK4s
16 1 Rod link PETG Prusa MK4s
17 2 Flex spline gear PETG Prusa MK4s
18 1 Counterweight mount PETG Prusa MK4s
19 1 O-ring Ø2,5 L=425 NBR -
20 1 O-ring Ø2,5 L=660 NBR -

Purchased parts, mechanical

Pos Qty Description Supplier Price Sum
1 2 GT2 Timing belt 356mm MaiLeXun $1,51 $3,02
2 2 GT2 Timing belt pulley 16T MaiLeXun $1,11 $2,22
3 2 NEMA17HS4401 Stepper Motor Hanpose $8,35 $16,70
4 4 Ball Bearing 62200-2RS BCE Bearing $3,05 $12,20
5 2 Ball Bearing 61900-ZZ BCE Bearing $0,76 $1,52
6 4 Ball Bearing 61821-2RS BCE Bearing $12,41 $49,64
7 2 Magnet Diametric Ø6 x 3 DigiKey $0,72 $1,44
8 1 M12 Connector DigiKey $10,52 $10,52
9 1 Base plate 3mm AISI304 Local Shop 7000kr 7000kr
10 1 Counterweight Ø40 L=100 AISI304 Local Shop 2000kr 2000kr
11 8 M6 Insert Stainless Steel Mouser $0,92 $7,36
12 5 M5 Insert Stainless Steel Mouser $0,69 $3,45
13 1 Air Vent IP67 M32x1,5 Mouser $27,65 $27,65
14 1 Carbon Fibre Tube Ø12mm Easycomposites $16,22 $16,22
15 1 Carbon Fibre Hexagon Tube 14mm Easycomposites $23,07 $23,07
16 2 Hex Bolt M10x80 A4-70 Ísól 131kr 262kr
17 6 Hex Nut Nylon M10 A4 Ísól 33kr 198kr
18 4 Socket Head Bolt M10x55 A4-70 Ísól 122kr 488kr
19 6 Button Head Bolt M6x12 Ísól 16kr 96kr
20 5 Button Head Bolt M5x12 Ísól 11kr 55kr
21 12 Hex Nut Nylon M6 A4 Ísól 9kr 108kr.
22 2 Hex Nut Nylon M5 A4 Ísól 5kr 10kr
23 4 Hex Nut Nylon M8 A4 Ísól 15kr 60kr
24 1 Hex Nut M6 A4 Ísól 6kr 6kr
25 8 Socket Head Bolt M6x30 A4-70 Ísól 22kr 176kr
26 2 Socket Head Bolt M6x25 A4-70 Ísól 21kr 42kr
27 4 Hex Head Bolt M8x60 A4-70 Ísól 67kr 268kr
28 4 Hex Head Bolt M6x40 A4-70 Ísól 31kr 124kr
29 2 Socket Head Bolt M6x40 A4-70 Ísól 35kr 70kr
30 4 Oversized Washer M6 A4 Ísól 9kr 36kr

Purchased Components - Electrical

These are the electrical components (mainly on the PCB).

Pos Qty Part-No Description Supplier Price Sum
1 1 PCB Stock FR1 4'' x 6'' Carbide 3D $1,0 $1,0
2 4 C1206C104K5RACTU Capacitor SMD 1206 0,1µF DigiKey $0,08 $0,32
3 2 EEE-FN1E101UL Capacitor 100µF DigiKey $0,59 $1,18
4 1 150120BS75000 LED SMD 1206 blue DigiKey $0,23 $0,23
5 2 JST Connector male 01x05 THT Adafruit $0,13 $0,26
6 4 JST Connector male 01x04 THT Adafruit $0,13 $0,52
7 1 JST Connector male 01x03 THT Adafruit $0,13 $0,13
8 1 JST Connector male 01x02 THT Adafruit $0,13 $0,13
9 2 JST Connector female 01x05 Adafruit $0,13 $0,26
10 4 JST Connector female 01x04 Adafruit $0,13 $0,52
11 1 JST Connector female 01x03 Adafruit $0,13 $0,13
12 1 JST Connector female 01x02 Adafruit $0,13 $0,13
13 1 95278-101-04LF Header 02x02 SWD P2,54 SMD DigiKey $0,41 $0,41
14 4 RNCP1206FTD1K00 Resistor SMD 1206 1k DigiKey $0,10 $0,40
15 1 RC1206JR-07620RL Resistor SMD 1206 620 DigiKey $0,10 $0,10
16 1 B3SN-3012P Switch Tactile Omron DigiKey $0,86 $0,86
17 4 DRV8251ADDAR MotorDriver HalfBridge DigiKey $1,78 $7,12
18 1 AVR128DB32-I/PT Microprocessor AVR128DB32 DigiKey $1,96 $1,96
19 1 LM3480IM3X-5.0/NOPB Voltage Regulator 5 V 100 mA DigiKey $1,07 $1,07
20 4 RMCF1206ZT0R00 Jumper SMD 1206 0 OHM DigiKey $0,10 $0,40
30 1 - NEO-6M GPS Module ebay $6,50 $6,50
40 2 TLE5012BE1000XUMA1CT-ND Hall effect sensor absolute angle DigiKey $3,45 $6,90
41 4 RC1206FR-07100RL Resistor SMD 1206 100 DigiKey $0,10 $0,40
42 2 RMCF1206JT470R Resistor SMD 1206 470 DigiKey $0,10 $0,20
43 2 C1206C104K5RACTU Capacitor SMD 1206 100nF DigiKey $0,08 $0,16

Total Cost

The total cost divides and sums up as follows, when considering currency conversion and taxes:

Category Sum Currency Import Taxes Amount in USD
Purchased parts mechanical 175,01 USD 25% 218,76
Purchased parts mechanical 10999 ISK - 85,24
Purchased parts electrical 32,33 USD 25% 40,41
Purchased filament PETG 17160 ISK - 131,03
= $475,44

Assembly-Tree

The assembly tree shows, how subassemblies and components are organized on the three highest levels.

  • SUN TRACKER
    • Base plate assembly
      • Solid steel plate
      • Spirit level
      • Feet
      • Encoder bolt with magnet
      • Circular spline gear
    • Azimuth drive
      • Lower housing
      • Harmonic drive
        • Wave generator / pulley
        • Flex spline
        • Motor mount
        • Motor with pulley
        • Timing belt
      • Encoder
    • Zenith drive
      • upper housing
      • Harmonic drive
        • Wave generator / pulley
        • Flex spline
        • Motor mount
        • Motor with pulley
        • Timing belt
      • Air vent
      • PCB
      • GPS-module
    • Arm assembly
      • Torque arm with circular spline gear
      • Encoder bolt with magnet
      • Carbon fibre rods
      • Joints
      • Shading sphere
      • Counterweight incl. mounting bracket
    • Service cover assembly
      • Cover
      • M12 connector

Fabrication Processes

I used the following fabrication processes in the final project:

  • Machining
    • manual drilling
    • manual turning (facing, boring)
    • manual sawing, grinding, filing, sanding
    • CNC milling (PCB)
  • Joining
    • Soldering (PCB)
    • Adhesive bonding
    • Fastening (nuts, bolts)
    • Press fitting
    • Heat inserting
    • Crimping
  • Additive manufacturing
    • 3D printing (FDM)

Additionally, I ordered a custom waterjet-cut stainless steel plate.

Software Tools

I used the following tools for designing the machine:

  • Autodesk Fusion 360
  • KiCad 9.0
  • Arduino IDE
  • VSCode

These tools were used in the manufacturing process:

  • Prusa Slicer 2.9.2
  • Gerber2PNG
  • Mods

Lastly, I used the following software for planning, documentation and presentation:

  • ProjectLibre
  • VSCode
  • RStudio
  • Inkscape
  • paint.net
  • Microsoft Clipchamp

Design files

The major part of the design was done in Fusion 360. Because of the size of the *.stl files for 3D printing - I could not include them in my repository, but here is a link to the 3D model:

Fusion model

The PCB design files for the main board and encoder breakout boards can be found here.

In the same directory are also some vector graphic files and an excel sheet, where I calculated the transfer formula for the kinematics.

The code / program including different test versions can be found in this directory. The latest version when the assignment is due, is suntracker_v0.4.ino.

Questions answered

  • Is it possible to design and build a reliable and robust sun tracker prototype from scratch?

    Yes, but time will prove if it is actually as robust and reliable as required and how much maintenance will be involved. At least for now, it seems to work, but I'm also sure that I'm going to improve some details in the future / for the next prototype.

  • Will the sun tracker be able to follow the sun path accurately enough to shade the sensor at all times?

    Yes, when monitoring it for a couple of hours, the shadow was accurately on the sensor. However, I have to perform more tests in difficult conditions, as strong wind, snow, icing and so on.

  • What is the actual accuracy of an absolute angle magnetic encoders?

    At least in my setup with the 12-bit encoder, I experienced some noise in the measurements. I didn't have the instruments to verify the accuracy over a full rotation, but it is indicated that the accuraccy is within ± 0,1°, which is good enough for me.

  • Can you successfully 3D-print a harmonic drive?

    Yes, that is possible with a standard FDM printer with 0,4 mm nozzle and PETG filament. There is some noise and friction in it, but it is strong enough to move both axes of my machine. The life-time needs to be determined yet, but fortunately the replacement of the wear parts is relatively easy and cheap.

Success and Failure

There was one mechanical design fault I made in the harmonic drive, which I discovered in week 16 and fortunately, was able to solve by implementing design changes.

All other mechanical components seem to fit and work without major issues.

Most failures occured on the electronics side of the project. Some have been related to wiring / connectivity issues, but most occur in the programming.

In week 18 I discovered, that the reason for the I2C connectivity issues, was related to the missing pullup resistors, which I managed to add.

Another failure I could identify in week 18, was a short between two pins of the microcontroller, caused by a tin bridge.

In week 19 I identified and solved temporarily a power supply issue.

All in all the development was succesful. I got the machine working and have it track the sun for a longer period of time, with the shadow being cast on the right spot.

There are some improvements I have in mind, that should be implemented before deploying the machine to the measuring site, but I'm optimistic that it can be used with only minor improvements.

Evaluation

There are several methods to evaluate the success of this project.

I already proofed, that the sun tracking does work over a 24 h period of time and the shadow covers the sensor all the time. In the timelapse, you can see that the movement is not constant - I programmed the code to wait until a certain deviation between the encoder reading and the setpoint angle is reached, before moving the machine. This allows me to prevent unneccesary movements and I can turn off the h-bridges in between the movements to reduce energy consumption and heat buildup. However, I might consider making the movement a bit more smooth, but reducing the allowed deviaton.

Another thing I tested was the shake test to see if all connectors and wiring looms are okay and there were no issues found. Nevertheless, I can improve the cable routing inside the machine for the next prototype.

During outdoor testing I had a few rain showers and could not see any water ingress. It would be good to do a proper ingress protection testing according to EN 60529. I would like to aim for a rating of IP 54 (dust protection, splash water protection).

Implications

For now, I only plan to make one machine and hand it over to my employer once it runs stable. Hopefully it will proof useful and accurate enough to perform the indirect solar irradiance measurments. I'm going to follow up on the performance and reliability and might consider making an updated / improved version with the learnings from the final project.

I want to share the design with scientific institutions and non-profit organizations as well as allowing private use with the restriction of crediting me, but I find it quite unlikely, that somebody is going to reproduce the machine in the exact same way. It would most likely need to be adapted to local conditions/availability and manufacturer preference. Nevertheless, it would be great if this could be the inspiration for somebody to improve or adopt the design and make their own version of a sun tracker.

License

As documented in week 19, I discovered that the CC BY 4.0 license is already applied to the gitlab repository and this can't be changed. Therefore, I'm going to stick to this license for the final project version, but might consider changing it for the next iteration to CC BY-NC-SA 4.0, to prevent commercial use.

Media

SKÖLL Sun Tracker

SKÖLL Sun Tracker

SKÖLL Sun Tracker

SKÖLL Sun Tracker

SKÖLL Sun Tracker

SKÖLL Sun Tracker

SKÖLL Sun Tracker

SKÖLL Sun Tracker

SKÖLL Sun Tracker