Skip to main content

Banana Pi: Temperature Sensor (DS18B20) - Tutorial


Requirements

    --> Banana Pi running Raspbian for Banana Pi
    --> Breadboard
    --> Jumper Wires
    --> DS18b20
    --> 4.7K Ohm resistor
    --> Breakout cobbler

       

      Hardware Setup

      Refer to the graphic for the correct wiring. Make sure the Banana Pi is switched off to prevent any possible damage.

      Banana Pi Temperature Sensor - DS18B20

      Software Setup

      Double check the wiring and boot the device. In order to be able to access the temperature data, we need to make some minor adjustments to the script.bin file, which is a binary configuration file used by Allwinner SOC.
      sudo apt-get install git
      git clone https://github.com/linux-sunxi/sunxi-tools
      cd sunxi-tools
      make
      
      #location of the script.bin file
      cd /boot/bananapi/
      
      #get the fex file
      sudo /home/bananapi/sunxi-tools/bin2fex script.bin bananapi.fex
      
      #edit the fex file
      sudo nano bananapi.fex
      
      #add the following at the end, save (CTRL + O) and close
      [w1_para]
      gpio = 4
      
      #.fex back to .bin
      sudo /home/bananapi/sunxi-tools/fex2bin bananapi.fex script.bin
      
      sudo reboot

      Reading raw data from the sensor

      After successfully rebooting your device, you will notice that /sys/bus/w1/devices is no longer empty.
      bananapi@lemaker ~ $ cd /sys/bus/w1/devices
      bananapi@lemaker /sys/bus/w1/devices $ ls
      28-000006203041  w1_bus_master1
      bananapi@lemaker /sys/bus/w1/devices $ cd 28-000006203041
      bananapi@lemaker /sys/bus/w1/devices/28-000006203041 $ ls
      driver  id  name  power  subsystem  uevent  w1_slave
      bananapi@lemaker /sys/bus/w1/devices/28-000006203041 $ cat w1_slave
      5e 01 4b 46 7f ff 02 10 8d : crc=8d YES
      5e 01 4b 46 7f ff 02 10 8d t=21875
      t=21875 is the number we are looking for. E.g.: 21.9 degree Celsius (°C) in my case.

      Banana Pi Temperature Sensor (DS18B20)
      my setup

      Comments

      1. This comment has been removed by the author.

        ReplyDelete
      2. Hi, nice tutorial! What distribution were you running?

        ReplyDelete
      3. Thnx you saved my life. I just got one sensor working with my banana pi after 24h of tring everything.

        ReplyDelete
      4. Hi, i have a bananapro with lubuntu. i made the software update above. The make instruction is ok but there is no root/bananapi directory and no script.bin. What is the reason.?

        ReplyDelete
      5. Same problem like Josef. Banana Pi running Bananian: /boot/ is empty

        ReplyDelete
        Replies
        1. try raspbian

          http://www.lemaker.org/resources/9-38/image_files.html

          Delete
        2. /boot is not empty, but /boot is not mounted. Try to enter:
          mount /dev/mmcblk0p1 /boot

          Delete
      6. sunxi-tools does not install jessie 15.08
        install fail

        ReplyDelete
      7. This comment has been removed by the author.

        ReplyDelete
      8. Hi
        I have problem with compilation.

        root@openmediavault:/sunxi-tools# make
        bash: make: command not found

        Any ideas how to make it?

        ReplyDelete
        Replies
        1. you need install:
          #apt-get install build-essential

          Delete
      9. Hi Mike, thanks for the tutorial!

        I found "script.bin" in "/boot" directly, there was no "/boot/bananapi". (running Raspbian GNU/Linux 7 (wheezy)) I copied the modified version of script.bin to both positions for good measure. (tried only overwriting the old file, without succes)
        After following the instructions, I only found "w1_bus_master1" in "/sys/bus/w1/devices".
        The temperature sensor worked without problem when I had it connected to an Arduino.
        I don't see any error message or other clue.
        Do you have an idea what more I could try?

        Thanks in advance!
        Roel

        ReplyDelete

      Post a Comment

      Popular posts from this blog

      OsmocomBB - Hardware and Software Setup - Tutorial (Motorola C118)

      OsmocomBB is an Open Source GSM Baseband software implementation. By using the sofware on a compatible phone (e.g. Motorola C118), you are able to make and receive phone calls, send and receive SMS, etc. based on Free Software only.       Hardware PL2303HX USB Serial To RS232 TTL Chip 2.5 mm audio jack Motorola C118 (E88) This is a typical pin-out of a 2.5 mm audio jack: L (Left Signal) Tip 1 Green R (Right Signal) Ring 2 Red GND (Ground) Sleeve 3 Bare Copper You need to soldier the 2.5mm audio jack to the USB Serial To RS232 TTL Chip, whereas TxD is at the tip of the plug RxD is at the middle contact GND is the outer contact  Software Connect the phone to your PC and check if it is being recognized. dmesg | grep tty user@user:~$ dmesg | grep tty [    0.000000] console [tty0] enabled [ 6522.143379] usb 3-2: pl2303 converter now attached to ttyUSB0 To make sure everything is working, install cu and c

      Scid vs PC installation guide - Ubuntu (Mint, Debian etc.)

      Scid vs PC Scid vs PC is definitely the best and most comprehensive chess software for Linux.  Unfortunately I struggled quite a bit to get it up and running. Before I start: You might prefer to watch the video. Otherwise keep on reading. Open a terminal and execute the following commands sudo apt-get install auto-apt build-essential sudo auto-apt update-local sudo auto-apt update sudo auto-apt updatedb Now make sure you got both tcl8.5-dev and tk8.5-dev installed sudo apt-get install tcl8.5-dev tcl8.5 sudo apt-get install tk8.5-dev tk8.5 Some users are reporting problems on Ubuntu 14.04. sudo apt-get install tcl8.6-dev tcl8.6 sudo apt-get install tk8.6-dev tk8.6 libgcj15-dev The 'x' refers to the current release: e.g. 4.9.tgz download scid vs pc: http://sourceforge.net/projects/scidvspc/files/source/scid_vs_pc-4.9.tgz/download tar -xzf scid_vs_pc-4.xx.tgz cd scid_vs_pc-4.x sudo auto-apt run ./configure sudo auto-apt run make sudo auto-apt run make install

      Automatically Reconnect WIFI (Debian, Ubuntu etc.)

      The Problem For several reason I do not have access to LAN and thus have to rely on WIFI for my mining rigs. It is fine for most of the time, but the shit hits the fan, when the connection drops for one reason or another. The Solution #!/bin/bash wlan=`/sbin/ifconfig wlan1 | grep inet\ addr | wc -l` if [ $wlan -eq 0 ]; then service network-manager restart else echo WIFI IS UP fi Note: It's either wlan0 or wlan1. Check with sudo ifconfig . Save the script and make it executable. sudo chmod +x filename.sh Now there are several ways of making sure that our script is being executed every x minutes. The easiest way of accomplishing that I think is by using the command watch . sudo su watch -n 600 sh filename.sh What it does is execute our filename.sh script every 600 seconds. Or you implement a so called cron job   sudo crontab -e Add the following PATH=/usr/sbin:/usr/bin:/sbin:/bin */5 * * * * sh /home/username/filename.sh */5 * * * * means that