Fritzing gets the bends

bended wires

This is a screen shot from the Curvy Parking Assistant example sketch that comes with Fritzing 0.6.3.

What’s new is:

  • wires can be curved, or can be straight and have bendpoints, or both
  • many parts--such as resistors, capacitors, LEDs, and transistors--now have rubberband legs
  • rubberband legs can be curved, or can be straight and have bendpoints, or both

These features are only available in breadboard view. The rest of this post will explain how to use them.

Wires Let’s start with wires.  As before, you can drag on each end of a wire, and it will stretch along with your mouse. You can drag out a bendpoint simply by mousing down somewhere on the middle of the wire and dragging.  Or you can add a new bendpoint by double-clicking somewhere in the middle of the wire, or right-clicking to bring up the context menu, and selecting the appropriate option.  To delete a bendpoint you can double-click it, or right-click to bring up the context menu.

Adding a curve to a wire is like dragging out a new bendpoint, except that you hold the control key down (Mac: command key down).  How the curve bends depends upon where on the curve you drag it.  To be specific, these are Bézier curves, which means that the curves are influenced by four points: the two endpoints, and two “control points”.  As you drag on a curve, Fritzing will display the control points to give you a better sense of what’s happening.   The image below is an example.

bezier

There is one control point at the end of the grey line and another control point at the end of the white line.  Since you can only affect one control point at a time, the white line shows which one is active–in this case the point controlling the lower bend.  The next image is the same curve, but now after mousing up from the lower bend and mousing down again and dragging the upper bend.

bezier2

By the way, if you prefer curvy wires to straight ones, you can set that as the default in Preferences.  So in that case, the normal drag behavior would produce curves, and to make a bendpoint, you would hold down the control key (Mac: command key).

Rubberband legs A rubberband leg acts a lot like a wire with only one available end.  If you have a part with rubberband legs, each leg can be manipulated independently of the others.  Just as with a wire you can:

  • drag the end of the leg to connect it to a distant connector
  • drag out a new bendpoint
  • create a new bendpoint by double-clicking or right-clicking and choosing a context menu option
  • delete a bendpoint by double-clicking or choosing a context menu option
  • drag out a curve by holding down the control key (Mac: command key) as you drag

Another feature of rubberband legs is that it is possible to move the body of a part without disconnecting its legs.  For example, say you’ve dropped an LED onto a breadboard, and you want to change the position of the LED but leave it connected.  In this case, hold down the alt key (Linux: meta key) as you drag the part.  The legs will rubberband, staying attached to the breadboard as you drag the part body.

If you want to connect a rubberband leg to another part using a wire, then when you drag on the end of the leg, hold down the alt key (Linux: meta key).

That’s the rundown.

Enjoy,

– the Fritzing team

Fritzing Fab is finally here!

Fritzing Fab

Even though it didn’t take us as long as DNF, we are aware that we were a bit optimistic with our previous announcements. But now it’s finally here: Fritzing Fab is open for business!

You can now go to fab.fritzing.org and order a PCB directly from your Fritzing sketch. (Just use your Fritzing.org account to log in.)

We hope that you are pleased with how easy the process is. No long lists of parameters – no worries. The prices are very low, too, and the more you order the cheaper it gets.

This new video should also give you a taste how quickly you can turn your breadboard sketch into a sweet custom PCB:

With the opening of Fab we have now come full circle. When you look closely at the photo above, you can see that it is the realization of the original vision sketch that you can still find on our front page. :)

Why did it take us so long? Besides some technical issues, this is a bit of a risky undertaking for an open-source project like us. Because PCB production is only efficient when producing large quantities, this will only work when enough people are ordering. As with the starter kits, all profit goes back into the further development of Fritzing.

So let’s keep the fingers crossed and give Fab a try.

Comments from the old blog:

  1. isnoop #2. Aug. 2011, 19:26This is excellent! I can't wait to use it in the coming months.
  2. Jürgen B #7. Aug. 2011, 20:03Hi, sorry, have i understand it right? An PCB with 100 x 160 mm will cost about 80,- Euro? I can not believe :-( I think, it will be much to expensive :-( Bey Juergen :-( https://www.loetseite.de
  3. André Knörig #9. Aug. 2011, 15:37Hi Jürgen, remember that this is the price for a single, individual PCB. And even though we are really small, this is actually still cheaper than the best known pooling PCB service in Europe -- and the profit goes back into Fritzing. We'd be happy to learn how to offer an even less expensive service, while still delivering the same quality.
  4. darius #7. Okt. 2011, 13:14I read in the FAQ, that you might accept Gerber or eagle files at some point if enough interest raises. Is there a specific place where I can cast my vote for this?
  5. André Knörig #23. Okt. 2011, 09:54Hi Darius, You just did. :)

Fritzing 0.6 released!

Fritzing v0.6

Introducing the new Fritzing version 0.6 (actually 0.6.2 by the time of writing). With thanks to all the people who purchased Fritzing Starter Kits, plus our donors, and SparkFun, we added several major new features:

  • Support for SMD parts - You can now use those really tiny "Surface Mount" parts to make your PCB designs much smaller. In the parts inspector, you can simply change the 'package' of almost any part to 'SMD'.
  • SparkFun parts library - With SparkFun's generous assistance, we were able to bring a new bin of 74 SparkFun products to Fritzing! You can find them by clicking the little folder icon under the parts bin, and then Open > SparkFun.
  • Support for Stripboards - Not everyone works with breadboards, so by popular demand we added stripboards and perfboards. You can even cut and uncut strips! You can find the new boards right next to the breadboard, in our newly cleaned-up core parts bin.

We will discuss these features individually in future blog posts, but if they aren’t enough to whet your appetite, then have a look at our long list of new features, including a cleaned-up parts inspector, a document frame for schematics, text and graphics on copper, etc.

Plus we fixed a ton of bugs.

Download it here. Hope you like it!

– the Fritzing team

Comments from the old Blog

  1. Bret Comnes # 27. Juli 2011, 05:39 Wow, its like EagleCAD, but usable and free. Thanks!
  2. alkopop79 # 15. Aug. 2011, 13:03 It's everything I wanted: SMD and etchable mirrored export! Thanks!

A question for our ubuntu users

Hi Ubuntu-person,

We have been building our linux binary releases on Ubuntu 8.04.4 LTS.  Is it time for us to move to 10.04 LTS instead?  Please let us know–particularly if you still prefer 8.04.4–by adding a comment to this post.

Cheers.

  • j

Comments from the old Blog:

  1. isnoop #1. Juni 2011, 04:22I'm all in favor for 10.04 and any other LTS as soon as the community accepts it.
  2. bweber #2. Juni 2011, 03:48So far I'm running fine in 11.04. Thank you for all the work on this software!
  3. jestin #10. Juni 2011, 20:21Most Ubuntu users who bother do design their own circuits are likely to be running the latest, or the second latest release (I'm still on 10.10). And by release, I mean regular releases, not necessarily the LTS release. I would recommend building on the latest, regardless of whether it's LTS or not. Thanks for the great software.
  4. tmberthold #11. Juni 2011, 23:05because it is free, there is no motivation NOT to upgrade Ubuntu when a new version comes out. In fact, every new Ubuntu version seems to use less RAM and disk space, plus has newer versions of software. So I think many people will use the latest versions of Ubuntu, and I vote for moving to version 10.04. Thank you for your great software!
  5. cqexbesd #13. Juni 2011, 10:10A common practice (in my limited experience), when it comes to internal support for Ubuntu in large organisations, is they support the last LTS and on a best effort basis, the most recent release, LTS or otherwise. You may have no wish to support 2 releases in which case I'd say go for the most recent LTS only. It will be easier for users on a newer release to run something build for the previous LTS than if things were reversed.
  6. inizul #17. Juni 2011, 23:56I vote for moving to version 10.04 Thank you for this great software!
  7. Angus Pearson #23. Juni 2011, 00:17If you must use 10.04, but 10.10 is great, although at the moment Unity and 11.04 haven't got my respect (Especially as it didn't work with my desktop cube!!!). But thanks for the great work, and go for the 10.04 LTS.
  8. Entropicus #23. Juni 2011, 22:01When you install software for circuit design, most likely your interest is more in applications than in the operating system itself. As long as your applications run nicely, you wish stability in the background OS. For this kind of person, Long Term System version is best. However, I have seen more software development oriented people like the ultimate version, a never ending story about making programs to fit the new one. I balance between renew and stability, is the latest LTS. Honestly, I expected you already had a Fritzing version for 10.04, because an Ubuntu user rarely had any reason for not upgrade a LTS version (it took five years its development).
  9. Chris Bristol #19. Juli 2011, 01:48I agree with the majority that an LTS version is best. I've been using 11.04LTS without any problems so would vote for that.
  10. LightScape66 #20. Juli 2011, 12:14@Angus: 11.04 will also use Gnome if you configure it. I don't like Unity, too! Unity may be okay for beginners, but experienced users and those, who will use a lots of applications may prefer Gnome 2.x.
  11. Jonathan Cohen #22. Juli 2011, 18:00Hi, As you probably know, the binary release for Fritzing 0.6 was built using 10.04.2 LTS. Cheers, - j

A new autorouter

At last, a new release of Fritzing.  Sorry it’s been such a long time since the last one–partly this is because there is no full time Fritzing staff (we all have to work for a living), and partly because I had the mistaken notion that I knew a fast way to implement an autorouter.  But let’s go straight to the before-and-after:

autorouter compared

The spiders-on-drugs image on the left is from Fritzing 0.4.3; the image on the right is from Fritzing 0.5.0, and they are each the result of autorouting the barebones arduino example.  The one on the left took 30 seconds on a 2.80 GHz dual-core laptop, the one on the right took 3  seconds (yes, on the same machine). This video might make the difference clearer:

Why should I care?

If you are still gamely reading at this point, and don’t know what an autorouter is, I commend your courage, and will now attempt a definition.  Once you’ve placed your parts and wired them up in breadboard view or schematic view, and you’re ready to make a pcb, you’re faced with a new task.  This task is to draw out or route the electrical circuit–the connections between parts–in copper on your pcb.  The orange-colored lines in the above images represent copper routes (also known as traces) on a pcb (green), where the white shapes represent the outlines of parts. Routing can be done by hand, but it can be tedious and tricky (though some people find it enjoyable, like doing a puzzle).  An autorouter is a piece of software than can do the routing task for you, and some routers are very sophisticated–able to handle millions of connections.  Fritzing’s new router is not the brightest star in the galaxy, but as you can see from the two images, the new router is not so dim a bulb as the old one.

Some background

Here are the details on the new router:

  • It's a "manhattan" router--all new traces will be drawn at 90 degree angles.  If you draw your own non-manhattan traces, the router will respect them, but you will probably make the routing job more difficult.
  • It only takes a finite (and usually short) time for the router to determine whether it can trace a path between two points (no more waiting for endless futile line-probes).
  • DRC (overlap checking) comes for free, giving clear feedback about what's overlapping, so the old crazy DRC code has been replaced.
  • There is a rudimentary rip-up-and-reroute feature, meaning that if the router can't successfully route the whole board, it will automatically try routing again with a different ordering of connector pairs.  This is usually quite speedy, and you can limit the number of retries: the router will keep the best result.
  • As before, when drawing a trace fails, the router will attempt to place a jumper.  The new router's jumper placement code is much improved over the 0.4.3 code.
  • The router does not guarantee a shortest path when routing between two points.

The new router–like the rest of Fritzing–is a work in progress. You will probably have to do some tidying up after it runs.  However, it’s already such an improvement over the previous that we decided not to wait any longer to release it. Here’s what’s still on the to-do list:

  • Placing vias in double-sided routing.
  • More intelligent rip-up-and-reroute strategy.
  • More intelligent overall routing strategy.
  • It misses some routes that it should find.
  • Some traces violate DRC.
  • Running the same autoroute twice in a row won't necessarily give the same result.

Despite the to-do list, we think you’ll be pleased.

Cheers,

  • j

PS.  For those of you interested in the technical details, the new router uses a “tiled” data-structure.  The technique was invented by John Ousterhout, and in fact Fritzing uses a modified version of the basic corner-stitching code from Ousterhout’s Magic VLSI Layout Tool. I’ve also incorporated ideas for improvements from a paper describing the Contour router and from another paper describing an ECO router.

In general, tile-routers are more complex than maze-routers, but I felt that a tile-based approach was suited to Fritzing because we don’t enforce a grid.  It was also much easier to get my head around tiles than steiner-tree approaches (see a random sample of the latter).  In theory, tile-based routers scale up better than maze routers because the number of tiles doesn’t expand so quickly as the working area increases (on the other hand, maze routers do guarantee a shortest path between connections).  You also get some freebies with tile routers: the DRC and jumper and via placement are all variations on the same underlying code.