RoadTest: Rohm SensorShield-EVK-003 (Arduino Compatible)
Author: MARK2011
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?: pressure sensor Infineon DPS310 TA MS5637 Infineon Adapter Board
What were the biggest problems encountered?: Issue with lack of the library FlexiTimer can be neglected as it is available on the net. I only miss that information in the manual; Need to be careful with appropriate voltage settings; Lack of more precise documentation of adapter board also the schematic isn,t available directly; Surprise with lack of accuracy of BD1020 temperature sensor.
Detailed Review:
At this point I'd like to express my gratitude to element 14 and ROHM for selecting me as the tester!
Although the set and my project at all, did not cause any problems, this roadtest took a lot of time and to be honest several doubts, how to improve it.
That cause the delay in official submitting, I need to apologize for!
But finally I’m able to sort out all observations, remarks and issues compiling it into let say complete report.
I tried to make it innovative and pu as much as possible own contents to avoid copying information and data-sheets concerning above equipment and accompanying it software suite.
That information is available on official ROHM site as well as on Github or Arduino forum.
I do not want to bore you with the duplication of the process of opening a package.I need to confirm, the shipment was very fast.
All packed and delivered safely.Everything came well packed and secured.
ROHM boards have been delivered in nice, let say lovely boxes,and “base” board in black ESD bag.
Modules as well as the adapter board are ready to use and work, with soldered sockets and pins.
The set consist of 8 modules and one arduino form factor adapter board.
Omitting the unpacking phase I would like to emphasize, that I found the set very convenient in the sense of use
- quick composition as well as keep/ store all modules together in extremely handy boxes.
I must add, in the box, together with board and modules I found quite informative and handy quick start manual/ description leaflet.
I emphasize that the set has been designed exceptionally aesthetically
The set consist of:
Filtering it from the point of view of communication interface we have
Accelerometer Module KX224-1053
Barometric Pressure Module BM1383AGLV
Geomagnetic Sensor Module Magnetometer BM1422AGMV
ALS Ambient Light/Proximity Sensor Module RPR-0521RS
Color Sensor Module BH1749NUC
Heart Rate Sensor Module BH1790GLC
Hall Effect Sensor Module BD7411G
Temperature Sensor Module BD1020HFV
Sensor Shield
I2C I/O Analog
6 i2C transducers and one binary and analog.
All above sensors could be simply connected with arduino (or other development board with that form factor) thanks to the adapter board.
Basic parameters and features are collected on colorful one-page leaflet but also simply available on ROHM site
More details in description of individual modules and the board.
One important notice
I must admit I have neglected one information - the first sentence on the site
“Compatible with Arduino Uno and mbed”
Look next to arduino we have “mbed”
Quite promising looking platform...
“Arm Mbed OS together with the Pelion IoT Platform provide a transformative device-to-data platform for connected IoT that empowers an intelligent enterprise.
It provides the operating system, gateway, device management services, and partner ecosystem to speed adoption and deployment of IoT solutions.”
Documentation of equipment and the softwareI didn't find any instruction nor extended manual in the package but the mentioned above leaflet.
To be honest I expected that as we are provided with links to Rohm site. Most well prepared and informative documentation as well as manuals helping to run our modules, are shared there.
We can download papers and software examples (arduino scripts) or find links to i.e. Github with lot of materials and example.
You can realize quickly that RohmSensor Shield came with quite comprehensive documentation available in the internet.
Details here: https://www.rohm.com/sensor-shield-support-003
And also using that site I suggest to start your adventure with Rohm sensors!
Surfing on that page, I found, that there are official links to both ROHM as well as GITHUB projects designed for our modules.
These links are available also in the datasheets.
Rohm site invites also to deeper study their solution and offer:
Thanks to well documented instructions from ROHM, the basic test procedures are simple and basis on program the development board (generally arduino);
setting jumpers on the adapter board (voltage and interrupts); insert the selected module on appropriate socket on the board, Run the project, measure values, read out serial terminal etc...
During the roadtest I used ROHM examples prepared for all modules and shared for download on the ROHM site.
ROHM prepared appropriate arduino libraries for all transducers.Most examples are accompanied with short but clear, step by step manual.
Selected transducers could be run using alternative projects, There are quite lot repositories with libraries and code examples for rohm transducers on Github etc.
e.g. :SparkX BH1749NUC Arduino Library
Imported directly
Or using zipped libraries:
Example3_NewDataInterrupt.ino
Is it really necessary to write about that amazing board - I guess no, If you need something in the matter,
there is no problem to start there: https://www.arduino.cc/ besides internet is full od descriptions, examples advises etc...
Arduino IDE
I hope only short description of Arduino world is necessary, as it is obviously well known programming environment.
“Arduino is an open-source electronics platform based on easy-to-use hardware and software. Arduino boards are able to read inputs - light on a sensor,
a finger on a button, or a Twitter message - and turn it into an output - activating a motor, turning on an LED, publishing something online.
You can tell your board what to do by sending a set of instructions to the microcontroller on the board.
To do so you use the Arduino programming language (based on Wiring), and the Arduino Software (IDE), based on Processing. “
https://www.arduino.cc/en/Tutorial/HomePagehttps://www.arduino.cc/en/Main/FAQ
Well described, with fantastic support and user forumshttps://forum.arduino.cc/
Honestly, I think that this part can be omitted as there are lot of information about both RPi and MATHWORKS.
Moreover Raspberry is, in my opinion, one of the "flagship" devices of Element 14, detaily depicted and still commented in the forum.
Ok, lets put here most common information from raspberrypi.org
https://www.raspberrypi.org/products/raspberry-pi-3-model-b/
All modules except analogue one could communicate and cooperate directly with RPi.
As the Raspberry I/O (i2C generally speaking in our case) operates with 3.3V level,
the only doubt concerns BD7411G (Hall) which is equipped with 5V binary sensor.
Most test project I conducted using these collected on individual modules pages
Accelerometer Module KX224-1053 Download
Barometric Pressure Module BM1383AGLV Download
Geomagnetic Sensor Module BM1422AGMV Download
ALS/Proximity Sensor Module RPR-0521RS Download
Color Sensor Module BH1749NUC Download
Hall Effect Sensor Module BD7411G Download
Temperature Sensor Module BD1020HFV Download
Heart Rate Sensor Module BH1790GLC Download
As well as on ROHM Github: (https://github.com/RohmSemiconductor )
ROHM Semiconductor Shield-EVK-001 Sensor Evaluation Kit provides an Arduino-compatible sensor shield
designed to connect Arduino and the ROHM Sensor Boards.
The Shield-EVK-001 connection board uses standard Arduino shield interface pins
and a shield interface header to connect to the ROHM Sensor Boards.
As all “roadtested” Rohm equipment the board is accompanied with some documentation.
https://www.rohm.com/documents/11308/4198747/shield-evk-001_ug-e.pdf
https://www.rohm.com/documents/11308/4198747/shield-evk-001_ug-e.pdf
I would call it simple level manual - it is clear, with lot of pictures and instructions how to deal completing the set Arduino + Board + module.
Quoting it: “Shield-EVK-001 is a Shield, which connects Arduino and ROHM Sensor Boards.
Shield-EVK-001 will be referred to as“Senso Shield”on this manual.
This User’s Guide is about how to use SensorShield.”
Most important features:Size: 88mm x 63mm
Ready to carry :
Five I2C Sensors, One I/O Sensor or Two Analog
The voltage:
Level Shifter 5V-3.0/1.8V is available
That part is well described.
But I was surprised by the lack of more detailed papers. Even getting a schematic requires a bit of searching.
Most curious issue are jumpers on the top edge of the boards.
Many are related to interrupts but i miss description and instruction on that matter.
I continue with “investigation” and plan to prepare comprehensive conclusions soon!
On the other hand, I must admit, that the shape of the board, the characteristic interface should make the montage easy and intuitive.
Nevertheless If you need the support in the matter of installation and setup, go to the ROHM site.
Use of the board is very simple.I need to put here one warning.
Most modules can operate using voltage jumper set on 3V.BUT one - the hall need 5V
Beware
Do not forget set it back to 3V before change the module!!!
The idea of the modules motherboard as the interface with Arduino development board isn’t very originale.
Look here we have "The competition”: adapter from infineon
Looks quite advanced and comprehensive But I was lost trying to acquire some information about it…
You can read about my hestitations concerning lack of materials in my previous Roadtest:
Adapter cnnected with Arduino
protocol: i2c
No significant settings necessary
just set voltage jumper on 3V (1.8V/3.0V);
insert module
and run appropriate arduino code.
The first readout:
KX224_WHO_AMI Register Value = 0x2B
13:02:41.202 -> KX224 (X) = -0.00 [g]
13:02:41.202 -> KX224 (Y) = 0.02 [g]
13:02:41.249 -> KX224 (Z) = 1.03 [g]
We can see, the board laid horizontally - gravitation influences on Z axis
1.03 [g] - small accuracy issues could be neglected.
I can admit, stability of readouts are quite acceptable.
Below you can see one longer listing.
Board lays vertically (axis Y):
KX224 (X) = -0.01 [g]
KX224 (Y) = 1.05 [g]
13:07:59.268 -> KX224 (Z) = 0.06 [g]
13:07:59.268 ->
KX224 (X) = -0.01 [g]
13:07:59.736 -> KX224 (Y) = 1.06 [g]
13:07:59.783 -> KX224 (Z) = 0.06 [g]
13:07:59.783 ->
KX224 (X) = -0.01 [g]
13:08:00.251 -> KX224 (Y) = 1.05 [g]
13:08:00.298 -> KX224 (Z) = 0.05 [g]
13:08:00.298 ->
KX224 (X) = -0.01 [g]
13:08:00.766 -> KX224 (Y) = 1.06 [g]
13:08:00.766 -> KX224 (Z) = 0.05 [g]
For save space in that report the remaining results will be shown as calculated averages.
13:08:56.926 -> KX224 (X) = 0.02 [g]
13:08:57.347 -> KX224 (Y) = 0.03 [g]
13:08:57.394 -> KX224 (Z) = -0.99 [g] >> board rotated Z = -g
AXIS Y - Vertically, rotated
13:12:37.401 -> KX224 (Y) = -0.94 [g]
We can see, result isn’t symmetrical! (I would expect 1.05 [g]
My next task would be calibration of software acceleration sensor!
AXIS X:
13:14:58.363 ->KX224 (X) = 1.02 [g]
13:14:58.831 -> KX224 (Y) = 0.07 [g]
13:14:58.878 -> KX224 (Z) = -0.01 [g]
And rotated:
13:15:29.719 ->KX224 (X) = -0.99 [g]
13:15:30.187 -> KX224 (Y) = 0.05 [g]
13:15:30.187 -> KX224 (Z) = 0.02 [g]
At the end I decided to prepare small trigonometry exercise:
trigonometry:
Board tilted:
KX224 (X) = -0.65 [g]
KX224 (Y) = 0.03 [g]
KX224 (Z) = 0.77 [g]
X = -,65
Z = ,77
The slope is around 40 deg
sin 41 = ,6561
cos 40 = ,77
Y=0 board’s axis Y lays vertically
Below is my small code for module tilt presentation
Code:
Serial.write(" tilt= ");
Serial.print(asin(acc[0])*57296/1000);
Serial.println(" deg ");
logs from rotation around Y axis 360 deg
protocol: i2c
Voltage jumper (3.0V)
Results of demo code:
Fluorescent lamp
RPR0521RS Part ID Register Value = 0xA
RPR0521RS MANUFACT_ID Register Value = 0xE0
RPR-0521RS (Proximity) = 0 [count] Far
RPR-0521RS (Ambient Light) = 242.50 [lx]
Readouts differ from 240 to 244 lx
Darkness
RPR-0521RS (Ambient Light) = 0.00 [lx]
Proximity readouts evaluation:
38cm: 1
30cm: 2
23-3
21-4
18-5
16-6
15-7
14-9
11-10
8-40
7-50
6-100
5-150
4-270
3-480
2-950
1-2500 / near
~0-4000 / near
protocol: i2c
Voltage (1.8V/3.0V)
Measurement process is quite simple especially when download use .ino code from ROHM.
Readouts are available on serial terminal.
For comparison I decided to connect the module to WiFi board and upload data to the cloud.
Competitors taken for that test were:
Infineon’s pressure sensor DPS310 with following arduino library:
https://www.infineon.com/cms/en/product/evaluation-boards/s2go-pressure-dps310/
And TE Connectivity MS5637 digital barometric pressure sensor from my RPI WEATHER SHIELD
On the following chart, you can see readouts (some uncontinues… sorry)
BM1383 as well as remaining sensors readouts looks good, Deviation from the average is acceptable, the trend is well presented.
One remark - regarding line with Wunderground weather station - that pressure is lower
but in that case terrain differences and altitude of the measurement matters!
Beside atmospheric pressure and use of the sensor in weather station, thanks to good accuracy and perfect sensitivity, it could be used as the altimeter!
protocol: i2c
Voltage(3.0V)
Ceiling led lamps,
BH1749NUC Part ID Value = D
BH1749NUC MANUFACTURER ID Register Value = E0
BH1749NUC (RED) = 43
BH1749NUC (GREEN) = 63
BH1749NUC (BLUE) = 17
BH1749NUC (IR) = 24
BH1749NUC (GREEN2) = 62
Above results displayed on the serial terminal were quite stable
But now I see, I set the sensor in the shadow, these values are very low.
Fluorescent lamp over the sensor:
BH1749NUC (RED) = 2043
20:52:41.151 -> BH1749NUC (GREEN) = 2532
20:52:41.197 -> BH1749NUC (BLUE) = 660
20:52:41.197 -> BH1749NUC (IR) = 353
20:52:41.244 -> BH1749NUC (GREEN2) = 2453
Readouts changes above results are averages
The laptop screen:
20:54:24.173 -> BH1749NUC (RED) = 96
20:54:24.454 -> BH1749NUC (GREEN) = 308
20:54:24.501 -> BH1749NUC (BLUE) = 211
20:54:24.548 -> BH1749NUC (IR) = 16
20:54:24.548 -> BH1749NUC (GREEN2) = 308
Halogen lamp near sensor “half” power:
20:56:05.402 -> BH1749NUC (RED) = 1668
20:56:05.683 -> BH1749NUC (GREEN) = 1283
20:56:05.729 -> BH1749NUC (BLUE) = 319
20:56:05.729 -> BH1749NUC (IR) = 6042
20:56:05.776 -> BH1749NUC (GREEN2) = 1283
Halogen lamp near sensor full power
20:56:57.709 -> BH1749NUC (RED) = 3041
20:56:57.989 -> BH1749NUC (GREEN) = 2654
20:56:58.036 -> BH1749NUC (BLUE) = 721
20:56:58.083 -> BH1749NUC (IR) = 9698
20:56:58.083 -> BH1749NUC (GREEN2) = 2662
LED torch very close:
20:59:16.003 -> BH1749NUC (RED) = 10367
20:59:16.330 -> BH1749NUC (GREEN) = 34763
20:59:16.330 -> BH1749NUC (BLUE) = 29076
20:59:16.377 -> BH1749NUC (IR) = 472
BH1749NUC (GREEN2) = 34878
The candle around 10cm:
21:03:00.175 -> BH1749NUC (RED) = 2867
21:03:00.456 -> BH1749NUC (GREEN) = 978
21:03:00.503 -> BH1749NUC (BLUE) = 152
21:03:00.503 -> BH1749NUC (IR) = 13098
21:03:00.550 -> BH1749NUC (GREEN2) = 951
21:03:00.550 -> BH1749NUC (RED) = 3072
21:03:00.877 -> BH1749NUC (GREEN) = 1042
21:03:00.924 -> BH1749NUC (BLUE) = 165
21:03:00.924 -> BH1749NUC (IR) = 16011
21:03:00.971 -> BH1749NUC (GREEN2) = 1079
21:03:10.097 -> BH1749NUC (RED) = 1831
21:03:10.424 -> BH1749NUC (GREEN) = 596
21:03:10.424 -> BH1749NUC (BLUE) = 91
21:03:10.471 -> BH1749NUC (IR) = 8963
21:03:10.471 -> BH1749NUC (GREEN2) = 588
Look at IR results!
But generally the colours of the flame changes - sensor see that very vell!
Torch with Green filter:
21:11:19.742 -> BH1749NUC (RED) = 3
21:11:20.023 -> BH1749NUC (GREEN) = 203
21:11:20.070 -> BH1749NUC (BLUE) = 9
21:11:20.070 -> BH1749NUC (IR) = 7
21:11:20.116 -> BH1749NUC (GREEN2) = 207
Red LED
BH1749NUC (RED) = 434
21:13:45.338 -> BH1749NUC (GREEN) = 14
21:13:45.385 -> BH1749NUC (BLUE) = 4
21:13:45.385 -> BH1749NUC (IR) = 18
21:13:45.432 -> BH1749NUC (GREEN2) = 14
protocol: i2c Voltage (1.8V)
Set Interrupt of the SensorShield to INTR1
If you select jumper INTR1, the module must be inserted in the socket J5!
I tried to check stability of readouts changing sensor geographic direction
NORTH average values:
BM1422AGMV XDATA=2.250[uT]
BM1422AGMV YDATA=-20.625[uT]
BM1422AGMV ZDATA=-85.458[uT]
EAST
BM1422AGMV XDATA=-18.750[uT]
BM1422AGMV YDATA=-5.292[uT]
BM1422AGMV ZDATA=-87.625[uT]
SOUTH
BM1422AGMV XDATA=-40.708[uT]
BM1422AGMV YDATA=-28.500[uT]
BM1422AGMV ZDATA=-88.542[uT]
WEST
BM1422AGMV XDATA=-11.833[uT]
BM1422AGMV YDATA=-43.750[uT]
BM1422AGMV ZDATA=-84.625[uT]
Generally I got:
N 2;-20;-85 X min around 2
E -29;-5;-85 Y minimum around -5
S -40;-30;-86 X max around -40
W -12;-44;-85 Y max around -44
The I/O socket only!
And Voltage (5.0V)
REMEMBER to set it back to 3 or 1.8V when changing the module!!!
That module has different pins - only three!
It fits well the board but observe dotted lines to avoid mistake!Another important remark concerns programming sequence.
The board must be programmed BEFORE inserting the module!
After run the program, first I approached magnetic screwdriver near to the sensor
In the range of around 1cm
Line:
“BD7411G Magnet field Detect!”
Appeared on the terminal
I experimented also with stronger magnets
Dut the range of 1cm remained as threshold
protocol: i2c Voltage(3.0V) + Connect VLED to 5.0V using the cable
from the software side, the demo code from ROHM should be supported using
FlexiTimer2 library available on Github.
Serial settings in demo code = 115200
That module, the most interesting in the set IMO comes without examples instruction (all remaining modules have it…)
But it is supported with two basic examples: BH1790GLC.ino and HeartRate.ino
The first code generates results without stabilization.
HeartRate.ino is more advanced
readouts are quite stable and it is very handy.
This is analogue sensor - use only two sockets on the left side of the adapter board
Voltage (3.0V or 5V)
Like the Hall module, the BD1020HFV has three pins!
Fit it carefully
I’m not satisfied with the sensor.
BD1020HFV Temp=26.57 [degrees Celsius], ADC=272
BD1020HFV Temp=26.57 [degrees Celsius], ADC=272
BD1020HFV Temp=26.57 [degrees Celsius], ADC=272
BD1020HFV Temp=26.57 [degrees Celsius], ADC=272
BD1020HFV Temp=26.57 [degrees Celsius], ADC=272
But real temperature doesn’t exceeds 20 degrees!
Some conclusions after use of WiFi board (8266) for data acquisition using cloud.
That solution I used for data barometric collection - BM1383.
Having the testing system improved with WiFi module (ESP-8266 based)
I started to Think about its readouts collecting method and... ThinkSpeak solution came to my mind.
hingSpeak - is the perfect tool to upload data e.g. from RPi sensors or Arduino modules.
The engine belongs to Mathworks, which make it perfectly compatible with our subject.
According to the definition, Thingspeak is an IoT platform that enables collecting, store, analyze, visualize
and act on data from sensors or actuators from devices as Raspberry, Arduino etc.
I have the experience in using of that solution from my humble Raspberry Weather Station.
Thanks to that idea, It was extremely easy to log data
Some datails about ESP8266 and Thingspeak in my previous roadtest:
I didn’t encounter any issues in that field.As mentioned above the critical point is proper setting the voltage but this is the very common matter.
My fellow roadtesters suggest change the voltage level of hall module (available at ROHM) to get everything general and universal I agree that is the idea!
The adapter board came packed in ESF bag, module pins have black ESD protective foamsAs many devices and modules they could be electrostatic fragile
We need to consider that issue and take care!I didn't encounter interference/ noise problems etc.
I really admire quality of manufacturing but also aesthetic matters of that kit!
How it fit to arduino form factor, compatibility of “Sensor Shield”?
From the mechanic point of view everything fits (pins of the adapter are quite long but it doesn't’ disturb in any way!
The kit is available for around £118.00(Farnell) 135,15 € (Mouser)
Most sensors fit defined accuracy and ranges.
I honestly appreciate results of pressure sensor BM1383AGLV
Also geomagnetic BM1422 and acceleration KX224 test as well as Ambient Light and Proximity RPR-0521RS and Color BH1749NUC were quite successful.
HALL sensor BD7411G in its case, I suppose low range which was proven in my test, is also the benefit and guarantee the stability of work.
Now most interesting and advantageous: Heart rate sensor BH1790GLC
Depending the software - results could be quick or slower but more accurate.
I admire and recommend that device very much!
Who is the loser?
Temperature sensor BD1020HFV with its outstanding high measurements - I’m afraid
or… the roadtester who didn’t know how to deal with it and spoil the measurement conditions, calibration etc...
ROHM sensor modules guarantee precise and easy operation for designer.
Also advantages of adapter: sensor shield, can not be overestimated!
Multiplicity of easy available examples, allow quick and simple start with the set of sensors.
My research confirmed benefits of use of simple Arduino IDE with ready to implement simple ROHM code examples.
It is definitely convenient and - especially important for beginner stressless.
My assessment:
Product Performed to Expectations
Generally - no remarks except one thought:
Thanks to adapter board You don't need to worry about voltage levels etc. but we need to notice lack of full compatibility with arduino boards in that scope.
Most modules have restrictions and operate with low voltage. General Arduino’s 5V will kill most chips/ modules from the set.
So maybe this is time to complain a little and suggest introduction of overvoltage protection.
I know the efficiency, power issues and price ratio would be spoiled with that move...
Specifications were sufficient to design with
I would complain slightly on the lack of more precise documentation of adapter board also the schematic isn,t available directly.
Demo Software was of good quality
YES YES YES OF COURSE!
Issue with lack of the library FlexiTimer can be neglected as it is available on the net.
I only miss that information in the manual.
Product was easy to use
YES OF COURSE!
Support was available
YES but we fail with that adapter board...
The price to performance ratio was good
Hard to say, as I can’t complain on performance,
the price for perfectly packed set of 8 modules
accompanied with adapter board, seems to be not very high
ROHM - ROHM Semiconductor -https://www.rohm.com/
Arduino papers and website - Arduino - https://www.arduino.cc/
Thank you again for selecting me as the roadtester.
Marek
Top Comments
Nice road test report.
DAB
Good roadtest review. I like how you correlated your measurements with other outside sensors/sources of data (especially the barometer). A lot of people have had similar experiences with other temperature…