1873 Commits

Author SHA1 Message Date
Mihai Tudor Panu
372d3e980f docs: added MPL3115A2 to list of known limitations
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-30 16:01:58 -07:00
Mihai Tudor Panu
dd014c718f si7005: fixed sensor description and added example link
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-30 15:54:28 -07:00
Mihai Tudor Panu
5304192813 jhd1313m1: added backlight control functions
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-30 15:16:07 -07:00
Mihai Tudor Panu
8d524b8744 docs: updated build documentation with dependencies and added Travis build status
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-30 12:44:30 -07:00
Mihai Tudor Panu
deff852839 docs: updated list of known limitations
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-26 17:03:17 -07:00
Mihai Tudor Panu
2d2ee8d1f0 apa102: added extra functionality
Exposed call to MRAA SPI frequency for those super long strips where the clock signal will degrade and introduce glitches. Slowing down will fix it without the need for extra filtering or redrivers. Batch mode also helps since only one write per frame will be required.

Added functions that control brightness only for fade effects without the need to keep an extra copy of the pixel color map.

Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-25 17:33:41 -07:00
Mihai Tudor Panu
9a83bb7530 ads1x15: changed error types to runtime errors on failed i2c ops
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-23 10:41:14 -07:00
Mihai Tudor Panu
2b642ab7a4 ssd1306: failed i2c frequency change should be non-fatal for this device
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-23 10:40:59 -07:00
Mihai Tudor Panu
bde7259ee8 mcp9808: failed i2c frequency change should be non-fatal for this device
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-23 10:40:45 -07:00
Jon Trulson
dc93fb11ff otp538u: some fixes to get working on the Arduino 101 with Firmata
There are some issues using this device on the 101 with Firmata:

1. You cannot use any other ADC resolution than 1024.  By default the
driver would try to set 12b resolution for improved accuracy.  Doing
this on the 101 yielded nonsensical readings causing the driver to
fail.  Using 10b resolution will yield less accuracy, but at least the
driver will function.

2. After the first ADC read, and for some time period after, the MRAA
aio_read() calls will always return 0.  This would cause an exception
to be thrown by the driver since this is an invalid reading.  Now, we
do an analog read on each channel and sleep for .5 seconds in the ctor
to get around this problem.  It is a hack and should be properly fixed
somewhere else (firmata?  MRAA?).

Some code was reworked/renamed to make it more clear what is actually
going on.  In addition a setDebug() method was added to enable some
debugging output.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
2016-08-16 11:22:43 -06:00
Mihai Tudor Panu
19d1af6a48 ads1x15: failed i2c frequency change should be non-fatal for this device
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-12 11:59:47 -07:00
Jon Trulson
e689dc175c l3gd20: add l3gd20h chipid to ctor check as well
Signed-off-by: Jon Trulson <jtrulson@ics.com>
2016-08-10 13:01:33 -06:00
Jon Trulson
06ecae7212 l3gd20: Add support for I2C connections
The existing driver only supported IIO.  This change adds support for
controlling the device via an I2C connection. In addition, there is a
new C++ example for it (l3gd20-i2c.cxx).

Note: Only basic functionality is supported, though a full register
map and access functions are available to fill in any desired
functionality.

Note, that some methods are only usable with specific connection
types.  See the documentation.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
2016-08-09 16:03:42 -06:00
Mihai Tudor Panu
4faa71d239 upm: v0.7.3
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
v0.7.3
2016-08-04 17:19:04 -07:00
Mihai Tudor Panu
5265bada9c ms5611: description and some doxygen tags updated
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-04 17:12:45 -07:00
Henry Bruce
84067826eb upm.h: Added manufacturwer entry for Measurement Specialties
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-04 17:12:28 -07:00
Henry Bruce
98e3621c93 ms5611: Initial implementation
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-04 17:12:10 -07:00
Mihai Tudor Panu
d79799bab9 docs: updated doxygen tags for some sensors
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-04 17:11:52 -07:00
Jon Trulson
49e04593d8 build: remove unnecessary BUILDSWIG option
Signed-off-by: Jon Trulson <jtrulson@ics.com>
2016-08-03 11:54:36 -06:00
Mihai Tudor Panu
bda66a3d06 grovetemp: updated conversion formula for v1.2 compatibility
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-02 10:16:46 -07:00
Mihai Tudor Panu
84a77730be examples: updated module names for some C++ examples
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-01 18:33:00 -07:00
Mihai Tudor Panu
b08fc8d48d grove: split code base for grove sensors into individual files
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-08-01 18:25:36 -07:00
Lay, Kuan Loon
e64f192fb7 apds9930: enable sensor before read out sensor data
Changes in library:
- enableProximity() function is to enable or disable proximity sensor
- enableIlluminance() function is to enable or disable illuminance sensor
- run clang-format

Changes in example:
- proximity and illuminance kernel IIO-based driver init state is power off,
  require enable before read out sensor data. Sleep time is needed after
  enable, the sleep time may vary on different platform.
- run clang-format

Signed-off-by: Lay, Kuan Loon <kuan.loon.lay@intel.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-07-22 16:30:25 -07:00
deadprogram
40fe6654eb ublox6: Add most popular baud rates to GPS enums
Signed-off-by: deadprogram <ron@hybridgroup.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-07-22 15:33:05 -07:00
Mihai Tudor Panu
e740335701 travis.yml: force install of swig3.0 even if not authenticated
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-07-19 15:17:57 -07:00
Mihai Tudor Panu
b257d91702 mpr121: fixed default value for filter configuration register
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-07-19 10:08:52 -07:00
Mihai Tudor Panu
e7394217b1 mlx90614: set i2c bus speed to 100 kHz on init to match sensor specs
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-07-14 14:41:03 -07:00
Jon Trulson
baec9966f0 spelling: correct many misspellings of celsius
Signed-off-by: Jon Trulson <jtrulson@ics.com>
2016-07-12 17:42:01 -06:00
Jon Trulson
0fb56356fb bmx055: fix up some issues reported by static analysis
Signed-off-by: Jon Trulson <jtrulson@ics.com>
2016-07-12 16:05:22 -06:00
Jon Trulson
e0ef6eea64 ozw: fix up some issues reported by static analysis
Signed-off-by: Jon Trulson <jtrulson@ics.com>
2016-07-12 16:05:13 -06:00
Jon Trulson
743730550c CMakeLists.txt: move example subdir adds after add_subdirectory(src) is called
This will ensure that all src modules are scanned first before
examples (c++/java).

In certain cases when doing parallel builds with many cores (8), the
examples for MODBUS, BACNET, and OPENZWAVE would not be built, since
their dependant libraries had not yet been located (in the src/
dir(s) via pkg_check_modules()), by the time the examples were being
compiled.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
2016-07-06 16:49:55 -06:00
Jon Trulson
9ab9e2c403 ozw: Rework and add some device specific drivers and examples.
This commit reworks ozw somewhat and adds some device specific drivers
with examples.  All of these drivers are kept in the UPM ozw library.

The OZW class has been reworked to make it a proper singleton, since
the OpenZWave::Manager() it depends on is already a singleton.  This
avoids issues such as opening and initializing OpenZWave multiple
times.

A new, relatively thin base class, ozwInterface is also now present.
This class wraps some basic functionality, and handles initialization
of the OZW base class.  It is intended to be inherited by device
driver classes.  It operates on a node id for a device.  Each OZW
device is referenced by a node id, which does not change unless the
device is removed (and possibly re-added) to a Z-Wave network.

Finally, a series of device specific drivers have been implemented.
These provide basic functionality to monitor and in some cases control
the operation of a Z-Wave device.  They are the following:

ozwdump - This is a fake 'device' driver that initializes an OZW
network and dumps information on all of the nodes (devices) present.
Along with each node, available information on each valueid associated
with that node is also printed.  This fake device and it's examples
replace the original ozw example.

aeotecss6 - Aeotec Smart Switch 6.  This device allows control of the
switch, as well as reporting of information the switch makes
available, such as current consumption, volts, watts, and accumulated
energy use (kWh).

aeotecsdg2 - Aeotec Smart Dimmer Gen 2.  This device is similar to the
Smart Switch 6, but also provides dimming functionality.  It also
provides information on energy use.

aeotecdw2e - Aeotec Door/Window Sensor 2nd Edition.  This device is a
magnetic switch with an embedded tamper switch used to detect the
opening/closing of windows and doors.  This is a battery powered
device.

aeotecdsb09104 - Aeotec Home Energy Monitor.  This device is intended
to be installed at the MAINS or Breaker box.  It reports current and
cumulative energy consumption.

tzemt400 - Trane TZEMT400 Thermostat.  This device is a thermostat
with Z-Wave functionality.  The variant tested was the
TZEMT400BB32MAA.  The driver reports various information on the status
of the thermostat, as well as the current measured temperature.

Signed-off-by: Jon Trulson <jtrulson@ics.com>
2016-07-06 15:13:00 -06:00
Noel Eck
8da6095c35 travis: Updated ppa for swig3.0
UPM requires swig 3.0.5 which *was* offered in fenics-exp, but is
no longer available there.  Switched to fenics-dev.

Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-07-01 10:18:01 -07:00
Noel Eck
1849e22154 upm: v0.7.2
Signed-off-by: Noel Eck <noel.eck@intel.com>
v0.7.2
2016-06-30 16:28:44 -07:00
Noel Eck
dec9b2096e mraa: Updated mraa dependecy to 1.1.1
There were api changes for iio kernel support on mraa which cascade to
UPM - setting the minimum version of mraa required.

Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-06-30 15:15:50 -07:00
Noel Eck
e1df8b5bf6 iio_core: Patches for IIO core kernel standard
Applying patches from Kuan Loon Lay.

Signed-off-by: Noel Eck <noel.eck@intel.com>
2016-06-30 14:57:19 -07:00
Noel Eck
634208e3dc upm: v0.7.1
Signed-off-by: Noel Eck <noel.eck@intel.com>
v0.7.1
2016-06-28 11:37:42 -07:00
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
66bd4ee8c8 readme: fixed broken link to MRAA in Readme.md
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-05-13 17:25:15 -07: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
Mihai Tudor Panu
29bfa7ef79 upm: v0.7.0
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
v0.7.0
2016-05-12 17:09:17 -07:00