Tag Archives: open source

The AxiDraw CLI and Python API

Following the release of our new AxiDraw software this week, we are pleased to announce the release of two additional software components that greatly extend the capability of the machine.

The AxiDraw software is now available in two alternate versions that may be helpful for developers or for anyone who would like to control the machine programmatically rather than through Inkscape: A stand-alone command-line interface (CLI) tool, as well as a full-featured Python library.

The AxiDraw CLI

The first new tool is the AxiDraw CLI,  a command-line API to drive the AxiDraw outside of Inkscape. Like the Inkscape-based software, its primary function is to plot SVG files. However, it is a stand-alone utility that can be driven from within shell scripts and other environments that make use of shell commands.

Once installed, plotting a file can be as simple as executing the following command:

axicli filename.svg

There are, of course, a breadth of different modes and configuration parameters available. We have written detailed descriptions of each of these options in our comprehensive API documentation. The CLI also supports the use of configuration files to quickly switch between different sets of parameters.

Since most common scripting and programming environments allow one to call shell commands like this, that allows the AxiDraw to be used directly within a wide variety of frameworks.

 

The Python API

The second new tool is the AxiDraw Python API. The AxiDraw CLI is written within Python, and we have both exposed and expanded upon that nucleus to create a flexible and powerful Python module, complete with its own comprehensive documentation.

Just like the CLI, the Python API can plot SVG documents; it can both read SVG files and accept strings containing SVG data.

It also has features that are not available within Inkscape or the CLI: It supports direct interactive XY control. You can use absolute or relative moveto/lineto type commands to control the AxiDraw from within your own programs. This is particularly useful for a wide variety of potential AxiDraw applications that are not writing or drawing, but otherwise making use of the AxiDraw as a low-cost motion control platform.

New AxiDraw Software v 2.5

We’re pleased to announce the release of the latest version of the AxiDraw software, 2.5. which includes a number of frequently-requested features that we’ve been working on over the last year.

An expanded user guide

Perhaps foremost, we have updated and greatly expanded the PDF AxiDraw user guide, which covers how to use the AxiDraw, including every part of the software. In addition to sections that go over the new features, we have thoroughly revised the rest, including a larger and clearer section on getting started.

A new SVG optimization tool

In normal use, the AxiDraw software plots elements in the same order that they occur in the file. However, depending on how your file was generated, that may not be the most efficient way to do things. If the order of the elements in the file is poor enough, the plot time can actually be dominated not by writing and drawing time, but by pen-up movements (illustrated here in red) between objects.

We’ve written a new SVG ordering utility, that can sorting of objects in an SVG document, re-ordering them as needed to reduce pen-up travel. It’s also a layer-aware and group-aware sorting tool, that can process a full document and reorder elements on each layer of the document and either respect or break apart other groups in your document. This tool is available in two versions: An individual Inkscape extension as well as an integrated version that you can use automatically within the AxiDraw software.

Better support for using multiple machines

The new AxiDraw software supports assigning names to individual AxiDraw units over USB, which you can use as semi-permanent labels when printing to a particular machine. You can also now plot to a specific AxiDraw, or simultaneously plot the same document to a number of connected machines.

A new version of Hershey Text

This release includes an all-new version of Hershey Text, our software for creating stroke-based text within Inkscape. You can about the new features in our blog post announcing it.

And more!

Amongst other improvements in the new software are the following:

  • Updated to use Inkscape 0.92
  • Paths in the document are now clipped gracefully and precisely at the boundaries of both the artboard (drawing canvas) and machine travel.
  • Supports more SVG object and layout types natively
  • Faster plotting on paths with very high vertex density
  • Online version check added
  • Improves behavior of Hatch Fill extension
  • Bug fixes galore

We recommend this new version to all AxiDraw users; you can download it for Mac, Windows, or Linux, following our guide here.

Thoughts on OSHW and OSHW certification

OSHWA, the Open Source Hardware Association, recently released a proposal for what they are calling Open Source Hardware Certification.  With some paraphrasing and handwaving, their proposal boils down to this:

  1. OSHWA will create a new logo and trademark it.
  2. To license this new trademark, you would need to agree to a contract that says:
    1. We will only put this trademark on open source hardware (as defined in the open hardware definition).
    2. If we use the logo otherwise (and do not stop when OSHWA repeatedly asks to stop), we agree to pay a hefty fine.

OSHWA has not yet fleshed out the details — neither the new logo nor the exact contents of that license contract. It’s easy to be cynical about stuff like this. But instead, let’s please give them the benefit of the doubt and suppose that when those details arrive, it turns out that they’ve done a superb job: the contract ends up to be simple, well thought-out, straightforward and does just what it says.

Maybe the new trademarked logo would look something like this mock-up:

placeholder oshwa certified logo

Given all of that, would there be a good case for some people to use this certification process? I have mixed thoughts on it. But on the whole, I’m tending towards a “probably.”

Continue reading Thoughts on OSHW and OSHW certification

Open Discussion: Best Practice for Mislabeled Open Source Projects?

non-oshw

In looking around for examples of great open source hardware projects, we came across an unexpected number of projects and products labeled as open source hardware that, upon closer inspection, actually turn out not to meet the definition. Often, they’re using an inappropriate license— typically a “non-commercial license,” which is not only unenforceable but explicitly incompatible with open source values. Sometimes, they haven’t released the design files. Sometimes, a person has apparently misused the term “open source” to mean “closed and proprietary.” And sometimes you might see the open hardware logo used without any substance to back it up.

But what (if anything) can or should be done about it? We’d like to solicit your input as to the best ways to approach this problem.  Perhaps there are not any easy answers.

As a baseline, we think that it’s important to address the problem, and to do so earlier rather than later. To mislabel a product for sale as open source hardware may constitute false advertising, illegal in the US under state and federal law. In noncommercial projects where nothing is for sale, misusing the terms may help to set precedent that can damage the community’s understanding of open source. For instance, if enough people see non-commercial licenses on things labeled as be open source, they may assume that it is acceptable.

If you happen to know someone behind the project, you might consider contacting them directly to start a dialog about what it means for something to be “open source.”  Or, you could (hint hint hint) send them a link to this article, letting them know that you found it interesting!

But, what if you don’t have any personal connections to the people involved? It’s certainly not as easy. Sometimes you can initiate a dialog with a company, perhaps by asking about their design files or licenses. At the other end of the spectrum, people sometimes bring up options like public shaming. In our view, shaming is harmful to the open source community, and should be considered a last resort akin to violence. Rather, we as a community need to work towards positive ways to nudge people toward doing the right thing.

Please let us know what you think: what should you do when you come across a project mislabeled as open source hardware?

OSHWA on Creative Commons and Open Source

CC licenses
Over at OSHWA.org (of which I am a board member), there’s a blog post about different Creative Commons license choices, and their implications for open source projects:

The reason is that there is not a single entity called the “Creative Commons license.” Rather, Creative Commons offers a number of different licenses that can apply some rights and protections to your work, including the CC-BY and CC-BY-SA licenses which reflect open source values closely. […]

Creative Commons also offers licenses that carry restrictions — against commercial use and/or derivative works — that are strictly incompatible with open source. The open source hardware definition states that a license for open source hardware “[…] shall allow for the manufacture, sale, distribution, and use of products created from the design files, the design files themselves, and derivatives thereof.” Thus, if you choose to release hardware under the banner of “open source,” that means that you agree to allow others to use your design commercially, as well as to create derivative works (and to use them commercially). Consequently, you cannot advertise your project or product as “open source” if it carries restrictions against either of those uses.

Image CC-BY creativecommons.org.

EE Times Interview on Open Source Hardware

Windell and Lenore and Three Fives kits
Photo by Rick Merrit, EE Times

EE Times came by and interviewed Windell in advance of his upcoming Maker Faire talk about best practices for Open Source Hardware.

…Big semiconductor companies are jumping on the bandwagon of open source reference boards. But their chips’ intellectual property remains carefully guarded corporate crown jewels. …

Open Hardware Summit 2014: Call for papers

OHS
The Call for Papers is now open for the 2014 Open Hardware Summit. This year’s summit will be September 30 and October 1 in Rome, Italy.

The Open Hardware Summit is the annual conference organized by the Open Source Hardware Association and the world’s first comprehensive conference on open hardware; a venue to discuss and draw attention to the rapidly growing Open Source Hardware movement. Speakers include world renowned leaders from industry, academia, and the maker community. Talks cover a wide range of subjects from electronics and mechanics to related fields such as digital fabrication, fashion technology, self-quantification devices, and DIY bio. Workshops focus on, but are not limited to, education, manufacturing, design, business, and law.

The call is on a short schedule this year: Submissions are due by 25th of May 2014.

OSHW Talk at 2014 Bay Area Maker Faire

Maker Faire 2014
Wearing my OSHWA hat, I’ll be giving a talk about Open Source Hardware at this year’s Bay Area Maker Faire:

Best Practices for Open Source Hardware in 2014
In the past year OSHWA, the Open Source Hardware Association, has worked with the community to develop a modern list of best practices for designing, releasing and building upon existing open source hardware projects. Windell Oskay, Vice President of OSHWA, will discuss recommended approaches, touching upon open source design tools, documentation, hosting, licenses, and other current issues. Time permitting, we will also take questions from the audience.

The talk is scheduled for Saturday, May 17, 4:45-5:00 pm. You can find the rest of the center stage schedule for Maker Faire right here.

Open Source Beehives

The Open Source Beehives project is currently running a crowdfunding campaign with the goal of gathering information from sensor equipped hives throughout the world to help solve bee population problems like colony collapse syndrome. The sensors can also be used by individual beekeepers to monitor the health of their hive.

Even without the sensors and the citizen science, their hive designs are beautiful.

WaterColorBot Software and Documentation

We’re wrapping up this week’s updates on the WaterColorBot project with some notes about software and documentation.

Documentation

Our guides for setting up and using the WaterColorBot are already extensive, and still growing. You can find them at the Evil Mad Scientist wiki, or get there with a shortcut: watercolorbot.com/docs.

getting started booklet
Getting Started with WaterColorBot
One of the most important parts of the WaterColorBot’s documentation is our booklet “Getting Started with WaterColorBot.” The booklet covers the process of assembling the WaterColorBot kit, basic usage, an overview of software options, and a host of tips and tricks. It’s available on our documentation site in PDF format.
video still
Assembly video
We’ve put together a setup video, walking through the steps of putting together the WaterColorBot kit. The video is strictly optional, and covers much of the same ground that the booklet does. You can watch it at http://watercolorbot.com/setup.html, or find it linked from our documentation page.

 

Software

There are, at present, three primary applications that you can use to control the WaterColorBot, each of which has unique advantages.

RoboPaint RT
RoboPaint RT
The simplest of the three programs is RoboPaint RT, which is the one that we featured in our Kickstarter video. RoboPaint RT is a “real time” application that allows you to paint with the WaterColorBot. It’s straightforward and manual: Click on a color in the paint palette to change to that color, click on the water to dip the brush in the water, and drag the brush to paint on your paper.

With RoboPaint RT, you can also replay your drawing to make multiple copies, and save the file to open up and print again later. This program can be a lot of fun to play with and is a great way to get acquainted with the WaterColorBot. For those with good artistic skill, it can also be a remarkably powerful program.

 

RoboPaint
RoboPaint
Next up is RoboPaint, another stand-alone application written by the WaterColorBot team. In RoboPaint, you can open existing artwork in SVG format, snap the colors to your paint palette, and paint the document. It also has a rudimentary edit mode that lets you create new drawings to print. If you’re starting with existing SVG artwork, RoboPaint is generally the best of the three programs to use for a few different reasons. Most importantly, it’s good at automatically filling in large solid regions of a painting.

 

Inkscape drawing
Inkscape, with extensions
The third primary application is Inkscape, a superb, free vector graphics editor, for which we have written an extension (a plugin) to control the WaterColorBot. Our extension provides fine grain control over exactly what will be painted, but more-or-less requires that you create the artwork within Inkscape to take full advantage of the features.

Above, the drawing used to make the Robo-painted thank you cards that we wrote about earlier this week.

Inkscape is also capable of importing artwork in PDF format (as well as tracing bitmap graphics to some extent), and saving as SVG graphics that can be used with RoboPaint. If you’ve ever used an Eggbot (and its Inkscape based driver) you might want to start here, before trying the other apps.

 
And if you like to code…
For developers (and people who just like to tinker with code), there are additional options:

– Rolling your own, starting with our examples. RoboPaint RT is written in Java/Processing, RoboPaint is written in JavaScript, and the Inkscape extensions are written in Python. These can provide a nice starting place, in a few different environments.

– Direct serial control. The “EBB” motor controller board used on the WaterColorBot can be independently controlled from any environment that can send serial data to your USB ports.  Its command set documentation is here.

– The RESTful API. RoboPaint includes the “CNCserver” API for WaterColorBot, documented here. You can use this interface to control the robot locally (from your computer) or remotely (from anywhere on the internet, if you enable the remote option within RoboPaint and tell the other computer what your IP address is). Currently this is a low-level API; we are working on a higher level version where you can simply send an SVG file for RoboPaint to process and paint.

 

WaterColorBot kits are shipping now, and we are still taking pre-orders for December shipment.