Know of any Win7 32-bit digital timing diagram drawing software(solved) - Page 1
Forum section: electronics / general

author: SuzyC
author_rank: Frequent Contributor
timestamp: July 15, 2022, 12:00:58 pm
content: When trying to code a protocol to transfer data between mcus without a good timing diagram, all my robots go 'round in circles and fall down.I just wanna draw a digital timing diagram showing the states of several digital/analog/IRQ pins simultaneously.I have heard of some free software from instrument manufacturers, but does anyone know where to download any waveform timing drawing programs used with control and measuring instruments?Have you found an easy freeware program that works on 32-bit Windows 7 or XP to draw a timing diagram showing simultaneous I/O pins on a MCU?Mu best solution to date is a mechanical pencil, printer paper, a ruler and an eraser and my mechanical pencil just ran out of lead.I've tried Windows PowerPoint but it took me over two hours to draw about three changes of 5 pins. Also tried several common Win drawing programs but they are exceedingly clumsy doing this task.I have downloaded WaveMe but only runs on 64-bit Win 10.

author: bob1033
author_rank: Contributor
timestamp: July 15, 2022, 12:25:32 pm
content: Maybe check out WaveDrom (https://wavedrom.com/). It's a simple JavaScript program I've used to draw digital timing diagrams for documentation. You should be able to get it to work with anything with modern browser support.

author: SuzyC
author_rank: Frequent Contributor
timestamp: July 15, 2022, 12:33:22 pm
content: Bob103..I took a quick look and it has a real problem as it is intended to clearly draw (with very complicated syntax) a known timing diagram. To use this tool, I must start with an already precised timing diagram.I need sketch out my mental chaos, to sketch ideas, to try to draw timing diagrams that will help me see and develop and understand clearly the interaction between pins and events that I have not yet precised in my simple mind.Um, in other words, I don't know what I am doing until I can can first try to draw a possible solution for my signal timings and figure things out.I need something that allows to draw lines that show transitions between states of I/O/analog pins/IRQ states.I need to just to draw lines that are showing all the actors interacting.

author: Bassman59
author_rank: Super Contributor
timestamp: July 15, 2022, 05:39:52 pm
content: I've looked for timing diagram-drawing software for many years, and they're all painful to use in one way or another.Nothing beats good ol' quadrille paper and a sharp pencil.

author: jpanhalt
author_rank: Super Contributor
timestamp: July 15, 2022, 07:37:11 pm
content: Interesting, the few times I have drawn them, I just use my 2D CAD program (Graphite from Ashlar-Vellum -- it's very old). It exports easily in dxf and is my goto for geometry critical stuff with Eagle.Easy to offset lines, join groups, offset, etc. You don't need 3D nor the headache of Solidworks. If there are any 2D programs still available, I would look there.

author: TimFox
author_rank: Super Contributor
timestamp: July 15, 2022, 08:21:02 pm
content: As a kluge, one of my co-workers used Microsoft Project (with a huge mental re-calibration of the time scale) to look for race states in timing diagrams.

author: SuzyC
author_rank: Frequent Contributor
timestamp: July 16, 2022, 04:22:59 am
content: Works well, easy to do. See the chart I made in a few minutes after watching youtube vid.

author: jpanhalt
author_rank: Super Contributor
timestamp: July 16, 2022, 10:20:07 am
content: That's nice and is similar to doing it with the 2D program I mentioned. The data fills with CAD will look slightly different as the entire space will be filled rather than just a rectangle. I think filling the entire space is more common (Capture_vc6).It can also be done in Eagle (maybe KiCad and others too). Data fill is done with the polygon tool. Color/style choices are much more limited in Eagle (Capture_EAGLE). Eagle took about 3x as long as the 2D CAD program took to do. Most of that was data fill time. Dotted vertical lines are also possible in EAGLE. I just forgot to add them.I use Eagle 7.2/7.4, but would recommend using a regular, simple 2D CAD program instead. (The timing diagrams are only meant to show geometries, not realistic timings.)

author: Nominal Animal
author_rank: Super Contributor
timestamp: July 16, 2022, 05:30:14 pm
content: I often useInkscapefor such diagrams, although I have used LibreOffice Calc in a similar manner (OpenOffice/LibreOffice equivalent of Excel).When one starts a new document in Inkscape,File>Document Propertiesopens a dialog one can adjust the size, units, etc; and in itsGridstab, one can create either a rectangular or axonometric (triangular, typically) grid of desired size. Something like 0.1" or 2mm grid is often nice; do note theGrid unitsselection, as it is separate from default units (in thePagetab).The Snap controls bar,View>Show/Hide>Snap Controls Bar, contains buttons to show or hide the grid (also keyboard#), and whether snapping to the grid is enabled or not (also keyboard%). It is especially nice that when it does snap, it shows you a tooltip with the reason what and where it snapped (for example,Cusp node to grid intersection).I have also used plain text with a fixed-width font with Unicode Arrows set (↑↓↕↗↘↥↧↨↱↳⇅⇵⇈⇊⇑⇓⇕⇗⇘) for transitions and Block Elements set (▕ ▁ ▂ ▃ ▄ ▅ ▆ ▇ █ ▔ ▏) for states, and Box Drawing for boxes, registers and such, but unfortunately Unicode does not contain a full set of suitable glyphs for state diagrams. That said, one could useBirdfontorFontForgeto add such glyphs to Unicode Private User Area (U+E000 through U+F8FF), to for exampleDejaVu Sans Mono(see itslicensethat expressly permits this). As a programmer, I personally like to use a plain text editor for this, so all I'd need to do is include the font file with by Unicode plain text documentation files.

author: Nominal Animal
author_rank: Super Contributor
timestamp: July 16, 2022, 08:45:37 pm
content: You know, likedis. This works in any plain text editor, but only if you have the attached DejaVu Sans MonoCustomfont installed.This is the same as DejaVu Sans Mono (v.2.37), but has those 25 new glyphs as Private Use Area Unicode characters. DejaVu Sans Mono is not a particularly stellar monospace font, but it is okay.The Zip file contains both FontForge source (.sfd), and the resulting TrueType font (DejaVuSansMonoCustom.ttf). Just throw the latter to your Fonts folder, and you got the new "DejaVu Sans Mono Custom" or "DejaVu Sans Mono Custom, Book" font, depending on how your system shows the font names.The license is inDejaVuSansMonoCustomLicense.html; it is very permissive.You can open theDejaVuSansMonoCustom.htmlfrom the zip in your browser, so you can copy-paste the glyphs (Unicode code points U+E390 through U+E3DE, in Unicode Private Use Area), if you don't have a Character Map or Glyph Browser tool to easily pick Unicode glyphs.

author: Silenos
author_rank: Regular Contributor
timestamp: July 17, 2022, 02:18:32 pm
content: LaTeX, the obvious and only real solution!http://mirrors.ibiblio.org/CTAN/graphics/pgf/contrib/tikz-timing/tikz-timing.pdfAnd it runs on everything.

author: SiliconWizard
author_rank: Super Contributor
timestamp: July 17, 2022, 06:29:06 pm
content: Quote from: Silenos on July 17, 2022, 02:18:32 pmYes

author: Nominal Animal
author_rank: Super Contributor
timestamp: July 18, 2022, 06:47:53 am
content: If writing LaTeX scares oneself,Lyxis a nice editor for LaTeX for a gentler learning curve. It is notexactlywhat-you-see-is-what-you-get, but close to it; like Word with paragraph marks etc. enabled and not the preview mode. It is designed to help those writing peer-reviewed articles, so there may be some quirks that can feel odd otherwise.Essentially, LaTeX is a markup language like HTML, Markdown, BBCode (what you use when you post here), and so on. The source code is plain text, just like those others, and is therefore very well suited to be included in your project sources. (It is ridiculously stable, and because of its use in scientific writing, you can expect it to be re-renderable in future decades just as well as it is now.)Just like browsers render HTML, LaTeX editors and typesetters render LaTeX. See the exampleat Wikipedia; the format is really logical. The rendered output is usually also saved as PDF, and therefore viewable in any PDF viewer (including browsers, since web browsers nowadays tend to include a built-in PDF renderer). But note that the PDF is the result, and conversion back to original LaTeX is hard/impossible; you'll definitely want to keep the original plain-text LaTeX sources.You can render the LaTeX also into HTML, with the non-text parts rendered as SVG (a vector-based, fully scalable format also supported by all browsers). If you look atmy home page, my mascot, Tux, is an SVG image; so, it's a quite good vector format, really good for this. Depending on the settings, it will look very much like the PDF output does.TikZ-timing is a package in LaTeX (\usepackage{tikz-timing}), that providesmacros– language functions – to produce the timing graphics. (There are also other macro packages for drawing circuits, for example.) It is based onPGF/TikZpair of languages for vector graphics using human-readable plain text algebraic/geometric descriptions. There is alsotikz-circuits.logicfor logic circuits andtikz-circuits.eefor circuit diagrams. There are even tools that can convert your Matlab/Octave diagrams into TikZ, so you can embed them in the plain-text LaTeX document (without relying on embedding the diagram as an external file into the rendered document).All this means that if you do want to document your electronics and/or embedded projects, LaTeX is actually a very good choice. There are some nice tools you can pick from, on any OS you might wish to use, and they are all compatible with each other. Because its source is plain text, it co-operatesexcellentlywith source code and version management utilities likegit: they can pinpoint the exact changes between different versions.(If this sounds like a sales pitch, it's just because I myself just realized the above. I haven't written any LaTeX in a couple of years, and had completely forgotten all about its non-physics/math uses, and only now realized how useful it isfor myselffor documenting my embedded and circuit ideas. In my own case, I like to use a plain text editor with syntax highlighting, and a separate renderer; it is only a matter of running a single command to have a renderer watch a LaTeX file and whenever I save it, it'll re-render and redisplay the updated file in a fraction of a second. Others like to use an editor like LyX or Overleaf –– there are even add-ons for various browsers (including Microsoft Edge) to use the browser itself as a LaTeX editor, or to render LaTeX used in Github, Discord, etc. Right now I'm simulating a couple of interesting LED driver circuits using ngspice, and using LaTeX to document those, including any math stuff I might wish to remember (like effective pulse width as a function of PWM pulse width), seems like the easiest option.)

author: jpanhalt
author_rank: Super Contributor
timestamp: July 18, 2022, 10:42:31 am
content: What tags does one use here (EEVBlog) to insert LaTeX? I had to use an image in the past.

author: Nominal Animal
author_rank: Super Contributor
timestamp: July 18, 2022, 11:19:07 am
content: Quote from: jpanhalt on July 18, 2022, 10:42:31 amFor inline, put between\$and\$; for block, put between$$and$$. It uses MathJax.For example,a = \frac{b}{c} e^frenders inline as \$a = \frac{b}{c} e^f\$and $$a = \frac{b}{c} e^f$$as a block. Neither works in preview, though, and at least right now, MathJax does not support PGF/Tikz, only the math subset of LaTeX, I think.

author: jpanhalt
author_rank: Super Contributor
timestamp: July 18, 2022, 11:43:04 am
content: Got it. Thanks.\$a = \frac{b}{c} e^f\$