# 6LowPAN with the Merkur-Board In for the [[rpi6lowpan]] to be actually usefull it needs to talk to some sensors. The [Merkur Board][0] is open hardware: [[!img merkur-board.jpg size="x150" alt="Merkur-Board"]] It has digital outputs as well as digital, analog and PWM outputs and supports attaching Arduino Grove Modules which should make experiments simple. In order to test thinks I use the [Plant Oberservation Kit][1] set. One uses USB-Serial converter to flash the device. Details on how to connect it are [here][2]. Once the converter is attached to the board it's LED starts to blink (in my case 4 times short, one time long). Once flushed the board can be run on [battery power][3]. * [Details on the different pinouts][4] * [Details on how to flash the device][5] with avrdude * The plant moisture sensor connects to [A5][6] * [Find A5][] on the Grove Board Compiling works like apt-get install avr-libc binutils-avr gcc-avr gdb-avr simulavr avrdude doxygen git clone https://github.com/osdomotics/osd-contiki cd ./osd-contiki/examples/osd/arduino-plantobserving ./run.sh The build software can then be flushed to the device. Note that it uses /dev/ttyUSB0 by default. This needs to be adjusted. When trying the flash the merkur-board with the usual USB-serial converter I see: $ sudo apt-get install avrdude $ cd osd-contiki/examples/osd/arduino-plantobserving $ ./flash.sh /dev/ttyUSB4 INFO: compiling with CoAP-13 avrdude -pm128rfa1 -c arduino -P/dev/ttyUSB4 -b57600 -e -U \ flash:w:arduino-example.osd-merkur.hex:a -U \ eeprom:w:arduino-example.osd-merkur.eep:a avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x72 avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x6c avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xc0 avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x72 avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x6c avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xc0 avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x72 avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x6c avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x72 avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x6c avrdude done. Thank you. Makefile:88: recipe for target 'flash' failed make: *** [flash] Error 1 even if I [ground the reset pin][7] (Pin 3). However if I use a [*FTDI basic breakout*][8] flashing works as expected: .... The flashed firmware uses *channel 26* and *pan_id 0xabcd* by default. This can be seen on the serial output (you can use the same serial converter as for flashing). To read the serial console I've so far used the serial console window from the arduino ide since *screen* doesn't support the 14400 baud used by the merkur-board. While I'm seeing packages looking for a RIPL router send by the merkur-board when using a Raspberry Pi as described in [[here|rpi6lowpan]], I can't ping the board on it's link local address yet. I can also verify that it detects the RIPL router but the device is still not reachable. So let's for now use a second merkur board as [edge-router][]. $ sudo ./tunslip6 -s /dev/ttyUSB4 -B 38400 2001:DB8:c001:f00d::1/64 $ ping6 -c 1 2001:db8:c001:f00d:221:2eff:ff00:347c PING 2001:db8:c001:f00d:221:2eff:ff00:347c(2001:db8:c001:f00d:221:2eff:ff00:347c) from 2001:db8:c001:f00d::1 tun0: 56 data bytes 64 bytes from 2001:db8:c001:f00d:221:2eff:ff00:347c: icmp_seq=1 ttl=63 time=201 ms --- 2001:db8:c001:f00d:221:2eff:ff00:347c ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 201.620/201.620/201.620/0.000 ms $ ./coap-client -m get coap://[2001:db8:c001:f00d:221:2eff:ff00:347c]/.well-known/core v:1 t:CON c:GET i:8ecd {} [ ] ;ct=40,;title="Moisture voltage"v:1 t:CON c:GET i:8ece {} [ ] ;rt=UCUM:"V";ct="0 5" We can now query the moisture sensor using [libcoap]: $ ./coap-client -m get coap://[2001:db8:c001:f00d:221:2eff:ff00:347c]/moisture/v [0]: http://osdwiki.open-entry.com/doku.php/de:projekte:merkur [1]: http://osdwiki.open-entry.com/doku.php/de:projekte:plant_observation_kit [2]: http://osdwiki.open-entry.com/doku.php/de:tutorials:first_steps_arduino_ide [3]: http://osdwiki.open-entry.com/lib/exe/detail.php/de:ideen:merkurknoten.jpg?id=de%3Aideen%3Afirststepsmerkurboard [4]: http://osdwiki.open-entry.com/doku.php/de:projekte:merkur#pinouts [5]: http://osdwiki.open-entry.com/doku.php/en:projekte:bootloader?s[]=flash [6]: http://osdwiki.open-entry.com/doku.php/de:products:merkur_grove_board_4#steckerbelegung [7]: http://www.meetup.com/IoT-Vienna/events/181968432/ [Prolific Pinout]: https://jethomson.files.wordpress.com/2010/02/ca-42_dku-5_pinout.jpg [8]: http://www.open-entry.com/coxcoon/de/Zubehoer/FTDI-Basic-Breakout-3-3V.html [edge-router]: http://osdwiki.open-entry.com/doku.php/de:tutorials:contiki:merkur_board_rpl_usb_router [Find A5]: http://osdwiki.open-entry.com/doku.php/de:products:merkur_grove_board_4 [libcoap]: http://sourceforge.net/projects/libcoap/