Example MikroBus Rotary on the DEV-IOT6U

From wiki.emacinc.com
Jump to: navigation, search
TODO: {{#todo:SEOKWREV (01.02.14-14:09->JG+);(01.02.14-14:30->MD+);(01.02.14-16:15->MG+);(04.04.14-15:40->BS+)|Jgreene|oe 4,oe 5,jg,md,SEOKWREV,mg,bs}}

This is a guide to the MikroBus Rotary Demo on the DEV-IOT6U.

Do to a design flaw in the MikroBus Rotary B Click, the card does not allow another SPI device to be present on the SPI Bus. The SoM-IMX6U uses the SPI Bus and the presence of MikroBus Rotary B Card prohibits the SOM from booting. To alleviate this issue, the pin labeled “SDO” must be cut and jumpers JB5 and JB6 on the Dev Kit Carrier Board (SoM-112) must be set to 3P3 (see figures below)

General Information

Hardware Requirements

  • The DEV-IOT6U Development Kit

Software Requirments

These tools should already be installed if you installed the EMAC SDK using the automatic installer.

  • EMAC Qt Creator
  • GNU make
  • CMake
  • Minicom


If you haven't already, please review the "getting started" page for the DEV-IOT6U. EMAC_OE_SDK will need to be installed and serial and network connections will need to be established between the developer machine and the target device. See the Serial Connections or Network Connections page for more information on how to connect to the target EMAC product using a serial port or Ethernet connection.

  • Follow the setup described in the getting started page for the DEV-IOT6U
  • Open a text editor and copy paste the provided .c file: dev-iot6u_mikrobus_demo.c
  • Save as "dev-iot6u_mikrobus_demo.c"
  • Open a terminal session with the DEV-IOT6U through Minicom
  • Login to the DEV-IOT6U and run command "ifconfig" to retrieve the device's IP Address
    • somimx6ul login: root
    • password: emac_inc
  • In a second terminal window, navigate to where the dev-iot6u_mikrobus_demo.c file was saved
  • Run the following commands with the device's IP and SDK version substituted:
source /opt/emac/5.X/environment-setup-armv5e-emac-linux-gnueabi        // update SDK version (found with "ls /opt/emac")
$CC dev-iot6u_mikrobus_demo.c -o dev-iot6u_mikrobus_demo -lgpiod
scp dev-iot6u_mikrobus_demo root@xxx.x.x.xxx:                           // update IP address
  • Enter the device password: emac_inc
  • The terminal will give a a success message to let you know that the file was securely copied.
  • The "ls" command on the device will show that the executable exists on the device.

Usage and Behavior

Using the Demo

In a terminal session with the DEV-IOT6U enter the following to run the demo:


The MikroBus Rotary dial may then be turned, and with each click, the lights will increment in binary. One side of the card's lights are associated with one of the card's registers, likewise for the other set of lights. The terminal window will also display back the number of "clicks" that have been registered by the card

Whenever the rotary dial is turned, each "click" produces a pulse that is sent through its encoder A (ENC_A) pin and is registered as an event by the program. The demo program tracks the number of clicks received, incrementing a value that is seen in the terminal. The number of ticks is then used as data to control the number of LEDs that are turned on. In the program, the number of clicks goes through a modulus 128 operation before being output as data for the LEDs. The handling of events and assignment of the data are accomplished in the handle_event() function in the demo .c file.


This example is a demonstration of the use of the Mikro Bus on the DEV-IOT6U.

Related Links