

The FemtoBuck LED Driver (SparkFun Part ID: 12937) is a compact, high-efficiency LED driver designed to regulate output current using a buck converter topology. This ensures optimal brightness and energy efficiency for driving LEDs. Its small form factor and robust design make it ideal for applications requiring precise LED control.








The FemtoBuck LED Driver is designed to work with a wide range of LEDs and provides stable current regulation. Below are the key technical details:
| Parameter | Value |
|---|---|
| Input Voltage Range | 6V to 36V |
| Output Current | Adjustable up to 350mA (default) |
| Efficiency | Up to 95% |
| Dimming Control | PWM or Analog (0-2.5V) |
| Operating Temperature | -40°C to +85°C |
| Dimensions | 0.8" x 0.45" (20.3mm x 11.4mm) |
The FemtoBuck LED Driver has six pins, as detailed in the table below:
| Pin Name | Pin Type | Description |
|---|---|---|
| VIN | Power Input | Connect to the positive terminal of the power supply (6V to 36V). |
| GND | Power Ground | Connect to the ground terminal of the power supply. |
| LED+ | Output | Positive terminal for the LED load. |
| LED- | Output | Negative terminal for the LED load. |
| CTRL | Input | Dimming control input (accepts PWM or analog voltage, 0-2.5V). |
| GND (CTRL) | Ground | Ground reference for the CTRL pin. |
The FemtoBuck LED Driver is straightforward to use in a circuit. Follow the steps below to integrate it into your project:
VIN and GND pins.LED+ pin and the negative terminal to the LED- pin.CTRL pin.CTRL pin.CTRL pin is sensitive to voltages above 2.5V. Do not exceed this limit to avoid damage.The FemtoBuck LED Driver can be controlled using an Arduino UNO for PWM dimming. Below is an example code snippet:
// Example: PWM dimming control for FemtoBuck LED Driver
// Connect the CTRL pin of the FemtoBuck to Arduino pin 9
const int pwmPin = 9; // PWM output pin connected to FemtoBuck CTRL pin
void setup() {
pinMode(pwmPin, OUTPUT); // Set pin 9 as an output
}
void loop() {
// Gradually increase brightness
for (int brightness = 0; brightness <= 255; brightness++) {
analogWrite(pwmPin, brightness); // Write PWM signal to CTRL pin
delay(10); // Small delay for smooth dimming
}
// Gradually decrease brightness
for (int brightness = 255; brightness >= 0; brightness--) {
analogWrite(pwmPin, brightness); // Write PWM signal to CTRL pin
delay(10); // Small delay for smooth dimming
}
}
GND).analogWrite() function generates a PWM signal with a duty cycle proportional to the brightness value (0-255).LED Does Not Light Up:
LED+ and LED-) for proper polarity.Overheating:
Dimming Not Working:
CTRL pin voltage does not exceed 2.5V.Flickering LEDs:
Q: Can I use the FemtoBuck to drive multiple LEDs?
A: Yes, you can connect multiple LEDs in series, provided their combined forward voltage does not exceed the input voltage minus the driver's overhead voltage (~1.5V).
Q: What happens if I exceed the maximum input voltage?
A: Exceeding 36V can damage the driver. Always use a regulated power supply within the specified range.
Q: Can I use the FemtoBuck without dimming?
A: Yes, leave the CTRL pin unconnected for full brightness operation.
Q: How do I calculate the sense resistor value for a specific current?
A: Use the formula ( I_{LED} = \frac{0.1}{R1} ). For example, a 0.25Ω resistor sets the current to 400mA.
By following this documentation, you can effectively integrate the FemtoBuck LED Driver into your projects for efficient and reliable LED control.