Tuesday, May 31, 2011

Altium Designer addons

This project contains set of scripts, examples and other content which is developed to provide extended features for Altium Designer unified design environment for electronics development.
The project is in Czech and English language.

Current addons:

  • Custom Pick&Place report script - script for generating user defined P&P for SMD components only
  • SelectConnectedTrack script - script for selection of connected NoNet track on Mech layers
  • CopyAngleToComponent script - script for copying angle of track to a component
  • EagleToAD conversion package - package of scripts for conversion of PCB project from Cadsoft Eagle to Altium Designer (manual available only in Czech)


Monday, May 30, 2011

Altera updates to Altium Hobart vault

The Hobart Content Center is pleased to announce another update to the Altium Hobart Vault with the release of four additional families for Altera.

The following Altera families have been released to the Hobart Vault:


The MAX V is a new family of low-power and low-cost CPLDs that offer high density and more I/Os per footprint, compared with many other CPLDs. The family offers features like on-chip flash storage, internal oscillator and memory functionality, and are particularly suited for applications such as I/O expansion, bus and protocol bridging, power monitoring and control, FPGA configuration, and analog IC interface.

This release of five components for MAX V is an initial offering based on available devices. The full release will follow soon.


EPC is a family of enhanced configuration devices. These are single-device, high-speed, advanced configuration solutions for very high-density FPGAs, including all the current generation families available in the Hobart Vault. The EPCS serial configuration devices are flash memory components with a serial interface that can store configuration data for FPGAs that support active serial configuration, and reload the data to the device upon power-up or reconfiguration.

This release includes EPCS128 (previously not supported), among other configuration devices.


Cyclone FPGAs were first released back in 2003. The Cyclone series is designed as a low-cost FPGA solution. Now, into its 5th generation (soon to be released to the vault), this is the original offering of the Cyclone FPGA family that contains all the devices still available in the market today.

All these new components are now available in the Altium Hobart Vault.

AltiumLive Subscribers can use these components by connecting to the Vault directly from Altium Designer 10 using their AltiumLive credentials, or by browsing to the AltiumLive Design Content area and selecting the Altium Hobart Vault.


Friday, May 27, 2011

Making friends with differential pairs

A common question arises when working with differential pairs, particularly when you inherit or import designs where the differential pair directives were not added to the schematics. Is it actually necessary to set up the directives in the schematic documents?

In order to use the schematic Differential Pair directives in Altium Designer, a specific naming convention must be used. The negative and positive signals of the pair must follow the conventions signalname_N and signalname_P respectively, and each signal must have a Differential Pair directive attached. If the differential net names were denoted in another way, such as with a + and - or _H or _L, you would need to rename the nets with the _N and _P suffixes in order for Altium Designer to be able to utilize the schematic directives.

However, there is a method which can be employed in the PCB Editor to create differential pairs based on a more configurable naming convention. All that’s required is that the differential signals have Net Labels on the schematic that in some way consistently define the positive and negative nets of the pair. Even if you have followed the _P, _N conventions on the schematic, the following method allows you to create the differential pairs within the PCB Editor without having to first place Differential Pair directives in the schematic.

In order to create the differential pairs from named signals on the PCB, make sure all net data is loaded into the PCB through the execution of the ECO. Either use Design » Update PCB from Schematics, or from the PCB Design » Import Changes from <projectname>.PrjPcb. Execute the changes from the ECO and the nets will be loaded into the PCB.

In the PCB Editor make sure the PCB panel is visible by going to View » Workspace Panels » PCB » PCB. Place the panel in Differential Pairs Editor mode, by selecting Differential Pairs Editor from the drop-down list at the top of the panel.

The three main list regions of the panel will change to reflect, in order from the top: differential pair classes, individual member differential pairs within a class and the constituent nets (negative and positive) that form a differential pair.

Differential pair objects can be created from the nets in your design using the Create Differential Pairs From Nets dialog. This dialog is accessed by clicking on the Create From Nets button, beneath the Nets region of the PCB panel.

The efficiency of this automated method greatly depends on the naming convention that is used for the specific nets that are to be routed as differential pairs. The filters at the top of the dialog enable you to quickly target these nets in terms of the net class to which they belong and the particular differentiating factor that has been used to distinguish the positive and negative nets in an intended pairing. You can also define a prefix to be added to the differential pair objects created and also determine in which differential pair class they are to be added.

The image shows an example of differential pair objects created from design nets. In this case I’ve based my search on the _P and _N suffixes.

For each potential differential pair object found in the design, the dialog lists its constituent positive and negative nets. You can exclude nets from which you don’t want to create differential pairs by clearing the associated Create checkbox. When all options are set as required, click the Execute button - the differential pair objects will be created and the PCB panel will update accordingly. Filtering will be applied to show the created pairs in the workspace

The differential pairs now exist as defined objects in the PCB and they are listed in the PCB panel under the Differential Pairs section.

By clicking on a pair within the PCB panel, the third region will be populated with the nets of the pairs.

Remember to press Clear (at the bottom right corner of the workspace) to refresh the view and get ready to start a command. 

Differential pairs are routed as a pair. That is, you route both nets of the pair simultaneously. To route a differential pair, select Interactive Differential Pair Routing from the Place menu. You will be prompted to select one of the nets in the pair. Click on either to start routing.

As you route the differential pair the standard conflict resolutions modes are available, including Walkaround, Push, Hug and Push, and Ignore obstacles. Use SHIFT + R to cycle through the modes. Use the * key on the numeric keypad to switch layers, and the *5 shortcut to cycle possible via patterns. Press the Shift+F1 shortcuts to display all of the available shortcuts


Thursday, May 26, 2011

Update 6 for Altium Designer 10

Another update for Altium Designer, which brings the update count to six since the release of AD10.

This update includes:

  1. Improvements to the PADS Importer, including support for V2007.0 and V9
  2. Support for Altera Quartus2 and Nios2 v11.0
  3. Improvements in searching in the Vault Explorer
  4. Updates to device support
  5. Plus many other fixes.

And of course, there are more fixes prioritised by the BugCrunch reports that you submitted and voted on. These include:

  1. Column widths that are now restored correctly in the Browse For component dialog
  2. CAMtastic now generates correct outlines for rounded rectangular pads when using the "Analysis / Generate Outlines" command.

For detailed information on what is delivered with this update, read the release notes.

The delivery of these fixes affects the following 14 modules:

  1. System Components category:
    Altium Designer Base, PCB System, PCB Support, Soft Design System, Soft Design Support, Data Management, Device Registry, Altium Designer Localization
  2. FPGA Components:
    FPGA Configurable - Generic Logic
  3. Hardware Support Packages category:
    Device Support - Altera Cyclone 4E, Device Support - Xilinx XC9500, Device Support - Xilinx XC9500XV
  4. Importers and Exporters:
    Exporter - Ansoft, Importer - PADS


Thursday, May 19, 2011

Update (5) to Altium Designer 10

Another update for Altium Designer - the fifth since the release of AD10.

This update focuses on improvements to CAMTASTIC and  Actel support, and there are more fixes to BugCrunch reports that you have submitted. These include:

  1. Flipping a component during move no longer loses the ref point.
  2. The actual height of a component that has a 3D body with a non-zero OffsetHeight is now calculated correctly for DRC.
  3. Shift click now enters inplace edit of selected text object when Shift Click to Select preference is enabled.
  4. ODB++ Output will now export Signal Layer Polygon Regions to corresponding ODB++ nets in case they are part of any PCB nets.

For detailed information on what is delivered with this update, read the release notes.

The delivery of these fixes affects the following nine modules:

  1. System Components category:
    Altium Designer Base, PCB System, PCB Support, Schematic System, Soft Design System, Soft Design Support, Soft Design Synthesis Libraries
  2. Hardware Support Packages category:
    Device Support - Actel IGLOO nano
  3. Output Generators category:
    Output - ODB

Installation of these updated modules will bring their revision up to 10.545.22410. The Platform Build number will also update to 10.545.22410 as the Altium Designer System module is updated.

To update your Altium Designer 10 installation, go to the Plug-in page (DXP >> Plug-ins and Updates) and select “Update All”.  

(If you don’t see the update, use the “Refresh” link in top right hand corner of the Plugins page.)

For those who installed directly from DVD, you can access the updates by changing a setting in preferences: System >> Installation Manager, change the Remote Repository Location to http://installation.altium.com

Wednesday, May 18, 2011

Cheap Airline Tickets

Implementing Atmel QTouch with Altium Designer

Increasingly, I am being asked how to go about designing a touch application using Atmel's QTouch technology. I’ve also had a lot of people ask if it’s possible to develop such an application on a Nanoboard 3000. Well it certainly is, and I thought I would take a moment and map out the overall aspects and options of implementing an Atmel QTouch design, including development on a NanoBoard.

Wtih Altium Designer 10, we introduced support for the automatic creation of Atmel QTouch sensor technology. This lets you easily, and literally within seconds,  generate the complex PCB layout geometries required to implement the Buttons, Sliders, and Wheels of a QTouch touch panel PCB.

Simply place a configurable sensor symbol from the Atmel QTouch.IntLib and tailor the dimension settings to your design requirements. Furthermore, these shapes can be easily updated by simply changing dimensions or sensor type settings in either the Schematic or PCB, and then synchronizing the project in either direction. If you’ve ever had to manually create wheel and slider sensors, and then had to modify them to suit a change to the product spec, you’re going to find this magical!

Figure 1. Atmel QTouch wheel and slider sensor geometries

Firstly, you need to decide which type of acquisition technology you want to use as Atmel offers both a QTouch and a QMatrix touch technology. QTouch is a capacitive touch acquisition method best suited for general use and a small number of sensors (i.e.  from one to 10 sensors). QMatrix is a scanned passive matrix acquisition method which is better suited for a larger number of sensors (i.e. greater than 10), consumes less power, and has better moisture tolerance. Your acquisition method decision will generally be based on the number of sensors needed, power budget, and intended environmental conditions of the product.


Next, you need to decide which type of controller device to use. Atmel offers a large number of options that are either fixed-function devices, or standard Atmel microcontroller devices. Atmel's fixed-function devices are dedicated purpose QTouch or QMatrix controllers that work in conjunction with any host processor to sense and capture touch information from the sensor layout. Atmel microcontroller devices are standard 8-bit or 32-bit MCUs from the AVR/AVR 32 and ARM7/ARM9 families - QTouch specific API routines enable touch functionality at the software application level to sense, capture, and process touch information. Your touch controller decision will generally be based on the number and type of sensors required as well as processor preference.

For developing a TSK3000A-based embedded system touch application on the NanoBoard 3000, Atmel's fixed-function devices work nicely and generally simplify the design and implementation. Fixed-function devices are supported in Altium's Atmel Touch Solutions.IntLib integrated library. Atmel AVRs and ARM devices can be found in Altium's wide range of Atmel Microcontroller 8-bit and 32-bit integrated libraries.  Details regarding QTouch/QMatrix acquisition method can be found at the following Atmel website locations:



For mechanical considerations (and physical implementation flexibility), the touch controller and the touch sensors can be placed together on a single PCB, or separately on two PCBs and connecting the sensor layout to the controller via ribbon cable or flex connection.  The QTouch or QMatrix sensors can be placed on the top layer of the PCB and covered with a panel material such as (but not limited to) Plexiglas, glass, or nylon. The sensors can even be placed on the bottom layer of the PCB, detecting touch through the PCB material itself. Touch sensitivity in all cases will depend on the external covering material's and/or PCB's thickness and dielectric properties. Touch panel thicknesses exceeding 10 mm are not uncommon.  

The resistors and especially the capacitors associated with either the QTouch or QMatrix sensor circuits must be placed as close as possible to the physical controller device and on the same PCB. As each design is unique, the initial R and C values of the sensor circuits are based on typical values (as recommended in the device data sheets or QTouch design guidelines) and may need to be modified during the design process to fine tune the sensitivity of specific sensors as needed.  A helpful design guideline for fixed-function devices can be found at:



If using a standard AVR or ARM device as the actual touch controller, your touch application SW development will require Atmel's royalty-free pre-compiled QTouch Library and either the IAR or GCC compiler. Configuration of the sensors, capturing and processing of touch information are all accomplished through use of the QTouch Library API routines in the application code.

For fixed-function devices, any type of host processor can be used and any software compiler can be used to develop the application code. Because the QTouch/QMatrix acquisition functionality is implemented within the fixed-function device, there is no requirement for the QTouch Library API routines. Sensor configuration and touch information capture are accomplished by read/write transactions through either a SPI or I2C interface between the host and the controller device. For internal register descriptions, interface, and transaction details, refer to the specific Atmel Fixed-Function device data sheet.

Additionally, the Atmel QTouch Studio (free to download from Atmel) can be used to analyze and view the characteristics and performance of a prototype PCB, enabling R/C value, panel thickness, and sensor layout modifications to be quantitatively analyzed and viewed at run time. QTouch Studio requires a USB connection from the host development PC to either an Atmel QT600 development board (or an AVRTS2080A or AVRTS2080B evaluation board) to serve as an interface for capturing the touch data in real-time from the controller device for analysis. Information regarding the QTouch Library, QTouch Studio and QTouch development boards can be found at:



Figure 2. My custom Atmel QTouch Peripheral Board for the NB3000

Recently I designed a custom QTouch peripheral board for the NB3000. The objective of the project was to gain firsthand knowledge regarding the QTouch related questions I am regularly asked. This board incorporates two Atmel AT42QT2100 fixed-function devices. The AT42QT2100 QTouch acquisition method device can support a total of seven buttons and either one wheel or one slider. Since I wanted support for both a wheel and a slider on the same board, I used two devices.

An FPGA project includes a TSK3000 core as the host processor communicating via SPI interface with the two AT42QT2100 devices to configure the sensors and to capture the touch data. The embedded C application code was developed within an Altium Designer Embedded project linked to the FPGA project.  The QTouch sensors, which are all placed on the Bottom layer of the PCB, are working well in response to touch on the Top layer of the board. Ultimately, I plan to combine this general purpose touch panel with a multimedia application on the NB3000.

A prototype version of the board in action, which you can find at:



Tuesday, May 17, 2011

Multi-board design projects in Altium Designer

I was working with a customer recently who had two PCBs that were related. He wanted to work from a single schematic package, yet have a subset of the schematics populate two different boards.  It’s a common enough scenario, and it’s reasonably simple to achieve in Altium Designer. Here’s how.

Altium Designer currently supports only one PCB per PCB Project. In other words, each PCB project targets only a single board.  So in order to have related schematics populate different PCBs, we first need to have multiple PCB Projects (PrjPCB), one for each board we are targeting. The secret to amalgamating the schematics is to have a third project for the overall design that doesn’t target a board, but acts as the design project for the multi-board system.

Consider the Design Workspace in the figure below.  Here we have three PCB projects. The first - PCB_Project1.PrjPCB - contains the complete set of the schematics for the two PCBs.  It is in this project that all schematic design, electrical rule checking, etc. takes place.  This is in fact the master design project for all boards to made from the design. Since all of the schematics are in the same project, their net connectivity will be extant throughout the design.

The remaining two projects - PCB_Project2.PrjPCB and PCB_Project3.PrjPCB - contain a subset of the schematics in the first project, as well as the PCBs which will be updated by the defined schematic subsets.  PCB_Project2.PrjPCB and PCB_Project3.PrjPCB simply have the appropriate schematics added to them by right clicking on the PrjPCB file and using the "Add Existing to Project" command to add the relevant schematics.

At this point any changes made to the schematics in PCB_Project1.PrjPCB will be reflected in the schematics of the other two projects, as the schematics you’ve added to these are in fact the same files contained in the master project.

When the PCBs are updated in PCB_Project2.PrjPCB and PCB_Project3.PrjPCB, only those schematics contained within each PCB Project will be reflected in the updates.

While the demo design used in this blog targets just two PCBs, this technique can be used for any number of PCBs and provides a simple way to consolidate the front-end schematic design of complex multi-board projects.


Friday, May 13, 2011

Update (4) for Altium Designer 10 available

This update focuses primarily on enhancements to using vaults, and further addresses some of the crashes that have been reported. And let’s not forget some more BugCrunch reports that have been stomped on. These include:

  1. Four-way junctions are no longer optimized out of schematics and will no longer be replaced by a cross over.
  2. "Duplicate Rule" menu item has been added to the right click menu in the "PCB Rules and Constraints Editor".
  3. DRC Clearance Violations now show the actual distance compared to the rule distance in the text summary.


Thursday, May 12, 2011

Update to Altium Hobart vault - Microchip

These new components can be found in the Altium Hobart Vault and include the following families:

PIC10 and PIC12

These are Microchip’s classic 8-bit MCU devices covering baseline/mid-range architecture levels.  They are 6- to 64-pin, low-cost, small form factor MCUs utilizing a 12-bit instruction word for baseline (PIC10/PIC12) and 14-bit for mid-range (PIC12). They join the already released collection of other 8-bit, 16-bit and 32-bit PIC microcontrollers and digital signal controllers.

Thermal management, mixed-signal and linear devices

These families add to Microchip’s analog components already released (see Power Management). Thermal management includes temperature sensors (voltage, logic and serial output) and brushless DC fan controllers. Mixed-signal covers ADCs, F/V converters and DACs. Linear devices completes the group with amplifiers and comparators.

Interface and wireless

Microchip’s interface device family covers CAN, Ethernet, infrared, LIN transceivers and I/O expanders. Wireless includes RF devices and KEELOQ encoders and decoders.

AltiumLive Subscribers can use these components by connecting to the Hobart Vault directly from Altium Designer 10 using their AltiumLive credentials, or by browsing to the AltiumLive Design Content area and selecting the Altium Hobart Vault.


Wednesday, May 11, 2011

Shanghai Content Center is pleased to announce our very first library release!

These new components can be found in the Altium Hobart Vault and for this release, we have included the following families:


Freescale first released the Coldfire family during the mid nineties as the next generation of 68k processors for embedded applications. The ColdFire family today spans a broad product range, from ultra low-power solutions targeting mobile products, to feature rich MCU and MPU devices at speeds up to 266 Mhz.

Kinetis ARM

Freescale’s 32-bit Kinetis microcontrollers are based on the latest ARM Cortex-M4 core and include 90nm thin-film storage flash memory technology. The range of MCUs in the family provide scalable performance, mixed signal integration and ultra-low power consumption making them ideal for consumer and industrial applications.

AltiumLive Subscribers can use these components by connecting to the Hobart Vault directly from Altium Designer 10 using their AltiumLive credentials, or by browsing to the AltiumLive Design Content area and selecting the Altium Hobart Vault.

Why not take a few minutes and browse through this new content, and explore the existing content that is available in both the Shanghai and Hobart vaults.