Reflections on the Barbot

Besides being the best looking project of mine in a while, the Barbot also has some pretty neat functionality. One of the most interesting parts of a project is working out how to turn whatever I imagined into reality. I learn how to use some new hardware and software, and along the way, I get to give my problem solving skills a good workout. Here are a few things that I learned or that otherwise caught my attention while working on the Barbot:

GPIO Control in Linux is Mind Numbing

After building a large number of projects using Arduino boards and similar hardware, I decided I wanted more processing power and built the Barbot using a single board computer - the BeagleBone Black. What I never expected was the insane learning curve for GPIO control in Linux. It all looks very straightforward at a surface level; there are a bunch of files which you can read and write to set, change, or view the status of all the pins. However, what isn't as well documented is that this is all configured by device tree overlays which follow their own set of weird rules. At one point I got so frustrated by all this that I completely stopped work on the project for a month.

Online Laser Cutting is Mind Blowing

While there are a few ways to manufacture an instrument panel, I decided to get mine cut from acrylic using an online service. It was this process that reminded me of what absolutely insane things we can do online these days. I can sketch any random shape, and for a small fee, I can send my sketch to someone who will use a laser to cut it out of plastic and then mail it to me. I was able to get a professional looking finished product for a nominal amount, without any investment in equipment, and with minimal hassle. That's pretty mind blowing.

Captive Portals are Strange

In order to make guest access easier I decided to set up a DNS based captive portal. In other words, I created an incredibly misconfigured DNS server that posions all the requests it receives. I'm happy with the result because it works, but I have a feeling I should be deeply ashamed for created such a brain-dead system. Here is a dialogue based on what I imagine is happening behind the scenes (I recommend reading the Barbot's part in the voice of Wheatley from Portal 2):

Your computer: Hi! I want to talk to google.com
       Barbot: Okay, I'm google.com!
Your computer: I'm getting a security certificate error, are you sure you are google.com?
       Barbot: I swear I am, you just need to trust me!
Your computer: Fine, show me the homepage.
       Barbot: Hmm... sorry about that, they've moved it to barbot.seancarney.ca
Your computer: Okay then, I want to talk to barbot.seancarney.ca
       Barbot: This might come as a surprise to you, but I'm also barbot.seancarney.ca
Your computer: Fine, show me the homepage.
       Barbot: Here you go!

Other Stuff Not Included in the Above

  • I learned how to create an Upstart service
  • I found out it isn't easy finding & buying silicon tubing of an exact size online
  • I learned how to create an wireless access point with hostapd
  • I gained an appreciation for pull-up resistors
  • I was reminded that support for wireless adapters in Linux is still far from perfect

Comments

Hi! I'm curious where you got the plexi panel laser cut?

While I'd rather not buzz market random businesses, I used Ponoko and they seem to be on the up and up. Depending on where you are there is probably someone who could do it locally.

Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Filtered HTML

  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.