mikeal / nodeconf2013

NodeConf 2013 Planning and Sessions
31 stars 4 forks source link

Hardware Planning #7

Closed mikeal closed 11 years ago

mikeal commented 11 years ago

I'd like to use this ticket to manage the hardware session planning.

Where can we buy hardware in bulk for the session at a good price?

What stuff do we want to go with?

I don't think we have enough time to cover serialport, firmatta, and j5, so maybe we should either write a thin wrapper for a few components on top of firmatta, or serial port, that people can dig in to the code on if they finish just manipulating hardware, or just go with j5.

@tmpvar @rwaldron @voodootikigod

KarbonDallas commented 11 years ago

judging from my experience with Voxer Hard Hack, arduinos with WiFi shields seem to be pretty popular across the board.

rwaldron commented 11 years ago

I don't think we have enough time to cover serialport, firmatta, and j5, so maybe we should either write a thin wrapper for a few components on top of firmatta, or serial port, that people can dig in to the code on if they finish just manipulating hardware, or just go with j5.

Just using Johnny-Five is the easiest path... it's a pretty high-level API.

@tmpvar @voodootikigod @nexxy I don't know what we should do here. I like to take the easy route: give them kits, let them make shit.

KarbonDallas commented 11 years ago

I would suggest developing a few particular projects with specific instructions and parts lists that can be easily adapted for those that want to expand on it themselves, and simple enough to be approachable by those with little-to-no experience/sense of adventure.

Also important to note is the need for a 'syllabus' that outlines the requisite software and configuration necessary prior to the session(s). This will help avoid wasting the entire allotted time just getting everyone set up for hacking.

An interesting possibility would be to create (private) repos with all of the instructions and (preinstalled) node modules for getting started with one of the "standard" projects. These repos could be made public at (or just before) the beginning of the session (so as to preserve the NodeConf mystique).

mikeal commented 11 years ago

so, this repository is setup for you to put any resources people will need. wireless is not reliable enough so we're going to distribute this all ahead of time. any build steps you need, like for serial-port, should be documented so we can get people to do it ahead of time.

voodootikigod commented 11 years ago

So for JSConf we are running the first ever NodeBots event, it requires a budget of about $20k because you have to assume that people 1) dont have the base hardware (arduino, etc) and 2) will need a lot of hands on and base kit. Granted this will service about 100 people (in teams of 3) and allow them to build free-form robots, moving robots, and possibly pusher bots. How many people are you looking to host for this?

mikeal commented 11 years ago

there won't be more than 40 people in each session at a given time, so that probably cuts down the cost. also, in one hour, i don't think that we can get to "free form robots." Basically we want to cover fundmantals, move a servo and shit like that, and then for the open sessions on the last day we can have some robot arms and other shit around for people to do more advanced stuff if they like.

i'd like to see 3 people actively running this, tmpvar and rick make 2, Chris and Emily will be on Copters.

mikeal commented 11 years ago

I'm adding @rockbot to this session, this is one of the most "hands-on" sessions and the more help the better :)

rockbot commented 11 years ago

Since we only have 1 hour, we should probably make sure that everyone is ready to go from the start (i.e. make sure everyone has node, j5, firmata, etc. installed and running). I agree we should only focus on j5; it'll be the best/easiest way to get to the hands-on stuff (if people want to wax philosophical, they can do that elsewhere).

I wonder if maybe we can do a Choose Your Own Adventure type of setup - basically have 3-4 totally written up projects (moving a servo via a web browser, playing an LED piano, etc) and let people follow along on whatever track they want until they feel comfortable enough to branch out on their own.

An hour simply isn't enough time to let people completely go on their own, especially if they're newish to node or hardware (more than likely the 2nd than the 1st). Our one hour will go by FAST, even if it only takes people 10 minutes to start up, 5 minutes to explain what's happening, and 5 minutes to close up shop and move on... Any chance we can have the session right before lunch or dinner?

As for hardware, everyone should have an arduino and components. No soldering irons - just bread boards or TinkerKits.

mikeal commented 11 years ago

We can use this repository to stick any code people will need ahead of time. I'll be sending it out to everyone and I'll have usb keys with it all for when the wireless inevitably crashes.

I would start with one example that everyone types themselves and runs. Work with the room to make sure they have it running, then explain it, then go the Choose Your Own Adventure route where people can pick at a bunch of pre-existing examples.

If everyone is to leave feeling enabled to do this on their own it's important that they type something themselves and then understand how and why it works. Don't need to do more than the introduction that way but I do think its important.

Also, you're mistaking the way the sessions are layed out. You can read the README here for more details, but this session with run consecutively, 8 times in a row, so you'll have a sessions before and after dinner and lunch :)

Also, you've really only got 55 minutes, because the sessions begin every hour on the hour.

rockbot commented 11 years ago

Aha! I see - apologies for not reading the README to start.

So then - will every attendee get their own hardware to take home and hack? Or will we be cycling through the same set of hardware for each session?

mikeal commented 11 years ago

We'll be using the same hardware in each session. Write down anyone who has an usually high aptitude and we'll make sure they walk away with one, if I take them home they'll just end up getting stored in my basement.

Once you add up all the servos and other fun stuff each person may want to play with the kits get kind of expensive so its a little too much to give a ton of them away. We'll probably go with at least 50 arduinos (40 so each chair gets one and 10 in case some break).

mikeal commented 11 years ago

I've been looking at pricing. Would we be able to do something like this: http://www.amazon.com/Starter-Kit-Newsite-Uno-Breadboard/dp/B0051QHPJM/ref=sr_1_2?s=electronics&ie=UTF8&qid=1368123795&sr=1-2&keywords=arduino

If we can get a bunk discount I can probably afford to buy enough that everyone walks away with one.

rwaldron commented 11 years ago

I've been looking at pricing. Would we be able to do something like this: http://www.amazon.com/Starter-Kit-Newsite-Uno-Breadboard/dp/B0051QHPJM/ref=sr_1_2?s=electronics&ie=UTF8&qid=1368123795&sr=1-2&keywords=arduino

This is fine for the base line kit that everyone will need to participate.

mikeal commented 11 years ago

Can someone give me a list of things I need to buy?

This kit looks good but I can't even buy 300 of them from this Amazon vendor. Suggestions for bigger or bulk vendors would be much appreciated.

aulvi commented 11 years ago

You can get bulk from places like mouser.com and digikey.com, but they are better suited for components rather than kits. If we were to create a kit, we would need at the minimum:

Wifi shields are kind of expensive and I don't know the budget, but it may be possible to contain costs by creating 2-3 different kits and allowing folks to mix-n-match parts with each other. The Uno already has an onboard led to blink, but I think reading input from a sensor is way more fun.

tmpvar commented 11 years ago

Can someone give me a list of things I need to buy?

I can give it a shot, but without a hard budget it's difficult to know what is reasonable.

To recreate the required bits of the kit you linked to on amazon:

And to actually do something useful:

total price: ~$10500 (w/o shipping) price per person: ~$35

mikeal commented 11 years ago

this is a good list, god i hate ebay tho :)

what about throwing a sensor in there?

rwaldron commented 11 years ago

I can give it a shot, but without a hard budget it's difficult to know what is reasonable.

This has been my blocker, as well as the 55 minute time limit. In my experience it takes at the very least:

55 minutes is good for someone that already knows what they're doing and needs absolutely no explanation.

rockbot commented 11 years ago

So, let's assume that everyone's already got node, npm, and johnny-five installed on their machines. (Will there be a time before/at the beginning of the conference where we can make sure that happens?) Is that enough to shave down that 1hr "up and running" time frame?

Another option: We know we'll have approximately 30 people in the room at a time. If we can build 10-15 robots/systems and have that many computers, we can at least let people play with them for 25 minutes (after speaking for 30 minutes about the bare minimum behind serialport, firmata, johnny-five, etc). We can let people take the robots/systems apart and reorganize them, or just program them with j5's jQ-like framework. It's enough to get people excited without having to actually tell them how a bread board works.

rwaldron commented 11 years ago

@mikeal

If we only need 30 "session" kits, then just get 30 of these and we have everything we need:

30 Inventors Kit x 89.96 = $2698.80 (https://www.sparkfun.com/products/11236)

And then for all the attendees:

300 Arduino uno x 23.96 = $7188 (https://www.sparkfun.com/products/11021)

Total: $9886.80

hueniverse commented 11 years ago

Is there any flexibility in making this session 2 hours? or maybe this and the copter each 90m? It's trivial to get value out of 55m web services session. Hardware on the other hand... Especially considering the cost.

mikeal commented 11 years ago

there is no flexibility to change the duration of any session.

mikeal commented 11 years ago

Probably want 45 kits just to be safe, in case some shit breaks.

KarbonDallas commented 11 years ago

I have been thinking we could do very basic introductory content with a lot of prepared code during the 55 minutes, and a more open-ended hack time available for whoever during the break between breakfast & lunch on the 30th.

We could go from almost 9-12 hacking hardware & drones...

@mikeal do you think this would be appropriate? will there be space available for this kind of thing?

voodootikigod commented 11 years ago

I strongly suggest this option.

The bootcamp Rick and I did spent about 2 hours just getting "blinking light" and I2C control going. I would err on less aggressive, more "free run" with encouragement more than training.

IMHO.

On Tue, May 21, 2013 at 4:04 PM, Emily Rose notifications@github.comwrote:

I have been thinking we could do very basic introductory content with a lot of prepared code during the 55 minutes, and a more open-ended hack time available for whoever during the break between breakfast & lunch on the 30th.

We could go from almost 9-12 hacking hardware & drones...

@mikeal https://github.com/mikeal do you think this would be appropriate? will there be space available for this kind of thing?

— Reply to this email directly or view it on GitHubhttps://github.com/mikeal/nodeconf2013/issues/7#issuecomment-18235860 .

Chris Williams

@voodootikigod http://twitter.com/voodootikigod | GitHubhttp://github.com/voodootikigod

The things I make that you should check out: SaferAging http://www.saferaging.com/ | JSConf http://jsconf.com/ | PromoteJS http://promotejs.com/ | Minute With http://minutewith.com/

Help me end the negativity on the internet, share thishttp://jsconf.eu/2011/an_end_to_negativity.html .

KarbonDallas commented 11 years ago

also in regards to what @rockbot mentions;

@s5fs and myself have been making plans to bring a few npm repos with us. The idea is to set them up as access points that people can use to get whatever modules they need for their projects.

We should probably grab some node binaries and j5's repo while we're at it.

mikeal commented 11 years ago

Can't double up with another session either because it would increase the count for that session to almost 80 people, probably more like 70 though, and that's just too many people.

The session should go something like this "here is some code to type and see results" then some explanation as to why that code works that way. As long as you make the attendees feel enabled to move forward, you've done a good job, we have a lot of "free time" after the formal sessions for people dive deeper in to hardware and drones so don't worry about taking everyone really far with each concept, they'll choose the ones they liked the most and get plenty of extra time on the last day.

mikeal commented 11 years ago

Going through some old boxes I quickly realized how often I am given hardware and do absolutely nothing with it. The biggest exception being the inventors kit i got at Chris and Rick's training, which I pull out all the time.

I'm going back to something closer to the original plan. I'm gonna buy 50 inventors kits for the session and we'll figure out a good way to give them out to people that will actually use them, or possibly fold some of them in to future hardware hack days.

Any objections?

rwaldron commented 11 years ago

None from me https://github.com/mikeal/nodeconf2013/issues/7#issuecomment-18217225

voodootikigod commented 11 years ago

That is a great idea.

Also can I send RobotsConf banners and can you all share some love / encouragement for it?

On Thursday, June 6, 2013, Rick Waldron wrote:

None from me #7https://github.com/mikeal/nodeconf2013/issues/7#issuecomment-18217225

— Reply to this email directly or view it on GitHubhttps://github.com/mikeal/nodeconf2013/issues/7#issuecomment-19039915 .

Chris Williams

@voodootikigod http://twitter.com/voodootikigod | GitHubhttp://github.com/voodootikigod

The things I make that you should check out: SaferAging http://www.saferaging.com/ | JSConf http://jsconf.com/ | PromoteJS http://promotejs.com/ | Minute With http://minutewith.com/

Help me end the negativity on the internet, share thishttp://jsconf.eu/2011/an_end_to_negativity.html .

mikeal commented 11 years ago

@voodootikigod most definitely :)

Walker Creek Ranch 1700 Marshall-Petaluma Road Petaluma, CA 94952

Hold for "Node" should be on the front of the mailing.

mikeal commented 11 years ago

I also need to make a note to plug RobotsConf near the end of the conference. Something along the lines of "if you loved the hardware stuff, you need to get yourself to RobotsConf."

voodootikigod commented 11 years ago

yes please, but wait - I might have an update to it.

On Thu, Jun 6, 2013 at 1:12 PM, Mikeal Rogers notifications@github.comwrote:

I also need to make a note to plug RobotsConf near the end of the conference. Something along the lines of "if you loved the hardware stuff, you need to get yourself to RobotsConf."

— Reply to this email directly or view it on GitHubhttps://github.com/mikeal/nodeconf2013/issues/7#issuecomment-19059903 .

Chris Williams

@voodootikigod http://twitter.com/voodootikigod | GitHubhttp://github.com/voodootikigod

The things I make that you should check out: SaferAging http://www.saferaging.com/ | JSConf http://jsconf.com/ | PromoteJS http://promotejs.com/ | Minute With http://minutewith.com/

Help me end the negativity on the internet, share thishttp://jsconf.eu/2011/an_end_to_negativity.html .

rockbot commented 11 years ago

Sounds great to me!

rockbot commented 11 years ago

So, um... we should probably start figuring out what we're going to do... and for realz this time. (While this isn't a competition, the domains and web services teams are kinda like done already :-P)

Maybe it's enough just to get people to get an LED to flash using j5? And if someone finishes before time's up/doesn't even start because said someone isn't new to hardware hacking/j5/etc, just let them go forward?

I'm guessing @rwldrn will give the intro talk (maybe go down to 15 minutes?) - I'm fine with just interjecting stuff here and there, if that's useful. @tmpvar - what do you want to do?

I don't know that we need to have tooo much planned, per se... thoughts?

tmpvar commented 11 years ago

hrm, I suppose I could stand in the corner and yell at people or something.

On Mon, Jun 10, 2013 at 11:51 PM, Raquel Vélez notifications@github.comwrote:

So, um... we should probably start figuring out what we're going to do... and for realz this time. (While this isn't a competition, the domains and web services teams are kinda like done already :-P)

Maybe it's enough just to get people to get an LED to flash using j5? And if someone finishes before time's up/doesn't even start because said someone isn't new to hardware hacking/j5/etc, just let them go forward?

I'm guessing @rwldrn https://github.com/rwldrn will give the intro talk (maybe go down to 15 minutes?) - I'm fine with just interjecting stuff here and there, if that's useful. @tmpvar https://github.com/tmpvar - what do you want to do?

I don't know that we need to have tooo much planned, per se... thoughts?

— Reply to this email directly or view it on GitHubhttps://github.com/mikeal/nodeconf2013/issues/7#issuecomment-19244287 .

hueniverse commented 11 years ago

If I was attending this session, I would be looking for my first hand-on hardware experience. Just going end-to-end from node to something physical happening. I think that's the mental block for more people. Get them past that with some hands-on experience and you've done your job.

domenic commented 11 years ago

Having attended NodeBots at JSConf, I think getting the blinking LED is a great first step. From there, my first impulse was to try to plug in as much random stuff as I could find and manipulate it with JavaScript (in particular Johnny5).

Sensors especially were interesting to me, although there weren't many on hand IIRC. I think this is because, given that I'm not going to complete a full project, I'd rather get some data into the computer realm where I have confidence than start manipulating the physical world via gears or such, since once I get a gear turning that just leaves me with a lot of physical-world work to hook that up to a useful mechanism.

Put more concretely, if I hook up an ambient light sensor and have it spew data to the console, I'm fairly confident I'll be able to use that to create a game or adjust my monitor brightness or change music volume or whatever---that stuff is all software, and within my capabilities. Whereas if I hook up a gear and get it turning in response to my stuff, I'd still have to do a lot of unfamiliar-to-me work to turn that into a light-switch-pusher or crank turner or thermostat manipulator.

So yeah, I'd urge getting lots of sensors and letting people play with them. That would make me at least feel empowered.

rwaldron commented 11 years ago

I agree with @domenic here

  1. Led strobe
  2. Logging various sensor data
  3. Doing something with sensor data

My only concern is time

rwaldron commented 11 years ago

We may need to have "stations" setup in advance

voodootikigod commented 11 years ago

You also should ensure everyone has node-serialport and j5 installed BEFORE the event.

On Tue, Jun 11, 2013 at 11:22 AM, Rick Waldron notifications@github.comwrote:

We may need to have "stations" setup in advance

— Reply to this email directly or view it on GitHubhttps://github.com/mikeal/nodeconf2013/issues/7#issuecomment-19268786 .

Chris Williams

@voodootikigod http://twitter.com/voodootikigod | GitHubhttp://github.com/voodootikigod

The things I make that you should check out: SaferAging http://www.saferaging.com/ | JSConf http://jsconf.com/ | PromoteJS http://promotejs.com/ | Minute With http://minutewith.com/

Help me end the negativity on the internet, share thishttp://jsconf.eu/2011/an_end_to_negativity.html .

rockbot commented 11 years ago

Remember, we've only got 50 minutes, 45 if you figure people will wander in a tiny bit late. If Rick/Eli/I speak(s) for 15 minutes, that only leaves us with 30 minutes for tinkering.

That said, here's what I propose (thanks, @domenic and @hueniverse for your input!!):

Thoughts?

@mikeal what's the best way for us to add node-serialport and j5 to the big nodeconf2013 repo? Just add the module names to the package.json?

rwaldron commented 11 years ago

@voodootikigod Absolutely. We had very few issues at JSConf with this, people came prepared because we told them ahead of time. This should be repeated.

This reminds me...

voodootikigod commented 11 years ago

Also remember they MAY need build utilities, so its not as simple as just "clone the repo"

Hopefully I can get a windows machine someday to make it all "just work" on windows...

On Tue, Jun 11, 2013 at 11:32 AM, Rick Waldron notifications@github.comwrote:

@voodootikigod https://github.com/voodootikigod Absolutely. We had very few issues at JSConf with this, people came prepared because we told them ahead of time. This should be repeated.

This reminds me...

-

3 linux users at jsconf learned that their node and node-serialport installs did not have the correct owner to open serialports, this was remedied by running johnny-five programs as sudo

Since node-firmata has specific steps it must complete to ensure a connection to the board, programs cannot be run "ad hoc" from node repl. This comes up exactly one time at every nodebots hackday/workshop I've been involved in. The solution is to just write the program in a file and node program.js.

— Reply to this email directly or view it on GitHubhttps://github.com/mikeal/nodeconf2013/issues/7#issuecomment-19269477 .

Chris Williams

@voodootikigod http://twitter.com/voodootikigod | GitHubhttp://github.com/voodootikigod

The things I make that you should check out: SaferAging http://www.saferaging.com/ | JSConf http://jsconf.com/ | PromoteJS http://promotejs.com/ | Minute With http://minutewith.com/

Help me end the negativity on the internet, share thishttp://jsconf.eu/2011/an_end_to_negativity.html .

rwaldron commented 11 years ago
  • Hook people up with one sensor and one actuator, i.e. a slider and a servo. Give everyone instructions on how to set it up so that when you slide the slider, the servo moves. (Again, those who already know how to do it will ignore us anyway.)
  • Provide an area with a whole mess of things so that those who already know how to do stuff can ignore us and still have fun

This makes sense to me

voodootikigod commented 11 years ago

this.. great idea.

On Tue, Jun 11, 2013 at 11:35 AM, Rick Waldron notifications@github.comwrote:

  • Hook people up with one sensor and one actuator, i.e. a slider and a servo. Give everyone instructions on how to set it up so that when you slide the slider, the servo moves. (Again, those who already know how to do it will ignore us anyway.)
  • Provide an area with a whole mess of things so that those who already know how to do stuff can ignore us and still have fun

    This makes sense to me

— Reply to this email directly or view it on GitHubhttps://github.com/mikeal/nodeconf2013/issues/7#issuecomment-19269758 .

Chris Williams

@voodootikigod http://twitter.com/voodootikigod | GitHubhttp://github.com/voodootikigod

The things I make that you should check out: SaferAging http://www.saferaging.com/ | JSConf http://jsconf.com/ | PromoteJS http://promotejs.com/ | Minute With http://minutewith.com/

Help me end the negativity on the internet, share thishttp://jsconf.eu/2011/an_end_to_negativity.html .

voodootikigod commented 11 years ago

did you get breadboards?

On Tue, Jun 11, 2013 at 11:35 AM, Rick Waldron notifications@github.comwrote:

  • Hook people up with one sensor and one actuator, i.e. a slider and a servo. Give everyone instructions on how to set it up so that when you slide the slider, the servo moves. (Again, those who already know how to do it will ignore us anyway.)
  • Provide an area with a whole mess of things so that those who already know how to do stuff can ignore us and still have fun

    This makes sense to me

— Reply to this email directly or view it on GitHubhttps://github.com/mikeal/nodeconf2013/issues/7#issuecomment-19269758 .

Chris Williams

@voodootikigod http://twitter.com/voodootikigod | GitHubhttp://github.com/voodootikigod

The things I make that you should check out: SaferAging http://www.saferaging.com/ | JSConf http://jsconf.com/ | PromoteJS http://promotejs.com/ | Minute With http://minutewith.com/

Help me end the negativity on the internet, share thishttp://jsconf.eu/2011/an_end_to_negativity.html .

domenic commented 11 years ago

Re: Windows support, I spent an hour at JSConf banging my head against https://github.com/voodootikigod/node-serialport/pull/171. It seems Mac users have Arduino drivers already or something, whereas Windows users don't.

voodootikigod commented 11 years ago

I just merged this -- it is near impossible for me to handle Windows issues without a machine. I am working on getting a machine though so if you have any until then, please send away. Iw ould have assumed that downloading the arduino IDE (to install firmata) would have done the drivers for you… no?

On Tue, Jun 11, 2013 at 11:44 AM, Domenic Denicola <notifications@github.com

wrote:

Re: Windows support, I spent an hour at JSConf banging my head against voodootikigod/node-serialport#171https://github.com/voodootikigod/node-serialport/issues/171. It seems Mac users have Arduino drivers already or something, whereas Windows users don't.

— Reply to this email directly or view it on GitHubhttps://github.com/mikeal/nodeconf2013/issues/7#issuecomment-19270404 .

Chris Williams

@voodootikigod http://twitter.com/voodootikigod | GitHubhttp://github.com/voodootikigod

The things I make that you should check out: SaferAging http://www.saferaging.com/ | JSConf http://jsconf.com/ | PromoteJS http://promotejs.com/ | Minute With http://minutewith.com/

Help me end the negativity on the internet, share thishttp://jsconf.eu/2011/an_end_to_negativity.html .

domenic commented 11 years ago

Ah, I guess the problem there was that at JSConf our Arduinos were pre-flashed so I never needed to do that step.