Mihini/Developer Kit
This page collect ideas for what will eventually become an official Mihini/M2MIWG developer kit. The aim of such a kit is to provide all the required H/W for running and evaluating Mihini. It has to be available from virtually any electronics reseller, and at a very affordable price (< 50USD?)
Features
- The dev. kit must be repurposable, i.e it must be able to act as a Modbus device, CAN Bus device, ... depending on the solution the developer wants to prototype.
- The dev. kit must be available both in the form of a kit (cheapest form), and pre-assembled
- The dev. kit must include enough built-in physical inputs and outputs to make it more useful than just "push the button/blink a LED". List of interesting -yet relatively cheap- inputs include: temperature sensor, light sensor, (heartbeat sensor??). Outputs: LCD display, buzzer (?), ...
- The dev. kit should have a handful of Grove-like (http://www.seeedstudio.com/wiki/GROVE_System) connectors so as it is possible to plug external sensors easily (e.g. an heart-rate earclip)
- The dev. kit must have a "bee" socket in order to allow a Zigbee, Bluetooth, RF... module to be added
- The dev. kit should be made of electronic components widely available
- The dev. kit's "simulating programs" must be open source
Proposed solution
In order to propose a repurposable dev. kit, it would be good to rely on an Arduino coupled to a dedicated shield giving serial (is Arduino USB serial enough or do we want RS-232/DB9 too?) connectivity, holding a temperature and humidity sensor, and allowing to connect external buttons and display using a Grove connector.
BOM
Item | Qty | Total Cost (USD) |
---|---|---|
Arduino Leonardo | 1x | 25.00 |
Clear Acrylic faces, engraved with m2m.eclipse.org logo | 2x | 6.00 |
Custom PCB | 1x | 2.50(?) |
Plastic spacers | 4x | TBD |
Temperature sensor | 1x | 1.50 |
Light sensor (photocell) | 1x | 1.50 |
Grove universal 4-pin connectors | 5x | 0.50 |
TOTAL | 37.00 (?) |
Initial prototype
A first version will be demoed at EclipseCon Europe 2012. It is a bare Arduino board that runs a sketch that puts it in Modbus slave mode, making available the 6 analog inputs (A0-A5) in holding registers 0-5. The state of a button plugged on a digital input of the Arduino is made available on the holding register 7. The prototype is used in a "smart garden" use case:
- analog input A0 has a humidity sensor attached to it,
- analog input A1 has a temperature sensor,
- digital input D7 has a push button.
The dev. kit exposes raw data (values between 0 and 1023 for the analog inputs, 0 or 1 for the digital input) as a Modbus slave with ID #1.
- Register 0: Analog input 0, 2 bytes between 0 and 1023
- Register 1: Analog input 1, 2 bytes between 0 and 1023
- Register 2: Analog input 2, 2 bytes between 0 and 1023
- Register 3: Analog input 3, 2 bytes between 0 and 1023
- Register 4: Analog input 4, 2 bytes between 0 and 1023
- Register 5: Analog input 5, 2 bytes between 0 and 1023
- Register 6: Digital output 13 (Arduino LED), 2 bytes to control Digital output 13, 0 (LOW) or 1 (HIGH)
- Register 7: Digital input 7, 2 bytes to know the state of Digital input 7, 0 (LOW) or 1 (HIGH)