Skip to the content
PCBKitNew board
2 layers60.5 × 44 mmFanbee, the printed circuit board in 3D

A Zigbee-controlled 140mm fan with electronically-controlled valve

Size
60.5 × 44 mm
Copper layers
2
Thickness
1.6 mm
Parts
59
Nets
56
Pads
201
Tracks, vias
305, 63
Pours
8
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
18 Oct 2024
Updated
9 Mar 2025

Overview

Fanbee is an open-source printed circuit board by lorenz, from the lorenz/fanbee repository on GitHub, published under the MIT licence. It is a 2-layer board of 60.5 × 44 mm with 59 parts on 56 nets, routed with 305 tracks and 63 vias.

It is built around the 74HCT244D, RF-BM-2652P2 and TPS5430DDA, with the AO3401A, B5819W and MMBT3904 among its other parts. Its parts include 16 resistors, 14 capacitors, 5 ICs, 5 diodes and 3 connectors.

Main components

6

README

README.md

FanBee :honeybee:

A Zigbee-controlled 140mm fan with electronically-controlled valve

Product Picture

Skip to the Build Guide if you want to know how to build one.

Introduction

User Interface

The small LED (D3) near the reset button indicates if the lowest (MCU) power rail has power. If it is not illuminated nothing will happen, check power rails.

The firmware initially starts blinking its status LED (D4, near the JTAG header) every 2 seconds, indicating that it is idle and is not connected to any network. Press the Pair button after your ZigBee network is ready to join a new device. The status LED will start to blink rapidly (every 0.5s) until it has joined a network, then it will turn off.

Pressing the pair button while the device is already joined to a network will result in two quick flashes of the status LED.

Long-pressing the pair button (>5s) will reset the device.

The last LED (D5) indicates if the fan is currently powered. It can be used to diagnose fan or connectivity issues.

Coordinator compatibility

Because the ZigBee HVAC fan device type is unfit for this device (it supports various modes but no speed control) I've opted to implement it as a generic level-controlled device (just like dimmable lights). This should give it fairly broad coordinator compatibility.

There's a device model for the FanBee in Zigbee2MQTT which is what I'm personally using to control them.

Notes

  • The power connector is designed for daisy-chaining, that's why there are two positive and negative positions. Only one of each needs to be connected for normal operation.
  • Second Servo output is not used currently, was used in an earlier revision and left for any future use as there was space.
  • SPI flash can be left unpopulated if you don't ever want to use OTA updates or maybe a later (larger) firmware. It's currently unused.
  • Newer TI SDKs have been tested but drop off the Zigbee network for unknown reasons after hours or days. Use the pinned version.
  • Make sure that the surface your're installing the base plate on is flat. Otherwise the bell shape gets distorted and the butterfly valve disk gets stuck. The tolerances there need to be relatively tight to not allow too much air to go through in closed state.

Build Guide

Requirements

Off-the-shelf hardware

QuantityPart description
8M3 brass heat-set inserts
1M3 15mm buttonhead fastener
1M3 10mm buttonhead fastener
4M3 5mm fastener (ideally with integrated washer)
4M4 countersunk fasteners for attaching the housing
210x15x4mm ball bearings
1SG90-compatible 180° servo
1140mm 24V or 12V PC-compatible PWM fan (plus screws if not included)
30cm2GT timing belt (open-loop)

This was designed for the Noctua NF-A14 industrialPPC-24V-3000 SP IP67 PWM, but any other electrically-compatible 24V or 12V fans can be used. Note that the power supply voltage needs to match the fan voltage, there is no regulator for the fan power supply.

PCB

The control PCB is custom-designed and can be ordered at your favorite PCB manufacturer in various states of assembly. All SMT parts can be assembled for relatively cheap by JLCPCB. One PCB is needed for each FanBee.

A OpenOCD and JTAG compatible programmer with a 2.45mm ARM 10 Pin JTAG connector is required. This has been tested with a generic FT2232 board, but a TI XDS110 or compatible LaunchPad should also work.

Printed parts

The STLs for all printed parts are in the parts folder. One of each is needed for a single fanbee. servo_pulley.stl should be printed in resin or with a 0.2mm nozzle, the rest of the parts do not need to be as precise.

Assembly steps

  1. Insert the 4 heat-set inserts into the studs for holding the PCB.
  2. Insert the two heat-set inserts into the base for holding an optional PCB enclosure.
  3. Insert a heat-set insert each into the bottom and top holes of the valve disk.
  4. Press both ball bearings into their housings on the main part.
  5. Place the fan at the back, route the wires through the slot and attach it with four fan screws.
  6. Route the servo cables through the hole and attach the servo with two screws.
  7. Attach the PCB with four 5mm screws.
  8. Connect the 4-pin fan connector and 3-pin servo connector.
  9. Place the fan disk between the bearings and push in the retaining pin from the bottom and the disk pulley from the top.
  10. Secure the retaining pin with the 10mm M3 screw.
  11. Secure the disk pulley with the 15mm M3 screw.
  12. Push the servo pulley onto the servo and secure it with the provided screw.
  13. Cut a sufficiently-long section of belt, loop it around the two servos and secure both ends with the belt retainer.
  14. Attach the JTAG programmer and temporary power and flash the firmware.

Future work

  • Public CI for firmware and manufacturing files
  • Render/photos of the finished product

License

MIT for all the code I wrote as well as the CAD design files. Some code is also related to TI's SimpleLink SDK (especially the generated syscfg), I don't claim ownership of that, but TI grants you relatively broad permissions for most use.

Parts

59
QtyValueFootprintReferences
710kResistor_SMD:R_0402_1005MetricR1, R3, R6, R9, R11, R13, R14
410uCapacitor_SMD:C_0805_2012MetricC1, C4, C7, C9
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
4TestPointTestPoint:TestPoint_Pad_D1.0mmTP1, TP2, TP3, TP4
30.1uCapacitor_SMD:C_0402_1005MetricC6, C11, C13
34.7kResistor_SMD:R_0402_1005MetricR5, R15, R18
2100nCapacitor_SMD:C_0603_1608MetricC12, C14
21uCapacitor_SMD:C_0805_2012MetricC5, C8
2Motor_ServoConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalM1, M2
110nCapacitor_SMD:C_0402_1005MetricC2
115kResistor_SMD:R_0402_1005MetricR12
115u @ 6.5Acustom_footprints:L_Sunlord_MWSA1004_11.5x10.5mmL1
1170uCapacitor_SMD:CP_Elec_6.3x5.9C3
11kResistor_SMD:R_0402_1005MetricR10
12.2kResistor_SMD:R_0402_1005MetricR4
12.7kResistor_SMD:R_0603_1608MetricR7
13.24kResistor_SMD:R_0402_1005MetricR2
133nCapacitor_SMD:C_0603_1608MetricC10
13V3OKLED_SMD:LED_0805_2012MetricD3
15ADiode_SMD:D_SMAD1
174HCT244Package_SO:TSSOP-20_4.4x6.5mm_P0.65mmU4
18.2kResistor_SMD:R_0402_1005MetricR8
1ACTLED_SMD:LED_0805_2012MetricD4
1AO3401APackage_TO_SOT_SMD:SOT-23Q2
1B5819WDiode_SMD:D_SOD-123D2
1FANConnector:FanPinHeader_1x04_P2.54mm_VerticalM3
1FAN_ENLED_SMD:LED_0805_2012MetricD5
1JTAGConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ3
1MMBT3904Package_TO_SOT_SMD:SOT-23Q3
1PAIRButton_Switch_SMD:SW_SPST_TL3342SW1
1PWRConnector_Phoenix_MC:PhoenixContact_MCV_1,5_4-G-3.81_1x04_P3.81mm_VerticalJ1
1RESETButton_Switch_SMD:SW_SPST_TL3342SW2
1RF-BM-2652P2custom_footprints:RF-BM-2652P2U5
1TPS5430DDAPackage_SO:TI_SO-PowerPAD-8_ThermalViasU1
1UARTConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ7
1XC6206PxxxMRPackage_TO_SOT_SMD:SOT-23-3U3
1~custom_footprints:Macronix_USON8_EP_2x3_Pitch0.5mmU2

Questions

How big is the Fanbee PCB?

It measures 60.5 × 44 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Fanbee use?

59 parts, built around the 74HCT244D, RF-BM-2652P2, TPS5430DDA and AO3401A. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Fanbee KiCad files?

From the lorenz/fanbee repository on GitHub, at the commit this page was made from: the board is pcb/fanbee.kicad_pcb and its schematic pcb/fanbee.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Fanbee design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers48.9 × 55.2 mmVedgaZigBee, the printed circuit board in 3D

    VedgaZigBee

    vedga/pcb-RF-BM-2652

    RFStar ZigBee modules development board PCB (designed by Vedga)

    11 partsGPL-2.0
  • 2 layers77 × 32 mmBananaSchplit, the printed circuit board in 3D

    BananaSchplit

    pms67/BananaSchplit

    Single rail DC (<12V) to split rail DC supply (+/-12V and +5V).

    53 parts66MIT
  • 4 layers160 × 117.5 mmDaveecu2, the printed circuit board in 3D

    Daveecu2

    miata-bot/daveecu2

    Speeduino Mainboard designed for NA Maita chassis

    249 parts3
  • 2 layers100 × 100 mmSqueezeAMPagain, the printed circuit board in 3D

    SqueezeAMPagain

    hallo-alex/SqueezeAMPagain

    As github annoys me with their 2FA policy I'm moving this to codeberg

    228 parts
  • 2 layers78.1 × 39.8 mmSingle to split rail dc power supply, the printed circuit board in 3D

    Single to split rail dc power supply

    kingMordred/single_to_split_rail_dc_power_supply

    PCB design using KiCad 10.0 for a single to split rail dc power supply, converting an input of +6V ~ +12V to a +5V rail or a +12V/-12V rail.

    50 parts
  • 2 layers35 × 31 mm12to5Buckconverter, the printed circuit board in 3D

    12to5Buckconverter

    hwreverse/PCBDesignLectures

    PCB Design course projects

    15 parts7BSD-3-Clause
  • 2 layers45.7 × 43.2 mmDC---DC Buck Converter-, the printed circuit board in 3D

    DC---DC Buck Converter-

    Uttu2611/DC---DC-Buck-Converter-

    DC - DC Buck Converter schematic and PCB files for drop the DC Voltage levels.

    36 parts
  • 4 layers140 × 100 mmDc usv, the printed circuit board in 3D

    Dc usv

    TobleMiner/DC-UPS

    A small DC UPS, designed to keep small appliances like consumer network equipment running during power outages

    351 parts223CERN-OHL-P-2.0