Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More examples of IC based circuits? like IC pin layout, breadboard diagrams #665

Open
goyalyashpal opened this issue Nov 14, 2022 · 21 comments
Assignees
Labels
documentation bug/improvement Wrong or incorrect documentation help wanted

Comments

@goyalyashpal
Copy link
Contributor

goyalyashpal commented Nov 14, 2022

Current:

I want to be able to do:

  • draw IC pin diagrams - quite different task than directly using ICs, example:

    icpl image
  • draw breadboard diagrams, or atleast use a breadboard image, and overlay the CircuitTikz diagram over it, example:
    • filled circle simple:
    • hollow squares:

Background:

  • I don't have any prior experience with Tikz or with CircuiTikz,
  • and I can't get enough time to like fully grasp the gist of things
* however i have read following things (click me)
  • i have read the instructions at following 2-3 times
    • 2.4 Tutorials/a logic circuit
    • 4.23 Flip-Flops
    • 4.25 Chips (Integrated Circuits)
  • i have read the instructions at following 1-2 times
    • 3.2 node-style components
    • 3.3 styling circuits and components
    • all the 3 Tikz tutorials mentioned: 2. Picture for Karl's Student, 13 Specifying coordinates, 17.2 Nodes and their shapes
@Rmano
Copy link
Collaborator

Rmano commented Nov 14, 2022

I'm sorry for your lack of time; probably this is a show-stopper. You can use some graphically oriented program, like for example XCircuit: http://opencircuitdesign.com/xcircuit/ (there is no https available, unfortunately).

If you still want to try with circuitikz: for the first problem (overlaying the circuit on the chip) I have an example that I can post (not now, I have no time --- but you can ask in https://tex.stackexchange.com/questions/tagged/circuitikz (be sure to read the rules and post a minimal example!).

For the second problem you can start from here: https://tex.stackexchange.com/questions/493239/alignment-of-dip-chips-in-circuitikz

I will close this issue now, because as stated in the README:

Please do not use the issue page for generic help on how to use the package. The manual has a (growing) set of examples; also the questions tagged circuitikz on https://tex.stackexchange.com/ are often answered promptly. You can also find help on matrix and on TopTeX.

@Rmano Rmano closed this as completed Nov 14, 2022
@Rmano Rmano added the invalid label Nov 14, 2022
@Rmano Rmano self-assigned this Nov 14, 2022
@Rmano
Copy link
Collaborator

Rmano commented Nov 14, 2022

I found the code, pasting here with no comments...

documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikz}
\usepackage{mathpazo}
\usetikzlibrary{shapes.symbols, backgrounds, fit}
\usepackage{stackengine}
\DeclareSIUnit{\uF}{\micro\farad}
\DeclareSIUnit{\nF}{\nano\farad}
\ctikzsetstyle{romano}
\begin{document}

\begin{tikzpicture}[]
        \draw (0,0) node[dipchip, rotate=90, anchor=pin 8, circuitikz/chips/scale=1.5,
            no topmark, draw only pins={1,2,4,5,7,8}](AD835){}
            (AD835.north) node[above, rotate=90]{\texttt{AD835ANZ}};
        \begin{scope}[on background layer={color=gray}]
            \node [mixer, circuitikz/blocks/scale=0.7](M) at([xshift=-0.3cm]AD835.center) {};
            % 2.25 is 1.5*1.5 (chip scale * NL/2
            \node [muxdemux, muxdemux def={Lh=2.25, NL=3, Rh=0.8, NR=1, w=0.8, NB=1},
                external pins width=0, rotate=-90, anchor=blpin 3](DX)
                at ([yshift=-3mm]AD835.bpin 8){};
            \node [font=\tiny, below=-1mm] at (DX.blpin 3) {$+$};
            \draw (DX.blpin 3) -- (AD835.bpin 8) (DX.blpin 1) -- (AD835.bpin 7);
            \node [font=\tiny, below=-1mm] at (DX.blpin 1) {$-$};
            \node [muxdemux, muxdemux def={Lh=2.25, NL=3, Rh=0.8, NR=1, w=0.8, NB=1},
                external pins width=0, rotate=90, anchor=blpin 1](DY)
                at ([yshift=3mm]AD835.bpin 1){};
            \node [font=\tiny, above=-1mm] at (DY.blpin 1) {$+$};
            \node [font=\tiny, above=-1mm] at (DY.blpin 3) {$-$};
            \draw (DY.blpin 1) -- (AD835.bpin 1) (DY.blpin 3) -- (AD835.bpin 2);
            \node [muxdemux, muxdemux def={Lh=3, NL=3, Rh=1, NR=1, w=1, NB=1}, external pins width=0](A)
                at([xshift=0.7cm]AD835.center) {};
            \draw (DX.brpin 1) -- ++(0,-0.2) -- (M) (DY.brpin 1) -- ++(0,0.2) -- (M) (M.e) -- (A.left)
                (A.right) -| (AD835.bpin 5) (A.bbpin 1) -- ++(0,-0.2) -| (AD835.bpin 4);
        \end{scope}
    \end{tikzpicture}
\end{document}

image

@Rmano
Copy link
Collaborator

Rmano commented Nov 14, 2022

I'll add the previous example to the manual, reopening as a documentation issue.

@Rmano Rmano reopened this Nov 14, 2022
@Rmano Rmano added documentation bug/improvement Wrong or incorrect documentation and removed invalid labels Nov 14, 2022
@goyalyashpal
Copy link
Contributor Author

goyalyashpal commented Nov 14, 2022

For the second problem you can start from here:
https://tex.stackexchange.com/questions/493239/alignment-of-dip-chips-in-circuitikz

... for overlaying the circuit on the chip ...
I found the code, pasting here with no comments...

I'll add the previous example to the manual, reopening as a documentation issue.

wow, thanks a lot for these. this issue was meant as a documentation issue in the first place :cute_wink:

but you can ask in https://tex.stackexchange.com/questions/tagged/circuitikz

  • i tried stackoverflow [herafter called as SO], found that to be pretty outdated:
    8-pinned-ic-using-circuit-tikz - see, the answer doesn't even contain the dipchip part
  • while starting with LaTeX some months ago too, SO was severely lacking the quality and elegance.
  • SO might be good for programming problems, but imo - it's not at all for seriously learning about the typesetting stuff - at least in starting
  • only thing helped me for LaTeX was the wikibook on LaTeX combined with manuals (latex2e, lstlisting, xcolors)

Continued:

  1. any book recommendation for learning Tikz & CircuiTikz?
    (preferably gratis and offline digital copy)
  • As in my humble opinion, books cover things in
    • proper depth - the sweet middle ground between a tutorial and manual, and
    • more width (as in how to properly put stuff together) - than both of these.
  1. update: refer: Discussion issue: Positioning of DIP chips on a breadboard layout #213 (comment)
    [OPTIONAL] any thoughts on why the breadboard component is better not included?

@goyalyashpal
Copy link
Contributor Author

I am making some progress using the example u provided. thanks a lot for that.

do u mind me posting my investigations on that here?

@goyalyashpal
Copy link
Contributor Author

goyalyashpal commented Nov 14, 2022

Investigations:

To-Do:

  • Overlay the circuit on the chip
    done using scope environment from \usetikzlibrary{backgrounds}
  • Offset the pin labels
    to move them either outwards (preferably on the pin pads like in the IC manuals), or atleast off-centering
    update: 4hrs later done using the shared example code 😃 😇
  • Define style
    for specifying the sizes rather than setting globally
    done by referencing some particular example given under 5.5.6 American Voltage Customisation (for specifying the style)
  • Parametrise the code
    to achieve DRY (don't repeat yourself)
    done using Tikz \foreach simultaneous traversal of multiple variables over dedicated lists
  • Abstract the stuff in new command(s) for reusability
    the above parametrisation helped a lot to do it quickly

Current level of Abstraction: 4

  • 1x is for proper pinout naming
  • 2x are general for explainer dipchips: style, numbering/labelling
  • 1x is particular pin layout for quad 2-input gate chips

Update: 2022.12.04
The further abstractions/cleanup/honing of the code are a bit more involving and mostly use concepts from Tikz, so, I will be mentioning those in a new comment: #665 (comment)

Input:

  1. Overlaying the circuit on the chip, on inspecting/isolating the code share above, is done just using the tikzlibrary and scope environment:
\usetikzlibrary{shapes.symbols, backgrounds, fit} % Have not tried to minimize further
...

\begin{tikzpicture}
    ...
    \begin{scope}[on background layer]
        ... <overlaying circuit content goes here>
    \end{scope}
\end{tikzpicture}

@Rmano
Copy link
Collaborator

Rmano commented Nov 14, 2022

Offsetting the pin labels to move them either outwards (preferably on the pin pads like in the IC manuals), or atleast off-centering

Like this?

\documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikz}
\usetikzlibrary{backgrounds}
\begin{document}

\begin{tikzpicture}[]
        \draw (0,0) node[dipchip, rotate=90, anchor=pin 8, circuitikz/chips/scale=1.5,
            circuitikz/multipoles/external pins thickness=2,
            circuitikz/multipoles/external pad fraction=4, hide numbers,
            no topmark, ](AD835){}
            (AD835.north) node[above, rotate=90]{\texttt{AD835ANZ}};
        \foreach \i in {1,...,4} \node[font=\tiny\ttfamily, below] at(AD835.bpin \i){\i};
        \foreach \i in {5,...,8} \node[font=\tiny\ttfamily, above] at(AD835.bpin \i){\i};
        \begin{scope}[on background layer={color=gray}]
            \node [mixer, circuitikz/blocks/scale=0.7](M) at([xshift=-0.3cm]AD835.center) {};
            % 2.25 is 1.5*1.5 (chip scale * NL/2
            \node [muxdemux, muxdemux def={Lh=2.25, NL=3, Rh=0.8, NR=1, w=0.8, NB=1},
                external pins width=0, rotate=-90, anchor=blpin 3](DX)
                at ([yshift=-3mm]AD835.bpin 8){};
            \node [font=\tiny, below=-1mm] at (DX.blpin 3) {$+$};
            \draw (DX.blpin 3) -- (AD835.bpin 8) (DX.blpin 1) -- (AD835.bpin 7);
            \node [font=\tiny, below=-1mm] at (DX.blpin 1) {$-$};
            \node [muxdemux, muxdemux def={Lh=2.25, NL=3, Rh=0.8, NR=1, w=0.8, NB=1},
                external pins width=0, rotate=90, anchor=blpin 1](DY)
                at ([yshift=3mm]AD835.bpin 1){};
            \node [font=\tiny, above=-1mm] at (DY.blpin 1) {$+$};
            \node [font=\tiny, above=-1mm] at (DY.blpin 3) {$-$};
            \draw (DY.blpin 1) -- (AD835.bpin 1) (DY.blpin 3) -- (AD835.bpin 2);
            \node [muxdemux, muxdemux def={Lh=3, NL=3, Rh=1, NR=1, w=1, NB=1}, external pins width=0](A)
                at([xshift=0.7cm]AD835.center) {};
            \draw (DX.brpin 1) -- ++(0,-0.2) -- (M) (DY.brpin 1) -- ++(0,0.2) -- (M) (M.e) -- (A.left)
                (A.right) -| (AD835.bpin 5) (A.bbpin 1) -- ++(0,-0.2) -| (AD835.bpin 4);
        \end{scope}
    \end{tikzpicture}
\end{document}

image

(I reduced the dependencies, too).

any book recommendation for learning Tikz & CircuiTikz?

I learnt by perusing StackExchange and the TikZ manual. About circuitikz, I am pretty sure that the only book existing is the manual (which I heavily authored, but it's not just mine).

@goyalyashpal
Copy link
Contributor Author

goyalyashpal commented Nov 14, 2022

(click me)
Code for drawing the pin layout diagram of IC-74x08:
Update: 2022.12.04: Further modifications to this code will be posted in a new comment after #665 (comment)

% Refer:
% 2.4 A logic circuit
% 4.25 Chips (IC)
% Code shared by @Rmano
% Tikz: 2.20, 88 Repeating Things: For-loops
% 5.5.6 American Voltage Customisation (for specifying the style)
% 

\documentclass[border=10pt]{standalone}
\usepackage{circuitikz}
\usetikzlibrary{backgrounds}

\begin{document}
	
\ctikzset{
	logic ports=ieee,
	logic ports/scale=0.7,
%	ieeestd ports/height=1.5,
}

%% To define following globally, do:
% copy the key without the circuitikz and paste it inside \ctikzset
% Example:
% \ctikzset{ multipoles/thickness=4, }

% Define sizes in icpinlayout style
\tikzset{icpinlayout/.style={% Defaults given in comments
		circuitikz/multipoles/thickness=4, 				 % 2
		circuitikz/multipoles/external pins thickness=2, % 1
		circuitikz/multipoles/dipchip/pin spacing=0.8,	 % 0.4
		circuitikz/multipoles/dipchip/width=2,			 % 1.2
		circuitikz/multipoles/external pad fraction=4,	 % 0
		circuitikz/multipoles/external pins width=0.3,	 % 0.2
		circuitikz/logic ports=ieee, % 
		circuitikz/logic ports/scale=0.4, % 
}}

% Define labelling
\newcommand*{\icpinlayout}[2]{%1 Pins, %2 Label IC number,
	% Draw 14 pin dipchip
	% This has to be the first command
	node[dipchip, rotate=90, num pins=#1, hide numbers, icpinlayout]%
	(ic08){\rotatebox{-90}{\texttt{#2}}};
	
	% Draw Pin Numbers outside the bpin
	\foreach \i in {\inteval{#1/2 + 1},...,#1} \node[font=\scriptsize\ttfamily, above] at(ic08.bpin \i){\i};
	\foreach \i in {1,...,\inteval{#1/2}} \node[font=\scriptsize\ttfamily, below] at(ic08.bpin \i){\i};
	
	% Label VCC & GND
	\node[font=\small\ttfamily, above] at(ic08.pin #1){VCC};
	\node[font=\small\ttfamily, below] at(ic08.pin \inteval{#1/2}){GND};
}

% Define the IC for quad 2-input gates
\newcommand*{\icGateTwoIn}[3]{%1 Label IC number, %2 gate
	% This has to be the first command
	\icpinlayout{14}{#1}
	
	% Define gate here to use the 2nd argument
	\def\gate{#2}
	
	% Begin Overlay Circuit
	\begin{scope}[on background layer={color=gray}]
		
		% Specify the parameters for gate
		% a = in 1, b = in 2, y = out, s = sign
		\foreach \a / \b / \y / \s in {%
			{1/2/3/+},
			{4/5/6/+},
			{9/10/8/-},
			{12/13/11/-}}{%
			
			\draw (ic08.bpin \y) |- ++(-0.1,\s 0.7) 
				node[\gate\space port, anchor=out, icpinlayout](1){};
			\draw (ic08.bpin \b) |- (1.in 2);
			\draw (ic08.bpin \a) |- (1.in 1);
		}
	\end{scope}
	% End Overlay Circuit
} % End IC definition

\begin{tikzpicture}[]
	\draw (0,0) \icGateTwoIn{74x08}{and};
	\draw (0,-5) \icGateTwoIn{74xxx}{xnor};
	% Uncomment following line to verify the optional-ity of icpinlayout style for dipchip and gates
%	\draw (0,-10) node[dipchip, num pins=16](a){} (a.pin 15) node[and port, anchor=in 2, color=green]{};
\end{tikzpicture}

\end{document}
Output Reference

The image preview of output here is scaled down to save space, and deliberately made for ANDs.
Comparing with the reference/target image, it's awesome.


Further thoughts:

Any suggestions (code, implementation, or graphic, or anything else) is welcome

In the previous attempt with parametrization,

  • it required arithmetic on the pin selection (for anchors and such)
  • and i haven't yet figured out how to do arithmetic properly in LaTeX.
  • The \*expr (numpexpr, dimexpr etc) are always shown invalid in horizontal environment lol
  • so, do you know how can i do arithimetic in latex?

PS:

  1. How did you get the output in the image format - like did you convert the pdf into png, or directly output to png? In either case, how (just a brief summary like)?
  2. Remaining major things from my side is just the breadboard, and the alignment of these obtained figures on the page (the need might arise to use it with multi-column layout which i am not familiar with) - but i am positive that i'll figure those things out now 😜

For Inclusion in the documentation as example:

  • if this one seems good to you (i.e. worthy of addition in documentation - examples),
  • then i will be happy to discuss it with you as i am thinking it's scope can be expanded a bit more if it were to be included there like:
    • highlighting one gate (just to showcase that as an example)

@Rmano
Copy link
Collaborator

Rmano commented Nov 15, 2022

I will get back to you with comments as soon as I finish the paper submission I'm in (for not having time, this is quite impressive 😉 on your side).

About the arithmetic, if you show me an example I can help. Often the problem is expandability... You can check \pgfmathsetmacro and/or the new LaTeX3 \fpeval, \inteval...

@goyalyashpal
Copy link
Contributor Author

goyalyashpal commented Nov 15, 2022

for not having time, this is quite impressive 😉 on your side

haha, thanks 😃

for clarification, i meant that - i can not get enough relaxed time to calmly dig through stuff for solutions, and do experiments with their validity and applicability to my use.

Mental Bandwidth or mental processing power would have pro'lly been a better term there instead of just time - but i guess that sounds a bit showoff i guess 😅

@goyalyashpal
Copy link
Contributor Author

goyalyashpal commented Nov 15, 2022

plus, i gotta say, the documentation of Tikz is sometimes a bit - umh - ambiguous or unclear, for example,

  • i understood the difference in the relative coordinates only from CircuitTikz documentation.
  • for \foreach at section "2.21 Adding Text", it felt a bit unclear. And lack of any redirects to the detailed one ("88 Repeating Things") made it worse.

detailed citations/quotes in the hidden comment below:

@goyalyashpal

This comment was marked as off-topic.

@Rmano
Copy link
Collaborator

Rmano commented Nov 15, 2022

I'd love to follow up more, but you got me in a crossfire of deadlines in my job....

Yes, the TikZ manual is somewhat cryptic sometimes, but lately development is quite active so you can PR suggestions.... Once you untangle the source format, that is.

About the PNG conversion: mine are just bitmap copy and paste from okular (or screenshots from evince, when the antialiasing of the first one become unbearable).

Definitely I'd like to add your example to the manual!

@goyalyashpal
Copy link
Contributor Author

goyalyashpal commented Nov 16, 2022

I'd love to follow up more, but you got me in a crossfire of deadlines in my job....

it's okay, take your time to participate in real life.

  • i don't have any problem in communicating with long gaps in between.
  • in fact, when i post some stuff here on github, I generally don't expect any immediate reply.
  • .... my posting just means that yeah, i got some time on this issue, and this is my input on that.
  • so, don't feel any urgency to reply to my posts/comments.

Definitely I'd like to add your example to the manual!

thanks. aweesome.
just for records, there's some more cleanup which i wish to do in this example
update: done - most notably, defining the sizes in some style so that this specification of sizes is optional, rather than being forced onto; so that this can be used flexibly with normal dipchips too

@Rmano
Copy link
Collaborator

Rmano commented Nov 16, 2022

Definitely I'd like to add your example to the manual!

thanks. awesome.

...or if you want and you are in the mood, you can even do it as an "advanced tutorial". Whatever you prefer. I can just take the code (and attribution --- please tell me exactly how you'd like to be cited) and add to the examples, or wait for a PR on your side.

@goyalyashpal
Copy link
Contributor Author

LaTeX3 \fpeval, \inteval
- #665 (comment)

wow, they worked out of the box: \inteval{#1/2} , i thought it would require some additional settings to use LaTeX3

@goyalyashpal
Copy link
Contributor Author

goyalyashpal commented Dec 4, 2022

Status tracking for further and more involved abstractions/cleanups per the remark mentioned at comment: #665 (comment)

  • Inside/Outside positioning : [Feature] Having relative anchors for chips will help a lot in many cases #672
    done using partitioning by coordinate calculation
  • [MAJOR] Complete Rewrite with abstracting/defining the code as node or pic rather than as a LaTeX \newcommand. This will:
    • make some planned abstractions possible which couldn't be done using the LaTeX \newcommand
    • possibly be much more portable/usable with other *TeX engines too
    • make the use of the calling command fit with rest of the code (both aesthatically, and also functionally) for these diagrams
    • make it more elegant as TikZ commands are obviously much more suited for this task
  • keyword: "new shape"

@goyalyashpal
Copy link
Contributor Author

goyalyashpal commented Dec 19, 2022

I have gathered quite a lot of good points on tackling a good amount of logic symbols.

'am very excited to put them in a tutorial. however, have exams at hand at the moment which will continue uptill 1 month at least. will do it thereafter.

@goyalyashpal
Copy link
Contributor Author

just for records, i was thinking about TikZ styled tutorial - the walkthrough in a third person story type. it allows incorporating various "loose" tips and "reason behinds" as well.

but i was a bit unsure about how deep it will be, as i was thinking of starting from start, so before section 2.1 a current shunt (of Circuitikz tutorials), but its body will not touch much the contents of sections 2.1 to 2.3 transistor based amplifier, but then it will contain much more depth content than section 2.4 A logic circuit

the thing i am wondering about is how we will communicate regarding the order - ideation will require more commits, which will require cleanup. but i just know how to commit - that's pretty much all i know in git.

so, when we get to it, will you handle the commit cleanup part? the rebase / squash commit etc 😅 as i don't want to pollute the commit history...


anyways, that's enough rambling for now 😅 , i just wanted to put these thoughts out here

@Rmano
Copy link
Collaborator

Rmano commented Dec 19, 2022

so, when we get to it, will you handle the commit cleanup part? the rebase / squash commit etc sweat_smile as i don't want to pollute the commit history...

Yes, I can help --- as long as you do the changes on you branch, you can even reorganize it and force push --- until the thing is merged, no harm is done (I force push quite a lot when I am developing, you can see that). I am not a git-uber-user too, I just do the basic things (the interactive rebase is the best tool ever), especially if you want to "follow" the development.

One suggestion: you can develop it in a separate file --- I do the same when preparing part of the manual. You can add a file in your clone with the following content:

documentclass[]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[siunitx, RPvoltages]{circuitikz}
\usepackage{ctikzmanutils}

\makeatletter
\makeatother

\begin{document}
\section{Dummy sec}
\subsection{Dummy subsec}
\subsubsection{Dummy subsubsec}

\begin{groupdesc}
    \circuitdesc*{bnc}{BNC connector}{}(left/135/0.6, right/45/0.6, center/-45/0.6, hot/0/0.6, zero/-135/0.6, shield/-90/0.4)
    \circuitdescbip[cuteopenswitch]{cute open switch}{Cute open switch}{cosw}(out/45/0.2)[out.s/-90/0.2]
\end{groupdesc}

\geolrcoord{bnc}

\begin{lstlisting}[varwidth=true]
    A one
    B two
    C three
\end{lstlisting}

\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
\begin{circuitikz}[european]
    \draw (0,3) node[nand port](A){}
        (A.out) to[short, *-o] ++(0.5,0);
\end{circuitikz}
\end{LTXexample}

\end{document}

which load the same setup used in the manual, and then merge it when it is more or less finished in the main circuitikzmanual.tex.

Anyway, I will help with git if I am able to ;-)

@Rmano
Copy link
Collaborator

Rmano commented Apr 26, 2024

Hi @goyalyashpal, @gro1m --- I was thinking about all this, especially after seeing #784. While I think that adding a background image to a generic chip (like I implemented for muxdemuxes) could be a nice thing¹ for specific circuits, I now think that the full-fledged breadboard thing is quite out-of-scope for the package.

On the other hand, a package that extends TikZ for that specific usage would be a great thing. I do not know how much of the internals of circuitikz it would need (I hope very little), but I am willing to add interfaces where and when needed for the new package. Another advantage of a separate package is that, if the author(s) is(are) willing so, it can be made just LaTeX-specific, and so it could use the power of the latex3 programming layer, a thing that I can't do in circuitikz because it must be usable also in ConTeXt (or at least, it should).

Notes:

¹ really, it should be improved to be able to use generic, high-level tikz code for the drawings that can use the anchors of the component. Moreover, it should be added to chips. Again, I have little time on my hands now, and I am not sure on how to do it (tikzpictures can't be nested...).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation bug/improvement Wrong or incorrect documentation help wanted
Projects
None yet
Development

No branches or pull requests

2 participants