Tuesday evening -Summertime

I came home today around 6PM and absolutely nothing was happening at home… no crises, no parties, no big projects, no homework, no yard work… no visitors   The weather was perfect.. not cold, not hot…   Gabe, Diane and Kristen were hanging out at home not doing much

Help !

I think  in the month or so since I’ve come back from the TV adventure…I’ve forgotten how to relax !.. My brain is not working on zero input..   Maybe this is what I’m supposed to be doing. When I came back I felt so open and ready for inspiration .. I felt like something was just about to come to me about where to focus my life’s energy. .. Now… I’m not so sure. if I’m tuned in correctly  ???

The day to day crush at work , cell phones, email, etc. are starting to creep back into my brain…   I don’t want to fall back into old patterns.. I want to find a way to add more to the world

Universe… I’m awaiting your suggestions….

nite folks.. nite Sam..
-me

ps.. There’s a great article about baby brother billy in Texas Innovator magazine.. check this out. !  Isn’t he cute ?

Sunday night – power failure

First of all.. Sorry to anyone who couldn’t read yesterday’s post.. For some reason Myspace is marking some of my posts as ‘preferred readers only’ ,. You’re all preferred to me..  so not sure what the distinction is. I went back and cleared it up… I think

I’m definitely feeling much better today. My fever broke last night.. I just felt washed out today… Whatever I had, it was a doozy..   I started getting serious cabin fever after som many days laying low. The dogs decided to take me on a walk   they were pretty happy to get out.. .

The beuty of this almost summer day helped clear my head of the fog that had settled there…   It reminded me of the Wendell Berry powem that so many folks sent us after Sam’s passing.. It’s on our fridge right now..

The

Peace of Wild Things

When despair for the world grows in me

and I wake in the night at the least sound

in fear of what my life and my children’s lives may be,

I go and lie down where the wood drake

rests in his beauty on the water, and the great heron feeds.

I come into the peace of wild things

who do not tax their lives with forethought

of grief. I come into the presence of still water.

And I feel above me the day-blind stars

waiting with their light. For a time

I rest in the grace of the world, and am free.

— Wendell Berry

One cool thing about today, all of the cotttoonwood (do we even have cottonwood here ?) trees were launchjing their seeds today. Alll day long it looked as though it were snowing… all you had to do was wave your hands and you could catch tufts of these light downy seeds

It was hard to capture the snow effect on camera .. but it was pretty amazing in real life. !

Late afternoon I paid a quick visit to our freind Dan’s new home and work project. The Long trail Community Market. Dan is opening up a community market and communal kitchen in the old Jonesville Store. He’s got some great ideas.. He also has a GREAT blog that you can read here. Do check it out !

THere are some really creepy things still hanging around that store..

Late afternoon dDiane and I droopped in on a graduation party for several of our friends.. It was a beitiful evening.. .. It was great congratulating the kids and seeing some of our firriends. Graduation is always an interesting time.. it reminds you
how quickly time passes…

We got home to find the power off on our whole road.. Diane quickly lit some candles …It was kind of cozy… except that all of our frozen food from the grocery store was starting to melt.. It eventually came back on.

Right befor ebed, gabe helped me make a better header picture for my Rainbow Headband Instructables contest entry.. This LED contest is for anything with a blinking LED.. go check the contest  out.. there are some really cool things there..  You can even vote for the ones you like !.

OK folks.. gotta run.. for the next 3 nights I have work meetings from 11:45PM till 3AM with some freinds who are in India..  Gnite folks.. Gnite Sam
–me

Saturday eveing – the day flu by

Grrrrr. myspace just ate my blog again.. so I’ll have to trype.. Not in the mood for it at all…

Well folks.. I’m not 100% sure, but I think I have the flu.. I mean THE flu . It’s been going through our area for the last week. They actually closed the schools in a neighboring town because of it. There asking folks not to come in to the doctor to be checked because it only aids the spread.  I’m not completely sure.. but now I think I have all the symptoms. I woke last night with a high fever, chills aches and cough.. and that’s kept up mostly though the day. That said.. I don’t feel any worse than any other flu I’ve had.I’ve heard that the strain we have up here is not so bad. I’ve even heard a few folks say that it’s better to get it now than when it comes back tr. Evidently there’s a prediction that it will come back with a vengeance this winter.

All in all.. I’m feeling only sort of lousy during the day.. We had a bunch of stuff planned for the day.. but I just hung out on the couch for most of the day. Diane took gabe to middlebury for a post season lacrosse tournement.. it’s tomorrow too.. hope I feel up to going.. I also missed hannah b’s graduation party and David K’s barbeque..   It’s ok though.. I don’t feel like moving or talking right now..

I did make pretty good use of the downtime, though. I wrote a ‘how to’ guide for making the kind of Rainbow headbands that I wear to my shows for Instructables.com. Instructables is an awesome website run by a guy I know (Eric W) that is helpign spread the DIY ethos.  I decided to put in the hatband because their currently having a contest for the best LED project. Mine won’t likely win, but it’s fun to try…  

The cool thing is that the prize is a set of lights made by Xander H. the guy who I told you about a few days back who I helped create  the arduino code to drive the light strips 
I also finally got around to posting a video of the ‘get more kids interested in engineering‘ talk that I did back on my birthday. I’ve been watching it. It’s weird to watch yourself talk 
Yikes.. I’m feeling pretty yucky.. I’ve got to crawl back into bed.. Talk to ya’ll tomorrow.. Gnite folks. Gnite Sam
-me

Thrusday night – open source / open sores

Got home so late last night after that long but productive trip to NY.. I paid for it today.. I am home with a virus of some sort.. I’m fevery and achy… and I have open sores on my tongue… yuck !  ..
   It dodn’t slow me down though. I had a very productive day just working from home. I’m spending lots of time on the phone talking to new folks abotu soem ideas I have.. it’s fun meeting these new folks. Speaking of new folks and open sores…  A chance meeting aI had at makerfaire has turned out to be pretty productive. I was wearign the  LED color changing halo that I often wear at events… I ran into a guy , Xander H. at one of the booths who recognized the chips that I was using in my halo.. and asked me how I’d figured them out. . Readers of this blog may recall that I struggled mightely to figure out the inner workigns of those chips back before christmas as I was maign headbands for both boys.    Anyway.. Xander had been struggling with the same horrible chineese documentation that I’d had to work through.. We exchenged busness cards.. then email.. and finally source doe.. and the result is a cool new opensource librbary Xander wrote for driving these strips. I love that this chance meeting at th Faire led to a contribution to geek culture..   It really is world 2.0

.r{}* LEDStrip – Arduino driver for HL1606-based LED strips

 * Thanks to: John M Cohn
 * Copyright (c) 2009, Synoptic Labs
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *   * Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *   * Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *   * Neither the name of the .. nor the
 *     names of its contributors may be used to endorse or promote products
 *     derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY SYNOPTIC LABS ”AS IS” AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL SYNOPTIC LABS BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include “WConstants.h”
#include “LEDStrip.h”
LEDStrip::LEDStrip(int dPin, int sPin, int latchPin, int clkPin)
{
  _dPin = dPin;
  _sPin = sPin;
  _latchPin = latchPin;
  _clkPin = clkPin;
  _faderEnabled = 0;
 
  digitalWrite(_dPin, LOW);
  pinMode(_dPin, OUTPUT);
  digitalWrite(_sPin, LOW);
  pinMode(_sPin, OUTPUT);
  digitalWrite(_latchPin, LOW);
  pinMode(_latchPin, OUTPUT);
  digitalWrite(_clkPin, LOW);
  pinMode(_clkPin, OUTPUT);
}
void LEDStrip::faderCrank()
{
  unsigned long mymillis;
 
  if (!_faderEnabled) return;
  mymillis = millis();
  // Give us 250ms slop in case we don’t exactly catch our edge.
  if (mymillis >= _faderPulseNextEdge && mymillis < _faderPulseNextEdge + 250) {
    if (digitalRead(_sPin) == HIGH) {
      digitalWrite(_sPin, LOW);
    } else {
      // only load new value of _faderPulseHalfWidth on rising edge
      digitalWrite(_sPin, HIGH);
      _faderPulseHalfWidth = _faderPulseNewHalfWidth;
    }
    _faderPulseNextEdge = mymillis + _faderPulseHalfWidth;
  }
}
unsigned int LEDStrip::faderSpeedGet()
{
  return _faderPulseHalfWidth;
}
void LEDStrip::faderSpeedSet(unsigned int halfWidthms)
{
  if (halfWidthms == 0) {
    _faderEnabled = 0;
    _faderPulseHalfWidth = 0;
    _faderPulseNewHalfWidth = 0;
    digitalWrite(_sPin, LOW);
    return;  
  }
  _faderPulseNewHalfWidth = halfWidthms;
 
  // if we’re already running, don’t re-init _faderPulseNextEdge
  if (_faderEnabled != 1) {  // starting from non-running state,
    _faderEnabled = 1;
    digitalWrite(_sPin, HIGH);
    _faderPulseHalfWidth = halfWidthms;
    _faderPulseNextEdge = millis() + _faderPulseHalfWidth;
  }
}
.r{}* word consisting of 8 bits.  Command word is clocked out MSB first (i.e. D8
 * is first bit sent)
 *
 * Format of command word (using conventions in datasheet):
 *   ________________________________________________________________________
 *  |   D1   |   D2   |   D3   |   D4   |   D5   |   D6   |   D7   |    D8   |
 *   ————————————————————————
 *   ________________________________________________________________________
 *  |     LED1 CMD    |    LED2 CMD     |    LED3 CMD     |   2X   | LatchOK |
 *   ————————————————————————
 *
 *   LED{1,2,3} CMD –
 *       00 – LED off
 *       01 – LED on (max bright)
 *       10 – LED fade up   (start at min bright)
 *       11 – LED fade down (start at max bright)
 *
 *   2X – Double fade speed
 *       0 – 1X fade speed, each pulse on SI line steps brightness by 1/128th.
 *       1 – 2X fade speed, each pulse on SI line steps brightness by 1/64th.    
 *
 *   LatchOK – Enable latch.  Set to 0 to insert ‘white space’ in the serial
 *             chain.  If set to 0, the entire CMD is ignored.
 *       0 – Do not latch this CMD when Latch is thrown.
 *       1 – Latch CMD as normal when Latch is thrown.
 *
*/
// Push a color value down the strip, setting the latch-enable flag.
void LEDStrip::rgbPush(uint8_t redcmd, uint8_t greencmd, uint8_t bluecmd)
{
  uint8_t cmd = 0;
  uint8_t flags = LATCH;
  if (redcmd >= NONCMD || bluecmd >= NONCMD || greencmd >= NONCMD) return;
  cmd |= (greencmd << 4) & (_BV(5) | _BV(4));
  cmd |= (redcmd << 2) & (_BV(3) | _BV(2));
  cmd |= (bluecmd) & (_BV(1) | _BV(0));
  cmd |= flags & (_BV(6) | _BV(7));
  pushCmd(cmd);
}
void LEDStrip::rgbPush2X(uint8_t redcmd, uint8_t greencmd, uint8_t bluecmd)
{
  uint8_t cmd = 0;
  uint8_t flags = LATCH | SPEED2X;
  if (redcmd >= NONCMD || bluecmd >= NONCMD || greencmd >= NONCMD) return;
  cmd |= (greencmd << 4) & (_BV(5) | _BV(4));
  cmd |= (redcmd << 2) & (_BV(3) | _BV(2));
  cmd |= (bluecmd) & (_BV(1) | _BV(0));
  cmd |= flags & (_BV(6) | _BV(7));
  pushCmd(cmd);
}
void LEDStrip::sPulse()
{
  if (digitalRead(_sPin) == HIGH) {
    //delay(1);
    digitalWrite(_sPin, LOW);
    delayMicroseconds(1000);
    digitalWrite(_sPin, HIGH);
    delayMicroseconds(1000);
  } else {
    //delay(1);
    digitalWrite(_sPin, HIGH);
    delayMicroseconds(1000);
    digitalWrite(_sPin, LOW);
    delayMicroseconds(1000);
  }
}
// Push a blank value down the strip, not setting latch-enable flag.  
// Does not affect the status of a particular LED when latched.  It’s
// like using whitespace.
void LEDStrip::blankPush()
{
  pushCmd(0);
}
void LEDStrip::pushCmd(uint8_t cmd)
{
  shiftOut(_dPin, _clkPin, MSBFIRST, cmd);
}
void LEDStrip::latch()
{
  digitalWrite(_latchPin, HIGH);
  delayMicroseconds(1);  // spec sheet specifies minimum latch pulse of 1us
  digitalWrite(_latchPin, LOW);
}

OK… I still feel yucky. Early to bed for me.. nte folks.. Nite Sam
-me

ps. I just got an IM from my freind carl. He’s on a boat in the middle of the baltic ocean.. 1AM and still sunny there… technology is wonderful