How can I draw this circuit with CircuiTikz? I have found many similar circuits, but it's the first time I use this package. enter image description here

I'm using Beamer and I want first to show a frame without R, then a frame also with R in parallel to C.

This is the code I have found and partially modified:

\draw (6,2) node[op amp] (opamp2) {}
(4,2.5) to [ground]  (opamp2.-) 
(4.8,1) node [ground] {}to [short] (opamp2.+)
(opamp2.-) -- +(0,1.5) to[C] +(2.3,1.5) -|
(opamp2.out) to [short,-o] (8,2)node[right]{};
  • 1
    If you found many similar circuits maybe you could start from them and alter them until they fit your needs. If you get stuck in the process come back to this site and ask a question showing what you've got so far. This is not a we-do-it-for-you service. Maybe someone will provide the code, but in general you'll get more help if you show some own effort.
    – Skillmon
    Commented Jul 9, 2017 at 17:15
  • 2
    Welcome to TeX.SX! Please create a minimal working example (MWE) first. You could start with the code of "similar circuits". Then its easier to help you.
    – Bobyandbob
    Commented Jul 9, 2017 at 17:19
  • 2
    In this community everyone has a pleasure to help new colleagues. But for this it is necessary some initial attempt of who requests aid. Make a little attempt you'll see answers soon.
    – LCarvalho
    Commented Jul 9, 2017 at 17:53
  • Add the resistor with\draw (4.8,4) to[short] (4.8,6) to[R=$R_1$] (7.2,6) to[short] (7.2,4);.
    – Bobyandbob
    Commented Jul 9, 2017 at 18:43

1 Answer 1


About one year ago (maybe more) I provided the following explanation to similar question:

%%%% circuitikz-explanation

    \begin{circuitikz}[every pin/.append style={align=left, text=blue}]
% circuit part
  (0, 0) node[op amp] (opamp) {\textcolor{blue}{OA}}
  (opamp.-) to[R] (-3, 0.5)
  (opamp.-) to[short,*-] ++(0,1.5) coordinate (leftC)
  to[C] (leftC -| opamp.out)
  to[short,-*] (opamp.out);
% explanation part

\node[pin=above left: \textcolor{red}{opamp.-}: coordinates of\\
                      OA's inverting (negative)\\
                      input] at (opamp.-) {};
\node[pin=above left: \textcolor{red}{++(0,1.5)} -- vertical offset \\
                      OA's inverting imput named     \\
                      "opamp.-" determine position   \\
                      of the coordinate (leftC)
                      ] at ($(opamp.-)+(0,1.5)$) {};
\node[pin=above right: \textcolor{red}{leftC $-|$ opamp.out}:\\
                      determine the coordinate of\\
                      intersection of lines:\\
                      horizontal from C and \\
                      vertical from OA output\\
                      (see dashed red lines)] at (leftC -| opamp.out) {};
    \draw[dashed, red]  (leftC) -- + (31mm,0)
                        (opamp.out) -- + (0,31mm);
\node[pin=below right:\textcolor{red}{opamp} is name of     \\
                      coordinates {(0,0)}. They\\
                      determine the position\\
                      of OA] at (0,0) {};
\node[pin=below left:OA's non inverting input\\
                      (not used)] at (opamp.+) {};
\node[pin=above right:\textcolor{red}{opamp.out} is name of     \\
                      OA's output coordinates] at (opamp.out) {};

enter image description here

This code is only two elements away to what you like to have. If you after this explanation stuck in drawing, pleas ask new question in show where you stuck. In drawing the circuitikz package documentation can be of big help.

Addendum (edited): Let me make your images in the two steps: in the first repeat above image, and in the second add resistor:

enter image description here


    \begin{circuitikz}[every pin/.append style={align=left, text=blue}]
  (0, 0) node[op amp] (opamp) {}
  (opamp.-) to[short,-o] ++(-1, 0)
  (opamp.-) to[short,*-] ++(0,1.5) coordinate (leftC)
            to[C]           (leftC -| opamp.out)
            to[short,-*]    (opamp.out)
            to[short,-o] ++ (0.5,0)
  (leftC)   to[short,*-] ++ (0,1)  coordinate (leftR) 
            to[R]           (leftR -| opamp.out)
            to[short,-*]    (leftC -| opamp.out)
   (opamp.+) -- ++ (0,-0.5) node[ground] {};
  • why is there a 0.5 in (opamp.-) to[short,-o] (-2, 0.5) -- why not (opamp.-) to[short,-o] (-2, 0)
    – js bibra
    Commented Apr 15, 2021 at 9:32
  • @jsbibra, oh, after almost four year I forgot my intention. I need to check MWE again, I will do this ASAP.
    – Zarko
    Commented Apr 15, 2021 at 10:00
  • 1
    @jsbibra, thank you very much to point mi to this code line. Your suggestion doesn't gives what is expected, however I must confess, that I do not remember, why I decide to use absolute coordinates, which actually doesn't work well instead to use a better relative coordinates like (opamp.-) to[short, color=red, dashed,-o] ++(-1, 0). See corrected answer (the second example).
    – Zarko
    Commented Apr 15, 2021 at 11:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .