Show HN: CircuitLab, an in-browser schematic editor and circuit simulator
circuitlab.com
circuitlab.com
If you look at any electronics forum online, it's normal to see scanned hand-drawn schematics, or static screenshots from various desktop tools. There's no reason why we shouldn't instead be sharing useful URLs that enable editing and simulation. If someone uses CircuitLab and posts a public URL, they enable the entire community to easily open their circuit, make a few changes, simulate / iterate, and share the new version.
Looking forward to hearing your feedback!
Here's a "big" analog circuit:
https://www.circuitlab.com/circuit/fby849/bjt-cascoded-activ...
10 BJTs, and an op-amp, all in a highly-coupled, high-gain loop. If you open this one and run the time-domain simulation with the saved settings as-is, it takes my laptop a good 23 seconds to crank through 80 time points. However, that circuit generates somewhere around ~700 highly non-linear simultaneous equations that need to get solved at every timestep.
We are certainly performance-limited right now by not running closer to the hardware, but if simulation performance turns out to be a key bottleneck/feature, we'd look at things like Google's Native Client.
I briefly considered doing something like this myself, there are some interesting ways to monetize this if you manage to become the web circuit designer/simulator.
Some things you might want to consider:
* be more Mac friendly -- backspace instead of delete, Cmd instead of Ctrl on Macs
* It feels unnatural that I have to press a button on the menu to enter a placement mode. Something like drag and drop might be more natural.
* There's no obvious way to delete stuff with the mouse
Your mileage may vary though, just me 3 cents. Other than that, looking pretty good. Good luck!No tips really. We have several subdirectory builds with independent Makefiles which all get catted together (as we started long before the v1.2.0 join option). Many thanks!
Wires seem to remain in the same place as components move. I'd love to see wires that connect two components and whose ends follow those components as they move.
Typo on several elements: s/contolled/controlled/
The zoom widget doesn't seem to let me set a precise zoom level. If I zoom around a bit, then type "100%" and hit enter, I end up with 96%. Also, you might consider providing some standard zoom shortcuts, such as "100%" and "fit to circuit".
I'd really like to have keyboard shortcuts to quickly switch between components; perhaps some kind of search-based mechanism, where I can hit a key to bring up a search box, type a few letters to get to a component, hit enter, and have that component selected.
How can I "export" a schematic to some useful standard format (other than a read-only PDF)? (In particular, a netlist, or something usable as an initial input to a PCB tool?)
I'd love to have the ability to save a circuit with named nodes as a "part", which I can then use as an IC-like component in other circuits, hiding the details of that circuit normally but drilling down into it if desired. Ideally, this would support versions of individual parts, making it easy to upgrade a circuit using a previous version of a part to a new version. Also, ideally the part could have parameters of its own, and use those parameters to assign parameters to its own components.
Any plans for collaborative editing and "team" repositories?
Do you have any plans to support more of the EDA workflow? For instance, a decent PCB layout tool? This seems like a great opportunity for a future business model: find one or more good board fabrication companies willing to do small-run work, and work with them to provide an easy way to go from CircuitLab to a built board.
Yes, wires do currently stick to the grid, not to the elements. I wouldn't mind having some mode where they do stick to the elements to make parts a bit easier to move around.
Nestable subcircuits (named nodes as a "part") is on the long-term roadmap, but it's a big feature -- it'll take some time.
As far as collaborative editing, team workspaces, netlist export, PCB layout: we're thinking about all of them, and will just have to see where the users take us!