1102 Commits

Author SHA1 Message Date
Noel Eck
05ca452831 python: Removed exact from find_package
Failing on exact match for minor version.  Reverting back to
non-exact match.

Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-06-24 23:01:25 -07:00
Noel Eck
19b0b0c2f1 python: Fixes for building python modules
Moved src include AFTER setter for PYTHONBUILD_VERSION.  In this way,
the src CMakeLists has a valid PYTHONBUILD_VERSION str.
Call find_package on PythonInterp prior to finding the libs (recommended).

Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-06-24 17:11:28 -07:00
Akira Tsukamoto
9a74a3b4f5 LCD:jhd1313m1:HD44780 Setting number of rows and font size
Signed-off-by: Akira Tsukamoto <akira.tsukamoto@linaro.org>
Signed-off-by: Abhishek Malik <abhishek.malik@intel.com>
2016-06-17 14:24:36 -07:00
Akira Tsukamoto
25c0f8ebb1 LCD:jhd1313m1:HD44780 Adding workaround of errata on init
HD44780 fails to initialize unsuccessfully without the workaround.

Adding workaround based on HD77480 datasheet for initialization
and software reset.

Signed-off-by: Akira Tsukamoto <akira.tsukamoto@linaro.org>
Signed-off-by: Abhishek Malik <abhishek.malik@intel.com>
2016-06-17 14:23:53 -07:00
Jon Trulson
33e2c03b48 tb7300: Initial implementation
This module implements support for the Honeywell TB7300 Communicating
Fan Coil Thermostat.  It may also support the TB7200, though only the
TB7300 was available for development of this driver.

The TB7200 Series PI thermostats are designed for zoning applications,
and the TB7300 Series PI thermostats are designed for fan coil
control. Both Series are communicating thermostats with models
available in BACnet® MS/TP protocol and can be easily integrated into
a WEBs-AX building automation system based on the NiagaraAX® platform.

TB7200 and TB7300 Series thermostats are compatible with the Honeywell
Occupancy Sensor Cover. Thermostats equipped with an occupancy sensor
cover provide advanced active occupancy logic, which will
automatically switch occupancy levels from Occupied to Stand-By and
Unoccupied as required by local activity being present or not. This
advanced occupancy functionality provides advantageous energy savings
during occupied hours without sacrificing occupant comfort. All
thermostats can be ordered with or without a factory installed PIR
cover.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
2016-06-14 17:12:32 -06:00
Jon Trulson
3c5d498ae5 t8100: Initial implementation
This module implements support for the Amphenol Telaire Ventostat
T8100 Ventilation Controller with BACnet interface.  It may also
support the T8200 and T8300 models, but they have not been tested.

The Telaire Ventostat T8100 reports Temperature, Humidity and CO2
concentrations.  It supports an optional relay with a settable trigger
point.  The unit this driver was tested under did not support the
optional relay.  The temperature range supported is 0-50C, humidity is
0-100% non-condensing, and CO2 range is appoximately 0-2000 PPM for
the T8100.  Other sensors in this family support wider ranges.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
2016-06-14 17:04:17 -06:00
Jon Trulson
93fea877e3 e50hx: use the new bacnetutil class
This commit removes functionality that is now present in the
bacnetutil class.  This simplifies the driver considerably.  The
examples were modified to reflect the renaming of some utility
functions in bacnetutil.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
2016-06-14 17:00:00 -06:00
Jon Trulson
b7f038de3d bacnetmstp: add new bacnetutil class to bacnetmstp UPM library
There is some functionality that will always be needed for BACnet
drivers.  Here we create a new bacnetutil class, built as part of the
bacnetmstp library that can handle much of the data handling and setup
a BACnet driver will need.

The idea is that any BACnet functionality needed, that is not
device-specific, should be added to this class for all drivers to use.

The intent is that all BACnet drivers will inherit from this class.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
2016-06-14 16:53:17 -06:00
Jon Trulson
f03696b7a5 bacnetmstp: Add array support and the ability to create BACnet enums
This reworks the data handling portion of bacnetmstp.  Instead of just
handling a single data element returned from a device, we can handle
more, as in the case of BACnet arrays.

Added the ability to create BACnet enum data elements.  This is needed
in order to set binary value objects.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
2016-06-14 16:53:17 -06:00
Jon Trulson
8fb7907a4e bmx055, bmi055, bmc160, bma250e, bmg150, bmm150: Initial implementation
This module (bmx055) implements support for the following core Bosch
chipsets:

bma250e - accelerometer, 3 variants (chip id's 0x03, 0xf9, and 0xfa)
bmm150 - magnetometer
bmg160 - gyroscope

The other 3 devices are combinations of the above:

bmx055 - accel/gyro/mag
bmc160 - accel/mag
bmi055 - accel/gyro

...for 6 devices total.

For the combination devices, all of the sub-devices appear as
individual independent devices on the I2C/SPI bus.

The combination drivers provide basic configuration and data output.
For more detailed control as well as interrupt support, you should use
the core device drivers (accel/gyro/mag) directly.

These devices support both I2C and SPI communications.  They must be
powered at 3.3vdc.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
2016-06-14 16:40:21 -06:00
Mihai Tudor Panu
fd707242a9 node: bumped dependency for node modules to v4.4.x
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-05-13 17:24:19 -07:00
Noel Eck
a5e3cc89f3 cmake: Change from search to check for TPV modules.
Switch the calls from pkg_search_module to pkg_check_modules
for ozw, bacnet, and modbus.  Check prints out the version when
found.

Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-12 16:24:40 -07:00
Mihai Tudor Panu
1eafab7932 lsm9ds0: added constructor option to allow raw i2c bus init
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-05-12 14:01:45 -07:00
Mihai Tudor Panu
de986764d4 lcm1602: added backlight control and default bus/address for I2C variants
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-05-12 13:48:06 -07:00
Mihai Tudor Panu
72b975b6cc vcap: conditionally add target based on findJPEG result
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-05-11 15:50:56 -07:00
Mihai Tudor Panu
f850f5b7d8 buzzer: updated delay values for notes to match listed frequencies
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-05-11 14:09:53 -07:00
Abhishek Malik
8e8b35273b SWIG: Added uint8array typemap for zfm20 driver
Signed-off-by: Abhishek Malik <abhishek.malik@intel.com>
2016-05-09 22:35:13 -07:00
Charles Allen
dbb4f1749d [ST7735] Free pointers from spi.write
Docs for MRAA say ` The pointer return has to be free'd by the caller`

Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 17:43:48 -07:00
Brendan Le Foll
05730dba68 cmake: add dependency on mraa v1.0.0
Merged conflict in grove.cxx GroveTemp::value where new
scale factor was added.  Changed to apply scale factor
post error-check.

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 17:31:38 -07:00
Brendan Le Foll
48d5426350 i2c: use mraa 1.0 types for i2c sensors
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 17:13:36 -07:00
Brendan Le Foll
e51c5f3018 This is a combination of 2 commits.
aio: mraa_aio_read (v1.0.0) can now return -1, treat that in sensors using it

Adds alot of exceptions if the aio read goes wrong

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 17:13:35 -07:00
Noel Eck
f6816797bb bmp280: CMakeLists header variable name.
Missed one instance of module_h for the recent bmp changes.

Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 16:47:32 -07:00
Lay, Kuan Loon
cc5e3b2634 L3GD20: Enable L3GD20 3-axis digital gyroscope library and example
L3GD20 is tri-axis gyroscope from STMicroelectronics.
This sensor can measure angular velocity in degree per second.

The library provided is libupm-l3gd20.so.0.4.0.
The example provided is l3gd20-example where it will print x,y,z axis when
trigger buffer data is ready.

This sensor requires calibration to be done for 2 seconds. Please place the
sensor on level surface.

As the sensor data is noisy, we have implemented denoise algorithm within the
sensor library.

Signed-off-by: Lay, Kuan Loon <kuan.loon.lay@intel.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 16:34:26 -07:00
Lay, Kuan Loon
c3285ea523 kxcjk1013: code cleanup and update sensor description
Code cleanup and proper close iio device in destructor.

KXCJK-1013 is tri-axis accelerometer from Kionix.
This sensor can measure acceleration in metre per second squared or in
G-forces.

The library provided is libupm-kxcjk1013.so.0.4.0.
The example provided is kxcjk1013-example where it will print x,y,z axis when
trigger buffer data is ready.

Signed-off-by: Lay, Kuan Loon <kuan.loon.lay@intel.com>
2016-05-09 16:32:05 -07:00
Jon Trulson
456bde0726 bno055: Initial implementation
This driver implements support for the Bosch BNO055 Absolute
Orientation 9DOF Fusion Hub.   It was implemented on the Adafruit
variant at https://www.adafruit.com/products/2472.

The BNO055 is a System in Package (SiP), integrating a triaxial 14-bit
accelerometer, a triaxial 16-bit gyroscope with a range of ±2000
degrees per second, a triaxial geomagnetic sensor and a 32-bit cortex
M0+ microcontroller running Bosch Sensortec sensor fusion software, in
a single package.

This sensor handles the hard problem of combining various sensor
information into a reliable measurement of sensor orientation (refered
to as 'sensor fusion').  The onboard MCU runs this software and can
provide fusion output in the form of Euler Angles, Quaternions, Linear
Acceleration, and Gravity Vectors in 3 axes.

The focus on this driver has been on supporting the fusion components.
Less support is available for use of this device as a generic
accelerometer, gyroscope and magnetometer, however enough
infrastructure is available to add any missing functionality.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 13:33:11 -07:00
Jon Trulson
d045dded7c java: add mraa to the java swig link line so mraa symbols can be found
Previously in MRAA, the libmraa library was statically linked into the
libmraajava library.  This was changed recently in MRAA, causing most
java examples to fail due to missing mraa symbols.  This patch
specifically adds libmraa to the link in addition to libmraajava.

In addition, use *_LIBRARIES in the java specific swig_link_libraries
call rather than *_LDFLAGS.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 13:24:53 -07:00
Jon Trulson
89d5ce152f adafruitms1438: remove extraneous libraries from swig_link_libraries() calls
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 13:24:52 -07:00
Jon Trulson
dbbb30c3d2 vcap: remove extraneous libraries from swig_link_libraries() calls
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 13:24:52 -07:00
Jon Trulson
8df446958a ozw: remove extraneous libraries from swig_link_libraries() calls
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 13:24:52 -07:00
Jon Trulson
411b4abcb7 e50hx: remove extraneous libraries from swig_link_libraries() calls
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 13:24:52 -07:00
Jon Trulson
7d64a67670 bacnetmstp: remove extraneous libraries from swig_link_libraries() calls
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 13:24:52 -07:00
Jon Trulson
6b0a9c5272 hwxpxx: remove extraneous libraries from swig_link_libraries() calls
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 13:24:52 -07:00
Jon Trulson
12e1e6309e t3311: remove extraneous libraries from swig_link_libraries() calls
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 13:24:51 -07:00
Jon Trulson
c833c75cd3 h803x: remove extraneous libraries from swig_link_libraries() calls
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 13:24:51 -07:00
Jon Trulson
6241e20dda bmp280, bme280: Initial implementation
This library adds support for both the BMP280 and BME280 sesnors from
Bosch.  The BME is virtually identical to the BMP280 aside from some
slight register changes and adding support for a humidity sensor.

The BMP280 is an absolute barometric pressure sensor especially
designed for mobile applications. The sensor module is housed in an
extremely compact 8-pin metal-lid LGA package with a footprint of only
2.0 × 2.5 mm2 and 0.95 mm package height. Its small dimensions and its
low power consumption of 2.7 μA @1Hz allow the implementation in
battery driven devices such as mobile phones, GPS modules or watches.

The BME280 is as combined digital humidity, pressure and temperature
sensor based on proven sensing principles. The sensor module is housed
in an extremely compact metal-lid LGA package with a footprint of only
2.5 × 2.5 mm2 with a height of 0.93 mm. Its small dimensions and its
low power consumption allow the implementation in battery driven
devices such as handsets, GPS modules or watches. The BME280 is
register and performance compatible to the Bosch Sensortec BMP280
digital pressure sensor

These drivers support both I2C and SPI operation.

When using SPI on an Edison with the arduino breakout board, you
must specify a CS of -1 to the constructor, and connect the chip's
CS pin to arduino pin 10.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 13:16:30 -07:00
Jon Trulson
84144d0c8f bosch bme280: Remove old driver in favor of new driver to be added soon
This driver, based on bosch code is being removed in favor of a new
driver to be added soon that is more fully functional and includes SPI
support.

The new driver will be included along with a BMP280 implementation in
a new bmp280 library.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 13:16:30 -07:00
Jon Trulson
dd2bca97b9 bmp180/bmpx0x: Remove old bmp180 driver
This commit removes the old bmp180 driver that was erroneously
re-added when the interface examples and headers were introduced.

It then switches the users of bmp180 to the existing bmpx8x driver,
which already supports the bmp180.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-09 13:13:42 -07:00
Mihai Tudor Panu
61f7803d92 grovetemp: added a scaling factor to allow adjusting ADC values
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-05-06 14:15:10 -07:00
Lay, Kuan Loon
e3b59eb05b apds9930: proper close iio device in destructor and update sensor description
Proper close iio device in destructor.

APDS-9930 is light and proximity sensor from Avago Technologies.
This sensor can measure ambient light in lux and proximity distance in 100mm.

The library provided is libupm-apds9930.so.0.4.0.
The example provided is apds9930-example where this app will print the value of
ambient light and proximity in every 1 second.

Signed-off-by: Lay, Kuan Loon <kuan.loon.lay@intel.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-05 11:37:56 -07:00
Lay, Kuan Loon
398d50de2e kxcjk1013: code cleanup and update sensor description
Code cleanup and proper close iio device in destructor.

KXCJK-1013 is tri-axis accelerometer from Kionix.
This sensor can measure acceleration in metre per second squared or in
G-forces.

The library provided is libupm-kxcjk1013.so.0.4.0.
The example provided is kxcjk1013-example where it will print x,y,z axis when
trigger buffer data is ready.

Signed-off-by: Lay, Kuan Loon <kuan.loon.lay@intel.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-05 11:06:36 -07:00
Noel Eck
5467620bf7 cpp_headers: Rename ds18b20 header .h -> .hpp
Renamed header file, updated header filename in interface files,
sources, and CMakeLists file.

Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-02 16:05:20 -07:00
Jon Trulson
e679d40d44 ds18b20: Initial implementation
This driver supports, and was tested with, a DS18B20 1-wire
Temperature Sensor using external power.

This device requires the use of a UART to provide access to a Dallas
1-wire bus, via a new facility supported by MRAA (once the relevant PR
is accepted), using the UartOW access class.  It is important to
realize that the UART is only being used to access and control a
Dallas 1-wire compliant bus, it is not actually a UART device.

Multiple DS18B20 devices can be connected to this bus.  This module
will identify all such devices connected, and allow you to access them
using an index starting at 0.

Parasitic power is not currently supported due to the very tight 10us
limit on switching a GPIO properly to supply power during certain
operations.  For this reason, you should use external power for your
sensors.

Setting the alarm values (Tl, Th) is also not supported, since this is
only useful when doing a 1-wire device search looking for devices in
an alarm state, a capability not yet supported in MRAA.  In reality,
this is trivial to handle yourself in your application.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-05-02 16:04:56 -07:00
Noel Eck
bf9059c846 cpp_headers: Rename ds2413 header .h -> .hpp
Renamed header file, updated header filename in interface files,
sources, and CmakeLists file.

Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-04-29 16:46:03 -07:00
Jon Trulson
e1bda1f44b ds2413: Initial implementation
This adds initial support for the DS2413 Dual Channel Addressable
Switch.  This is a Dallas Semiconductor 1-wire compliant device
providing access to 2 open-drain GPIOs.

https://learn.adafruit.com/adafruit-1-wire-gpio-breakout-ds2413/overview

This driver requires One-Wire over UART support in MRAA (PR #415)
which is not yet merged.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
2016-04-29 16:37:30 -07:00
Noel Eck
922e0cc26b cpp_headers: Renamed C++ headers from .h -> .hpp
To make room for UPM C and C++ sensor code to coexist, all UPM
C++ headers have been renamed from h -> hpp.  This commit contains
updates to documentation, includes, cmake collateral, examples, and
swig interface files.

    * Renamed all cxx/cpp header files which contain the string
    'copyright intel' from .h -> .hpp (if not already hpp).

    * Replaced all references to .h with .hpp in documentation,
    source files, cmake collateral, example code, and swig interface
    files.

    * Replaced cmake variable module_h with module_hpp.

    * Intentionally left upm.h since this file currently does not
    contain code (documentation only).

Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-04-28 14:00:54 -07:00
Jon Trulson
b3a8fd7172 eboled: change write_word to writeWord for MRAA 1.0 API change.
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-04-28 13:17:20 -07:00
Mihai Tudor Panu
4455c81866 mic: fixed web link
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-04-25 10:54:16 -07:00
Jon Trulson
4f6be750c7 vcap: Initial implementation
This UPM module captures a still frame from a Linux V4L device, such
as a USB webcam, and and then allows you to save it as a JPEG image
into a file.

The camera and driver in use must support streaming, mmap-able buffers
and must provide data in YUYV format.  This should encompass most
video cameras out there.  It has been tested with a few off the shelf
USB cameras without any problems.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-04-19 15:38:48 -07:00
Jon Trulson
96f1afffe3 e50hx: remove add_dependency() call from CMakeLists.txt
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-04-15 10:00:38 -07:00
Jon Trulson
899d873cbc e50hx: Initial implementation
This driver requires the UPM BACNETMSTP driver (PR #385) to be merged
first.

This module implements support for the Veris E50H2 and E50H5
BACnet Energy Meters.

From the datasheet: The E50H5 BACnet MS/TP DIN Rail Meter with
Data Logging combines exceptional performance and easy
installation to deliver a cost-effective solution for power
monitoring applications. Native serial communication via BACnet
MS/TP provides complete accessibility of all measurements to your
Building Automation System. The data logging capability protects
data in the event of a power failure. The E50H5 can be easily
installed on standard DIN rail, surface mounted or contained in
an optional NEMA 4 enclosure, as needed. The front-panel LCD
display makes device installation and setup easy and provides
local access to the full set of detailed measurements.

This module was developed using the upm::BACNETMSTP module, based
on libbacnet-stack 0.8.3.  Both libbacnet 0.8.3 and the
upm::BACNETMSTP libraries must be present in order to build this
module.  This driver was developed on the E50H5.  The Trend Log
functionality is not currently supported.

The Binary Input Objects are also not supported as these are only
used for the Alarm bits which are already available from Analog
Input Object 52 as an alarm bitfield incorporating all of the
supported alarm indicators.

It was connected using an RS232->RS485 interface.  You cannot use
the built in MCU TTL UART pins for accessing this device -- you
must use a full Serial RS232->RS485 or USB-RS485 interface
connected via USB.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-04-15 10:00:04 -07:00