Monday, March 30, 2009

Open Source Hardware Bank March Update

It's been ~4 weeks since the first blog post about the Open Source Hardware Bank, and things have been really really busy for Justin and me. I think the biggest news is that the Illuminato Round 1 "Fund" has gone from a complete start to finish, so I'm going back now to see what happened. In the spirit of transparency, I'm trying to list everything that I think someone would be interested in asking... and I kind of want to make a point that it's possible to be "open source" about finance too. In the meantime, I'm definitely becoming more of an economist than I ever thought I would be...

"OSHB Fund 1" by the numbers
  • The OSHB Fund 1 funded 100 Illuminatos.
  • It took 3.5 weeks for the entire experiment to start and end (that was fast).
  • 20 people bought Illuminato's from other people who funded them, which amounted to an even 20% "peer-to-peer" distributed capital percentage. Thanks Priya for that term...
  • 48 other people bought Illuminato's that were funded by the OSHB (there are 2 left, which means the bank successfully funded and returned on its investment (the momentum principle held for the Illuminato woo hoo!).
  • 8 people did the Buy-1-Build-2, got an Illuminato for cost, and $4.50 for shipping, which pretty much means free ground shipping anywhere in the U.S. Anyone who bought this will get a little box with an Illuminato in it, and a check for $64.48 give or take (depending on the shipping amount). The Buy-1-Build-2 option costs $94.47, so subtracting $64.48 equals $29.99, which is the cost of the Illuminato with no markup.
  • 11 people did the Buy-1-Build-1 (it's hard to see in the current graphic, but that's because they went over the middle queue amount). Anyone who bought this will get a box with an Illuminato, and a check for $34.49 give or take. The Buy-1-Build-1 option cost $64.48, so subtracting $34.49 equals $29.99, which is the cost with no markup.
  • 90 Illuminatos were sold with a 15% markup, which is WAAAAY less than the current average for electronics, which is something like 40-70%.
  • 6 Illuminatos were sold with a 30% markup, which is actualy still less than the current average for electronics.
  • 2 Illuminatos sold with a 45% markup, and that's only because they're the last ones at the end of the queue, but it's funny because actually, that's STILL less than the markup on most electronics.
  • For matching the other half of the inventory round, the bank made a return of about $234 dollars in margin off the initial $1,380 it invested, for a return of about 16.95%. It's higher than 15% because of the few 30% markups at the tail end of the queue.
  • The bank's return on investment of 16.95% for the Illuminato "OSHB Fund 1" happened within 3.5 weeks.
Ok, that's all nice, but what about the actual real things that are getting made? The Illuminatos' PCBs are almost done ... Mike and I are just proofing them to make sure all the connections really work and do what we want them to do :)


The Accountable Agency Ratio (AAR)

Of the 34 ButtonShields currently bought/funded, 13 were bought right out vs. 21 funded, which means an "accountable agency ratio" of 38%. The "accountable agency ratio" is a term that Justin and I thought up after reading some econ textbooks we borrowed from friends. It probably deserves it's own blog post, but the gist is that there's this thing called the "agency problem" which is what economists like to blame lots of problems on - like greed and bubbles and mismanagement and lack of CEO ethics and corruption. I think it basically comes down to this: the guy running the company is often not the guy who's money is at stake, so he's an agent, and he does all kinds of stuff for his own benefit, not for the benefit of the investor.

In the real world, the accountable agency ratio is something like 0.01% for employees (like me in my day job), 1-5% for overpaid executives (who get lots of options), 5-30% for each entrepreneur in a startup (based on friends of mine), and 10-40% for investors (like venture capital, but this is an estimate). So Justin and I don't want to this ratio to go below 33%.

Why? I don't know, it just feels right. That's like a 2:1 leverage ratio, instead of the 9:1 leverage ratio of the US central bank lending system, and 20:1 leverage ratio of mortgage lending all the failed banks used.



"OSHB Fund 2" by the numbers





  • 34 ButtonShields have been bought or funded.
  • 23 EqualizerShields have been bought or funded
  • Of the 23 EqualizerShields, 12 are bought outright, vs. 11 funded, for an "accountable agency ratio" (AAR) of 52%!
  • At the time that the Illuminato round 2 got funded, the AAR ratio was about 20/50, or 40%. So I suppose that technically means the EqualizerShield is getting less "speculation" and more "I just want one"-tion. :-)
  • 16 DoubleWide X's have been bought or built, with an AAR ratio of 50%.
  • 4 TripleWide's have been bought and 1 built. Hmmmm... The AAR ratio is 80%.


What happened to the Fund-5 option?

Now that Justin and I have the AAR (accountable agency ratio) defined, I didn't think it made sense to just have someone come in and Fund-5 at any given time off the bat, because that would run the risk of inappropriately or arbitrarily elevating the perceived "demand" for something that's getting built. Since the initial demand is the thing that's being used to lower the risk for the OSHB because of the "momentum principle," screwing with it can lead to inappropriate "demand bubbles." ... just like credit default swaps (at least from what I can understand of them), that would mean the bank was making a bet on a momentum principle which was artificially inflated. Since bubbles are a bad thing, Justin and I are trying to avoid them.


The Fund-5 option addresses the AAR in 2 ways. First, it's a "Build-2" in the first half of the inventory queue, so this goes towards offsetting initial demand's AAR. Second, it's a "Bank-3", which means that it's funding 3 after the half-way fulcrum point. That means it's partly replacing the role of the bank. This makes sense because in exchange for optimizing the AAR down to 33% and an unattached 15% ROI, the Fund-5 option has to wait until all the other Build's in the first half of the queue are built before these last 3 get refunded (like the bank does). And, it's assuming and reducing part of the speculation over the bank's bet on the momentum principle.

Now that there's an established Buy/Build AAR ratio for the ButtonShield, EqualizerShield, and DoubleWide X, Justin put up on the store a couple of Fund-5 options for those...

So there are 3 Fund-5 options for the ButtonShield, because if all 3 of them sold, that would make the AAR equal to 33%. Anyone who buys these would get a 15% ROI in whatever time period they sold. Or at any time, the Fund-5 can be cashed out by getting some of the inventory it funded, at cost of course.

There are also now 6 Fund-5 options for the EqualizerShield, because if they all sold, that would make the AAR equal to 34%.

There are 4 Fund-5 options for the DoubleWide X, for a max AAR of 33%.

And there are 3 Fund-5 options for the TripleWide X, for a max AAR of 36%.




Questions for April

After the last (and first) OSEC meeting in NYC, Justin and I met Andrew, and decided to start the bank and funding in the first place, which led to all of the mess we're in now :) There's still a lot to figure out, so here are a couple of topics that I think we'll probably talk about at the next upcoming OSEC meeting (either April 10, 11, 17, or 18).

There's a "terminal run" problem that I think I want to figure out - thanks to Mike for thinking of this. Another way to say this is, what happens when another round gets funded, and built, but half-way through no one else wants one? What happens to the left over stock? When should the bank decide when to start another queue for the same product?

There's an "incremental innovation" issue that Justin is thinking about based on his emailing. That's a couple of big words for an otherwise simple question: how do I incorporate small tweaks into the hardware that someone submits or asks for? In between queuing rounds?

There's an "international logistics" problem that a bunch of people have mentioned. Because international shipping is expensive, it might make sense to either pool or parallel build, or something like that around the world at the same time in order to reduce the cost of shipping to Europe from the US or vice versa. (Thanks Eric and Joerg) This is another funny difference between Open Source Software and Hardware. Sending OSS to someone around the world is free, or fractions of a penny at most, but hardware can be between $40-120.

There's a list of other hardware projects I've gotten over email from people all over the world who want to be included in the next round for the bank. I think the OSEC meeting we'll have to figure out a formal process of voting on which ones move up into the queue.

There are lots of analyses I've started to build that I want to include on the website... I'd like to get some help on them, or some opinions.

There's a wiki that Justin is starting that will need lots of work from him and me over the next couple of weeks.

Ok... back to coding my next project...!

Tuesday, March 24, 2009

Uploading TouchShield Images with the Aardvark IDE

I just downloaded the most recent version of the Aardvark IDE and uploded my first slide show!!!



As a tribute to the finale of the greatest show of all time I uploaded some pictures from Battlestar Galactica. I cropped the images in paint and saved them as 24-bit Bitmaps.

Uploading a 128 x 128 pixel bitmap took about 1 minute...

I uploaded the gadget file I used on the app store if anyone is interested.


Thanks Omar & Chris... I'm having lots of fun with this little feature!

Sunday, March 22, 2009

Open Source Hardware: Phantom Menace

Queue theme music from Star Wars... dun dun dun dun.... The SEC is like Jar Jar Binks. Annoying as heck, but if he wasn't there, the plot wouldn't have happened, so you put up with it until you fix it and figure out how to get along without him.

I like hacking systems, and the idea that information wants to be free. That's why I do OSHW, and why I think it needs Open Source Finance (OSF?). And it's nice when someone agrees enough to write an email for how to deal with the regulatory issues identified over here in the Wired blog article (thanks Nick, Paul, Steve, Mike, the other Matt). And thanks Priya for not pulling quotes out of context to make me look dumb... she basically said, it's not going to work, but did so objectively and honestly... I'm ok with that.

"These guys do not have a regulatory strategy and they need one," he says" - that's Mr. Pitts from Zopa. First of all, that's RIDICULOUS - he's a real guy that does this stuff for a living! I used to think Zopa and Prosper were really cool sites when I read about them years ago, but I still felt like they were too web 2.0y for my tastes (in general, I don't like "companies" where all they do is just run websites... I think companies ought to have a real, tangible thing they make like a motorcylce or a dishwasher or a RAID controller card, but I digress...).

Ok, so here are 4 ideas for official regulatory strategies that I got over email:

  1. Model after commodities exchange, rather than equity or debt
  2. Remove system return, and tie everything to hardware
  3. Only issue new I-Bills for the bank when it needs them
  4. Don't take any money from someone who isn't a hardware hacker


1) Model after commodities exchange, rather than equity or debt

Apparently there's a problem with debt that says "there's a guarantee of X% return on investment" because guess what? A guaranteed return doesn't exist! I'm not a finance whiz, but even I can understand that there's no such thing as free return. There's also a problem with equity, because it's just based on expectations. I've never held stocks, I don't buy and trade, blabla because I don't understand how it works - honestly: I don't get what my money is doing when it's supposedly owning a stock, but really it's owned by an investment bank who's just issuing things like butterfly spreads and such on it - sounds stupid to me. Anyway, the price only goes up when others think it will... hmmm... equity seems like a bad idea for funding open source hardware. Either it's going to sell or it's not. Equity in companies makes sense sometimes because it's like a bet on the expectation or idea that someone wants to buy what you just built, and now you're trying to sell it to someone. So it's a gamble...

But equity is like a solution to a problem that DIY Open Source Hardware doesn't have: if I built it, if I want it, if I designed it, guess what? I'm gonna buy it. So there's really no speculation when there's a group of people building it for themselves. There's no "speculation" when you're Doing-It-Yourself.

A while ago, I went to see George Soros speak about reflexivity at this "forum on risk" event and after he was done, I ran up to him, and asked him about what institutions should do if they don't want to be exposed to the kinds of bubbles that create risk and that led to the crash in the first place. He said, "then don't issue equities." Ok, fine I won't. George Soros said so :-)


2) Remove system return, and tie everything to hardware

Thanks to Paul (who was a lawyer in a previous life, and now just goes around helping Open Source projects when they get screwed by companies), he's helping to draft up a new set of documents that basically remove the SEC problem from the system. As I understand it, the SEC gets involved whenever anyone says, "I promise that there's a X% return on investment always" because if someone says that, they're lying, and the US government steps in to make sure that when you get called out for lying, the person that bought into it gets FDIC insured. That's because in the real economy you either get your 5% return on investment or nothing.

That's ridiculous. That's like saying the entire system is based on someone's promise to back up a paper promise... but only up to a point of $250,000. That doesn't sound scalable to me. One solution is that anyone who donates money is a personal friend to me or Justin or Andrew (for instance a friend on facebook) and who I've met in person over lunch or dinner or coffee or something else. Or, another way is that money that anyone contributes is tied directly to the underlying hardware that got funded. That means: if someone's spending money to help hardware get built, Mike and Justin and I are building that hardware, selling it for you, and when it sells, you get the money back. Kind of like a flee market - except for new hardware, not old 2nd hand stuff. Or as Steve wrote in, "just be an intermediary between buyers and developers." Sounds completely reasonable to me.


3) Only issue new I-Bills for the bank when it needs them


One of the benefits of starting out slowly and small and taking time is that Justin and I are discovering and learning nuances along the way. Like, when should I-Bills be issued for the bank? If the I-Bills are issued when there's no hardware to fund, then there's money just sitting around in the bank account not doing anything useful, and that's dumb. So the simple answer is that Justin and I aren't going to issue new I-Bills until right before they're needed to fund hardware. That makes sense for a lot of reasons, but it also makes it clear what the money is going towards.

If someone wants to be on the list of people who get emailed when hardware is about to get built, just email me at inthebitz at gmail.


4) Don't take any money from someone who isn't a hardware hacker

Veni vidi hackici. The worst case scenario is the momentum principle doesn't work, and you're left with a ton of hardware PCB's, then that's not the right type of person to participate in the system. Speaking on a personal note, if I woke up tomorrow and had a ton of EqualizerShields sitting on the floor that I had bought at cost, I would be *in heaven*. I would build the craziest multi-perspective, synchronized, Fourier-transforming equalizer running off of all kinds of signals - weather data, the number of emails I had, let alone the music I was currently listening to. So I suppose that's an example of the kind of person who's good to get involved... I'm a hacker, I'm proud of it, and that's the point :)


Other rebellious ideas

Hmmm... I think I'll pass on a couple of these ideas that I got sent in over email:

-Don't incorporate - that way there's no central authority (well, I'm not giving up the non profit idea just yet, but I'm shopping around other countries to see if someone has a better and cheaper system than the USA).
-Set up base camp wherever Pirate Bay is set up (no thanks I'm not 11 years old any more, so I'm more legitimate than that).
-Run the whole thing over BitTorrent or FreeNet (ummmm that sounds like a LOT of coding)
-Run everything out of a truck and have yearly meetings at Burning Man festival (I am not a nomad, I like living in one place)
-Start your own currency... hmmmm OpenBucks? Maybe I could make work with Philip to issue a currency exchange rate from OpenBucks to Linden Dollars? Sounds like an interesting idea, but personally I think that Second Life needs a Central Bank too, in order to manage the virtual economy, so that's maybe just delaying the problem...

Ha - that was fun :-) Anyway, the point is to be legitimate, transparent, open, and public. If I was trying to be secretive, misleading, deceptive, or evil, I suppose I could just go to a normal bank - oh wait... now back to setting up the wiki...

Thursday, March 19, 2009

Using the ButtonShield to make an Open Source BlackBerry

Last week Mike threw up a video of the ButtonShield prototype he made, I added it to the Open Source Hardware bank and Justin added it to the liquidware store. Incidentally, this project uses most of the exact same components as the Open Source GamePack (from my Open Source Gameboy project) Actually, it technically uses 2 new parts too, so it uses 60% of the old plus 40% new parts :-)

In the meantime, I figured I’d use one of the prototypes that Mike built to actually show off what it could do, and so I decided to see if I could hack together an Open Source version of the Blackberry – and I even made the 2.5 hour road trip to CT to meet Mike in person at Dunkin Donuts. The result? I guess you could call this the “OpenBerry” project. I also kept a stop watch next to me to measure how long it took to make everything (assembly and coding, that is), and start to finish it took a little under 3 hours. Anyway, here goes:

The OpenBerry "Open Source Blackberry" is a 26-key ASCII alphabetical keyboard ButtonShield module wired to an Arduino, which polls the buttons, and writes a small message that gets displayed simultaneously on the OLED TouchShield. When the message is written, it gets kicked out over the XBee Shield from Libelium (I picked it up at Sparkfun). In the meantime, it polls over the XBee serial connection to see if the XBee base station on the laptop has any new emails to send, and if so, it pipes it over the serial wireless connection to the OpenBerry. It's obviously still a work in progress, since the GUI isn't complete, but the hard part is done!

Here are some pictures I took of it:

And here’s a little step-by-step tutorial of how I put it together, including the base source code in case anyone else wanted to make one too. I’ve already done the hardest part by getting the modules and code integrated…


Step 0: Assemble Modules and Sketch Design

Here’s everything I used to build the Open Source BlackBerry… and just so I could be like MacGuyver, I made sure to find a use for Duct Tape and a paperclip, both of which (of course) are integral, life-saving elements of the finished design… :-)


Step 1: Pre-program the XBee Wireless Shields

I started with Mike’s tutorial over here which basically involved grabbing this program here.

The Libelium XBee shields I had were actually XBee 802.15.4 protocol, so I just had to select that properly in the pull-down menu, and otherwise I was ok. These are pretty neat little shields, and I definitely recommend them!


Step 2: Program the Arduino Transceiver Base Station

The next step is to place the XBee Shield on the Arduino that will serve as the base station module, and leave that sitting on the desk, connected via USB to the computer that will act as the email relay gateway.

Here’s the very simple source code I used in the early stages to get it up and running:

//code for the base station xbee transmitter

#include

#define rxPin 2

#define txPin 3

SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);

void setup ( void) {

pinMode(rxPin, INPUT);

pinMode(txPin, OUTPUT);

mySerial.begin(9600);

Serial.begin(9600);

}

char x;

void loop ( void) {

//x = mySerial.read();

//Serial.print(x);

mySerial.print("x");

//Serial.print("a");

delay(500);

}


Step 3: Assemble the OpenBerry Gadget

This wasn’t too bad, actually, since each of the shields are easily intercompatible.

This involved snapping the TouchShield Slide and ButtonShield on the top of the DoubleWide ExtenderShield, and snapping the Arduino and Lithium Backpack to the underside. Phew, that was a lot of links to look up! I set the ButtonShield to Mode B, so it wouldn’t clobber the pins the TouchShield Slide needed to communicate with.

The tricky part was wiring up the other XBee Shield, since there wasn’t enough space for it on the top or front. That wasn’t too hard, though, I just took the sticky tape off the back of a black Mini Protoboard and snapped the Arduino XBee Shield into the protospace holes. Then, I used 4 wires to connect the shield to +5V, Ground (underneath the TouchShield Slide), and to serial Rx, and serial Tx on pins 4 and 5 on the ExtenderShield.


Step 4: Program the OpenBerry

This was pretty easy to figure out, I just plugged the device into the USB port of my computer, and used the Arduino IDE to program the following code:

//code for blackberry

#include

#define rxPin 4

#define txPin 5

SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);

unsigned int val;

unsigned int valold;

void setup ( void) {

//set up xbeeshield

pinMode(rxPin, INPUT);

pinMode(txPin, OUTPUT);

mySerial.begin(9600);

Serial.begin(9600);

//set up button shield

digitalWrite(8, LOW); pinMode(8, INPUT);//bit 0

digitalWrite(9, LOW); pinMode(9, INPUT);// bit 1

digitalWrite(10, LOW); pinMode(10, INPUT);// bit 2

digitalWrite(16, LOW); pinMode(16, INPUT);//bit 3

digitalWrite(17, LOW); pinMode(17, INPUT);//bit 4

pinMode(11,OUTPUT);//led in mode b

digitalWrite(11,LOW);//led in mode b

}

char x;

void loop ( void) {

//x = mySerial.read();

//Serial.print(x);

if (x == 'x') {

mySerial.print("a");

delay(10);

mySerial.print("a");

delay(10);

mySerial.print("a");

delay(10);

}

val = ((digitalRead(17)<<4)|>

(digitalRead(16)<<3)|

(digitalRead(10)<<2)|

(digitalRead(9)<<1)|

(digitalRead(8)<<0));

if (val != valold) //test to see if val changed

{

Serial.println(val,BIN); // write the array reference at val to the serial port

valold = val; //document the previous vale

mySerial.print(val);

delay(100);

}

/*

digitalWrite(11,LOW); //led blink

delay(200);

digitalWrite(11,HIGH); //led blink

delay(200);

*/

//Serial.print("a");

delay(10);

}

This let me test all of the configuration settings, and then I was able to tack on a few lines to send information back and forth with the TouchShield Slide to display incoming messages, using the same code snippets from the InputShield forwarder (ironically, since the packet formats were just right) – thanks, Chris! http://antipastohw.blogspot.com/2009/02/gamepack-with-inputshieldellipses.html

Which led to the finished device!


And here's a video of me showing it in action ... I would probably have retaken the video to edit the corny comment about having a bigger screen... too bad I don't know how to use video editing software... oh well :)

Of course, all the code is GNU Open Source, and I’ve uploaded some pictures to Flickr, and Justin helped me put everything together as a kit on the liquidware shop for the ButtonShield and other modules…

Wednesday, March 18, 2009

5 ways to get involved with the Open Source Hardware bank

It’s been a couple weeks since Matt put up the Open Source Hardware Bank website, and there’s also been a lot of emails (thanks!), so I figured summarize those too in one spot on the blog. In addition to lots of schematics zip files, lots of guys were trying to figure out how to get involved. Unfortunately, I’m not Linus Torvalds, so I’m not a total expert at managing big distributed efforts, so I’m definitely going to be learning along the way.

There seems to be different personality modes I get into… sometimes I’m in “list-mode”, and other times I’m in “bucket-mode”. I’m in bucket mode tonight, so here’s a set of 5 buckets into which most of the emails could be summarized:

A. I'm working on this OSHW project, but I just want to get a couple to use whenever it's ready.
B. Here’s a link to someone else’s project – could the bank make some of these? I could help get it to production faster, or code it, or whatever.
C. I have a little extra pocket cash from the bailout (just kidding), and I could support open source hardware development too.
D. I’m learning and want to learn more about open source hardware.
E. I’m a nobel prize winning economist and I think sustainable community funding for open source projects is an interesting idea, and I want to help. Can you send me your bibliography and a list of citations?

I then looked through the reply emails I’d sent out, and realized that mostly what I was doing was sending out small personal essays about why I thought it was important, and asking for help, and sending links to other stuff. So naturally, here were the links:

A – The general idea is to pre-fund and pre-order hardware. The community would pay upfront and once enough money has been pooled from the community (50 units in the build queue) , the bank fills the remaining 50 units in the queue, and the project goes to production.

B - A few folks suggested that they could probably pitch in a little more to get additional units built, but they didn't really need those extra units. So I built it in as the "Buy 1, Build 1/2/3" option so each person can help fund up to 3 additional units for each one purchased. Here's the play-by-play for how it worked with the Illuminato. (But if you're more a fan of chemical reactions, this might be another way to look at it).

I did this because I wanted to make sure that whatever gets built is at least in some way tied to demand, so there's no runaway speculation (not a good thing!) Matt mentions this as the "anti-bubble" effect that keeps everything well controlled and sustainable :)

C - I'd been talking to Barry, Andrew, Omar and Rob a little about the idea, and they each mentioned being interested in helping out ("This also seemed like a ‘fun’ investment and it can’t do any worse than the market!") Since the role of the bank is to help double the number of units produced to reduce unit cost (the bank funds an additional 50 units once the community has funded 50), the bank needs larger reserves, which come in the form $1000 I-bills. In the "anti-bubble" spirit, opportunities to fund the bank are also limited by demand: I-bills are only for sale when projects are coming close to requiring bank funding and moving to production. I-bill investors are offered 5-15% after 6 months based on how bank-funded units sell. As it's pretty probable that there will be more projects requiring funding than there will be "bank reserves" at any given time, the Open Source Economic Council, composed of I-bill and community investors, will meet monthly to discuss and vote on which projects will be funded.

D - The idea started when Mike and Matt wanted to build a few units of the illuminato, just because they thought it was a neat little thing. When it first went up, quite a few folks were asking about it, and this time around, it's up on Liquidware and OSHWBank, so anyone interested could help buy/build one, and get it one step closer to production.

Like Mike and Matt, Keith, Andrew, and Tim all had some ideas on projects they wanted to build, and figured someone else might like it too. So they submitted a couple ideas over here: http://www.oshwbank.org (scroll down to "Ideas"). Once these ideas are more fully developed, they will enter the queue for funding and production. And of course, projects that are in fact fully developed, like the EqualizerShield and ButtonShield, could enter the queue immediately.

E – Or "none of the above" :) Jim and Christophe were intrigued by the idea and wanted to help out with some of the complex backend programming, since they happened to be seasoned comp sci experts.

Voila!

Tuesday, March 17, 2009

Paula Abdul says...

I think it was a few weeks ago, when Paula was giving advice to the American Idol contestants on T.V., and she said as her one and only piece of advice "don't google yourself". There are so many opportunities she had to say something smart, but that's all she said. So naturally, I googled "open source hardware bank" 5 minutes ago and found some stuff, and some commentary. The whole goal is to do this with lots of help, and to be open about everything, so naturally I figured I'd share what I found for anyone who cared to read (and save anyone else some time finding it too):

Michael has a nice summary of everything over here - sometimes it's nice when someone helps me take a few steps back and realize what everything sounds like to someone else - thanks! ps - I guess I am technically part of the "Arduino ecology," but I'd really like to expand :) pps he also has some really nice other articles about peer-to-peer issues of decentralized coordination, control, and ideas. I'd really like to see more about distributed, decentralized "labor" and "productivity" ideas...

Thanks, Make! (btw as soon as I finish moving to my new place, I'm buying a real print subscription instead of renewing PopSci... which is a big deal because I've gotten PopSci for over 12 years... oh well, like a guy rationalizing a Playboy subsription, I swear I'm switching just because of the articles...) Anyway, stunmonkey wrote in a comment that said:
"How about an incubator that cuts infrastructure (web, ability to accept credit cards, etc) and specialized knowledge/skills (legal, photographic, marketing, etc.) by simply supplying some of it? Sort of parts or all of an SBA/Credit union/makers gallery/Ebay/Trade assoc./Collective advertising/web host group rolled into one? Then simply take a percentage of sales through the websites - they'd be hosted by and payment funneled through the groups servers anyway."

Sure, why not? If you want me to list and sell your thingy on the liquidware store website, I'll do it for free provided that you made it yourself, and as long as you maybe help me learn what it does so Mike or I don't sound like an idiot when someone else asks for help ... oh yeah, and as long as you're willing to pay "child support" in the form of periodic emails - ha :)

Pramode wrote on his blog a nice little quip, which I completely, totally, agree with - p.s. I like that he used the term "hacker," that's a term of endearment to me, and I will really try to live up to that title, since it carries pretty heavy responsibilities (spiderman moment and dramatic music) I want to make cool stuff that is hard to build and pushes me to learn more electrical engineering, and I suppose that is also "hackerish"...
"We may be reasonably assured that banks like AJMIC won’t cause any recession; because they are being managed by people who may not dislike becoming millionaires but have many other more compelling passions/goals in life. The tragedy of our time is that we allowed money to be “managed” by charlatans whose only goal in life was to discover more and more ways to multiply money"


LWN.net had quite a few comments, actually, which tells me that Linux and OSHW apparently have a lot of overlap:
"It's not clear how the financials are going to work from the blog post, but one assumes that it'll simply be making a loan. If you can front the cash for X units, they'll loan you enough to increase that initial order to 2X units."
Yep, just please don't come knocking asking for too much money, because the bank isn't that big yet. The financials are going to go up as soon as I finish getting a feed from the sql db to Excel and into a chart.
"The idea seems sound (if tricky to administer) to me."

Thanks... Tricky, yes, which is why I'm getting a lot of help now from all kinds of guys who have offered to help (thanks)
"No, but he obviously knows how to build hardware, and probably has some sort of feel as to what is a viable idea and what isn't. In a way it would be like having your own investment advisor in the small-scale electronics market, and it's all open hardware to boot."

Thanks! that's also pretty generous, I suppose you could look at it that way. Although I am NOT an investment advisor, and never want to be one, and would probably really suck at it if I were one... but thanks :) p.s. one things for sure, if I were an investment advisor, I would not give myself millions of dollars of other peoples' hard earned money just because someone bailed me out. That makes me furious.
"Sorry, I don't get it. What's in it for such a bank?"
A cause? giving back to other DIY'ers like we got help from my professor, friends that helped me learn ee concepts, people that lent me money, and guys that make it happen (pun intended)
"And if people in such a bank do work, somebody is going to have to pay for it. Which means that an equilibrium is just not good enough."
Well, I'm volunteering my time, and I guess you could call that work, and I'm ok not to make money for my volunteering, and if it gets too hard, I'll just ask for help. I thought jurassic park was mandatory viewing, especially where that guy says about the asexual frogs that were all female, "life finds a way". I think that means I just called myself and everyone who invested in the Open Source Hardware Bank an asexual vegan dinosaur... hmmmm... not very good "communications" I suppose...
"'So Andrew, Justin, and I will see to it that the Open Source Hardware. Bank does not default, and each of us will guarantee every investment.' It sounded remotely plausible until they wrote this."
Well, the whole point is to engineer the bank so this isn't needed in the future. and in the meantime, as long as the numbers we're talking about aren't that big, it's manageable.

Harkopen.com also had a couple of comments, which I really liked:
"I don't get it? I visited the website they put up for this open source bank but there is not much informaiton yet. Who is Chris, David, Mark, Mike, Omar, and Justin? Why not just setup a non-profit organization and hold fund raising events like all other non-profit ogranizations. Store the money in a federally insured bank and create a Board of Directors. Then establish a low cost membership that would allow Members to also have a vote in how the money is used. The more popular projects would end up getting more money which is a good thing. At least then you could hold swap meets, social gatherings, and other types of fund raisers."
Oh come on :-) I have a day job too over here, and html and php doesn't grow off trees :) Ha. Anyway, that's me, and some guys I've met over time mostly in ct, ny, ma and nj. And, I think that idea sounds nice actually, except that a nonprofit costs like $18,000 / year just to have and to run, and report, and file in the U.S. That's like 3 or 4 projects worth of money right there, which is ironic, because the only one who makes money off of this being a nonprofit is the government (which is technically not the open source community) PS I grew up in Maryland, so cheers!

djiezes apparently made some clipmarks too over here - which is funny, because there's no better way to know what people actually care about or take away from something you say unless you peek into their notes... i suppose it's kind of like the peanuts/snoopy cartoons they show on t.v. late at night when the 'adults' speak: "blablablablablablablaopen source hardware bankblablablablablathrowaway costs and quantity monopolyblablablablablablablaopen source hardware costs moneyblablablablablablaneeds a bankblabla" well, that's clifnotes for you :-)

Then there's lots of stuff on twitter (I think I've seen it called "tweets" but I feel like ordering a skinny vanilla mochachino frappe latte triple duoventi whenever I hear that term), but i don't know how to use twitter. Maybe I'll make a gadget that sends twitter tweets one of these days so I can keep up with everyone....

Monday, March 16, 2009

Circles that Slide

So I was riding on the train the other day, and felt the need to mess with my touchshield. I started by drawing lots of different squares that were really fun, but my imagination quickly took me to these 2 circles that entranced me... after making them more dynamic, I made a few more and with some tweaks brought them to motion with the touch screen.





This program basically has 6 circles that can be dragged around by touching them on the touch screen. I thought it was a fun little app... so enjoy!

Sunday, March 15, 2009

Introducing 5.9 new Open Source Hardware Arduino shields

The past week has been pretty crazy for Mike, Matt, Chris, Omar, Mark, Tim, and me (Justin). Matt got something like 6 hours of sleep all week, Chris ate like 4 times, and Mike didn't use the bathroom - just kidding. And in the meantime, everyone's still got day jobs, so yeah... hmmmmm... please don't tell my "boss"… I’m pretty sure (I hope) he doesn’t read this blog…

Anyway, here are the new shields, ready for build, and almost halfway funded for up on the Open Source Hardware Bank – thanks:


ButtonShield

100% done and ready to fund and build

This idea was all Mark's fault... He said the only thing preventing the Arduino+ExtenderShield+TouchShield from giving the big hardware companies a run for their money was a keyboard or button shield, so it could be a real device. Then, the Arduino would not only be a great physical computing and DIY platform, it'd make a fairly good rapid-prototyping platform too. So here it is... it's a shield built for the Arduino profile that has 26 buttons on it. It has a mode A or B selector, so you can wire up two of these directly to an Arduino, a lot like the InputShield, and still have pins for the TouchShield.

http://www.youtube.com/watch?v=muvjN8s0y4I



EqualizerShield

100% done, ready to fund and build

Chuck Norris would be proud. Actually, he wouldn't, because he already built this on his own, and he does benchpresses off of it, and he doesn't need the Open Source Hardware Bank's help. For me, on the other hand (and Chris and Dave), I've built a digital/analog Equalizer on a Shield.

The EqualizerShield has two modes: Justice... and Equality. In the Justice mode, the shield acts as a 10x10 blue LED matrix, addressable over serial from pins 0 and 1 on the Arduino. In the Equality mode, the shield acts as an analog pin visualizer. On the backside of the board, there is an 8-wide female header port where you can wire in any analog signal, and the board will display the status on the LEDs on the front, like an equalizer.


DoubleWide ExtenderShield X Edition

100% done, ready to fund and build

The other DoubleWide ExtenderShield let anyone connect two shields to an Arduino. That was fine when dealing with just one row of digital I/O. But now that there are more and more people using the Illuminato, why not pin out all the extra rows of I/O in a replicating shield as well?

Enter the ExtenderShield X Edition. The "X" stands for "eXtended", and it means there's now twice the pins pinned out. The left side is a pass-through replication of the right side, so there's plenty of wire-up space on either side.


TripleWide ExtenderShield X Edition

100% done, ready to fund and build

For more advanced projects, sometimes connecting 2 shields together isn't enough. Quite a few people have written in over the past few months asking for a TripleWide, so here it is. The catch is that it's also a "X" edition, which means it works with the Arduino or the Illuminato. It pins out and replicates each of the Illuminato pins 3 times over, so three shields can be wired up side by side.


EcoShield

75% done, just needs some whacky layout ideas

This shield is for Al Gore. When he was building the Internet by hand, I'm sure he had a lot of help from the folks at DARPA. Actually, I'm sure he had a lot of help from everyone but Al Gore. Anyway, now he's fighting global warming, and so this is a shield for him. This shield will have 11 environmental senses built in, and each individually accessible. All joking aside, when I was just starting to learn the Arduino, the first thing I did was run out and buy 1 of each sensor from Radio Shack, and that added up pretty quickly (especially buying 1 at a time). On the other hand, throwing all of them together on one shield will be far cheaper, and more convenient...

Armuino

75% done, just needs integration into the Arduino IDE

This one comes from Keith (thanks!). He sent in a schematic for an Arm-based Arduino. Actually, it's sort of like a basic Arm chip circuit, but he tested it, and knows it worked. The only catch is, no one's ported the compilers to the Arduino IDE, so what's the point? Over the next few months, I'm going to try with Chris to port the Arm compilers into the Arduino IDE branch that Omar has been maintaining - and hopefully this will open a lot of benefits to the OSHW community.



OpenCamera

Not really a shield, but about 60% done and cool as heck

This one is from Tim... it's definitely still a work in progress, but here's an idea of what it might look like when it's done. This definitely will need some more work and help, but I think it'd be quite interesting to have a full DIY Open Source 2 or 5 megapixel camera, in the form factor smaller than a deck of cards.


NanoRAID

40% done, working on driver code

From Matt: "A board only a group of vikings would love. Actually, I've always wanted to build something like this. I would have loved to connect this to my old TI-82 calculator when I was in high school, and even TI-89 nowadays."

The Pillage() function cleans up the microSD cards by syncing them to each other. What's the worst thing that pillaging SD cards? RAIDandPillage() which completely resets and clears out the microSD cards.

Anyway, feel free to check out the OSHW page and let me know what you think! You can reach me at jhuynh at gmail. Have a great Monday!


Wednesday, March 11, 2009

Open Source Hardware economy as a set of chemical reactions

Yeah yeah, ok I promise after this post I'll actually finish some of the schematics I've been talking about. But first since I got so many emails about it, I wanted to take the time to write out what the complicated little boxes, stars, and arrows diagram I drew up with Justin's help actually meant.

In the meantime, I've gotten a fair amount of emails and seen comments on other websites in the spirit of, "what's in it for the bank?" and "I don't get it, where do you make money?" I find these questions funny, because I think a lot of web 2.0 guys and "entrepreneur" types are so programmed to think "how can I make a quick buck off this" that they're missing out on the whole point: building a sustainable ecosystem for Open Source Hardware (ok, cheese alert, but really)...

On the flip side of things, a different kind of skeptic would be saying something like, this could be a really bad pyramid scheme. I beg to differ... Actually, I think a lot of pyramid and ponzi schemes happen because somewhere along the process there's this big question mark or black box, and there's a difference between the "marketing" and "reality." I think Open Source shouldn't have a "behind the scenes," so I'm describing the whole Open Source Bank model here to make sure it's sound, anyone participating knows how it works, and it can benefit from other ideas in a public forum. Sure, rip it off, I don't care, because I'm not worried, because there aren't any hidden spots for statements like "and then we'll skim x% off each one of these until sales go up to 800 billion and then sell ad revenue." I double checked to make sure it didn't :-)

Open Source Economy Equilibrium Reactions

I'm borrowing from my old chemistry text books the concept of forward chemical reactions to explain how I think the bank is an "economic equilibrium reaction."

But first, some definitions of the icons I'll use to explain the equations:


And this is the queue that the squares and markups are filling up into:



Ok, here I go... the simplest reaction is the normal one, "pre-ordering". This is normally what scaling pre-ordering systems involve. On the left side of the equation, someone waits some time (as the queue fills, and then the hardware is built), pays money up front, and pays the markup (e.g. 15%). The reaction balances on the other side, because someone gets a finished piece of hardware. There's an external benefit from the system (externality?), which is that since there's a pre-buy reservation in the queue, there's no chance of getting hit with an "oh no, the product you're looking for is currently out of stock or on backorder please come again in 6 months."



Normally, that would be sufficient, but it doesn't balance, because the end result is a bunch of people paying for a product, and paying markup. Where does the markup go? Someone else, who profits from the queuing. What if there was an option to over-pay, or pay for another to be built (at cost) - aka Buy 1-Build 1?


In this case, the only thing I added was the orange box on the left side, which means paying the cost for another spot in the queue. So now, if that slot is reserved as a "build", then when someone else buys at cost+markup (like equation 1), the buy/builder/funder gets reimbursed the cost they paid, plus the markup from the second purchase. Since there are two markups (blue on the left and orange on the right), you can cancel both of those out to get:


Which is like saying, in exchange for speculating and helping the pre-order queue fill up, someone gets the hardware at cost. One smaller externality, that I didn't include, is the fact that building also reduces the amount of time on the left, so the wait is less for everyone - a system benefit! If the queue doesn't fill up in the stated time period (e.g. 3 months), someone (me) writes back checks or cancels out the Paypal transactions. Sure, that takes time initially, but whatever (the whatever is because if it ever got too big, the small amount of the tail end surplus from the bank would be way overkill to reimburse that if it ever needed to be a full time job for someone).

Ok, what happens if I include a Buy 1-Build 2 option? Now there are two additional at costs on the left hand side, but then the system says that if two other people buy 1 later, that person gets both costs and both markups back:


There are two cost boxes on both sides, so those cancel, and the blue markup spent on the left cancels one of the orange markups on the right. That means there's now one leftover markup on the left... is that profit? Well, you could look at it that way, or - more practically - it's probably going to offset shipping costs. Unless UPS or Fedex start thinking this way too :)


Ok. What if someone doesn't want to participate in the speculation process? In the typical real economy, those people get penalized by having to pay more for something, and early buyers get a discount. Come on... isn't it bad enough I have to wait for vaporware, now I get to pay more for it when it finally comes?! No thanks. In this model, you just wait. And of course the reward for not putting money up front is that when the product gets funded, and built, you get the externality benefit of the hardware being out there for a while, so maybe the kinks are worked out, there's more code for it, etc. On the downside, though, there's a hidden risk that the hardware goes out of stock (e.g. the opposite of the externality in the normal pre-buy).


Ok, now what about making things really really complicated for a second? I swear there's a reason for it... so what about about someone who just wants to fund hardware? Like an individual investor, or venturer. Well, there are some big tradeoffs to be made here. Someone who just invests and helps build is like saying they don't want to actually get a piece of hardware, they just want the return on investment. That's a pure speculator, and would they have no direct stake in the hardware as a tangible object. In a negative light, that person doesn't really care if something works, or is cool, or does something new, they just care if someone else will buy it. Sounds like a venture capitalist. Yuck. But! If there's a tradeoff worked in, that will limit speculation. Instead of just giving a Build-5 investor 5 orange slots, which would pile on each other as the queue grows, the queuing system only gives them 2 pre-slots, and the other 3 slots go into the bank side of the queue. The bank side doesn't get it's cost and markup back until all of the Buy/Build side gets sold. So now the Build-5 types have to think, ok, not only do I have to think... will anyone buy it, I have to think, will someone buy it in a reasonable amount of time?



Simplifying this equation down, it starts to look like a traditional time-based investment finally. If someone has money to begin with, they just sit back, relax, ... and wait ... and then get a return on investment.


But there's an important externality here too. If someone funds 5 only, and 3 of the 5 don't get reimbursed until after all the others Buy/Builds are sold, they have a motivation to make things sell faster. One really easy way to do this with hardware is to write cool applications and share them - e.g. with Open Source Software (ding! OSS+OSHW = 1 point). So now it only really makes sense to fund 5 if someone can do something about accelerating the sales to get paid back. Ok, it's not perfect, probably no economic system big or small is, but at least there's a check and balance that I understand, and I think it's a fair tradeoff in the hardware / software world.

And this brings up the last point, the actual role for the bank. The bank's role is to find a way to provide a system benefit (i.e. achieving scale pricing for low quantities for everyone) while generating some form of return on the investment tied up. In this case, the bank takes up the second half of an order queue, waits some time, and then gets in return the base costs that are bought, plus markups.



This simplifies because you can cancel out each of the square boxes on each side to get a simple reaction, of waiting time to get return. But there were all sorts of built in penalties for doing it at a lower quantity in the Fund-5 model reaction above, so what about this time around? In this case, the bank gets its markup back over time only if the hardware sells. At a 15% markup, that means ~90% of the hardware queue needs to sell before breaking even, and before anyone that put money with the bank starts getting markups.


There are two system rules for the bank. First, the bank's money is pooled, so there's a minor portfolio benefit, because the money would be spread out over a few projects. To counter-act this, anyone that invested in the bank can at any time cash out by buying any funded inventory at cost. That's because a bank note is a claim on inventory, and is a bank investor wants, they forego the markup from someone else, in exchange for the product at cost. Regardless, this means a bank investor gets access to anything built at cost, so this means the investment makes the most sense for someone who could actually take advantage of the hardware. But all the while, they get to share the externality benefit of lowered per unit costs from the scale they helped get.

Return on investment and the momentum principle

Finally, the bank's rate of return on investment. The Illuminato experiment was AJM (Andrew, Justin, Matt)-insured at a 5% minimum return. This is like saying, in exchange for a bank note investor being willing to help lend the money now to buy parts (like a temporary line of credit, actually it really is a temporary loan of credit), we'd be willing to take on that minimum of 5% because a) the three of us wanted more Illuminato's built anyway and were willing to buy it all and have lots of leftovers, b) but based on the number of emails I got, I was pretty sure at least half would sell, c) I thought the worst that would happen is maybe no one wanted to buy one for 15% markup, so the worst case I'd sell them at cost, and reimburse the lenders the 5% markup after they sold. All of this comes down to saying, Andrew, Matt, and Justin "sponsored" the Illuminato project. In theory, this shouldn't be needed after the rest of the model is tested, just as long as the "momentum principle" holds: that because there are 25 people that want something, there will be 25 more people that want it.

And I think that's really what the whole system comes down to: "the momentum principle." I just made that term up, so I'm going to try to define it: "If X people are willing to pre-buy hardware, there exist Y other people willing to buy in the future, where Y is very close to n*X. n = ~90% when markup = 15%."



And this in turn is a lot like saying, the bank is taking a bet on the sustainability and future of Open Source Hardware, one project at a time.

hmmmmm
*folds hands in lotus sign, takes drag of peace pipe, passes out to sleep*
:-)

I've got lots of pages of notes here, so while I'm waiting for components to come in the mail, I'll write in upcoming posts about: why 15% and how that number gets set, when does a queue start up, this system vs. the federal reserve bank system, and the shipping problem.

Tuesday, March 10, 2009

Pictures from my Aardvark!

Now I'm not much of a circles guy, I'm more into pictures and interaction so the past couple of days, I've been working on making images for the IDE...give me a touch screen with images and I'm happy. I sat down and figured out ways of making images easier to get on to the touchshield. Oh and it's on my mac too....

Now Windows users aren't the only ones that can take advantage of the new Open Gadget format; Mac users can go and download it over at the app store and run them in the Arduino Antipasto Aardvark IDE now as well! If you haven't toyed around with the Aardvark yet, the open gadget format is the new file format that allows you to keep the code for the modules in your gadget separate. You can now program an Illuminato and a Slide from one window and just switch between them.
The Aardvark also has drag and drop file transfer; anyone can add files easily to their Slide apps by simply dragging and dropping files on to the data tab of the module that their currently working on, then just click transfer and look at your images in all of their pixilated glory!
I'm sharing it over on the app store so anyone can check it out. [Mac] [Windows]

The Open Source Hardware Bank has a website...

By comparison to Justin's post below, I might argue that nothing's official these days until it has it's own website set up, and a social networking site that automatically twitters people messages when there accounts are visited or people refresh the login page :-) Anyway, this post is a bit of a laundry list right now, but I'm posting it up anyway since if I had just bought something from the bank, I'd be thinking, ok bank, that's nice, blablabla open source blablabla where's my stuff and when does it ship?

I'm definitely going to need a better way to "announce" this, or maybe I'll put up the date on the bank website? The parts should all arrive in about 2 weeks, and then it'll be a week or so of assembly after that.

I spent some time today thinking about how I might be able to automate the queue system on a more regular basis, since I think it would be tough to run a "bank" from a blog. So I threw up a little website over here. The idea is, every night, when I get home from work, I'll run a little script which will download and parse the data, and then kick out images, and copy them up to the web server. I'm also meeting with Karim in Boston soon, to talk about some metrics and analytics the bank should publicly report, for instance:
  • How much is in the reserve as cash, vs. tied in inventory
  • A ratio for the number of build's refunded / rebought over time
  • A "GDP" figure, for total amount bought and sold weekly (daily?) of stuff the bank funded
  • The average floating rate of return for the bank based on it's funded doubled inventory
I'm still thinking of other measures, but if you have any ideas, please let me know...

Right now, the website it awfully lonely with just the Illuminato. But that's not going to last long, given the massive amount of emails I've gotten over the last few days. I had no idea! It's like waking up one day, and finding out you really aren't the only one who thought that 13th Floor was such a cooler movie than the Matrix (I mean seriously, same concept, much more subtle delivery, and more thought provoking if you ask me). So I'm definitely not alone in thinking Open Source Hardware finance needed some help.

Anyway, here are just a few ideas that I've seen run through my emails - some hardware, and some bank-related:

  • ExtenderShields and Protoshields for the Illuminato (ok, secretly I've gotten about 2 emails as week asking for this too, so it makes logical sense I suppose)
  • Various circuits for buttons and keyboards
  • A link to some new shields that might be perfect initially for the bank...
  • A 6-layer pcb professionally designed camera- wow! Seriously, I thought I knew how to build circuit boards, and then Tim sent me a 6 layer board! Not worthy, but certainly motivating. I keep getting to a point where I think "cool, I can do that or I could build that" and someone comes along and totally schools me. Kind of reminds me of scanning Mark's C code the first time. Anyway, I now know the next tier I want to break through...
  • Rick sent me a link to the Amazon Kindle, and said, "I'll help you build this cheaper". Actually, after the whole Esquire magazine cover event, I called up almost every thin flexible OLED company I could find, and they all told me to get lost, or register for their preferred vendor program (what does that even mean?), or buy 10-50,000.
  • I got 4.5 emails about medical devices (wow, pharma must really not be doing well, with so many loose end projects floating around with no one to claim!) I think maybe I'll start my own healthcare system too while I'm at it (just kidding).

My three favorite quotes:

Paul: "I love the fact that while the whole world is melting down and everyone hates bankers, you're starting a new bank."

Yep :)

Dale: "Keep it transparent. Stay hungry. Do good."

Justin, Andrew, and I are certainly going to try our hardest!

Boerner: "I know this isn't going to cure cancer, but every little bit helps."

Thanks!

In the meantime, here's a video that John made of how he milled the Open Source Hardware Bank logo for Justin. Pretty cool...

Monday, March 9, 2009

Nothing is official until...

You have a plaque. Thanks to John (who milled Matt's logo into a block of aluminum), the Open Source Hardware Bank now has an official tangible plaque, and it's now sitting on my desk. Maybe some day when the Bank replaces Citigroup and BofA, I can put this on the outside of the building as a signboard? Anyway, this also means that John can turn any image made in Powerpoint into a physical milled aluminum block - impressive!


Tomorrow morning, every single "Open Source Hardware Bank "reserve note" will be sent in the mail to each person who helped fund the first half of the Illuminato round, including me because I "bought-1, built-2" when the queue first opened (ok, actually I think I'll just keep mine and save the stamp).

Anyway, I've been meaning to buy a new color printer, so today I went down to J&R, and bought a printer to replace my old Laserjet (thanks HP for not updating the HP 1000 drivers to Vista and forcing me into an update, you've reminded me of why I'm doing OSHW to begin with!)

While I set up the printer, Matt unpacked and prepared the stationary for the notes, which I guess you could view as a fixed one-time cost of the bank:

My favorite purchase was the self-inking "Automatic Number Machine". It's like a Physical Computing auto-incrementor, except for stamps. Here's a picture of the mechanical advancing mechanism that somehow allows you to select the number you'd like to advance automatically:



What can I say, I was intruiged by the mechanism - especially the auto-re-inking platter which moves in and out from the side and underneath. I can imagine this thing taking more engineering than most cell phones:


I had this imagined in my head of a return to "classical banking" - for instance, in a Christmas Carol, or It's A Wonderful Life I always imagined those tellers or accountants with rubber stamps sealing check envelopes:

After the printer was set up, here's a picture of me signing the OSHW Bank Reserve Note, and stamping it with the auto-incrementor:

Finally, here's a picture of the whole desk set up, including John's OSHW Bank logo:


Friday, March 6, 2009

Illuminato & Open Source Hardware Bank - update 2

Eureka! It worked! *splashes into tub like Archimedes*



I've turned off the "build" option because ...... the order queue met the "price scaling fulcrum point" (how's that for sesquipedalian pleonasticity ?) :-) In other words, there's now over 50 Illuminato slot pre-orders, which means that starting on Monday, I'm going to start placing all the orders for parts and building them up - Thanks!

Actually, a funny thing happened... when I first went to regenerate the picture queue, I thought that there was an error in the generating script, but actually what happened was that there were more than 50 orders placed. A few people placed orders after the 50 mark, which means that according to the way Justin, Andrew, and I thought the system ought to work, teeeeeechnically those last few orders were actually people buying some of the earlier "pre-funded" order slots.

I rewrote the scripts so I could show a play-by-play of what happened. Ok, maybe this isn't as edge-of-your-seat gripping as Superbowl replays, but I can try... (click each image to blow it up, but I'm still working on the exporting image part):

Punt return: By the middle of this afternoon, the order queue looked like this, where 42 of the Illuminatos had been "funded":



Quarterback option: Then someone placed an order for 2x "Buy 1-Build-2" (wow, thanks Ben!), which made the order queue look like this:



Run it up the middle: Then someone else bought one:



Breaking mid-field: And then another order for a "Buy 1-Build 2". This filled the last up-to-half fulcrum point of the order queue, and the "Build-2" order spilled over into the otherwise bank-funded X's:



Third down conversion: Then, someone bought another Illuminato. But the problem was that since the 50-way point was already filled, all orders thereafter are technically someone buying an Illuminato away from someone that had pre-built or "funded" it, so I've shaded the square in queue slot 4 with a green shade:



Red-zone drive: The process pretty much repeated a few more times, with the net result being that 5 folks that pre-built the Illuminato's early on in the queue have already been repaid:



...

Touchdown! Letting someone buy Open Source Hardware at cost = Sustainable breakeven equilibrium = Success! I don't want to jump to any conclusions just yet... but... I'm excited! :)


Now it's time to formally structure the other half of the equation, the Open Source Hardware Bank's fund-matching. I got an email from Maya who said, why bother with the OSHW bank side of things, why not just keep the queue running at Buy/Build option? Well, there are three reasons Andrew, Justin, and I could think of when we were furiously debating this a few weeks ago:


1) Anti-Bubble: A limitless buy/build option could result in a "runaway" scenario, whereby if everyone Buy 1-Build 2'd everything, at some point the tail end of the queue would grow faster than the actual Buy's, and that would be like what happened with the Dutch Tulip Bulb Bubble and Beanie Babies - the system propagates forward, or worse accelerates, without checks and limits on the real underlying "demand" for a product. Yes, technically some folks could argue "bubbles are a reality of economies" but especially these days I want to pretend for a second they're not. I'm in bubble-denial, and as long as the community is designing a "new financing system," why take anything for granted?

2) Time acceleration: In theory the bank should be able to use any quantity bought to be confident enough that there will be 2x more people willing to buy. True, maybe, we'll have to see. Sure, I could have gone ahead and waited until 50 more slot queues were filled up, but if the bank steps in, that means I can go place orders immediately, without waiting a single more day, or week. In this specific case, the tangible, real, practical benefit of the bank is that it allowed me to start building Illuminatos ~4-5 days earlier than I normally would have otherwise.

3) Diversity: The Illuminato might be nice, but I'd like to keep improving it and making it cooler over time, or maybe someone else will make it a lot cooler than I could, and so maybe people would want that one instead. Incremental and periodic "stop-gates" in the order queue (e.g. by capping the order round at 100 before needing to start another order round) mean that the bank can strike a balance between continuing to fund 1 thing over and over and over, and incenting (is that a word?) other hardware too. One of the goals of the Open Source Hardware Bank is to support a wide diversity of projects, not just fund massive scale of a few popular projects (because if that were the case, then the current VC model could have done just fine there, and the bank is supposed to help small timers, not big companies!).

Ok, time to go finish reading the book The Passions and the Interests (it was recommended to me by Martin for inspiration and ideas, since it describes the original arguments people made in the 1700's for capitalism - talk about irony!)...

Thursday, March 5, 2009

Illuminato & Open Source Hardware Bank - update

Ok, it's almost 2 am, and I just got home and regenerated the order queue graphs below. Also, I still haven't gotten around to all of the emails I've received in my Inbox... including one in particular, it's nice to know that if I ever need "Open Source" Canadian prescription drugs, I know where to turn (thanks spammers, but come on, seriously? that's a stretch). On a serious note, it's definitely clear from the graphics below that there are people who are willing to help out - thanks!

Also thanks for the ideas, links, suggestions, and recommendations. I am going to try my best to summarize everything in a couple of posts to come. I'm also going to spend a lot more time this weekend putting together some ideas into pictures and slides, since I tend to think visually... Now, on to my trusty little queue image script (I uploaded the Open Source graphics code to the wiki for now, but the formatting is still messed up, sorry).

This is what the Illuminato order queue looked like last night, with the pre-orders from the first round (I think you can click the picture to make it bigger, since last time it got chopped off):



And this is what the order queue looks like after 24 hours, right now (thanks for the help too Robert, Justin and Gareth!):




That's a pretty big increase in one day, and it definitely makes me feel confident in the number to build - I was a little nervous putting out 100 again, since that seemed like a pretty large amount at first. I don't want to count my chickens before they hatch, but I sent out some emails asking for new quotes on a few of the chip parts, in preparation for building next week (keeping fingers crossed).

In the meantime, I also got 6 emails today from guys that were interested in maybe being the some of the first investors in the Open Source Hardware Bank! (That's the group that's going to fund the right side of the queue above, that's marked by the 'X's, and get the return from that margin). I'm writing up the official "Build 5" and "T-bill" notes with Justin, and will email them around to make sure the make sense for everyone, along with a little document that describes some more details about how it will work. But Andrew, Justin, and I didn't want to rush into it without asking for opinions first, and without making sure that we weren't missing out on anything.

Also, just so I don't have to keep posting updates on the blog, I'm going to try to automate the order queue system this weekend, maybe on another site... But first, I've pulled two consecutive ~4 hour nights, which probably isn't healthy... so I'm headed to sleep...

Snow App with the TouchShield Slide and Illuminato

I thought this was a clever use of the random() function combined with Matt's pulsing sleep app for the TouchShield Slide and Illuminato. Let me know what you think!



Download the SnowApp at the app store.

Illuminato Update: Now available for pre-ordering...

Ok, there are quite a few things to update on the Illuminato front, the most important being that Mike and I are going to build more, as soon as I can find someone to help fund the remaining ones to get to 50. But first...


A new Illuminato core

Justin (the other Justin) sent in a new Illuminato core file, that has all kinds of crazy stuff in it, like analog PWM'ing, and a bunch of stuff I was too dumb to figure out for myself. That should make the Illuminato a ridiculous board to do servo control from, and analog signal coding...

So I put in some comments, and sent it over to Omar, and now Omar is going to include it in the next release of the Arduino IDE branch he's maintaining...





Illuminato 3D model pr0n

I also wanted to teach myself 3D modeling too, so I could get better at building OSHW mockups of my ideas (really I just wanted to prove to John N that I could model just as well as him... not really):




Let me know if you want the Blender files!




How batch 1 got funded and built

The last time around, Mike and I built 100 Illuminato's by hand (yes it really did take forever!). I was able to afford it because my mentor pitched in the money to do it, and in exchange, I could sell it at cost to everyone who wanted one.

So basically it worked out like this:

1) I designed the board

2) Mike and I said, ok, let's build 50:



3) I talked to my former mentor, since I knew he wanted something like this, and he said he'd buy about 40 for his own personal use in his class, end his own projects:



4) Then Mike and I figured out how much it was going to cost, and realized that if we manufactured 100 it'd be even cheaper all around because hardware costs go down when you buy more (aka the "Quantity Monopoly"):



5) I went back to my friend with the numbers, and he said although he didn't need 100, he'd donate some money to temporarily help me afford to build 50 more, and I could repay him over time if people bought them (the right side is shaded darker now):



6) Mike and I bought parts for 100, 50 for my friend, and to build 50 to keep

7) I put it online at the liquidware web store for sale

8) 32 people came along within the first hour (thanks Make and Hackaday), and bought almost all of them (some guys bought a couple at a time)



9) I swore out loud during my day job which was NOT professional, thinking there's no way I'm going to have time to build these all in 1 weekend... here I am thinking I can take at least a few weeks. So I called around and asked for help, and someone said raise the price to slow people down, while you figure out what you're going to do, which irritated some guys (sorry!) and really didn't slow anyone down either:



10) So Mike and I built them, soldered them, programmed them, tested them, and put them in the mail, and ...



Breakeven!

As far as I'm concerned, it was a total success, since I broke even, learned how to solder MUCH better than I ever did in the past (SMT parts have a way of doing that), I repaid my friend / mentor, Mike and I had fun building them, and everyone who wanted to got to have an Illuminato at cost (aka no markup!!!). The little extra markup that Mike and I made at the tail end went 100% towards reimbursing a bottle of diet coke, which pretty much kept us motivated while soldering boards 97, 98, 99, and 100.


Raising money to build the next batch

The problem with batch 1 is that there were 11 people who said they also wanted an Illuminato, but I ran out. Instead of begging my friend for money again (because that's not cool), I tried to be independent-willed, and went to the "real bank" asking for money to temporarily fund another 100 Illuminatos. The banker I talked to all but laughed at me, probably for the fact that I wasn't asking for a lot of money, but also because the bank he was working at had just gotten bailed out by the gov't. I tried 7 banks, and got the same response. Some of bank managers/tellers suggested I just put it all on my credit card, which I almost did, except that you can't buy all the parts needed for the board on a credit card (some component companies don't accept it). So now I've put the Illuminato back up for pre-order, with a catch...

I'm going to monitor and report in real time how many people have placed orders for the Illuminato's. If the number of pre-orders reaches 50 people within the next couple of weeks, I'm going to build them up. I'm also going to use the Open Source Hardware Bank to build not only 50, but 100, so that other people can have them available to buy. And then I'm going to track and report how many have been bought up.

And I've built a set of little picture-generating scripts to help me. Here's a picture of the order queue right now, with all the guys that pre-ordered already:




How to buy an Illuminato

Justin and I have gotten a lot of emails of people asking how they could help me fund more Illuminatos, so I've decided to add a couple of options to the pre-order system:



Most people will probably just want to "Pre-Buy 1" to pre-order 1 with a 15% markup (as opposed to the normal 30-50% or more charged on electronics). I'm hoping that some people will also maybe be willing to help reach the 50 mark by "Pre-Buy 1 - Build 1" or "Pre-Buy 1 - Build 2". That means buying 1 at 15% markup, and giving money to fund another 1 at it's cost. When Mike and I build the Illuminato's, if someone funded one to Build, when Mike and I sell it, we'll just mail you back a check to the cost, plus a 15% markup (or if international, I'll probably just use Paypal). So in effect, in exchange for "Pre Buy 1-Build 1", Mike and I will give out the 15% markup we got from when someone else buys 1, and that means that anyone who "Pre Buy1-Build 1" gets reimbursed for their markup, so it's like getting the Illuminato at cost!

Pre Buy 1-Build 2, if someone is particularly generous (thanks Nick!) is a lot like getting two 15% markups in exchange, which for a lot of people on the East coast will amount to free shipping :)



How to know that this isn't a scam

Because it's not. Because my name doesn't end in "Madoff"? :)

I don't know if it'll help, but at least whenever I give anyone money (for a cause, or otherwise), I like to get at least something physical in return. For everyone that pre-buys, I will print out and snail-mail you a certificate that looks like this, which will identify exactly where in the order queue you are, and it will have a couple of signatures at the bottom, so you know exactly who to hunt down:



And if you REALLY want to hold me accountable, you can always just add me or Justin or Mike as a friend on Facebook, and then you get to see that I'm a real person with real friends too, and I care about my word and doing the right thing...

Thanks!

Introducing the Open Source Hardware Central Bank

This blog post started with a cross-country driving trip, Zen and the Art of Open Source Hardware, and culminated with discussions during and especially after Justin's Open Source Economic Council (OSEC?). The list of people I interviewed and talked to about this is too long to list individually, so instead I'm going to throw credits to everyone who's been kind enough to help on a wiki soon. This coming weekend, Justin, Andrew, and I will be "launching" the Open Source Central Bank. This is the first in a series of blog posts describing it, and next week I'm headed up to MIT and Harvard to talk to some economists and business professors about how it will work. I'm excited!



Why does Open Source Hardware need a bank?

Because Open Source Hardware is different from Open Source Software. Software can be made with time, but hardware needs time and money. The same kind of "openness" principles from the Open Source Software "time economy" transition nicely to the Open Source Hardware-based "time economy," but they seem to get muddled in the OSHW "money economy." Need proof? Just try to answer any of these questions: who makes money from it, who funds it, why do they fund it, and who's helping to make it sustainable for the community? Open Source Hardware lacks a way for individuals to come together, make a cool project, and get something out of it - without taking a second and third mortgage on their houses!

Right now, the status quo, emerging trend for OSHW DIY'ers has been: build something, put up a bunch of money to build a few of them, if people like it, scale it up, raise money, realize you might lose all that money, charge a margin on top of it to cover your potential losses, start a small company to resell more, cross your fingers, maybe get lucky or maybe not. Setting up each little company takes an infrastructure investment like incorporation legal fees, Paypal transaction costs, and website hosting fees to name a few. For every small hardware project, there's a potential to have to pay upwards of 40-50% of the initial cost of the project again in just infrastructure fees - that's prohibitive and ridiculous for little guys like me.

I initially built the Illuminato with financial help from some friends, but mostly from a former mentor of mine who sponsored the project by helping to get scaling costs for the inventory. That worked the first time, but I've been stuck with a decision of how to fund it. If I only build 25 at a time, the cost will be around $50 apiece, which is just wrong. So I've been sitting here trying to figure out whether to take out a loan, pass the hat amongst friends, try to pitch it to a VC, or try something else? This is the OSHW "money problem" - how do you fund Open Source Hardware?


A vision for Open Source Hardware

Looking at Open Source Software, it's a thriving ecosystems of communities, projects, and contributors. There are a few companies, but they mostly offer "paid-for" services like consulting, tech support, or custom code/build-to-order functionality. I'd like the same for Open Source Hardware. I'd like the money problem to go away for small contributors like me and others. And I'd like to help guys like Chris and Mike and Mark and David and Jake build more cool stuff because it's fun.

I happen to believe that success for Open Source Hardware is not a distributed, highly-fragmented ecosystem with hundreds or thousands of individual companies, each structured around a single project. That seems wrong, and the transaction and infrastructure costs alone make that hard to stomach, let alone the time it takes to set all that up. I also don't believe that Open Source Hardware should ever be venture-backed. This is a controversial topic to some people. But speaking for myself (and quite a few others, apparently!), if I'm contributing my hard-earned time and money to projects and giving them away for the community benefit, I want to know, like Mark and Justin have taught me, that the community is reaping as close to 100% of the benefits. I don't believe in middle-men or intermediates just for the sake of it, or in speculators profiting off of my spare time. I get enough of that during my day job, so I want to eliminate that from my "spare time!"


Principles for the Open Source Hardware Bank

Justin, Andrew, and I have put together what we'd consider a beginner's set of principles for the Open Source Hardware, which the bank will operate under. Naturally, these are also on the wiki. These principles are described in terms of what we think Open Source Hardware needs to succeed:

A mechanism to:
  • Reduce margins and share costs for the community
  • Minimize the risk and opportunity cost of unsold inventory
  • Provide incentives for Open Source projects to move to production without risks
  • Allow the building and distribution of low-quantity, non-scalable products (e.g. niche applications that are potentially non-VC fundable, since "bad business idea" isn't the same as "bad hardware idea")
  • Give rewards and profits back as close as possible to those who contributed

A platform that:
  • Minimizes economic transaction costs to high-paid non-laborer economic types
  • Reduces barriers to contribution
  • Rewards innovation and encourages new ideas
  • Encourages project-level (not necessarily company-level) competition

People who:
  • Participate because they are getting as much or more out as they put in
  • Do it not just to make money and profit off of others for free
  • Have rare, valuable skills who volunteer their talents for recognition or fun
  • Are willing to build a more sustainable hardware innovation system
  • Are willing to teach others for the gratification of helping others learn new skills


What's the main issue the Bank is trying to solve?

Open Source Hardware has two main financial problems that the Open Source Bank will try to alleviate (in addition to a number of other tool-based problems, but others in the community are working on those thank goodness): "Throwaway Costs" and the "Quantity Monopoly." As if the current economy weren't bad enough already, both of these problems seriously hurt DIY'ers and potential Open Source builders who want to participate in the growing Open Source Hardware community.

Throwaway Costs - building physical hardware takes revisions. Early revisions have things wrong, like misplaced traces, wrongly sized solder pads, or just bad luck. In the OSS software world, when things go wrong, you just fix the code, hit compile again, and the only thing it really "costs" is your time finding and fixing the error. But in the OSHW hardware world, errors mean broken, non-functioning junk PCB's that cost money to make. And that means lost money. Who pays for this? Guys in college, or guys who just lost all their money in their houses can't afford to build 2, 4, or 6 revisions of hardware before it works!

The Quantity Monopoly - this is a term I'm giving to the fact that large companies, especially PCB houses and component suppliers, offer volume pricing discounts. Normally this is a good thing, but only if you're building 10,000's of finished products. In the DIY OSHW world, we're talking about building 1's to 10's to 25's at a time, and so the community gets burned every time by paying "quantity tax" to large suppliers. The has the side effect of pricing individual DIY builders out of many potential hardware developments, simply because they don't get cheap enough until you make 1,000's. It's a quantity monopoly, because there's only 1 quantity number that anyone wants to build: 100,000 of anything. This is a difficult topic, and in my interviews and conversations, I've found many people on both sides of the fence about this - some for, some against. The bottom line is: if stuff were cheaper, Chris, David, Mark, Mike, Omar, Justin, and I'd all personally be able to build and share more, so anything prohibiting this is what I'll call "bad."


The Solution: how the Bank will work

The Open Source Hardware Bank will work to eliminate the scaling and quantity pricing problem for OSHW projects by funding the build of 2x the quantity of any Open Source Hardware product. That means, if a project has found a way to find 10 potential buyers, the bank will put down the money needed to fund 10 more, for a total of 20 products. If a project has found 25 community members to buy in, the bank will fund another 25, to bring the total quantity down to 50. This should reduce the unit costs by around 10-30% of any hardware project, and in the case of the Illuminato, it'll reduce costs by almost 40%!

In return, anyone who pitches in money to the bank will get a modest and sustainable return on their investment, somewhere between 5-10%. Normally, this wouldn't be a huge amount, but given what I've learned about the "real" economy recently, 30-50% return on investment may never have really existed in the first place, let alone represented "sustainable growth." This money gets paid back and cashed out when the rest of the inventory is bought as a check that Justin, Andrew, or I write and sign personally.

So Andrew, Justin, and I will see to it that the Open Source Hardware Bank does not default, and each of us will guarantee every investment. Maybe you could call it AJMIC (instead of FDIC insured)! No one is trying to become a millionaire (without lots of hard work), a high paid investment banker (ugh), or Alan Greenspan (was he ever right about anything?). We're just trying to build a sustainable little financial institution to help Open Source Hardware DIY'ers. Consequently, we're also human and realize the limits of spare time, so no one's rushing out to build 50 projects, just 1 or 2 or 3 at a time will be perfectly fine, thank you!


The Open Source Hardware Bank is "Open Source"

The bank is funding Open Source Hardware, but it is also trying to be a step in the direction of Open Source Finance. As a result, the bank is also going to be "Open Source." It will run on a wiki, everything will be transparent, and it is open to anyone who'd like to join in any of the following roles:

Open Source Banker - these will be rotating positions, and Andrew, Justin, and I will do it first until it gets unsustainable and we need help (hint hint Mark and John)

Open Source Hardware Investor - by buying anywhere between $1,000 and $5,000 Open Source hardware T-bills

Open Source Economic Council - attending bi-monthly Open Source meetings (OSEC) in NYC and Boston to vote on what the bank will fund


If you're interested, or just think Justin, Andrew, and I are totally nuts, just send me an email! :) inthebitz at gmail... and in the meantime, every ridiculously crazy project needs a respectable logo, so here's one for the Open Source Bank:




Naturally, the text around the logo reads "Open Source Hardware" in ASCII, there's wreath of resistors representing overcoming resistance (buh dump chhhhh), and a course a fancy set of circuitry in the middle, and a hexadecimal base 16 set of stars around the center...


Here goes nothing!!!

Tuesday, March 3, 2009

How to make a simple Mario^D^D^D^D^D Boxario Gamepack game

A couple of weekends ago, I got an email from Jon asking what the smallest possible semi-side scrolling type program might be that I could help him write. So he sent me the code he had so far, and I worked on it a little bit, and combined it with Chris's InputShield forwarding app to get this little post.



Step 0: Configure the GamePack

This is a little video I made (yep - I taught myself how to do it from scratch too, using Blender!) showing how I put together my Illuminato WideScreen Gamepack (in a very idealized, white-splash world, I suppose).



Step 1: Translate Mario Level to Excel

I basically took this picture, that I found over here at Ian's ridiculous collection of Mario levels into an excel spreadsheet (it's in the Boxario app file):






Step 2: Extract Into a CSV File

Using Excel's "Export as" feature, I saved the file mariolevel.txt (also in the Boxario app file), which looked something like this:


,,,,,,,,,,,,,,,,,,,5,5,,,,,,,,,,,,,6,6,6,6,6,6,6
,1,,,,,,,,,,,,,,,1,,,5,5,,,1,,,,,,,,,,6,6,6,6,6,6,6,6,6,6
,1,3,,,,,,,4,,,,,,,1,,,5,5,,,1,,,,,,,,,,6,6,6,6,6,6,6,6,6,6,6,



Step 3: Use Perl Script to convert into Arduino format

I wrote a little perl script (really sloppy, but it works!) to read the CSV file, and output a formatted list of coordinate pairs for wherever there's a block in the Excel file I drew in step 1:



print "Hello World\n";

;

open FILEIO, "mariolevel.txt";
open FILEOUT, ">mariolevelout.txt";

$row = 1;
$totalcount = 0;

while ($line = ) {

chop $line;
@bits = split(/,/, $line);
$size = scalar @bits;

#print $size;

#;

for($i = 1; $i < $size; $i++) { if ($bits[$i] eq "") { #print "-"; } else { #print "{$i,$row,'".$bits[$i]."'},\n"; print FILEOUT "{$i,$row,".$bits[$i]."},\n"; $totalcount++ } } #print $line; #;

$row++;
}


print $totalcount;
;

exit 0;



This generates a file that looks something like this:


{84,10,2},
{85,10,2},
{52,11,8},
{59,11,10},
{47,12,4},
{48,12,9},
{52,12,8},
{59,12,2}



Step 4: Copy Coordinate Pairs to TouchShield Slide

Open up the TouchShield Slide application code, and copy it into the Arduino IDE window. Then replace the BLIP data structure with the full contents of the coordinate pair data from the previous step:


const BLIP data[] = {
{84,10,2},
{85,10,2},
{52,11,8},
{59,11,10},
{47,12,4},
{48,12,9},
...



Step 5: Program the GamePack

Compile and download the code to the TouchShield Slide. Then, open up the Arduino.txt file in the app zip, and download it to the Arduino or Illuminato, whichever you want. The Arduino base (or Boxario Base) code basically just reads the InputShield, and transmits data to the TouchShield Slide, which reads the data and scrolls the screen, like so:







Of course, all the source code is GNU GPL Open Source, and is all posted at the App Store over here...

PS ... I need serious help optimizing the code, since right now it's plenty choppy, but maybe that'll be my project for the next week :)