Experimental program window

The latest release of Fritzing (0.4.0) has a surprise new experimental feature: a programming window.   It’s intended to be a place to type your script for downloading to a microcontroller, and then actually download it.   It’s not intended to replace your usual microcontroller programming environment.  Rather, it’s meant to be a lightweight alternative, particularly useful for novices, workshops, and classrooms.  It’s also a nice way to keep both your sketch and script files together.

At the moment, Fritzing only fully supports the PICAXE microcontroller, and only on the Windows platform.  While there is support for typing in Ardiuno programs, we do not yet handle the download part (and that may have to wait for the release of Arduino 1.0).1

There is one programming window per sketch, but a programming window can have multiple tabs.   The reason for multiple tabs is that we imagine you might want to play with slightly different versions of the same script until you hone in on one.

Aside from the standard file and edit commands, there are four steps you need to perform.

  • First, choose the microcontroller language for your script.  Right now there are two choices, Arduino and PICAXE.2  Once you choose a language, you will notice that the script you're working on is highlighted according to that language, and also that you can only save or load files with the appropriate extension.
  • Second, select a serial port.  First plug in your microcontroller into your USB port.  This should create a new USB serial port for that device, which should now be listed when you click on the port combo box.
  • Third, select a programmer (i.e. the executable which will compile and download your script).   Fritzing does not install these programs for you, you have to do it yourself.
  • Fourth, hit the program button.  Feedback from the programmer should be displayed in the console area on the bottom of the programming window.

Here’s an image.  As usual, we will be refining the implementation and UI in future releases.

programming window

A couple of acknowledgements. This work was partly sponsored by PICAXE (grateful thanks to Clive).  And thanks to Bryant–our first new major code contributor–for co-implementing this feature.

That’s it, happy programming.


1. For the technically minded, here is the explanation: right now there’s not a simple way to invoke the Arduino compiler and downloader via shell command(s).  This feature is slated for Arduino 1.0.

2. There are two requirements for adding a new language to the programming window.  First, to enable syntax highlighting, Fritzing implements a subset of Kate Highlighting XML. So a new Kate Highlighting XML file has to be provided for each new microcontroller language.  You can find the current set of highlighting files in your Fritzing installation folder, in the …/translations/syntax folder.  The second requirement is to find a compiler/downloader for the microcontroller that can be accessed via shell commands.

 

Double-sided boards!

One of the biggest and earliest requests for Fritzing was for it to handle double-sided (i.e. two-layer) boards.  For those who don’t know, a two-layer board means you can route traces between connections on both the front and the back sides of the board, so compared to single-layer boards, this can save hand-wiring after etching, and the board will be more reliable.

We are pleased to announce that double-sided boards are supported in latest release of Fritzing (0.4.0).  We tried to build in the minimal necessary functionality, and we’d like to hear your feedback about what’s still missing (and what’s buggy–we made a lot of changes from 0.3.19).  For example, though Fritzing 0.4.0 supports wiring on both sides, it only supports adding parts to the top1 (which is what you do currently).  If there’s a big demand for adding parts to the bottom, we will include this in a later release.

From a UI point-of-view, Fritzing is much the same.  In fact, to work with single-sided boards, there is no change at all: just run Fritzing as usual. Your old sketches and parts will be fine.  To switch into two-sided mode, go into PCB View, select your board, and in the Inspector palette, select “double-sided” in the combo box labeled “layers”.  If you’re already working on a project and want to switch it to double-sided, don’t worry: changing the number of layers from 1 to 2 will not affect any connections2.

Inspector

Figure 1. Using the inspector to change the number of board layers

The way Fritzing models it, in PCB View you’re looking down at the top of the board.  Through-hole parts (i.e. most of the parts that are currently in the parts bin), are shoved down through the board, and normally they’re soldered and wired on the other side: on the bottom layer.  But now it’s also possible to wire them from the top.  Therefore, connectors and traces now exist on both sides of the board. You will notice that traces and connectors drawn on the bottom are slightly darker than traces and connectors drawn on the top.

wire colors Figure 2. Wires on top and bottom layers.

Normally, both top and bottom layers are active, so if you draw a trace between connectors, you will most likely draw it on the top layer (since the bottom layer lies beneath the top layer).  There are two ways you can directly choose which layer you’re working on.  The first method you may already be familiar with: under the View menu, hide the layer you don’t want to work with.  The same functionality is also available from the Layers palette (available under the Window menu), and if you’re doing a lot of switching back and forth, you may find the Layers palette more convenient.

The second method is new with this release of Fritzing: instead of completely hiding a given view, this method dims one of the layers and makes it ignore mouse clicks.

top layer active Figure 3. Top layer active, bottom layer inactive.

There are two ways to access this functionality: on the Trace menu, there are three items, “Set both copper layers clickable”, “Set copper bottom layer clickable”, and “Set copper top layer clickable”.    There is also a new button next to the autoroute button  for toggling between these three choices.

And speaking of the autoroute button, the autorouter has been updated to work with both sides.

  • First, as before, it will try to route everything on the bottom layer, and it will mark each failed connection with a blue jumper wire.
  • Second, the autorouter will attempt to route those unrouted connections on the top side.
  • Third, if there are still any unrouted connections, the autorouter will try to place a jumper item (part).
  • If even that fails, the jumper wire remains.

Although this version of Fritzing supports vias3 for manual routing, vias are not yet used in the autorouter.  In an upcoming Fritzing release, before trying a jumper item, the autorouter will try to route using a via.

That’s it.  Happy routing.


  1. For home-brew experts, SMD parts can be added to the bottom layer on single-sided boards.   2. Changing board layers will affect SMD parts, which will be disconnected, flipped, and added back to the other side.

  3. A “via” is a plated through-hole.  It’s a way of routing a connection from one side of the board to the other.  In Fritzing, you can drag a via into your sketch from the Parts Bin.

 

 

Support for further microcontrollers - Wiring, Propeller, you name it

Fritzing is not tied to the use of an Arduino, in fact you don’t need to use a microcontroller at all. We are very aware that many communities exist around a wealth of other nice microcontroller boards, and we would like to support them as well!

So with some support from the producers of the board themselves, we are introducing further microcontroller alternatives into the Fritzing ecosystem. In the new release, due tomorrow, you will already get this sweet array of choices:

different controllers

Besides the Arduino and its variants Mega and Nano, you can now use:

  • Modified's pico, an Arduino-compatible micro-scale board (thanks to Brian Evans)
  • mbed, a new ARM-based microcontroller on steroids (thanks to Simon Ford)
  • Wiring and Wiring Mini, Arduino's sister project (thanks to Hernando Barragán)
  • Basic Stamp, the classic from Parallax in all its colorful variations (thanks to Ken Gracey)
  • Propeller, the new multicore processor from Parallax (also thanks to Ken)

Plus, in the community contributed section you can find: the Mignon Game Kit (thanks to Olaf Val), theBare-Bones Board (thanks to Janis), the Pks-01 (thanks to Michael Franz), and the Ardweeny (thanks to Cameron Behar).

And more are coming up!

What does it mean to you?  Well, besides being able to document and share your projects with everyone, this allows you to easily create pcbs for them, either as shields or with a plug for your favorite microcontroller.

Let us know which microcontroller you are still missing, in the comments!

Comments from the old Blog:

  1. Nathan Andrew Fain #16. April 2010, 02:59fritzing updates, ymmy! teensy and teensy++ would be great: https://www.pjrc.com/teensy/index.html
  2. André Knörig #16. April 2010, 11:10Yeah, they are nice and not so difficult to make. We'll try to include them soon!
  3. joshuajnoble #17. April 2010, 16:45Nice work! I definitely think teensy would be nice too.
  4. dmaugis #27. Mai 2010, 23:50I try to do a part for BV511, an ARM LPC2132 board by ByVac. https://www.byvac.co.uk/mi_bv511.php
  5. whitedragon #13. Juli 2010, 11:12Nice work just wondering when the ardunio pro mini will be ready

Paper templates for your breadboard prototypes

It was so obvious that we were surprised ourselves: not only can you transfer your physical breadboard sketch easily into Fritzing, you can also do it the other way around.

Just load a Fritzing sketch and print it on a sheet of paper, and you have a nanometer-perfect paper template which you just have to fill in with the real parts. Good thing that Dirk was so strict about matching the scale to reality.

Here’s how it goes:

  • Open any sketch

  • Click File > Print (be sure to turn off automatic printer scaling) and get your parts ready

paper templates

  • Cut off a corner of the page so it’s easier to align the printed breadboard with the physical one.

paper templates

  • Stick the parts and wires through the holes. You might want to use a needle to prepare the holes.

Paper Templates

  • Connect the Arduino and load the associated code - done!

Paper Templates

Now if that’s not a great learning tool..

Small caveat: Depending of your brand of breadboard, its power/ground lines might not line up perfectly. So double-check before trying to punch your parts into the plastic. ;)

It's Fritzmas! Get one of 24 free individual Arduino Shields

Fritzmas PCBs

That’s right - we’re finally coming full circle with the Fritzing project and are soon launching the much-wanted fabrication service that turns your Fritzing sketches into professional printed circuit boards!

So in order to kick it off, we thought why not celebrate this as a fritzmas present to the community. We will produce 24 of your Arduino Shields (or other) designs you made with Fritzing. You will receive two copies for free, including free shipping.

Deadline for receiving your design is December 9th. Head over to the Fritzing fab page to find out how to participate.