Exploring the open source hardware revolution.

Tag Archives: hack

A spot welder can be used to permanently attach small pieces of (mostly ferrous) metal without the need for screws, rivets or adhesives. The actual science of optimizing a spot welder is pretty deep, but at the end of the day all you’re doing is heating up metal until it flows, so as long as the tool does that you can get some home shop use out of it…particularly if it’s made out of like $10 worth of materials and runs on household current. BTW, don’t mess around with high current devices unless you know what you’re doing and take all the appropriate safety precautions (like not standing in a puddle).

Beth over at scanlime is no stranger to building electronics. But this time she wanted to, well…in her own words, “create something new and exciting that I can immediately use in my everyday life. It also happens to be a sex toy.” Specifically, one of those little remote-controlled vibrating egg things.

She ended up producing a hack that is remarkably polished. She even designed and 3D printed a custom enclosure for the whole thing. If she had used neon pink plastic it would have been hard to tell that it wasn’t part of the original product.

She’s got an incredibly detailed description of the project on her blog. Personally, I think the most interesting part of the hack was her solution to the power problem.

This was getting complicated fast. Lithium polymer battery, a boost converter to raise the voltage to 5V for the sonar module, charging circuit, “fuel gauge” indicator. All of this work goes into every commercial product that runs on batteries, and we often take it for granted. As far as I’m aware, though, there isn’t a great equivalent for quick DIY prototyping. The Arduino Fio board is close to what I want: an Arduino with a built-in LiPo battery charger. But it doesn’t have the 5V boost converter or any way of monitoring the battery’s charge. Without designing my own PCB, I’d need several separate components: battery, fuel gauge, charge/boost. All total, over $45 and a lot more bulk and complexity than I wanted. I was really hoping there was a better option.

It so happens that this sort of amalgamation of parts is already pretty commonplace in the form of portable cell-phone chargers. These devices are very little more than a boost converter, charger, lithium battery, and a very basic fuel gauge. Best of all, thanks to economy of scale, they’re really inexpensive. The 3200 mAH battery I used in this project was only $22, and it’s something I can reuse for multiple projects… or even to charge my phone.

This is an elegant solution that can apply to an array of different projects. Once something becomes commoditized it can drop below the price point at which it makes sense to reproduce the functionality yourself. All wireless projects need power, and with cell phone chargers becoming cheap and easy to find it makes sense to just plug one into the project’s USB slot and call it a day. Not only is it cheaper and easier, but it’s modular because you can still use it for its original purpose.

If you like the Fixer’s Manifesto then you can also look at pictures of people holding it here, if that’s your thing. If you want to fork/hack/improve it you can do that on the github page. If all of that is just to “free as in beer” for you then you can also buy a print from Sugru (it comes with a pink pen for making edits…yeah).

When you don’t want to fight with low-level syntax you use a high-level programming language. What if that concept was applied to hardware?

TinkerForge is, to oversimplify, a group of modular circuit boards that “just work” with your computer. As long as the program you’re working on is connected to a master brick (via USB), all of the sensors and actuators connected to that same brick will “just work” together. You connect the bricks together and write your program, then the bricks take care of executing that program in the real world. No messing around with firmware, no soldering, and if you want to change something you just rearrange the bricks.

Please Introduce yourselves and the origin of TinkerForge.

Our names are Bastian Nordmeyer and Olaf Lüke, we both have a Masterdegree in Computer Science from the University of Paderborn. At theUniversity we worked at a research project that had the goal to teachrobots playing soccer. But instead of programming the behaviour of therobots we actually had to fiddle around with the hardware most of thetime. That is where the idea of easy-to-use and modular hardware wasborn!

What made you decide to open source the project?

We both love Open Source Hardware ourselves. We have everything fromOpenMoko over Arduino to Beagleboards in use here! Also, in our opinion,it makes sense for hardware that is made to tinker around with to beopen source.

What advantages did you realize from an open source strategy?

With our hardware it is possible to get the easiest possible access to control hardware, a few lines of Python are enough for most small projects. But since it is open source it is also possible to go deeper and perhaps write some C code to change the firmware of a Brick or Bricklet and if that isn’t enough you could also go ahead and make your own hardware that works together with ours. None of this would be possible without it being open source!

What license(s) is TinkerForge released under?

We consider the programming language bindings public domain, thereshouldn’t be any restrictions to use them. Everything else is eitherLGPL if it is a library and perhaps usable in other projects or GPL orGPL-like licensed if it belongs to our core stuff. The hardware islicensed by the OHL (CERN Open Hardware License).

Were there any tools/resources that were vital to your success?

We use the standard open source compilers and editors and so on for developing, nothing special. We did receive an EXIST-Gründerstipendium [entrepreneurial grant] that helped us a lot financially in the development phase.

Could you suggest one really important skill people should learn first?

In general I think the thing that we needed most is endurance. If you want to learn something just do it and keep doing it! You won’t be able to learn programming or designing hardware in 2 weeks, it will take a lot of work and a lot of time.

Did you ever make a major shift in the direction of the project? Why?

Oh, quite a lot! The first hardware version had a size of 2x2cm (now the Bricks have 4x4cm). They were absolutely tiny! Unfortunately we weren’t able to fit everything on them that we wanted. The first software version used DBUS instead of the generated language bindings. We already had the software ready and working for that, but it was to much of a hassle to get working on different operating systems (i.e. impossible).

How much of the project was individual effort and how much was social?

Getting the grant was quite a social effort i guess. Also we did of course have discussions about every aspect of the concept and what sensors to use for hours on end :-). Other then that it was a lot of developing effort for two people. It took us more than two years to design the hardware, write the firmwares, the tools (brickd, brickv), the language bindings and the documentation.

Where is TinkerForge going next?

It seems like Arduino is the most obvious comparison to TinkerForge. Do you consider Arduino a competing platform?

We don’t see us as competition to Arduino. Arduino is programmed on the device in a C derivative and our stuff is controlled from a PC with a high level language. Sometimes you want to solder and make your own hardware designs and sometimes you just want to automate something as fast and easy as possible. Those concepts can both coexist quite happily :-).

Any plans to combine bricks that are often used together into one board?

We will do this (and are in the process of doing it) for companies thatwant to use large amounts of the same Bricks and Bricklets. I don’tthink this makes sense for the general purpose hardware. This would justmake everything more expensive (we would have to make smaller amounts ofmore circuit boards etc.)

How did you settle on this particular level of modularity?

We just used the UNIX principle: “Make each Brick/Bricklet do one thing well”.

Is TinkerForge just for learning/prototyping or is it cheap enough to
embed in finished products?

If you make millions of this product: Probably not. If you make one of this product per month: Hell yes! The industrial alternatives you can get are often orders of magnitude more expensive.

Obviously a great deal of attention was paid to making the bricks work together transparently. Was that an important goal from the beginning? Why?

That was goal from the beginning, yes. The transparency is [necessary so that the user does not] need to think about the hardware components at all.

Are there any aspects of the hardware/software that limit hackability?

Regarding the hackability: We use 0402 and almost only SMD parts. This makes it of course virtually impossible if you want to directly solder something on a Brick or Bricklet. At that point there has to be a trade off between size+price and hackability and we decided to go with size+price. Other then that, every part should be hackable. There should be (and will be in the future) more documentation for the low level stuff.

Was TinkerForge intended to be a commercial project or did it evolve into that?

I think it was clear from the beginning that the project was too big to be just a side project or a hobby.

How did you balance the need for commercial success against engineering goals?

Good question. This is probably the hardest of all the problems to solve. We originally wanted to start the online shop in the end of 2010. In reality we were only able to go online in mid December 2011! Most of the additional time invested probably had to do with the trade off between high end parts and costs.

We have dozens of prototypes laying around here with different board-to-board connectors, different wire-to-board connectors and different processors. We first used 8 bit AT91USB processors, but decided to go for the 32bit SAM3S later on (quite a bit more expensive, but a lot more capabilities).

Good board-to-board connectors can be hugely expensive (like the Molex PMC series). For a Master Brick they would cost more then the whole Master Brick now :-). Lots of cheap Chinese ones only worked for 50 or so mating cycles until something broke.

Is it possible to run a TinkerForge stack independent of a computer?

Yes it is, if you write your own firmware (our firmware on the bricks/bricklets is opensource, so you can use it as a starting point).

If you want to control it from the outside you need a full computer currently. We have planned something called “Low Level Programming Interface” which should enable it to control our products via SPI, I2C or serial interface from other microcontrollers. Although it is possible (we have designed the hardware accordingly) I’m not sure if this will maybe be dropped since we don’t have enough manpower to implement it. Since currently nobody has asked for it, it has a low priority for us.

Any final thoughts?

There is no recipe you can go by, I think. You just have to test lots and lots of stuff until you find something that works well and isn’t too expensive.