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

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'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:


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):


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.


(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:


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.