3D Printable EDF Blower Fan

by frapais in Workshop > Tools

693 Views, 6 Favorites, 0 Comments

3D Printable EDF Blower Fan

2025_1120_12585400.jpg
2025_1120_12592800.jpg
2025_1120_13000900.jpg
2025_1120_13004700.jpg

This project is a handheld blower designed for workshop and home cleaning applications, powered by Parkside 20V tool batteries. The core component is a 50mm Electric Ducted Fan (EDF) unit, controlled by a matching Electronic Speed Controller (ESC). All the electronics are housed in a custom 3D-printed enclosure, specifically designed to be easy to print without supports on any FDM 3D printer. Despite its compact size, this device produces a significant airflow and is very 3D-printer-friendly, as the main housing prints in a single piece without any support material. For more files and details, check out the GitHub repository of this project.

Supplies

Hardware:

  1. 1x 50mm EDF (3300KV)
  2. 1x 5S ESC (45A)
  3. 1x Trigger button
  4. 2x 6.3mm Male Spade connectors
  5. 2x Thin Wire (~14AWG)
  6. 26-26AWG Wire (~20cm)
  7. Attiny 85 Microcontroller (or similar)
  8. LM7805 5V regulator (or similar)

Tools:

  1. 3D printer
  2. Soldering iron & solder
  3. Cable crimper
  4. Hotglue gun
  5. Screwdriver
  6. Servo tester (optional)
  7. PC (for uploading the firmware)
  8. Arduino UNO (for programming the ATTiny microcontroller)
  9. Breadboard (for testing)

3D Print the Housing

Screenshot 2025-11-14 153904.png

Print the attached housing, in the correct orientation as shown in the image. I used the following settings:

  1. Material: PLA
  2. Walls: 2
  3. Top/Bottom layers: 3
  4. Infill: 7.5%
  5. Layer thickness: 0.2mm
  6. Supports: none

Mounting the Fan

IMG_20251114_124336.jpg
Screenshot 2025-11-14 172424.png
IMG_20251114_124124.jpg
IMG_20250905_194110.jpg

Secure the 50mm EDF fan to the 3D-printed housing using hot glue; silicone sealant is a preferable alternative for a more durable bond. Ensure the motor's three power wires are fed through the housing and into the handle. Apply adhesive all around the exterior of the fan's duct, then slide the fan onto the housing from the back, simultaneously guiding the cables down through the housing and into the handle.

Connecting the ESC to the Fan

Solder the EDF motor's three cables to the three output pads on the ESC. The order of the wires does not matter initially. If you find the motor spins in the wrong direction, simply swap the positions of any two of the three wires and re-solder them to reverse the direction.

Prepare the Power Input

IMG_20251114_154457.jpg
IMG_20251114_154523.jpg
ParkLink - XT60 adapter for Parkside batteries

Crimp the two male spade connectors onto the ESC's input wires and push them into their corresponding holes on the 3D-printed part. I have demonstrated this process in several other Instructables, such as the Parkside Adapter and the Smart Studio Lights, and there is also a corresponding video tutorial available.

Upload the Code to the Microcontroller

Screenshot 2025-11-14 160607.png
Screenshot 2025-11-14 160958.png

This project uses the ATtiny85 microcontroller due to its small size, which allows it to fit easily inside the blower's handle. To upload the code, you will need an Arduino Uno (or any compatible Arduino board) to function as a programmer.

While there is an excellent tutorial on Instructables for this process using the Arduino IDE, I used PlatformIO within VSCode because the ATtiny boards package was unavailable in the latest version of the Arduino IDE (2.3.6) at the time of writing. Note that you will still need the Arduino IDE to upload the ArduinoISP sketch to your Arduino board to turn it into a programmer.

The process for uploading the code to the ATtiny85 is as follows:

  1. Connect the ATtiny85 to the Arduino using the wiring diagram in the attached PDF and image.
  2. Upload the ArduinoISP sketch (found under Examples) to the Arduino board.
  3. Open PlatformIO and create a new project for the ATtiny85, selecting the Arduino framework.
  4. Copy the contents of the attached main.cpp file into your project's main.cpp.
  5. Copy the contents of the attached .ini initialization file into your project's platformio.ini.
  6. Build and upload the code to the ATtiny85.

Alternatively, you can download the whole PlatformIO project from the GitHub repo.

[env:attiny85]
platform = atmelavr
board = attiny85
framework = arduino
upload_protocol = stk500v1
upload_flags =
-P$UPLOAD_PORT
-b$UPLOAD_SPEED
upload_port = -replace with your COM port-
upload_speed = 19200

build_flags = -D LED_BUILTIN=1

Soldering the Electronics

IMG_20251114_124113.jpg
IMG_20251114_124118.jpg
IMG_20251114_124121.jpg
BLDC blower schematic.drawio (2).png

After successfully uploading the firmware to the ATtiny85 microcontroller, connect it to the rest of the electronics.

First, power the microcontroller with 5V. Use two thin wires to connect the ESC's power input (the 20V from the Parkside battery) to a 5V regulator (such as an LM7805). Connect the regulator's 5V output to pin 8 (VCC) of the ATtiny85, and connect the ground to pin 4 (GND).

Next, pin 5 (PB0) is the output signal for the ESC and should be soldered to the signal wire of the ESC (the white cable in this case).

Finally, connect the trigger switch using two wires: one wire goes to pin 7 (PB2), and the other connects to Ground (pin 4).

Assembling and Testing

DIY BLDC Blower fan test
IMG_20251114_124124.jpg
IMG_20251114_124322.jpg
IMG_20251114_124331.jpg
IMG_20251114_124936.jpg
IMG_20251114_124939.jpg
IMG_20251114_124945.jpg

In this final step, carefully fit all the electronics inside the handle, leaving only the trigger switch protruding from the back. Push the trigger switch into its hole on the handle until the button itself is accessible from the front. Use a generous amount of hot glue to secure it firmly in place.

Once the glue has dried, connect a Parkside 20V battery and test the tool by pressing the trigger. Upon connecting the battery, the electronics should power up, and the ESC will make its characteristic startup sound, indicating that the microcontroller is running and sending the correct signal. Pressing the trigger will then produce a powerful airflow.