RoadTest: Omron Sensor Evaluation Board 2JCIE-EV
Author: fmilburn
Creation date:
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: The Omron Sensor Evaluation Board has some similarities in concept to the Rohm SensorShield-EVK-003 which I previously RoadTested. Other boards with multiple sensors for microcontrollers also exist and some comparison is made in the RoadTest.
What were the biggest problems encountered?: No large problems.
Detailed Review:
Omron 2JCIE-EV01-AR12JCIE-EV01-AR1 Sensor Evaluation Board
by Frank Milburn
Introduction
The Omron 2JCIE-EV01-AR1 Sensor Evaluation Board and B5W-LB2101-1 Photo Micro Sensor were evaluated on an Arduino MKR WIFI 1010. The Sensor Evaluation Board has 6 types of on-board sensors: temperature, humidity, light, barometric pressure, noise, and acceleration. The RoadTest contains my observations during unboxing and setup as well as the following for each sensor in the package.
At the end of the RoadTest there is a summary and list of useful links.
Unboxing and Setup
The package arrived well packaged and undamaged. There are Omron sensor evaluation board versions for the Raspberry Pi and Adafruit Feather as well as the Arduino MKR Board used here. The MKR WIFI 1010 was supplied for the RoadTest. Also supplied were a B5W-LB2101-1 Photo Sensor and 2JCIE-HARNESS-04 cable to connect it to the sensor board.
The User Manual describes how to solder the 0.1 inch pin headers to the PCB. A small nit, but I found the pads on the PCB to be smaller than I am accustomed to which made it somewhat difficult to contact the pad and pin simultaneously with my regular through hole soldering iron tip and get a good joint. Nonetheless the soldering task was quickly completed. The firmware examples reside on Github and were downloaded and installed per the directions in the User Manual without issue. In the photo below the sensor evaluation board and light sensor are attached to the MKR WIFI 1010 and are ready for use.
Arduino MKR WIFI 1010
The MKR WIFI 1010 was supplied at my request rather than a Raspberry Pi because I normally use sensors such as those on the Sensor Evaluation Board with a microcontroller. It is a nice little board with an ARM Cortex-M0 SAMD21 microcontroller. Wi-Fi and Bluetooth connectivity is provided by a u-blox NINA-W10 chipset operating at 2.4 GHz. This is one of Arduino's more popular boards and seems well supported. I encountered no problems using it with the Arduino IDE on a relatively fast Windows 10 computer.
It is the little things that make a difference sometimes. I really like the way the pins are marked on the sides of the headers. It is readable even when there is a daughterboard on top.
Omron Sensor Evaluation Board 2JCIE-EV01-AR1
This tiny and well made board has a lot of capability. The provision of working code is a great feature and I've often wondered why more manufactures don't do this. Making three versions of the sensor evaluation boards for the Arduino MKR, Adafruit Feather, and Raspberry Pi is also nice and somewhat unusual for a manufacturer's board.
The Arduino version of the Sensor Evaluation Board looks like this prior to soldering in the provided 0.1" pin headers.
Unlike the Arduino board, it is necessary to haul out documentation to see what is what as the silk screen marking for the header pins is somewhat cryptic and the use of the various connectors is not apparent. The following is taken from the Omron datasheet.
Credit: Omron Sensor Evaluation Board datasheet and used here as permitted by fair use
In addition to the sensors the board has a RGB LED switched with NPN transistors and a bidirectional I2C Voltage-Level Translator for 3V3 <-> 5V. On the board there is a footprint for U4 with 10 pads but U4 does not show up on the schematic or in any of the documentation I read. The following interesting note is on the datasheet without further explanation: When using the sensor evaluation board, the accuracy indicated on the data sheet of each sensor manufacturer is not guaranteed. It may well be that this is the case for all such boards, but I haven't noticed it in the documentation of others. There are additional JST connections shown as I2C 3V (CN4), I2C 5V (CN5), UART (CN6), and Analog 5V (CN7). There are quite a few jumpers but the example code worked out of the box with no changes needed.
The following table has a high level comparison of the Omron Sensor Evaluation Board to the Adafruit Circuit Playground Express and Rohm SensorShield-EVK-003.
Circuit Playground Express | Omron Sensor Evaluation Board | Rohm SensorShield | |
---|---|---|---|
Motion Sensor | LIS3DH 3-axis accelerometer | LIS2DW12 3-axis accelerometer | KX224-I2C 3-axis accelerometer |
Temperature / Humidity | Thermistor - no humidity | SHT30-DIS-B temperature and humidity | BD1020HFV - no humidity |
Light Sensor | Photo transistor | OPT3001DNP | RPR-0521RS |
Sound Sensor | MEMS microphone | MEMS microphone | N/A |
LEDS | 10 x Neopixels and LED | 1 x RGB LED | N/A |
Speaker | Magnetic speaker with Class D amplifier | N/A | N/A |
User Input | 2 x push button | N/A | N/A |
Communication | IR receiver and transmitter | N/A | N/A |
Flash Storage | 2 MB | N/A | N/A |
Microcontroller | ATSAMD21G18 ARM M0 | Arduino MKR (not included) | Arduino Uno (not included) |
External Connector | N/A | 1 Qwiic | N/A |
Pressure Sensor | N/A | 2SMPB-02E | BM1383AGLV |
Hall Sensor | N/A | N/A | BD7411G |
Color Sensor | N/A | N/A | BH1749NUC |
Magnetometer | N/A | N/A | BM1422AGMV |
Heart Rate / Pulse | N/A | N/A | BH1790GLC |
Cost | $24.95 | $95.37 | $156.74 |
I did a RoadTest of the Rohm SensorShield in November of 2018 and included the Adafruit Circuit Playground Express as I have one in my possession and am familiar with it. Some comparison will be made to their sensors in the detailed review that follows.
The Qwiic connector, which is used for the Omron external boards, is becoming a standard for makers / hobbyists and it is interesting to see it adopted by a sensor manufacturer. The sensors on the Omron board are more comparable to the Adafruit Playground Express. Consideration must be given to the Circuit Playground Express being a high volume (almost consumer) board Vs an evaluation board but still my rationale for determining the price to performance should be apparent. It is confusing to me that all but one of the sensors on the Sensor Evaluation Board are from manufacturers other than Omron as described in the detailed evaluation below. If Omron were to offer their barometric pressure as an board with Qwiic connector like the optical sensor B5W-LB2101-1 it would reduce cost when paired with a Qwiic / Stemma Raspberry Pi hat or FeatherWing and put the focus on their sensors.
Temperature / Humidity
The temperature and humidity sensor is labelled U1 and is a Sensirion SHT30-DIS-BSHT30-DIS-B that uses I2C communication. It comes in an 8 pin DFN case. It could be soldered at home with a reflow oven (in my case, a toaster oven) or hot plate.
The specs are quite good, with both the temperature and humidity specs being better than any other sensor I have at hand:
Credit: Sensirion datasheet and used here as permitted by fair use
The sensor has Sensirion CMOSens® technology that uses changes in capacitance to measure humidity. Sensirion states that the dielectric is a polymer which absorbs or releases water in proportion to the relative environmental humidity which changes the capacitance of the capacitor. The block diagram from the datasheet is shown below:
Credit: Sensirion datasheet and used here as permitted by fair use
The Omron software is issued under a lenient MIT license. I did a quick read through the code and didn't see anything that would be too difficult to port. An internet search for SHT30-DIS software found C, Java, and Python code. The following is example output to the serial monitor on the Arduino using the Omron code.
There is a note in the user manual stating the following: "The temperature sensor on the Sensor Evaluation Board may output a high value due to heat from the Arduino unit. To eliminate this effect, either connect with a cable to separate the two, or use an externally connected temperature/humidity sensor". To validate the temperature I placed the probe of my Tenma 72-1020 DMM alongside the sensor on the board while the output from the Arduino above was being recorded and read 25.2 degrees C. Spot on. The only humidity sensor I had readily available (DHT22) has poorer specs than the SHT30-DIS-B so I checked local weather stations which were showing between 55 and 60 %RH around me. So call that good as well.
The Sensirion SHT30-DIS-B is a nice temperature and humidity sensor that costs $2.78 in quantities of one.
Light
The ambient light sensor is labelled U2 and is a Texas Instruments OPT3001DNPOPT3001DNP with I2C communication. It comes in a 6 pin USON package measuring 2 mm x 2 mm x 0.65 mm. It would not be easily hand soldered and needs an oven or hot plate to solder at home.
The OPT3001-Q1 device measures the intensity of visible light in lux. The spectral response of the sensor tightly matches the response of the human eye and includes significant infrared rejection. Measurements can be made from 0.01 lux up to 83k Lux with automatic full-scale adjustment. For comparison, Wikipedia states that a moonless overcast night sky has 0.0001 lx, office lighting typically has 320-500 lx, an overcast sky has about 1000 lx, and direct sunlight can have 32,000 to 100,000 lx. So the sensor covers a useful range although extreme conditions might saturate the sensor or not register. A glance at the datasheet shows the specs to be quite good.
Credit: Texas Instruments datasheet and used here as permitted by fair use
Note in particular the close match in spectral response to the human eye (Figure 2.) and the linear full scale output illuminance response (Figure 4.). The OPT3001 block diagram is shown below.
Credit: Texas Instruments datasheet and used here as permitted by fair use
The Omron software is issued under a lenient MIT license. I didn't see anything that would be too difficult to port but did not port to another microcontroller. The following example output to the serial monitor on the Arduino using the Omron code comes from the desk where I am working which has good indirect light from a North facing window.
The code contains a "heart beat" that flashes the LED which is quite bright. That did not seem like a good idea when measuring ambient light so it was commented out. Another observation is that it would be nice to display the units (Lux) in the output. When taken outside on a sunny August day in Portland and pointed towards the sun the maximum reading was 63,000 and saturation did not occur.
The Texas Instruments OPT3001 is a nice sensor in a small package that gave good results.
Barometric Pressure
The MEMS digital barometric pressure sensor is labelled U3 and is an Omron 2SMPB-02E2SMPB-02E that communicates by I2C. The package is a 2 mm x 2.5 mm LGA 9 pin. It would be very difficult to hand solder and as a minimum an oven or hot plate is required. A photo of the package and excerpt from the Omron datasheet is given below.
Credit: Omron2SMPB-02# datasheet and used here as permitted by fair use
Going by the specifications the +/- 3.9 Pa relative pressure accuracy of the Omron 2SMPB-02E is between the Rohm BM1383 (+/- 12 Pa) and the TDK InvenSense ICP10100 (+/- 1 Pa). But the absolute pressure accuracy of the Omron sensor is better than the Rohm or TDK (50 Pa Vs. 100 Pa). This is good performance from the Omron sensor. As an example of the absolute accuracy, a 50 Pa error is equivalent to about a 4 meter error at sea level and a 3.9 Pa relative error is about 0.33 meter (calculations done using the MIDE calculator).
A block diagram from the datasheet of the Omron 2SMPB-02E is shown below.
Credit: Omron2SMPB-02# datasheet and used here as permitted by fair use
The same Omron MIT license given in the other examples applies to the code. Typical output from the Arduino serial monitor is shown below.
Both pressure in Pa and temperature in degrees C are reported. The two columns that follow are raw uncompensated pressure and temperature.
To validate absolute pressure I looked up the current pressure at my home on windy.com and converted the reported 1010 hPa to the altitude of my house and got an estimated 98000 Pa. The Omron sensor is showing 98069 Pa. That is within the uncertainty of the windy.com calculation. To get an idea of relative pressure I recorded the measured pressure on the ground floor and upper floor of my house, difference in elevation, and outside temperature as follows:
Ground Floor Pressure: 98069 Pa
Upper Floor Pressure: 98039 Pa
Outside Temperature: 21 C
Measured Elevation Difference: 2.74 m
Using the MIDE calculator the elevations were then calculated as shown below:
The measured elevation difference between the two floors is quite accurate and the calculated value differs by only 0.12 m. As noted above, the sensor datasheet converts to a maximum error of 0.33 m and so the relative pressure measurement is validated for this single test.
The pressure sensor gave good results and is small in size.
Acceleration
The MEMS digital motion sensor is labelled U5 and is a STMicroelectronics LIS2DW12LIS2DW12 that communicates with SPI. The package is a 2 mm x 2 mm x 0.7 mm LGA 12 pin. It would be very difficult to hand solder and as a minimum an oven or hot plate is required.
The following list of features and diagram is taken from the datasheet.
Credit: STMicroelectronics LIS2DW12 datasheet and used here as permitted by fair use
Here is the block diagram:
Credit: STMicroelectronics LIS2DW12 datasheet and used here as permitted by fair use
The Arduino code provided by Omron worked without issue but was not extensively tested. In the following video the board is aligned in the 3 axis and "tapped" with the results observed on the serial monitor.
Microphone
The MEMS microphone is labelled U6 and is a Knowles SPH0645LM4H-B that communicates with I2S. The microphone is bottom ported. It comes packaged in a 3.50 x 2.65 x 0.98 mm SPH case. Performance as reported in the datasheet shows it to be good for the spoken voice at reasonable sound levels.
Credit: Knowles SPH0645LM4H-B datasheet and used here as permitted by fair use
Omron did not provide code for this sensor but relies on an example provided by Arduino which can be plotted on the Serial plotter. The serial plotter isn't well suited for this but the example worked without issue as shown in the following video.
I noticed that the Arduino sketch freezes from time to time but believe that is the Arduino code and not the mic. This sensor is also available on an Adafruit breakout board that I have used in the past. It works well for the intended purpose.
Omron Optical Sensor B5W-LB2101-1
with Harness 2JCIE-HARNESS-04
The B5W-LB2101-1B5W-LB2101-1 optical sensor connects via a JST S4B-ZR 4 pin connector to the Sensor Evaluation Board. It is a 40 mm x 14.3 mm x 8.4 mm package that can be attached through the provided mounting holes.
The sensor detects whether an object is within a defined range in front of it and is relatively insensitive to color, transparency, lighting conditions, and background. For example, the B5W-LB2101-1 being tested here has a sensing distance of 10 to 55 mm according to the datasheet. There is a different version that has a sensing distance of 2 to 10 mm. There are both digital and analog version. The analog version that was tested allows the user to set the trigger level for object detection and allows some ability to tune out background.
The following curves show how it is relatively insensitive to surfaces and color over the sensing range.
Credit: Omron B52-LB2101-1 product description and used here as permitted by fair use
Note that black paper has a somewhat narrower range than white paper and acrylic PMMA, yet they are still in a relatively narrow range. The voltage output from the sensor rises sharply as soon as an object is within range and falls off quickly when outside. Most IR sensors are sensitive to the reflective nature of an object but the Omron sensor reduces sensitivity with a convergent reflective sensor as described in this video.
The datasheet has a table with a number of materials in it for both the 2 to 10 mm and the 10 to 55 mm nominal sensors.
Credit: Omron B52-LB2101-1 product description and used here as permitted by fair use
Omron does not provide Arduino code for this sensor, or if it does I couldn't find it. However the operation is simple enough and I put together something with the help of the datasheet. The Omron code for the sensor was not discovered (source is located here) until pointed out to me in the comments by Gough Lui below. The following code was developed by me and used during the RoadTest.
The pin mapping of the Sensor Evaluation Board was a bit confusing so let's start with that. Below are the areas of interest from the schematic.
Credit: Partial Omron 2JCIE-EV01-AR1 schematic and used here as permitted by fair use
The two headers (CN10 and CN11) at the top connect directly to the Arduino MKR board. The bottom left connector (CN8) is for the Omron light sensor. Starting with CN8, the light sensor operates at 5V which is provided at pin 4. Ground is on pin 2. As shall be shown below the sensor is pulsed by the microcontroller. The pulse comes into U11 on the pin with the wire named B5WLA01_IN. The sensor output is then sent to the microcontroller on the wire labelled B5WLA01_OUT. Looking back up at the headers connected to the Arduino, B5WLA01_IN goes to pin 6 on CN10. Pin 6 on CN10 corresponds to A4 on the Arduino board. And B5WLA01_OUT corresponds to A2 on the Arduino board.
A Product Description sheet provided by Omron gives the recommendation below for sampling.
Credit: Omron B52-LB2101-1 product description and used here as permitted by fair use
The recommended sampling rate is 2000 us or 500 Hz. Sampling ON time is 800 us or 40% duty cycle. A sample is taken roughly in the middle of the ON time. The pulse comes in from pin A4 on the Arduino and the output is read on pin A2 of the Arduino. Stupid Arduino IDE. I somehow deleted my code and had to rewrite it. My code (using a MIT license like that of Omron) is provided below.
/* * Omron B5W-LB2101-1 * * The following example code demonstrates the Omron B52-LB2101-1 light * sensor operating on an Arduino MKR WIFI 1010 with the Omron 2JCIE-EV01-AR1 * Sensor Evaluation Board. Raw readings are continuously written to the * serial monitor and when an object is within range the on-board LED * lights. * * MIT License * Copyright (c) 2020 - Frank Milburn * All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ const int ledPin = LED_BUILTIN; const int sensorInputPin = A4; // pin pulses the sensor ON/OFF const int sensorOutputPin = A2; // raw analog values read from this pin const int sensorOn = 800; // sensor ON time in us const int sensorOff = 1200; // sensor OFF time in us const int sensorObjectDetect = 100; // raw analog value indicating detect int sensorValue = 0; // raw value read from sensor void setup() { Serial.begin(115200); while (!Serial){;} Serial.println("Omron B5W-LB2101-1 demo starting"); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); pinMode(sensorInputPin, OUTPUT); digitalWrite(sensorInputPin, LOW); } void loop() { // Pulse the sensor input pin and wait until half the pulse is complete to sample digitalWrite(sensorInputPin, HIGH); delayMicroseconds(sensorOn / 2); // Read the sensor output and finish the pulse sensorValue = analogRead(sensorOutputPin); delayMicroseconds(sensorOn / 2); // Turn the pulse off, report results, and finish cycle digitalWrite(sensorInputPin, LOW); Serial.print("Raw analog value = "); Serial.println(sensorValue); if (sensorValue >= sensorObjectDetect){ digitalWrite(ledPin, HIGH); } else{ digitalWrite(ledPin, LOW); } delayMicroseconds(sensorOff); }
Since this sensor works by design within a narrow range I decided to look at how it might be used in a drink dispenser to detect a cup, glass or mug underneath a nozzle. Since the detection range is narrow, the sensor can be set up to dispense only when the cup is underneath and spillage is reduced. We went hiking last weekend and in the image below my son-in-law is filling up my granddaughter's bottle at a dispenser in the park (no touch - there is a pandemic going on). I'm not sure what the sensor used was though and didn't want to alarm other hikers waiting to fill their bottles or embarrass myself by doing a close inspection.
In the demonstration video below my test setup is described and drinking vessels with different materials and color are tested.
Note: In the video I make a remark about detections in bright light. According to the datasheet the sensor can manage up to 3,000 Lux maximum incandescent light and 10,000 Lux sunlight. This is consistent with my observations.
This was one of the more interesting sensors in the RoadTest and with two ranges available I can see where it could be used in a number of applications. The latency would be good enough for many cases and the ability to detect smaller curved as well as flat surfaces useful.
Conclusion
+ Omron 2JCIE-EV01-AR1 Sensor Evaluation Board PCB is small and well made
+ Sensor Evaluation Board comes with 6 useful sensors
+ Versions of the Omron Sensor Evaluation Board exist for Arduino, Feather, and Pi
+ Arduino MKR 1010 worked without issue with the Sensor Evaluation Board
+ Setup was easy, Arduino examples are adequate
+ Sensirion SHT30-DIS-B temperature / humidity sensor has great resolution and accuracy
+ Texas Instruments OPT3001 light sensor matches the human eye well and automatically adapts to a wide range of light conditions
+ Omron 2SMPB-02E barometric pressure sensor gave good results and has a particularly good absolute pressure specification
+ Omron B5W-LB2101-1 provides good detection in a specified range for all types of objects with the ability to filter out many background conditions
- Cost on the high side
In summary, all of the sensors were of high quality and the evaluation board worked as expected.
Corrections and Updates
26 Aug 2020: Corrected statement on Omron supplied code for the B5W-LB2101-1
Useful Links
Sensor Evaluation Board 2JCIE-EV Data Sheet
Top Comments
Gee fmilburn - I thought I was quick just putting out my review now, but you beat me by a few hours. I noted the freezing on the mic demo and settings that don't match the datasheet, but I couldn't get…
Hi Gough Lui
I agree the mic demo is not useful and probably should have noted that in my conclusions. Maybe even whacked a point off of the software rating. Thanks for the link to the B5W-LD0101 code …
Very good road test report.
DAB