Stereo w/ Up To 6 Zones

June 20th, 2010 Alex Posted in electronics, hardware Comments Off

AddThis Social Bookmark Button

Living Room Media Players / Centers

October 24th, 2009 Alex Posted in electronics, media, video Comments Off

Boxee Box DSM-380
The Boxee Box by D-Link

Vudu XL
Vudu XL

popcorn-model-C200
Popcorn Hour C-200

LG-BD390
LG BD390

Playon-hd
PlayOn!HD

roku
Roku

mvix
Mvix Ultio

Netgear-EVA2000
Netgear EVA2000

neuros-link
Neuros Link

Another option would be to use an Home Theater PC (HTPC), more expensive but also more versatile.
http://www.linuxtech.net/features/best_linux_htpc_motherboards.html
has some good tips for building your own.

AddThis Social Bookmark Button

Digi Watchport/H USB Serial Humidity/Temperature Sensor in Linux

August 19th, 2009 Alex Posted in electronics, internet, linux Comments Off

Using Digi Watchport/H USB Serial Humidity/Temperature Sensor in Linux

Ubuntu 9.04 has everything you need except for minicom. So all I had to do was to:

  • plug it in

    dmesg should get you the following output:

    usb 2-9: new full speed USB device using ohci_hcd and address 50
    usb 2-9: configuration #1 chosen from 1 choice
    io_ti 2-9:1.0: Edgeport TI 1 port adapter converter detected
    usb 2-9: Edgeport TI 1 port adapter converter now attached to ttyUSB0

  • Install minicom: sudo apt-get install minicom
  • Edit minicom settings: ~$ minicom -s
    1. Change the Serial Device to /dev/ttyUSB0

    2. Change the Bps/Par/Bits field to 9600 8N1, (9600 baud, 8 bits, no parity, 1 stop bit). These are the default settings used by the Linux kernel; they can, if necessary, be overridden from the kernel command line by adding extra parameters to the console= option. See kernel-parameters.txt and serial-console.txt.

    3. Turn off both Hardware Flow Control and Software Flow Control.

    4. In the Modem and dialing menu, remove the Init string and Reset string completely if required.

    5. Save your new config
    6. start minicom
    7. more details
  • Use one of the following commands:
    Command Description Return Value
    ?<CR> Tells about the command set available for this Watchport as described in this section
    I<CR> Tells what kind of Watchport is connected. Watchport/H<CR>
    H<CR> Gives the percentage relative humidity. 38%<CR>
    T<CR> Gives temperature in Celsius. +22.2500C<CR>
    TC<CR> Also gives temperature in Celsius. +22.2500C<CR>
    TF<CR> Gives temperature in Fahrenheit. +72.0000F<CR>
    TF+<CR> Repeats the TF command every 3-4 seconds until the next keystroke. Appending + also works with the TC and H commands +72.0000F<CR>
    L4<CR> Adjusts the slew rate of the data line. When ā€œLā€ is followed by a numeric value, 1 through 8, Watchport responds with OK. Other values return Invalid Command. The default setting is 4. Adjust the parameter until the data transmission becomes error-free. The setting remains in effect until the Watchport is power-cycled. OK

Download Watchport’s manual

Now all I need is a perl script to automate the posting of these values to twitter?

AddThis Social Bookmark Button

Identify Computer Hardware

August 11th, 2009 Alex Posted in electronics, hardware Comments Off

Here is a nice hardware chart:

Computer_hardware_poster_1_7_by_Sonic840

Here is a larger version. If this link is down, try http://www.google.com/search?q=Computer_hardware_poster_1_7_by_Sonic840

AddThis Social Bookmark Button

Arduino – Using an LED as a light sensor (photodiode)

May 13th, 2009 Alex Posted in diy, electronics Comments Off

My first attempt at using the Arduino (Duemilnove). This sketch is based on this and that but mine uses 2 LEDs, one for the sensor and one for the feedback. And instead of getting bright when more ambient light is present, it turns OFF if ambient light is bright, stays ON in the dark and blinks if it’s in between.


//
// This example shows one way of using an LED as a light sensor.
// You will need to wire up your components as such:
//LED #1:
// + digital2 (N side)
// |
// <
// > 100 ohm resistor
// <
// |
// |
// -----
// / \ LED #1, 5mm, clear plastic is good (or translucent green lense)
// -----
// |
// |
// + digital3 (P side)
//
//////////////////////////////////
//LED #2 (only required if you don't have the on-board LED on pin 13):
// + digital13 (P side)
// |
// |
// -----
// / \ LED #2
// -----
// |
// |
// + Ground
//
// What we are going to do is apply a positive voltage at digital2 and
// a low voltage at digital3. This is backwards for the LED, current will
// not flow and light will not come out, but we will charge up the
// capacitance of the LED junction and the Arduino pin.
//
// Then we are going to disconnect the output drivers from digital2 and
// count how long it takes the stored charge to bleed off through the
// the LED. The brighter the light, the faster it will bleed away to
// digital3.
//
// Then just to be perverse we will display the brightness back on the
// same LED by turning it on for a millisecond. This happens more often
// with brighter lighting, so the LED is dim in a dim room and brighter
// in a bright room. Quite nice.
//
//
#define LED1_N_SIDE 2 // original code uses pin 2
#define LED1_P_SIDE 3 // original code uses pin 3
#define LED2 13 // LED 2 is on-board or external on pin 13 and ground
//
// -1 = very dark ; 1 = very bright
int extreme = 0;
//
void setup()
{
pinMode(LED1_N_SIDE, OUTPUT); // N side is output or input but starts w/ output
pinMode(LED1_P_SIDE, OUTPUT); // P side is alway output pin (drive low or high)
pinMode(LED2, OUTPUT);
}
//
void loop()
{
unsigned int waitDischarge, extenLimit;
//
// Apply reverse voltage, charge up the pin and led capacitance
digitalWrite(LED1_N_SIDE,HIGH);
digitalWrite(LED1_P_SIDE,LOW);
delay(30);
//
// Isolate the pin 2 end of the diode
pinMode(LED1_N_SIDE,INPUT);
digitalWrite(LED1_N_SIDE,LOW); // turn off internal pull-up resistor
//
// Turn LED on if ambient light is very dark or medium
if (extreme <= 0) {
digitalWrite(LED2,HIGH);
}
//
// Count how long it takes the diode to bleed back down to a logic zero
for ( waitDischarge = 0; waitDischarge < 65534; waitDischarge++) {
if ( digitalRead(LED1_N_SIDE)==0) {
// very dark (you might need to sligthly change this number depending
// on the color of the lense of LED #1 for example)
if ( waitDischarge > 6 ) extreme = -1;
// very bright (you might need to sligthly change this number depending
// on the color of the lense of LED #1 for example)
else if ( waitDischarge < 3 ) extreme = 1;
else extreme = 0;
break;
}
delay(30); // to avoid going above 65534
}
//
// Turn LED off if ambient light is very bright or medium
if (extreme >= 0) digitalWrite(LED2,LOW);
delay(200);
}

AddThis Social Bookmark Button