To be honest, the idea of a 3D printable wind sensor (in technical jargon “anemometer”) has been floating around in my head for a long time.
Initially I could have used it as a wind sensor for one of my weather stations. At that time I had an FDM 3D printer available and also a few first ideas for a printable design.

I then printed out the design shown on the left and tested it.
Unfortunately, this design never made it past the prototype phase. The limitations of the FDM printing process were somewhat problematic here. Especially when printing overhanging structures, the tolerances were often so bad that the parts didn't fit together properly.
So I put the project on hold again. But when I started developing the second version of a 3D printable wnd turbine, the topic of an anemometer came back to my desk. This time I wanted to build a wind turbine with electronic wind tracking. That means WinDIY_2 (that's the name of the wind turbine) should not get a wind vane, which automatically aligns the nacelle to the wind. Instead, the nacelle should be turned into the wind via a servomotor. In order for this to work, the electronics must of course know the current wind direction. Of course, this only works if the electronics are able to measure the current wind direction. You probably already know where this is going: This is how the idea was born (again) to design a 3D printable anemometer.
At this time my "machine park" had already grown a bit. In addition to my FDM printer, I could now also use an SLA printer. The practical thing about this is that with SLA printers you can also print overhanging structures very well and generally in a much higher resolution than with FDM printers. From the production side, almost all concerns were resolved. 🙂

So the anemometer had to be as compact as possible, because unnecessary weight should be avoided at this point (and because it just looks cooler. 🙂 )
For integration into WinDIY_2, the anemometer should be mounted on a small boom on the nacelle of the wind turbine.

The first draft still looked like shown in the photo. A bit "plump" and still with a detachable tip.
All in all unfortunately still a bit too big for the design of WinDIY_2. So I went back to the desk.

After a few more drafts, the design shown on the left eventually came out.
A very compact anemometer with the following data:
- Base diameter: 27mm
- Rotor diameter: 150mm
- Height (including base): ~160mm
This design consists of a few parts which can be printed out on a standard SLA printer.

In order to be able to evaluate the measured values for wind speed and wind direction, I created a small sensor board, which can be integrated into the base in such a way that the sensors are positioned in exactly the right places. The sensor board can then be connected to an ESP32 via an optional additional board (the Anemosens_MCU PCB). The data can then be further processed or stored in various ways.
Various interfaces and an SD card slot are available on the Anemosens_MCU circuit board. Further information about this board can also be found under the following link.
The general structure of Anemosens is described in the following article.
The following gallery also contains a few pictures of the circuit boards used and the general structure.
You can see more information in the following video.
Safety instructions
I know the following hints are always a bit annoying and seem unnecessary. But unfortunately, many people who knew it "better" from carelessness lost their eyes, fingers or other things or hurt themselves. In comparison, a loss of data is almost not worth mentioning, but even these can be really annoying. Therefore, please take five minutes to read the safety instructions. Even the coolest project is worth no injury or other annoyance. https://www.nerdiy.de/en/sicherheitshinweise/
Affiliate links / advertising links
The links to online stores listed here are so-called affiliate links. If you click on such an affiliate link and store via this link, Nerdiy.de receives a commission from the online store or provider concerned. The price doesn't change for you. If you do your purchases via these links, you will support Nerdiy.de in being able to offer further useful projects in the future. 🙂
Requirements
For the construction you have to master soldering tasks. The following articles provide tips on how to do this.
- Electronics—My friend the soldering iron
- Electronics – Solder THT components by hand
- Electronics – Solder SMD components by hand
Required tools:
Quantity | item | Link |
---|---|---|
1x | soldering iron | Buy at Amazon |
1x | USB soldering iron | Buy at Amazon |
1x | third hand | Buy at Amazon |
1x | soldering tip cleaner | Buy at Amazon |
1x | hot glue gun | Buy at Amazon |
1x | SLA 3D printer | Buy at Amazon |
1x | M2 internal tap | Buy at Amazon |
1x | M3 internal tap | Buy at Amazon |
1x | M8 internal tap | Buy at Amazon |
1x | M8 external tap | Buy at Amazon |
1x | Torx screwdriver | Buy at Amazon |
Required material:
Quantity | item | Link |
---|---|---|
1x | M2x6 grub screw | Buy at Amazon |
6x | M2x6 countersunk screw | Buy at Amazon |
3x | M3x6 grub screw | Buy at Amazon |
1x | M3x50 countersunk screw | Buy at Amazon |
6x | M2 threaded insert | Buy at Amazon |
3x | M3 thread insert | Buy at Amazon |
3x | Cylinder magnet 5x2mm | Buy at Amazon |
1x | Cylinder magnet 10x5mm | https://www.supermagnete.de/scheibenmagnete-neodym/scheibenmagnet-10mm-5mm_S-10-05-DN |
1x | 623 ball bearings | Buy at Amazon |
2x | 608 ball bearings | Buy at Amazon |
1x | JST SH connection cable | Buy at Amazon |
1x | 3D printer resin | Buy at Amazon |
1x | glue | Buy at Amazon |
1x | 10x2mm aluminum tube | Buy at Amazon |
1x | solder | Buy at Amazon |
1x | USB power supply | Buy at Amazon |
1x | USB-C cable | Buy at Amazon |
Build the sensor board
An important component for recording the wind data is the Anemosens sensor board. A Hall sensor and an AS5048B (a "magnetic rotary encoder") are installed on it. The wind speed is measured with the Hall sensor. The wind direction is measured with the AS5048B.
You can find more information about the sensor board in the following article.
The structure of the circuit board can be seen very well in the following video from the 50th second.







The wind direction sensor
The AS5048B sensor can be read via the I2C bus. A number of degrees from 0-360° is output. The resolution of the AS5048B is 14 bits which corresponds to 0.0219°. In order to assign the number of degrees to a compass point, the sensor must of course be aligned or calibrated appropriately.
More info on the AS5048B is available here: https://ams.com/en/as0548b
The wind speed sensor
The wind speed is evaluated using an AH49E Linear Hall Effect Sensor. This detects the passing of the three magnets built into the rotor. Every time one of the magnets passes the sensor, this can be measured as a change in the analog output voltage of the sensor. For reasons of symmetry, three magnets are installed in the rotor. This means that the number of pulses detected must be divided again by three in order to be able to determine the time for one revolution. This number of revolutions can in turn be used to determine the wind speed. For exact readings, you should calibrate the measured value with a real wind speed.
PCB manufacturing
You can find all the information you need to manufacture the PCBs here:
You can see a good overview of which components belong where on the PCB in the following paragraph. Thanks to the work of the OpenScope Project, you can generate very helpful HTML files in which you can see directly which components have to be installed where on the PCB.
You can see the overview for the Anemosens sensor PCB here: Anemosens Sensor PCB
You can also find the current file in the GIT repository under the following link:
(Please note that you have to download the HTML file to view it. This is not possible directly from the GIT repository.)

Gather the required materials
Before you can start you should of course collect all the required individual parts.
The STL files for 3D printing the required parts can be found in the Anemosens Git Repository at:

You will need the following parts for assembly:
- 1x M2x6 grub screw
- 6x M2x6 countersunk screws
- 3x M3x6 grub screws
- 1x M3x50 countersunk screw
- 6x M2 thread inserts
- 3x M3 thread inserts
- 3x cylinder magnet 5x2mm (diameter: 5mm, height: 2mm)
- 1x cylinder magnet 10x5mm (diameter: 10mm, height: 5mm) diametrically magnetized!
- 1x 623 ball bearing
- 2x 608 ball bearings
- JST SR connection cable
- The 3D printed parts
In the following, the required individual parts are shown again in the gallery view.

In this example, the 2x5mm magnets are already installed in the designated pockets in the rotor.
Simply place the magnets in the pockets and close the openings with some glue.
Prepare magnet holders
The magnet holder holds the 10x5mm cylinder magnet just above the AS5048B sensor. It is rotatably connected to the wind vane via the M3x50mm screw. In this step you should prepare the magnet holder.

First place the M3x50 screw as shown and screw it into the bracket as far as it will go.
If the screw is difficult to screw in, you should cut the hole clean again with an M3 tap.

Now you can glue the 10×50 cylinder magnet into the holder.
To do this, put a small drop of glue in the holder and then press the magnet into the holder.
Caution: Note that this magnet must be a diametrically magnetized magnet. Otherwise the AS5048B cannot detect the rotation.
Insert ball bearings into the components
Before you can continue assembling the rest of the components, you should first prepare them. In this step, the ball bearings are inserted into the 3D printed parts.
Before you do that, however, you should first free all ball bearings from their bearing grease and replace them with smooth-running machine oil. Manufacturers often supply ball bearings coated with bearing grease. This is actually useful to protect the bearing parts from corrosion and to keep them running smoothly. Unfortunately, this also increases the initial torque and resistance to rotation.
In order to keep this as low as possible, you have to remove the sluggish bearing grease. So that the bearing is still protected against corrosion afterwards, you should then conserve the bearing with machine oil (as is known from sewing machines, for example).
You can then use the bearings prepared in this way to assemble the bearing.

You can then insert the other 608 ball bearing into the holder in the wind vane.
This is just a test to see if everything fits properly. You then have to remove the bearing from the holder in the wind vane again.

At this point you can already fix the bearing with the M2x6 grub screw.
If necessary, you should first recut the thread with an M2 tap.

You can then simply attach the remaining 623 ball bearing to the M3x50 countersunk screw of the magnet holder.
Assemble the prepared parts
You can then assemble the parts prepared in the previous step.

And then bolt the bearings with the lock nut shown.
Important: Do not work here with too much force / torque! If necessary (definitely recommended depending on the print quality) you should re-cut the M8 external and internal thread with a tap!

In the last step, the magnet holder is connected to the wind vane.
To do this, you should (only) wet the tip of the M3x50 countersunk screw with some screw locking varnish.
Here it is important that some screw locking varnish arrives in the thread in the wind vane. If necessary, you can also remove the wind vane again and drip the locking paint directly into the threaded hole. In any case, make sure that no locking paint gets into the ball bearings.

Then place the magnet holder in such a way that the attached 623 ball bearing slides into the pocket provided. Then hold the magnet holder and turn the wind vane at the same time until the M3x50 screw grabs the thread in the wind vane and is screwed in all the way.
You can also see the entire process in this video from second 95 onwards.
Insert the sensor board into the socket
Now that you've built most of the sensor housing, you can start building the base.

The M2 and M3 thread inserts are already inserted in the socket.
To do this, the M2 were melted into the holder from above and in the upper row from the outside.
The M3 thread inserts are melted into the bottom row of the externally accessible holes.

Another view of the melted-in thread inserts.
In the top row, the M2 inserts are inserted.
In the bottom row the M3 inserts.
Assemble the case with the base
In the last step you only have to connect the socket to the rest of the housing.

What is still missing is the connection to a suitable MCU, which then has to evaluate and process the sensor signals.
Optional: Build the Anemosens_MCU board
The Anemosens MCU circuit board is not absolutely necessary for the operation of Anemosens. You can also evaluate the sensors on the sensor board with your own hardware.
With the help of the Anemosens MCU circuit board, you have the option of reading out the sensor data and sending it via the USB-C connection, Modbus, Wifi or Bluetooth for further evaluation. Optionally, the data can also be stored on a µSD card inserted in the µSD card slot. The data can then be logged with a time stamp via the integrated and battery-buffered real-time clock. The board can also be equipped with a BME280 for further monitoring of the environmental data. Temperature, humidity and air pressure can also be logged.
You can find more information about the Anemosens_MCU board in the article





PCB manufacturing: You can find all the information you need to manufacture the PCBs here:
A simple way to get a good overview of which components are placed where on the PCB is shown in the following paragraph. Thanks to the work of the OpenScope Project, you can generate very helpful HTML files in which you can see directly which components have to be installed where on the PCB.
You can see the sens sensor PCB here: Anemosens_MCU PCB
You can also find the current file in the GIT repository under the following link:
(Please note that you have to download the HTML file to view it. This is not possible directly from the GIT repository.)

The Anemosens_MCU firmware
A first version (work in progress) of an Arduino-compatible software for evaluating the sensor data can be found under the following link.
This software is tailored for use with the Anemosens_MCU hardware. In this way, the data can be measured, processed and stored. They are also made available (if desired) via the serial interface (via USB), via the Modbus interface, via WiFi or via Bluetooth.

The firmware is compatible with the Arduino IDE and can be transferred to the used microcontroller.
You can find tips on how to program a microcontroller with the Arduino IDE in the article
Have fun with the project
I hope everything worked as described. If not or you have any other questions or suggestions, please let me know in the comments. Also, ideas for new projects are always welcome. 🙂
P.S. Many of these projects - especially the hardware projects - cost a lot of time and money. Of course I do this because I enjoy it, but if you appreciate that I share this information with you, I would be happy about a small donation to the coffee box. 🙂
Hi,
Is it possible to get the gerber files of the sensor board. Only the pick and place data can be found in Git
Greetings
Hi Andrew,
Exactly the production data are unfortunately not public because I have had bad experiences with them in the past. I plan to offer the circuit board in a small shop soon. 🙂
Best regards
Fabian