Adafruit recently released their own Raspberry Pi image, Occidentalis v0.1:

http://learn.adafruit.com/system/assets/assets/000/001/532/medium800/occidentalis.png?1343962191

This is our first distro,  Occidentalis v0.1. Rubus occidentalis is the black raspberry.  It is derived from Raspbian Wheezy July 15


We have made a few key changes to make it more hardware-hacker friendly!

 

I thought that looked like a nice list of improvements.  I'd already been using I2C with bootc.net's image, but the new 1-wire support piqued my interest.  I downloaded & flashed the Occidentalis image onto a SD card and then booted up:

20120807_021540.jpg

The login is the usual pi/raspberry.  Before I tested out 1-wire, I thought I would check to see if my Asus USB-N13 was supported as Adafruit compiled the driver it needs, rtl8192cu, into the kernel in their image.  To my delight, the USB-N13 was immediately recognized (unlike with the "regular" Raspbian Wheezy image):

asusn13.png

Alright, on to some electronics!  The Occidentalis page states about 1-wire:

One wire is most commonly used for DS18B20 temp sensors. The Pi does not have 'hardware' 1-wire support but it can bitbang it with some success.

The page also highlights the commit that makes it possible:

 

Dallas one wire interface with the Linux w1 GPIO bitbanging implementation on GPIO 4

 

I already had the DS18B20DS18B20 temperature sensors, so I just hooked it up as the page described:

Connect a DS18B20 with VCC to 3V, ground to ground and Data to GPIO #4. Then connect a 4.7K resistor from Data to VCC.

20120808_005837.jpg

(note: I'm using the Adafruit Pi Plate on top of Raspberry Pi to make the connections; FTDI cable for serial console is also pictured)

 

I continued to follow the documentation:

Then run as root: modprobe w1-gpio and then modprobe w1-therm to attach the temperature submodule. Then you can run cat /sys/bus/w1/devices/28-*/w1_slave to read the temperature data from the bus


The first line has the CRC, if its "NO" then the data is corrupted. If you get a good CRC check, the second line has t=temperature in 1/100 of a degree Centigrade. For example, below, the temperature is 24.5°C


Since 1-wire is bitbanged, its flakier than SPI or I2C.  We do not have any 1-wire tutorials for the RPi at this time

Here is a screenshot of my results:

1wire.png

The temperature value was 34000 which I believe would mean 34 C or 93 F.  This seems hotter than it actually was, so I'm planning to verify the results with the I2C TMP102 temp sensor next to the DS18B20.

 

Cheers,

Drew