Tuesday, April 27, 2010

Free software EDA tools

At last I've decided to learn how to use free software EDA tools in order to design a controller board to my pinball machine. I spent some time reading tutorials on gschem and pcb (tools of the gEDA suite) and I have had some very basic issues with these tools, which makes me believe that very few people are actually using them. Then I entered the #geda irc channel at freenode to ask for some help.
My first surprise was that freenode redirects from #geda to ##pcb, with the following welcome message:
"The topic for ##pcb is: Support and discussion for PCB design and prototyping:- CAD tools, Eagle, KiCad, FreePCB, gEDA, Board layout and fabrication techniques. Please keep it polite, reasonable, constructive. | news news news: eagle non-profit now does 6 layers"

This has annoyed me. This probably means that somebody decided that communities should be merged regardless of the tools being free or non-free software. By this welcome message and also based on some conversation I've had in this irc channel I noticed that there is a strong bias towards usage of Eagle, a proprietary tool. And I also noticed that the free tools are not used much because they are often considered technically inferior. Well... without users I think it is harder to make a tool better.

One of my concerns is that, if Eagle community is strong and gEDA community is weak, then putting them together in the same irc channel has the effect of not allowing gEDA to grow at all. I think that it is important for a community to have its own irc channel even if it's only gonna have 2 or 3 people hanging there.

Off course there are other places to form communities around, such as mailing lists. But what I am really concerned is about this general trend of simply using Eagle for designing circuits and, more generally, about the consequences of the existence and popularity of such gratis/non-free tools that run on GNU/Linux, regarding the development of their free alternatives.

Given that there is a lot of people trying to stretch the free software movement ideas towards hardware development, why don't they use the free tools at all? Perhaps these people are not really talking about freedom...

Wednesday, April 21, 2010

Recent improvements on my pinball project

Last Sunday morning, Fabricio Zuardi and his friend "Ace of Spades" came to visit my place to check out the pinball machine and later, at night, we gathered with some other geeks to discuss homebrew 3d printers and related topics while drinking draft beer.

Fabricio took some pictures which he's just published in his Flickr account. The first photo in this post is CC BY Fabricio Zuardi

I have spent part of these last few days installing the decorative acrylics that I mentioned in my previous post. I have also installed some structural parts in the bottom portion of the playfield.

Months ago parts of my camping tent were stolen during Campus Party, but I saved its metal supporting stakes because I felt they would be somehow useful. Indeed, I have found a good way of using it in the pinball machine. By bending it with the help of pliers, I've transformed it into a separator that is placed between inlane and outlane. I think that the result is perfect!

There are some more photos at my flickr page.

Saturday, April 17, 2010

More decorative acrylic parts for my pinball machine

Months ago I have made the decorative acrylic parts for the upper loop of the machine. Yesterday I have ordered another batch of laser-cut acrylics. This time for the bottom part of the playfield.

In the following video I am using glue to add artwork to the acrylic parts:

And in this other video, as a final touch, I am cutting the excess of paper from the parts:

Tuesday, April 13, 2010

Visiting the Pacific Pinball Museum

I was planning to visit the National Pinball Museum in Baltimore during my visit to the USA, but it was far from any other place I was intending to visit. It turned out that I did not visit it. But I also decided to visit San Francisco Bay Area and some people told me that there is a pinball museum there too. So, I decided to check it out. I took the BART from San Francisco (where I was hosted in a friend's house) to Alameda - east bay - and visited the Pacific Pinball Museum!

When I arrived at the museum I introduced myself, telling them that I was looking for some advice on my homebrew pinball project and that I was also interested in buying some pinball parts for it. I was then introduced to Michael Schiess, the museum founder, who was very friendly and took me to a private tour around the warehouse where he stores the hundreds of machines that are not in the public area of the museum - either due to lack of space or because the machines need to be repaired/restored.

 There, Michael guided me through some interesting machines including the world's largest pinball game, which is played with a pool ball and whose flippers are activated by 110 volts coils:

  Then he started looking for some pinball parts for me, but he didn't have many spare parts. So he decided to give me a playfield, as a gift, so that I could take parts from it. He said to me that as it woudn't be possible for me to take the whole playfield to Brazil, I should remove the parts that interest me and then give the playfield wood (with the artwork of the game) to my host there in San Francisco. I liked the idea. He gave me a ride to the BART and then I brought the machine to Seth's place. Seth has lent me this shopping cart so that I could more easily move the pinball playfield around:

 So, I took it to NoiseBridge (a hacker space in San Francisco) and spent 3 or 4 hours removing all the parts from it. I have left the playfield wood in the public area of the hacker space so that anybody can use it for whatever project and I have sent them a notice in their mailing list. My personal suggestion is to hook it to the walls as a decorative item. Perhaps they could use a microcontroller to blink some leds also, just for astethic purposes.

Here are the parts that I've brought to Brazil:
* 32 orange posts
* 4 hit targets
* 5 red rubbers and 5 new shining pinball balls given to me by Michael

Thanks, Michael!

Saturday, April 10, 2010

Pinball hacking and personal fabrication

I consider that building a pinball machine at home during these last 4 years or so has been a strongly symbolic act. It has started as a need to materialize a proof of concept of a clever hack I once figured out was possible based on the knowledge I had acquired after spending lots of time and effort reverse engineering an old pinball simulation game. The proof of concept was not very hard and indeed the hack is already proven through some early experiments. But a corollary of this discovery was pretty obvious: I would have to build the real version of Pinball Fantasies sooner or later.

So I felt challenged and started to build it, just for fun. I was trying to do something that I had never done before and that I hadn't even heard of other people who had done similar projects. Building a homebrew pinball machine sounded to me like a very ambitious project. Nowadays I am aware that I am not the only geek working on custom pinball development (there is perhaps half a dozen other people in the world having fun with it such as Jeri Ellsworth), but I didn't know about that at the beginning of the project and so I felt alone and obliged to come up with my own solutions to overcome each of the challenges involved in the execution of the project.

Then, gradually, I started to perceive some interesting relations between this project and my previous (software-only) ones. I had been fighting for software freedom and access to knowledge for some time and now some of my practices from the software world were being replicated in the physical construction of the pinball machine. I had decided to publish every details of the project (including lots of photos and source code) because I felt that I should encourage other people to build things also. I was also refusing to use proprietary software and based on the same principles I was avoiding fabrication processes that I did not fully understand. For instance, I was not happy about relying on professional laser cuter services to build some of the acrylic parts of the machine. I wanted to cut the parts in a homebrew CNC machine that was designed and built by a friend that I met through one of the brazilian pinball club mailing lists. I have only used the professional laser service because my friend's machine was broken and he did not seem to have enough time to fix it.

I have also decided to use the Arduino controller board and it was a good reason for me to learn more about microcontrollers. I have then bought some dot-matrix-display modules and had to help a niche community of Arduino hackers to adapt code for controlling these displays (in my specific case, I needed to control 7 of these simultaneously). I have even discovered Inkscape while I was looking for a CAD software to draw blueprints of the machine (Inkscape is not CAD, but I stumbled upon it during the search). I quickly fell in love with it. I have become an Inkscape developer and this is one of the reasons why the pinball project was neglected during some long periods of several months with practically no pinball hacking and lots of SVG renderer implementation efforts.

But what motivates me to tell this story is that recently I have become aware of this trend of personal fabrication technologies. Projects like the RepRap and the CupCake CNC are bringing the hackability of free software to physical things. And after reading the articles about it on Make magazine, I've decided to try to use it on my pinball project. I think that it is a practice totally compatible with my feeling of a need of better understanding the processes of fabrication, instead of simply achieving the desired results. It is a matter of getting more and more autonomy to create and build things and it is also about feeling more empowered by the knowledge acquired.

Some time ago I felt the need of having a 3d model of the machine in order to make some design decisions. For example, to have a better notion of the space available for some pinball parts in the playfield and to decide on placement of some screws. But I had almost no knowledge of CAD software and for some reasons that would require me to tell another long story (perhaps I can talk about it in a future blog post), I got involved in GNU LibreDWG, which consumed me another bunch of months with no pinball hacking again :-P I have then tried to make 3d models of some pinball parts and then found this guy who had done it also for some commonly used parts and had made his CAD files available online.

My conclusion to this blog post is that I think it would be awesome for the pinball hacking hobby if we could gather more interested people to make 3d models of pinball parts and share them in some place like thingiverse.com and then it would be interesting to see people building such parts using homebrew 3d printers like the RepRap. I think that my first attempt at that will be trying to replicate bumper caps to look like the ones depicted in the artwork of the original version of the Pinball Fantasies game. I have tried to improvise bumper caps using chocolate mousse cups once and it looked great, but it was slightly larger than the ideal size and those wouldn't fit well in the layout of the PARTYland playfield I am building. I did not have a good solution to this bumper cap issue until now. It seems like RepRaps will be very useful for my pinball hacking fun.

I must just take care of not spending some additional months focused on building my own RepRap printer... I know that there is a big chance of it happening, given my usual behaviour, though :-P

A yellow bumper cap from modern machines:

The bumper caps depicted in the original game artwork:

My "chocolate mousse cup" bumper caps:


So much good things have happened to me during my Boston/San Francisco trip that I have been constantly daydreaming during the last week. I am excited, enlightened and enamoured about so many plans and ideas! There is also a feeling of fear/uncertainly, I think. But that seems to be an inevitable part of exploring the future.

As a result, I have been revisiting some unfinished projects and have been trying to benefit from this new wave of inspiration in order to boost the development of some of these projects.

Friday, April 09, 2010

LibrePlanet 2010 Trip Report

Attending LibrePlanet 2010 was an awesome experience for me. I have met lots of very interesting people there. I'd like to thank Mozilla for sponsoring my trip to Boston. Here is my report on Mozilla related topics that were discussed at the conference.

Trip Report

At LibrePlanet 2010 the main subject discussed was the debate about the issues of SaaS ("Software as a Service") for user's freedom and autonomy, which was the topic of Stallman's most recent article and keynote at the conference. It is clear to me that the most relevant Mozilla project (that I am currently aware of) that is related to these issues is Mozilla Weave. There is an increasing perception among GNU activists that the upcoming new challenges for the GNU Project will be around providing solutions for privacy-enabling infrastructure and decentralization of services in order to keep the users in control of their computing and of their private data.

Stallman's SaaS article was first published at Boston Review, where I would suggest you to check the user comments (there are 4 comments only at the time of writing this report) in order to have an idea of the kind of debates that the article has generated. After Stallman's speech - during the questions session - he clearly refused to talk about privacy, as he was more concerned about first discussing the issue of "running your computation on a server that you do not control" and was clearly trying to keep the topic of user privacy - which he explicitely cited as "another important issue" - to be discussed in a potentially upcoming article/speech. After LibrePlanet, I have had the opportunity of discussing these issues in private with Peter Brown, executive director of the Free Software Foundation, during one of my visits to the FSF Office in Boston. He acknowledged that the issue of privacy was intentionally preserved to be explicitely targeted by future FSF campaings and has suggested me to subscribe to the GNU Network-discuss mailing list in order to participate in the brainstorming of new GNU initiatives towards solving these issues.

The upcoming GNU Hackers Meeting during GUADEC 2010 will be specifically focused in "free secure networking and decentralised applications".
There is an interesting, but rather old article - July 14th, 2008 - by Benjamin Mako Hill entitled "Franklin Street Statement on Freedom and Network Services" that is directly related to the subject discussed here.

Encrypted Data Stores

One of the various reasons why users are increasingly adopting SaaS tools is related to a trend to rely on/trust remote servers to make backups of their data. Users are very often not prepared to setup a reliable personal backup routine and even when users do so, it is understandable that they feel that Google (or some other provider of web-based services) might be able to provide a better quality infrastructure on their data centers to (supposedly) guarantee the integrity of user data. By accepting this premise, lots of users are not protecting their privacy and allowing services like GMail to crawl Gigabytes of their private stuff.

To address this issue there has been some suggestions, including the idea of crowdsourcing backups by sharing encrypted data in a p2p network.
I understand Mozilla Weave as a sign of commitment from Mozilla with privacy values and it seems to me that one of the reasons for it having restricting data quota limits might be that it is not a decentralized service. Correct me if I am wrong about it - I am still just starting to learn about it. Could Weave be adapted to run with higher volumes of data in a decentralized architecture? Or would it be wiser to design something like that from scratch instead?

There are some free software initiatives towards that kind of system:

* Tahoe, a redundant, distributed and encrypted filesystem
* The Circle, a peer-to-peer filesystem (discontinued in 2004)

Remote Computing

Running personal computational routines in a server that you do not control was explicitely rejected by RMS in his speech since it has effects to users autonomy and freedom that are similar to those of proprietary software. I think that the current SaaS article is sufficiently extensive in exploring this topic.

Local execution of arbitrary (non-free?) code

An interesting article about a complementary issue that was published by RMS some time ago entitled "The Javascript Trap" deals with the local execution of javascript code automaticaly fetched from a remote webserver on page load. At that time was stated the need for a system that would allow people to have better control of which routines are running on their browser environments and that would perhaps enable them to collaboratively tag "trusted versions" of such scripts. This is a controversial topic that deserves some attention from Mozilla, especially in those cases where highly complex non-trivial javascript applications are delivered to the user's browser environment to handle sensitive user data.
One possible attempt to target this issue could be to incorporate popular javascript libraries such as jQuery in the browser installation and allow updates of these to be better managed by the users - or even possibly allow for local customizations of these modules. Also, I can't avoid mentioning Greasemonkey as a source of personal insight on why people would care about changing webapp behaviours.

Additional comments:

I've just enjoyed watching a related speech by Eben Moglen entitled "Freedom In the Cloud: Software Freedom, Privacy, and Security for Web 2.0 and Cloud Computing".

Thursday, April 08, 2010

Geek Food

Atomic cookies (made with Inkscape) are great...

...but fractal cookies are absolutely AWESOME!

Wednesday, April 07, 2010

Make Magazine

Recently I have made a subscription of the Make Magazine, an utterly cool publication focused on DIY projects. Yesterday I have finally received the first one by mail (issue #21), which has the Cupcake CNC 3d printer from MakerBot Industries in the cover. My subscription to the paper print versions of the magazine gives me access to the online version of all of the previous issues of Make, which is great! It is also very useful for performing searches for keywords, even when we have access to the paper version.

I am also delighted to notice that one of the articles in this issue ("Instant Paddle") is written by Tim Anderson, which I met in a nice sailing afternoon with some friends in the San Francisco Bay, during my visit to the US last month.

LibrePlanet 2010 and the GNU Hackers Meeting

From March 16th until March 31st I've been visiting the USA for the first time. The reasons for my trip were to attend LibrePlanet - the anual meeting of free software activists held by the Free Software Foundation - and to participate in the GNU Hackers Meeting.

Me and my friend Rodrigo "pitanga" have both participated in the GNU Hackers Meeting due to our contributions to the GNU Project through the development of GNU LibreDWG.

My trip was sponsored by Mozilla and, for that reason, I am currently working on a trip report for them. I'd like to thank Chris Hofman, Sarah Doherty and Chris Blizzard - from Mozilla - and Holmes Wilson - from FSF and PCF - for supporting me.

I have lots of things to write about this amazing trip and all of the wonderful places and people I have met, so there will certainly be some more blog posts soon.