Using Eagle Configuration Script Files: How to Make Eagle Yours

Let's talk about Eagle Configuration Scripts: how to use them, and why using your own can make your Eagle experience more enjoyable and efficient.

Let me preface this by saying that there is more I do not know about Autodesk's EAGLE PCB Design Software than there is that I do. That said, this is just a quick explainer, and there will be plenty left unsaid about using Eagle scripts.

If you are new to Eagle or unfamiliar entirely, check out these tutorials to help you get started:

What is a Configuration Script?

Put simply, it's a file used to configure an instance of Eagle with specific settings when opened.

When an instance of an Eagle editor is opened, Eagle accesses a configuration script file (eagle.scr). The configuration script contains a series of commands written in human readable text that change the settings for any instance of an Eagle editor workspace when opened. These include: BOARD Editor, SCHEMATIC Editor, LIBRARY Editor, DEVICE Editor, PACKAGE Editor and SYMBOL Editor. By changing the set of commands within the configuration script, the user can customize the settings of any of the aforementioned Eagle editors without the tedium of having to manually change the settings every time you open up an instance of Eagle.

Perhaps the most valuable feature of a personalized configuration script is the ability to setup a hotkey assignment map and workspace that caters to how you use Eagle. Whether you are designing schematics, designing boards, designing both or just reviewing designs, you can tailor the configuration of Eagle to allow you to work more efficiently.

Eagle is distributed with a default configuration script; it sets some default layers to be used, sets the unit(s) of measure, sets the grid spacing and calls some .ulp files, plus a few more things. Check it out below:

# Configuration Script
#
# This file can be used to configure the editor windows.
#
# Uncomment this if you want a set of useful default shortcuts!
#SCRIPT default-assign.scr;
#

BRD:
MENU '[bin/designlink.svg] Search and order : Run designlink-order.ulp -general;'
    '[bin/pcb-service.svg] PCB Service : Run pcb-service.ulp;'
;
DISPLAY = 'Preset_Top' None 1 17 18 19 20 21 23 25 39 41 51;
DISPLAY = 'Preset_Bottom' None 16 17 18 19 20 22 24 26 40 42 52;
DISPLAY = 'Preset_Standard' None 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25     26 39 40 41 42 51 52;

SCH:
Grid Default;
Change Width 0.006in;
MENU '[bin/designlink.svg] Search and order 
                                          General : Run designlink-order.ulp -general; '
     '[bin/LTspice.svg] LT Spice simulation 
                    Export: RUN ltspice.ulp /E; ' 
;

LBR:
MENU '[bin/designlink.svg] Search and order : Run designlink-order.ulp -general;'
     '[bin/LTspice.svg] LT Spice simulation 
                  Export: RUN ltspice.ulp /E; '
     '[bin/pads-pcb.svg] PADS package import : RUN import-pads-powerpcb-v5;' 
;

DEV:
Grid Default;
MENU '[bin/designlink.svg] Search and order : Run designlink-order.ulp -general;' 
     '[bin/LTspice.svg] LT Spice simulation 
                  SpiceOrder : RUN spiceorder.ulp; '
     '[bin/pads-pcb.svg] PADS package import : RUN import-pads-powerpcb-v5;'
;

SYM:
Grid Default On;
Change Width 0.010in;
MENU '[bin/LTspice.svg] LT Spice simulation 
                 Import: RUN ltspice.ulp /I; 
    '
;

PAC:
Grid Default On;
Change Width 0.005in;
Change Size 0.050in;
MENU '[bin/LTspice.svg] LT Spice simulation 
                  Import: RUN ltspice.ulp /I; 
     '
     '[bin/pads-pcb.svg] PADS package import : RUN import-pads-powerpcb-v5;' 
     ;

This default Eagle configuration script by no means makes Eagle unusable, but you are stuck with some pretty basic configuration settings. We have a SparkFun Eagle Settings GitHub repository, which includes an Eagle configuration script that provides a good starting point for understanding how these scripts are used, and for personalizing your own.

If you are new to GitHub, below are a couple tutorials explaining what it is, and how it is used:

Below is a simple demo configuration script to use as an example. Let's quickly break down some of the script so that you can get started making or modifying your own!

# Demo Startup Configuration Script 
# This file is used to configure the editor windows.

##############GLOBAL Instructions##############
#Assign GLOBAL workspace specific hotkeys
Assign F7 'NAME';

##############BOARD EDITOR specific Instructions##############
BRD:
#Assign BRD workspace specific hotkeys
Assign F7 'MOVE';

#Setup Grid
Grid inch 0.05 on;
Grid alt inch 0.005;

#changes background color of board to black
SET PALETTE BLACK;

#add layers
LAYER 227 xtra_ref;

#Layer colors
#Set top layer to dark red
Set color_layer 1 4;   
#Set xtra_ref layer to blue-green
Set color_layer 227 11;  

# When opening, hide all layers, then show layers 1 2 15 16 17 18 19 20 21 22 23 24 45 51 227 228 229 230 231
display none; display 1 2 15 16 17 18 19 20 21 22 23 24 45 51 227 228 229 230 231; 

#Assign BRD workspace specific hotkeys
Assign F8 'move';


##############SCHEMATIC EDITOR specific Instructions##############
SCH:

#Assign SCH workspace specific hotkeys
Assign F9 'Net';

#net definitions
CLASS 1 8_mil 8mil;
CLASS 2 10_mil 10mil;
CLASS 3 12_mil 12mil;
CLASS 4 15_mil 15mil;
CLASS 5 20_mil 20mil;
CLASS 6 25_mil 25mil;
CLASS 7 30_mil 30mil;


##############LIBRARY EDITOR specific Instructions##############
LBR:

#Assign LBR workspace specific hotkeys
Assign F10 'Grid inch 0.05 on; Grid alt inch 0.0001;';

#Set LBR workspace specific grid sizing
Grid mm 1 on;
Grid alt mm 0.1;

##############DEVICE EDITOR specific Instructions##############
DEV:

Grid Default;

##############SYMBOL EDITOR specific Instructions##############
SYM:

Grid Default On;
Change Width 0.010;

##############PACKAGE EDITOR specific Instructions##############
PAC:

Grid Default On;
Change Width 0.005;

Anatomy of a Configuration Script

The configuration script is broken into a section for each variation of an Eagle editor, and each type is denoted by an editor-specific label. These labels instruct Eagle to run only the portion of the script that is between the editor type label being opened and the next editor label. This means the user can customize unique configuration settings for each editor type, most importantly hotkeys.

Eagle Editor Script Labels

Editor Type Editor Label
Schematic SCH:
Board BRD:
Library LBR:
Device DEV:
Symbol SYM:
Package PAC:

The portion of the script that lies above all labels is considered global. These instructions will run for any editor type opened, and will run before the instructions under the editor-specific label are run. Instructions under an editor label will supersede any global instructions that were run prior to the editor label.

To add a comment to your script, insert a pound symbol (#) followed by the text for your comment. Each new line of comments will require a new preceding pound symbol. A comment can live on the same line as a command, assuming it is stated after the command.

Eagle Commands

Eagle utilizes a built-in set of text commands that tell it to do anything from setting a layer's color to setting default wire widths. These commands can be used in place of any of the toolbar buttons, and the command structure and syntax is standardized within Eagle. Conviniently, the commands that can be entered into the command line field of an editor workspace are identical to those that are used to populate an Eagle configuration script.

  • As a side note - To utilize a command in a workspace, simply enter the command into the Eagle command line field with proper syntax and press enter. It should be said that some commands are specific to a certain type of editor, for example, a command specific to the schematic editor may return an error if entered into the command line of a board editor. This is also true of commands in a configuration script.

Lets look at a basic Eagle command used under the BRD: label in the above demo configuration script, and discuss the syntax and function. Checkout the command:

Grid inch 0.05 on;

This command tells Eagle to configure three settings:

  • inch - sets the unit of measure to be used for the grid to inches
  • 0.05 - sets the grid spacing to 0.05 units
  • on - sets the grid to be visible to the user

The command is "Grid," and the parameters are: "inch," "0.05" and "on." The semi-colon ";" tells Eagle that there are no more parameters. Remember, this command lives under the BRD: label, which dictates that this command will only be used when opening an instance of the board editor.

You can easily chain together parameters for one command by listing them separated by a space, and terminating the command by adding the semi-colon at the end. Here's another example:

DISPLAY 1 16 17 18 19;

This tells Eagle to make layers 1, 16, 17, 18 and 19 visible to the user. It's pretty intuitive. Interestingly, one could design an entire schematic with a string of text using Eagle's built-in commands.

Writing and Editing a Configuration Script

Eagle contains a built-in text editor that can be used for writing/editing SCRIPT and ULP files, but you can use any text editor that allows you to choose the file extension when saving your file. Eagle script files have a .scr file extension, which can create an issue when using Windows and an external text editor. Windows views a .scr file as a screensaver file, which means users may have trouble opening this file with a text editor. To fix this, go into the default apps setting menu (WINDOWS 10) or Program settings (WINDOWS 7) and set the default app for .scr files to whichever text editor you prefer.

Another point to take note of is that the configuration script file must be named "eagle.scr", and must live in the directory that is specified in the Directories: Scripts field.

Setting the Directory for your Configuration Script

To change/set any of the directory paths that Eagle uses to look for files, open up an instance of the Eagle Control panel, click on Options in the menu bar and click once more on Directories... in the drop-down. This will open the directories window, which houses the fields to set the file paths to the directories that contain files that you and Eagle want to use together. The Scripts field is where you set your configuration script file path.

alt text

For a detailed list of built-in Eagle commands, command descriptions and command usage examples, check out the Editor Commands section of the Eagle help utility, and for more information about Eagle scripts, check out the SCRIPT sub-section of the the Editor Commands section.

Eagle has a great built in HELP utility; it's an invaluable resource for novice and expert users alike. The HELP utility can be found on the far right of the menu bar on any main Eagle workspace window or the Eagle Control Panel.

Now go create your own Configuration Script!!!

...and be sure to let us know about your experiences using Eagle configuration scripts, plus any of your own tricks and tips, in the comments below.

comments | comment feed

Read more »

Friday Product Post: It’s Time to Buzz the Tower!

This week we have four new products, starting with two new Qwiic boards. First is a transparent OLED heads-up display that can be used in drone or automotive scenarios. Then we have a Qwiic Joystick board to control your next robot project, or a character in your favorite video game. We also have two new LiDAR modules.

Blah, blah, danger zone, blah...

SparkFun Transparent OLED HUD Breakout (Qwiic)

added to your cart!

SparkFun Transparent OLED HUD Breakout (Qwiic)

In stock LCD-15079

The Qwiic Transparent OLED HUD is SparkFun's answer to all of your futuristic transparent HUD needs.

$99.95

Clear screens are no longer a thing of sci-fi! The Qwiic Transparent OLED HUD is SparkFun's answer to all of your futuristic transparent HUD needs. Designed for use in vehicle heads-up displays, this OLED panel is brilliant in the dark but easily visible in daylight. The display is "area colored," meaning that while no one segment can change colors, there are different colored segments on the display. The SparkFun Transparent OLED Breakout allows you to easily control the display using the I2C protocol, and includes a voltage step-up to generate the panel's 12V driving voltage from Qwiic's 3.3V bus.


It's a joy!

SparkFun Qwiic Joystick

added to your cart!

SparkFun Qwiic Joystick

In stock COM-15168

The SparkFun Qwiic Joystick combines the convenience of the Qwiic connection system and an analog joystick.

$9.95

Now you can easily add an HID/controller to your project! The SparkFun Qwiic Joystick combines the convenience of the Qwiic connection system and an analog joystick reminiscent of the thumbstick from a PlayStation 2 controller. The only thing that could make it better is a "smart" version, so we made one! With the pre-installed firmware, the ATtiny85 is acts as an intermediary (microcontroller) for the analog and digital inputs from the joystick. This allows the Qwiic Joystick to report its position over I2C.


Go Plus Ultra with your LiDAR options!

TFMini Plus - Micro LiDAR Module

added to your cart!

TFMini Plus - Micro LiDAR Module

In stock SEN-15179

The TFMini Plus is a ToF LiDARcapable of measuring the distance to an object as close as 10 centimeters and has been designed…

$44.95

The TFMini Plus is a ToF (Time of Flight) LiDAR sensor capable of measuring the distance to an object as close as 10 centimeters (+/- 5cm up to 6m) and as far away as 12 meters (+/-1% starting at 6m)! As with all LiDAR sensors, your effective detection distance will vary depending on lighting conditions and the reflectivity of your target object, but what makes this sensor special is its size. Measuring only 35x18.5x21mm, the TFMini Plus allows you to integrate LiDAR into applications traditionally reserved for smaller sensors.


T-Minus three until lift-off!!

TF03 Long-Distance LiDAR Module

added to your cart!

TF03 Long-Distance LiDAR Module

In stock SEN-15180

The TF03 is a ToF LiDAR capable of measuring the distance to an object from 10 cm to 180M and has been designed with an IP67 …

$228.95

The TF03 is the third-generation product of the TF series, and is a ToF (Time of Flight) LiDAR sensor capable of measuring the distance to an object as close as 10 centimeters and as far away as 180 meters! As with all LiDAR sensors, your effective detection distance will vary depending on lighting conditions and the reflectivity of your target object. What makes this sensor special is its size & environmental operating range. Measuring only 44x43x32mm, the TF03 allows you to integrate LiDAR into applications traditionally reserved for smaller sensors and in harsh environments.


That's it for this week! As always, we can't wait to see what you make! Shoot us a tweet @sparkfun, or let us know on Instagram or Facebook. We’d love to see what projects you’ve made!

We'll be back next week with even more fantastic new products!

comments | comment feed

Read more »