

Anlog LFR
PID control with analog electronics
- Size
- 99.6 × 98.3 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 148
- Nets
- 84
- Pads
- 398
- Tracks, vias
- 1,028, 245
- Pours
- 23
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 10 Oct 2026
- Updated
- 10 Oct 2026
Overview
Anlog LFR is an open-source printed circuit board by aaariyann, from the aaariyann/Analog-Line-Follower repository on GitHub. It is a 4-layer board of 99.6 × 98.3 mm with 148 parts on 84 nets, routed with 1,028 tracks and 245 vias.
It is built around the MCP6004T-I/SL(MS), AP63205WU and LM339, with the QRE1113GR, AO3400A and SS14 among its other parts. Its parts include 69 resistors, 21 capacitors, 10 switches, 9 ICs and 2 diodes.
Main components
6MCP6004T-I/SL(MS)
SOIC-14-2.75V~-750mV、750mV~2.75V -40℃~+125℃ 1.5V~5.5V 1.8uV/℃ 1MHz 1V/us 1mV 1pA 28uA 4 45mA 5pA 65nV/√Hz@1kHz 80dB Rail-to-Rail Input, Rail-to-Rail Output SOIC-14 Operational Amplifier ROHSMSKSEMIOperational AmplifierAP63205WU
TSOT-23-6-40℃~+85℃@(TA) 1 1.1MHz 22uA 2A 3.8V~32V 5V Buck Built-in Fixed Overcurrent Protection、Light load efficient mode、Cycle-by-cycle current limiting、Hiccup current limiting、EMI optimization (spread spectrum) Step-down type Yes TSOT-23-6 DC-DC Converters ROHSDiodes IncorporatedDC-DC ConvertersLM339
SOP-140℃~+70℃ 1.1mA 1.5mV 150ns 2.3nA 2V~32V 32V 57nA DTL、TTL、CMOS Four channels Open Collector SOP-14 Comparators ROHSJSMSEMIComparatorsQRE1113GR
SMD-4P1mm 20mA SMD-4P Reflective Optical Interrupters ROHSonsemiReflective Optical InterruptersAO3400A
SOT-23-55℃~+150℃ 1 N-channel 1.45V 1.4W 30V 48mΩ@2.5V 5.7A 50pF 630pF 75pF 7nC@10V N-Channel SOT-23 MOSFETs ROHSAlpha & Omega SemiconductorMOSFETsSS14
SMA(DO-214AC)-55℃~+150℃ 1A 25A 300uA@40V 40V 550mV@1A Independent SMA(DO-214AC) Schottky Diodes ROHSMDDSchottky Diodes
README
README.mdAnalog Line Follower
A line follower where the steering loop has no microcontroller in it. Ten reflective sensors go in, two motor PWM signals come out, and everything in between is op-amps, resistors and one comparator.
Status: schematic complete in KiCad. Not simulated or fabricated yet. This repo will be updated as that happens.
Why analog
Most line followers read sensors with an ADC, run a PID loop in code and write PWM. I wanted to see how far the same idea goes when the loop is built from circuits you can probe with a scope. There’s no sampling delay or loop rate to tune around, and every signal in the controller is a voltage you can look at. It also makes the PID terms very direct: Kp, Ki and Kd are trimmer pots on the board.
How it works
Sensing. Ten QRE1113 reflectance sensors, each buffered by an op-amp so the later stages don’t load them. Position error. The right-side signals are inverted around a 2.5 V reference, then all ten are summed with weighted resistors (100k down to 20k). Sensors farther from center pull harder. A pot sets overall gain and another trims the center offset. PID. Separate P, I and D op-amp stages feed a summer. The integral stage is built but left unpopulated by default, so the first version runs as PD. Speed and steering. A base-speed pot is added to the PID output for one motor and subtracted for the other. PWM. A triangle oscillator around 5 kHz is compared against each motor’s duty voltage by an LM339. Drive. Two AO3400A MOSFETs switch the motors low-side, with flyback diodes. Power. An AP63205 steps 12 V down to 5 V. A buffered divider provides the 2.5 V reference.
Test points are placed on the key signals (error, P, I, D, PID output, triangle, duty, PWM) so each stage can be checked on its own.
Parts
10 × QRE1113GR sensors 7 × MCP6004 quad op-amps 1 × LM339 comparator 1 × AP63205 buck regulator 2 × AO3400A MOSFETs, 2 × SS14 diodes Trimmers for Kp, Ki, Kd, gain, offset and base speed
What I want to check next
Simulate the PID response and the triangle/PWM stage. Confirm the LM339 input range is comfortable with the triangle peak. Check PWM edge speed at the gates. Add reverse or braking, and handling for junctions and dashed lines, if the base design works well.
Parts
148| Qty | Value | Footprint | References |
|---|---|---|---|
| 17 | 10K | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R301, R302(DNP)1, R303, R304, R305, R308, R309, R310, R311, R312, R313, R314, R315, R401, RD1, RI2 +1 |
| 15 | 100K | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R100, R111, R112, R113, R114, R115, R116, R117, R118, R119, R120, R200, R306, R406, R411 |
| 12 | 4.7K | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R201, R202, R203, R204, R205, R206, R207, R208, R209, R210, R316, R317 |
| 12 | TestPoint | TestPoint:TestPoint_Pad_D2.0mm | COM_A1, COM_B1, D_1, I_1, P_0, PID_0, PWM_A1, PWM_B1, TRI1, VBASE_1, VERROR_0, VREF_0 |
| 10 | 220 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R101, R102, R103, R104, R105, R106, R107, R108, R109, R110 |
| 10 | QRE1113GR | OptoDevice:OnSemi_CASE100CY | S1, S2, S3, S4, S5, S6, S7, S8, S9, S10 |
| 9 | 100n | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C100, C101, C102, C103, C104, C105, C106, C200, CB2 |
| 7 | MCP6004T-I/SL | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U1, U2, U3, U4, U5, U6, U7 |
| 6 | , , , , , | ||
| 6 | 1u | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C500, C501, C502, C503, C504, CI1 |
| 4 | 100k | Potentiometer_SMD:Potentiometer_Bourns_3224W_Vertical | GAIN_0, KD_0, KI_0, KP_0 |
| 3 | 33K | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R307, R404, R409 |
| 2 | 10K | Potentiometer_SMD:Potentiometer_Bourns_3224W_Vertical | BASE_0, OFF_0 |
| 2 | 10R | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R501, R502 |
| 2 | 10uF | Capacitor_SMD:CP_Elec_5x5.4 | C1, C2 |
| 2 | 1M | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R1000, RI1 |
| 2 | 2.2K | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R211, R212 |
| 2 | 20K | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R402, R407 |
| 2 | 22uF | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C4, C5 |
| 2 | 24K | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R403, R408 |
| 2 | 51K | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R405, R410 |
| 2 | AO3400A | Package_TO_SOT_SMD:SOT-23-3 | Q1, Q2 |
| 2 | SS14 | Diode_SMD:D_SMA | D1, D2 |
| 1 | 10n | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | CD1 |
| 1 | 10uF | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C3 |
| 1 | 15n | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C301 |
| 1 | 4.7n | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | CD3 |
| 1 | 4.7u | Inductor_SMD:L_7.3x7.3_H3.5 | L1 |
| 1 | AP63205WU | Package_TO_SOT_SMD:TSOT-23-6 | U9 |
| 1 | LM339 | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U8 |
The 140 most common of 148 parts.
Similar boards
- 4 layers90 × 60 mm

- 2 layers70 × 60 mm

ResistojetV1
SimonDaniel605/Development-of-a-Resistojet-Thruster
This project involves the development of a resistojet thruster for nanosatellite station-keeping.
143 partsMIT - 2 layers76.2 × 165.1 mm

- 4 layers230 × 84.9 mm

- 12 layers68 × 40 mm

Teresina Rack
marcoallegretti/Teresina-Rack
The goal is an open, self-fabricatable Daisy Patch SM-compatible Eurorack submodule: the same carrier interface and libDaisy application compatibility through a small Teresina firmware variant.
214 parts - 2 layers42 × 34 mm

- 2 layers100 × 100 mm

TC SENSOR BUFFER REVA
hankenken/Train_control
現在の開発は LattePanda 3 Delta 864・Windows 10・USBカメラ2台による検証ソフトです。 Windows用の導入・操作手順を参照してください。撮影・画像処理・画面表示・進路選択を本体上で行う試作で、実機出力はありません。
42 parts1 - 2 layers90.2 × 48.3 mm

El macho
AgustinPrietoValdez/competition-robots
Custom competition robots — maze/micromouse (MISA), sumo (TATAMI 1) & mini-sumo (RUCHO). KiCad PCBs, STM32/Arduino firmware, Fusion 360. National champion & international prizes — by EDNAROBOTICS.
35 partsMIT
Questions
How big is the Anlog LFR PCB?
It measures 99.6 × 98.3 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Anlog LFR use?
148 parts, built around the MCP6004T-I/SL(MS), AP63205WU, LM339 and QRE1113GR. 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 Anlog LFR KiCad files?
From the aaariyann/Analog-Line-Follower repository on GitHub, at the commit this page was made from: the board is Anlog_LFR.kicad_pcb and its schematic Analog_LFR.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Anlog LFR design in my own project?
Its repository states no licence, so its author keeps all rights: ask aaariyann before reusing the design.