New: Andy Piper used jarbuilder to provide Stripes 0.2.3 with a proper Mac UI, download here!
This is the main page for Stripes, a simple and fast java-based Stripboard Designer app. It's a reaction to Stripboard Designer written by Forrest Higgs and published on the RepRap.org website. Because I’m designing a number of small circuits on an experimental basis and I use stripboard with the intention of being able to design and produce them quickly, I’ve been on the look-out for a simple stripboard designing application.
Like Forrest I managed to find a number that were either not really free, or not really simple, or actually really clunky (for example, because they were excructiatingly slow on my 1.5GHz PowerBook G4 even after adding a few components). On the other hand, because Forrest wrote his in VB Express for Windows I wasn’t easily able to run it. Besides, running it means installing a whole load of VB.NET on a Windows machine. So instead I bit the bullet in early October 2009 and decided to write my own version. Stripes bears some similarity to Stripboard designer, but there are some major differences:
Stripes is supplied as a .jar file. On my Mac I can just double-click it to run it, but it can be started from the command line with:
java -jar Stripes.jar
The initial display is a main board and (although the cursor never changes) you are set up to pick and place components. You might find it easier to just see what the program does in summary:
You can easily muck about by placing components, clicking, dragging; you can move components by their contacts or select them and drag them to different locations. Shift-select; marquee select (and shift-marquee select) work; cut, copy, paste and clear work; Save As; Open and Quit work. View Tracks works. In addition you can now place labels on your circuit by choosing the text tool and clicking on a grid location.
At the moment that’s pretty much everything.
Stripes is a java / Swing application and the source code is included in the .zip file. I developed Stripes using just the basic command line compiler. To do any development for Stripes means you need the java development kit: Jdk / OpenJdk. There are some good reasons to help improve Stripes. For example, Stripes has a limited component list and you might want to add to it.
From Stripes 0.1.3 it's easier to add your own components (although stripes is fairly restrictive on how you use them). For example, let's say you wanted to add a standard USB B-type connector with a suitable outline. To add it, you'll need to add to the list of commands and create a new connector class. This is how you can do it, step-by-step:
When you have done this for a USB-B connector you should end up with a working ElectricalUsbBConnector class (the Usb B connector class is included from v 0.2.0).
Stripes has bugs and limitations. Some menu options don’t work. Closing the main window closes the app, not the window (not normal on a Mac). Save As... works, but Save doesn’t. Buzz doesn’t work (it’s intended to help buzz out a circuit). New doesn’t work (it should create a new board from dimensions you specify). You can't undo mistakes; nor arrange, nor annotate objects. These are things I obviously would want to change on future versions.
On Stripboard designer RepRap people have made comments about being able to generate files for milling stripboards based on the drawn files. This is a good idea - it’ll reduce the number of errors made when building the stripboards. I guess at some point a RepRap will function as a pick and place machine! It’s worth adding this in a future version too.
You can’t yet place wires and components on the Track side of the board. Generally I think this is undesirable, but it’s an intended future feature. If you find that Stripes keeps crashing, you can enable console debug by running stripes with:
java -jar Stripes.jar --debug
You can make stripes wires thicker by running stripes with:
java -jar Stripes.jar --wire-width=4.0
The major Philosophy for Stripes is that it should be simple and fast. I want it to run well on lowly hardware; stuff slower than a 600MHz iBook. Mostly, this is because I’m really tired of the way software continually slows down and more to the point, I don’t want updates to Stripes to force me to buy extra, faster hardware. Since I’ve written it, I reserve the right to officially run it on my own computers, I don’t think that’s too much to ask. Anyway, it shouldn’t be a problem for the moment at the current level of simplicity.
Secondly, I don't want to clutter the main window with menu options masquerading as icons; I'd sooner use menu options since it's harder to convey verbs with icons, but natural with menus.
Unlike Forrest, I think the GPL is good. So, Stripes is released under the GPL; if you unzip Stripes.jar you'll find the source code and licence notice in Stripes/Stripes.Java. I've also included the full licence text in Stripes/COPYING.txt
0.1.2: Initially released version, 26/09/09 (with a contact net bug fixed).
0.1.3: Connector class added, board coordinate bug fixed, debug option on command line (with usage), About box says version#. Example connector class (TerminalHousing3) added. Tutorial added to ReadMe.
0.2.0: UsbBConnector added as default. Wire width is now adjustable via a command-line launch. Stripboard strips are easier to identify. Labelling has been added.
0.2.1: Din5Socket added.
0.2.2: Text label reading error fixed. Stripes now uses generic Headers.
0.2.3: Button component added.