Rohm SensorShield-EVK-003 (Arduino Compatible) - Review

Table of contents

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


Summary of parameters and features of the kit

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”

image 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.”


Available papers and documentation review (pdf's links to sites...)


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:

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:


Overall description of testing methods

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...

Installation of ROHM Sensor Board software and tests

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:







Short description of Arduino world

Arduino modules - image

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: besides internet is full od descriptions, examples advises etc...

Presentation of software used in the roadtest

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. “

Well described, with fantastic support and user forums


Compatibility with other development boards: Raspberry


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


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.


ROHM modules exercise tests pages


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:  ( )


Review of “Sensor Evaluation Board”

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.

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


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


Main tests of all modules

Accelerometer    KX224-1053

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!



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:


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


    Serial.write(" tilt= ");


    Serial.println(" deg ");


logs from rotation around Y axis 360 deg



ALS Ambient Light Sensor/ Proximity Sensor     RPR-0521RS

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



RPR-0521RS (Ambient Light) = 0.00 [lx]


Proximity readouts evaluation:

38cm:  1

30cm:  2















1-2500 / near

~0-4000 / near

Barometric Pressure     BM1383AGLV

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:



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!


Colour Sensor    BH1749NUC

protocol: i2c



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



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


Geomagnetic Sensor/ Magnetometer    BM1422AGMV

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]


BM1422AGMV XDATA=-18.750[uT]

BM1422AGMV YDATA=-5.292[uT]

BM1422AGMV ZDATA=-87.625[uT]


BM1422AGMV XDATA=-40.708[uT]

BM1422AGMV YDATA=-28.500[uT]

BM1422AGMV ZDATA=-88.542[uT]


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


Hall Effect Sensor     BD7411G


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


“BD7411G Magnet field Detect!”

Appeared on the terminal

I experimented also with stronger magnets

Dut the range of 1cm remained as threshold

Optical Sensor for Heart Rate Monitor   BH1790GLC
























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.

Temperature SensorBD1020HFV

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!


Cloud data storage: thingspeak 8266 WiFi boards etc…


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:




Check of general system immunity

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.


Mechanical issue quality of implementation,


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 price

The kit is available for around £118.00(Farnell) 135,15 € (Mouser)

Summary of results

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


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



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 -

Arduino papers and website           -     Arduino      -

Thank you again for selecting me as the roadtester.