Pulling together hardware designers from all over the Internet presents several challenges. Among these is the task of keeping things like project time lines, roadmaps, forums, wikis, and issue tracking organized and cohesive. There may also be the need to collect and organize design files such as CAD, which don’t fit well into the traditional paradigm used by source code management systems like git and CVS. The main reason for this is because CAD files tend to be binary, and are hard to diff or merge in any meaningful way.
Addressing these challenges any many more is what the Redmine based Open Design Engine project (Figure 1.1) is seeking to do. Open Design Engine, or ODE for short, is an open source web application that’s an initiative of Mach 30, an organization committed to fostering a space-faring future for the human race through safe, routine, reliable, and sustainable access to space. Mach 30’s mission is a lofty one but the organization has laid a solid foundation, which includes the implementation of ODE, on which to move toward this future.
|Figure 1.1 – Open Design Engine (ODE) Banner|
Mach 30 likes to “think of Open Design Engine as the Source Forge for hardware”1, and I would say that ODE is well positioned to fill that role. You can download ODE and self-host it if you like, or you can simply use the Mach 30 hosted version by going to opendesignengine.net.
I thought I would put together a quick start guide that covers a few of ODE’s basic features. If there’s anything that I miss please feel free to ask questions in the comments section, or have a look at the ODE forums .
2. Getting Started
The first thing that you’ll need to do is register. The Open Design Engine registration process is very similar to Redmine’s (Figure 2.1) except that ODE requires you to accept its Terms of Service (ToS) before completing the registration.
|Figure 2.1 – Redmine’s Registration Form|
Whenever you need to sign in to ODE again after registration, look for the Sign in link in the upper right hand corner of any ODE page. Once you’re signed in, the Sign in link will turn to Sign out and you’ll see the addition of your user name and a My account link (Figure 2.2). With registration completed you can start experimenting with some ODE features and evaluating any existing projects you think you’d like to be involved in. We’ll take a look at the Open Design Engine project entry (Figure 2.2) to help you get familiar with the layout.
|Figure 2.2 – The ODE Project Tabs on OpenDesignEngine.net|
The first thing to notice is that there’s a Help link toward the upper left hand corner of every ODE page. This takes you directly to the Redmine guide which would be one good place to start if you’re having trouble with an aspect of ODE’s functionality. The next link over is Projects, which will take you to a list of all the projects currently hosted on ODE. The second link from the left is My page, which leads to a customizable page that summarizes your involvement in any ODE projects that list you as a developer or manager. To customize this page you click on the Personalize this page link (Figure 2.3).
|Figure 2.3 – The “Personalize this page” Link on “My page”|
The tabs in Figure 2.2 represent Redmine modules chosen by the project manager (Figure 3.1), and will vary from project to project. Several of the tabs/modules are self-explanatory, but there are others that warrant a closer look. For instance, the Issue and New issue tabs are interesting because “Issues” are the mechanism by which you can add items to a project’s time line. Without the issue tracking system, items will never show up on the Gantt chart and calendar, even if those modules are enabled.
|Figure 3.1 – Modules Available in ODE|
Adding a new issue is pretty straight-forward. Using the New issue tab (Figure 3.2), you first need to set the issue type via the Tracker pull-down. Your choices are Bug, Feature, and Support, which are a bug report, a feature request, and a request for support respectively. You can also set the Priority, who the issue is assigned to (Assignee), and which Target version from the project’s roadmap the issue applies to. The Start date, Due date, and Estimated time fields are where you start setting what shows up in the calendar and Gantt chart. Even if you’re not a member of a project’s team, you can still file an issue as long as you’re signed in to ODE.
|Figure 3.2 – The “New issue” Tab|
The Activity and News tabs are similar in that they’re used to keep track of what’s happening in a project. The items on the Activity tab are made up of things like wiki edits, messages, forum postings, and file uploads, and you can filter these updates using the check boxes in the right hand column (Figure 3.3).
|Figure 3.3 – Activity Filter Check Boxes|
The News module acts like a blog for the project, and the news posts will show up under Latest news if you added that block when customizing My page. The Wiki and Forums tabs are what you would expect, and I thought they were fairly intuitive to use. In my experience these are where the bulk of the planning and design collaboration happen.
The last thing I’m going to cover is ODE’s ability to handle files. There are three file handling modules that I feel are the most useful, and those are Files, Repository, and DMSF, although DMSF is technically a plug-in. The Files module is useful for distributing project packages. For instance, the Files tab for the Open Design Engine project is where you would look to download ODE so that you could host it yourself. The Repository module in ODE allows you to use a Subversion (and eventually a git) repository with your project. If you have any source code to manage in addition to the rest of your project’s files, this is an invaluable tool. That brings us to DMSF (Figure 3.4).
|Figure 3.4 – The “DMSF” Tab|
The DMSF documentation states that it aims to replace Redmine’s current Documents module, which is used for technical and user documentation. In my view the DMSF plug-in, especially when coupled with the Wiki module, does make the Documents module feel unneeded. Some of the features of DMSF include document versioning and locking, allowing multiple downloads at once via a zip file, and optional full-text searching through text-based documents. There are several other features, and they can be found in the DMSF documentation.
The operation of this plug-in is pretty straight-forward, but there are a few buttons that we’ll take a quick look at (Figure 3.5).
|Figure 3.5 – The “DMSF” Module Buttons|
Buttons 1 and 2 operate on the directory level, while buttons 3 through 6 are for the sub-directory and file levels. Button 1 allows you to edit the meta data (name, description, etc) for the directory level that you’re currently at. If you were to click the button at the level shown in Figure 3.4, you would end up editing the meta data for the Documents directory. Button 2 creates a new directory at the current level. If you clicked it in Figure 3.4 you would create a new folder directly under Documents. Button 3 gives you the ability to edit the meta data for a file in the same way that button 1 does for parent directories. Button 4 is only visible when you’re working with files and allows you to lock a file so that it can’t be changed by other project members. Be careful when you use this feature so that you don’t needlessly keep other contributors from getting the access that they need to push the project forward. Button 5 (the red ‘X’) deletes a file, and button 6 allows you to set whether or not modifications to a file show up in the project’s Activity tab.
Uploading a file using DMSF requires only a few button clicks. You first need to click the Add Files button which will bring up a standard open file dialog. Once you’ve selected the file, you can click the Start Upload button which will bring up the form shown in 3.6.
|Figure 3.6 – The “DMSF” Upload Meta Data Setting|
This form allows you to set the meta data for the file you’re uploading. If the file already exists in the current directory, ODE will automatically increment the minor version number for you. You can then set other attributes like whether the file has been approved or is awaiting approval, and even attach a comment that will stay with the file. Once these things are set you can click Commit to upload the file.
There’s much more that can be done when handling files in ODE, but that will hopefully give you a good start.
This post is essentially an ODE crash course since it would be much too large if I tried to cover everything that ODE has to offer. The best way to learn the other features that are available is to set up an account and start looking around. There’s a Sandbox project where you can start the learning process in a safe environment where your actions won’t hinder other users.
Once you get comfortable with contributing to projects on ODE you’ll be in a great position to start a project of your own. If you have a project (hardware, software, mechanical, medical, whatever) that you’ve always wanted to work on but haven’t, why not start it on ODE where you have the chance of getting input from designers all over the world?
Special thanks go to J. Simmons, president of the Mach 30 foundation, for his help in writing this post. The efforts of J and the rest of the Mach 30 board have brought Open Design Engine to life and made it available to all of us, and I look forward to seeing the planned improvements implemented over time. Open Design Engine has the potential to become an invaluable tool for hardware developers and designers in general, and I’ve enjoyed my time working with it.
Please feel free to leave any comments or questions below, and have a look at innovationsts.com for other projects, tips, how-tos, and service offerings available from Innovations Technology Solutions. Thanks for reading.