Jan 242016


Interfacing Temperature and Humidity Sensor (DHT11) With Raspberry Pi

interfacing DHT11 with raspberry pi

DHT11 is a 4 pin sensor which can measure temperatures ranging from 0-50°C & relative humidity ranging from 20-95%.The sensor uses its own proprietary 1-wire protocol to communicate with Raspberry Pi and runs from 3.3V-5V. The timings must be precise and according to the datasheet of the sensor.

 Posted by at 5:46 pm
Jan 202016

BBB – Building a DAC

Posted by shabaz in BeagleBone Black on Jul 6, 2013 11:12:13 PM

Part 2 to this post, which implements the prototype, can be found by clicking here.

Part 3 implements a complete design in an enclosure for a Sonos-like solution.


The BBB has an on-board I2S interface, which makes interfacing an external DAC easy. The I2S interface is connected from the AM3359 processor to the HDMI chip (TDA19988) but it is not required for HDMI to be used in order to make use of the I2S interface. The I2S interface is brought out to some pins on port P9 (see here for details). It was encouraging that Technoshaman and Donald Miller had some success with the interface, so I wanted to try it out and I got some time today.


Since the interface is capable of 24-bit/192kHz audio, it was worthwhile picking a nice DAC. A good but not over-the-top device seemed to be the Texas Instrument’s PCM5101 which is nice because it has reasonable specs and also provides a built-in charge pump so that it can function from a single supply. A headphone amp was connected, and this was ON Semi’s NCP2811A. The combination of PCM5101 (actually my prototype used PCM5101A which can also function from 1.8V, but this was not needed)  and NCP2811A was chosen so that the entire circuit could operate from the BBB supply if desired, even if it was from a Li-Ion battery that was powering the BBB, and for low noise and distortion. The only problem is that the PCM5101 has quite a high output (clearly a good thing!) but the audio amp minimum recommended gain is 1 and it cannot meet the required output voltage, and it means that it will distort at high volume. So, at a lower volume (and lower SNR) it will be fine, and I prefer this particular amp because of the very low distortion. The ON semi datasheet was sparse though.












 Posted by at 8:35 am
Jan 132016


The case is made of soft silicon with a rubberized feel and it is entirely closed so that it’s waterproof. I more-or-less had to destroy the enclosure to extract the PCB from it, which also means that changing the batteries—at least on the models in the preview kit—isn’t going to be possible. However it does mean that you can install it outdoors, which is a big plus point for some use cases.

The Estimote Beacon is built around a Nordic Semiconductor nRF51822.

The Estimote Beacon is built around a Nordic Semiconductor nRF51822. You can also see the on-board antenna for the Bluetooth LE radio to the right of the picture.

The Estimote is built around the Nordic Semiconductor nRF51822, which explains theirpresence on the Nordic booth at CES. It’s a nice chip, basically a 32-bit ARM Cortex M0 CPU with 256KB of flash and 16KB of RAM with a built-in 2.4GHz radio supporting both Bluetooth LE as well as 2.4GHz operation—where the 2.4GHz mode is on air compatible with thenRF24L series products from Nordic.

What does the Estimote Beacon advertise?

Using Sandeep‘s noble package for node.js we can look at what’s advertised by one of the beacons, using the advertisement discovery script included with the package.

An Estimote beacon—picked at random from our developer preview kit—with a Bluetooth Address of E7:44:89:31:ED:4E advertises a local name of “Estimote”, along with some service and manufacturer data. However it doesn’t seem to be advertise any service UUIDs.

Taking a closer look at the manufacture data then, the data advertised by the beacon was,

4C00 02 15 B9407F30F5F8466EAFF925556B57FE6D ED4E 8931 B6

Breaking this down,

  • First two bytes are the Apple Company Identifier (Little Endian) 0x0042.
  • The third byte—at least most likely—specifies the data type, which is 2.
  • The fourth byte specifies the remaining data length, 21 bytes.
  • Estimote Beacons have a fixed iBeacon UUID of B9407F30-F5F8-466E-AFF9-25556B57FE6D.
  • The next two bytes after the iBeacon UUID are the iBeacon Major (Big Endian), i.e. 0xED4E, 60750.
  • The next two bytes after the iBeacon Major are the iBeacon Minor (Big Endian), i.e. 0x8931, 35121.
  • The final byte is the measured RSSI at 1 meter away, i.e. 0xB6, -74.

Effectively the Estimote isn’t doing anything special here, this is just standard iBeacon data. Three of the properties create the beacon’s identity. These are:

  • UUID — This is a property which is unique to each company, n most use cases the same UUID would be given to all beacons deployed by a company (or group). Estimote is unusual in that they’ve fixed the UUID for all “their” beacons to be the same.
  • Major — The property that you use to specify a related set of beacons, e.g. all the beacons in one store would share the same Major value.
  • Minor — The property that you useto specify a particular beacon in a location.

We need to look at the service data advertised by the beacon,

0A18 4EED318944E7 B6 4EED 3189

to see anything Estimote specific,

  • The first two bytes specify this service data is for a service with UUID 0x180A.
  • The next 6 bytes are the Bluetooth Address but in reverse order, E7:44:89:31:ED:4E.
  • The next byte, 0xB6 matches the measured RSSI at 1 m away.
  • The next 2 bytes, match the iBeacon Major but this time it’s Little Endian.
  • The final 2 bytes, match the iBeacon Minor again in Little Endian format.

According to the Bluetooth core specification service data must be prefixed with the 16-bit UUID of the service the data is for—and here for the Estimote—the service data is for for a service with UUID of 0x180a, which is interesting because as we’ll see later when we look at the GATT, that service doesn’t exist on the device.

 Posted by at 6:01 am
Jan 092016



Serial Port Temperature Sensors – USB Hardware Interface


USB-serial adapter

This page describes the electronic circuitry required to interface to the temperature sensors via a USB connection.

Serial Port Temperature Sensors – USB Hardware Interface

To use the PL2303TA USB-serial adapter with temperature sensors in parasitic mode, connect one or more DS18S20 temperature sensors as follows:

  • red: un-used
  • white: un-used
  • black: connect to GND and VDD pins of temperature sensor
  • green: connect to DQ pin of temperature sensor


connecting a DS18S20 temperature sensor to a PL2303TA USB-serial adapter in parasitic mode

connecting a DS18S20 temperature sensor to a PL2303TA USB-serial adapter in parasitic mode

 Posted by at 1:43 pm
Jan 092016


Discrete Semiconductor Kit Identification Guide a learn.sparkfun.com tutorial

Available online at: http://sfe.io/t423


Let’s start with a couple of definitions.

1. Separate; distinct; individual; non-continuous.
2. That can be perceived individually and not as connected to, or part of something else.
3. (electrical engineering) Having separate electronic components, such as individual resistors and inductors — the opposite of integrated circuitry.
1. Respectful of privacy or secrecy; quiet; diplomatic.
2. Not drawing attention, anger or challenge; inconspicuous.

Usage notes
Do not confuse with discrete.

Courtesy Wiktionary.org

 Posted by at 1:09 pm
Jan 092016



Parallel Port Programmer

Instructions for building a parallel port programmer for the Arduino board (or any other Atmega8 chip). Allows you to program the board on Windows without any additional equipment. Cheap and fun. (Please note, however, that this doesn’t allow for communication between the computer and programs running on the board. You’ll need a serial cable for that.)

 Posted by at 12:56 pm
Jan 092016



export JAVACMD=/opt/jdk1.8.0_65/bin/java


Teaching optics with a Raspberry Pi

Posted by organtin in Raspberry Pi on Oct 6, 2015 3:44:37 PM

Raspberry Pi is a great tool for teaching. Its affordable price makes it appealing for students and teachers that can make interesting “experiments” without spending a fortune.


The understanding of optics requires lot of geometry, but equations are deeply understood only by a small number of students. Drawings may help, but making them requires some ability and precision. Needless to say, in most cases, the result is static and, in order to understand what happens in different conditions, require to realise many drawings.


A very interesting alternative is using an application called GeoGebra that can be downloaded for free from the Internet. Interesting enough, GeoGebra runs on Raspberry Pi. Every student, then, can do his/her own experiment with optics using GeoGebra. See this post to learn how to install it (quite simple, in fact; the only tricky part being installing the Java virtual machine). In short, download the arm version of the Java VM fromhttp://jdk8.java.net/fxarmpreview/index.html, then issue the following commands in a terminal


sudo apt-get update
sudo apt-get install geogebra
sudo apt-get install geogebra-gnome
mkdir -p /opt 
sudo tar zxvf (name of package) -C /opt 
rm (name of package) 
sudo /opt/jdk1.8.0/bin/java -version
export JAVACMD=/opt/jdk1.8.0/bin/java
 Posted by at 12:53 pm
Jan 072016
 Posted by at 2:49 pm