USB IO BOARD

Introduction

This is a USB to IO expansion board that provides GPIO/PWM/SPI/UART/I2C/ADC interfaces. It uses a 3.3V/5V compatible PIC18F45K50-QFN USB Microcontroller. It includes 28 pin headers to make it easy to plug into a breadboard or other circuit. It has a bootloader that allows for downloading or upgrading the firmware.

You can find the datasheet for the PIC18F45K50 microcontroller here:


Hardware

The above image provides a brief description of each pin assignment. There are two 14-pin headers (P2, P3), and one 5-pin header (P1), each with 2.54mm (0.1 inch) pitch.

The 5-pin header (P1) can use the PICkit In-Circuit Debugger. See here for more information:

[http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=PG164130 ]

The user can choose either 3.3v (default) or 5v supply by the position of R1 (soldering is required to change). For easy soldering, R1 size is 1608(0603).

Download schematic diagram

Software

You have to install the cross compiler before IDE installation

Cross Compiler

MPLAB C18 v3.43 or higher From Microchip homepage
http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=SW006011

We've also tested C18 v3.47 Standard-Eval Version. It works well.
http://ww1.microchip.com/downloads/en/DeviceDoc/mplabc18-v3.47-windows-eval-installer.exe

In my case, Standard-Eval Version (Free of Charge) was downloaded for my code optimization. It is the trial version and can only be used for 60 days.

IDE

X IDE v1.51 or higher (From Microchip homepage : http://www.microchip.com/pagehandler/en-us/family/mplabx )

We've also tested the latest MPLABX-IDE v2.05. It works well. http://www.microchip.com/mplabx-ide-windows-installer

Writing bootloader with PICKit 3

Header & breadboard connection

To attach it to a breadboard, you must solder two 14-pin headers onto the IO board.
Refer these pictures.

The 5-pin header can be used for bootloader update or in-circuit debugging. You probably don't need this because the firmware can be downloaded via the USB interface.

All 3 headers are included in the package.

Firmware source code & Hex file downloader for Windows OS

[https://github.com/hardkernel/Odroid-USBIO ]

Prebuilt Hex file fw.zip

To enter into firmware update mode, press the switch on the board and plug the USB cable. Bootloader detects the switch while power on process to decide to run the application software or f/w update. The update utility is “HIDBootloader (Windows).exe” which can be found in “/USB/Device - Bootloaders/HID/”.

The EXE file should be found in this file. microchip_solutions_v2012-10-15.zip

Hex file downloader for Linux OS

Do not use mphidflash ! It will break the bootloader !

We don't find any tools for Linux yet. Sorry about that!

Update! :-)

The latest mphidflash version 1.6 works well on a Linux host PC.

http://code.google.com/p/mphidflash/

$ sudo ./mphidflash-1.6-linux-64 -w ./USB_IO_BOARD-20131126.hex -reset
USB HID device found: 28672 bytes free
Device family: PIC18

Erasing...
Writing hex file './USB_IO_BOARD-20131126.hex':........................................................................................................................................................................
Verifying:........................................................................................................................................................................
Resetting device...
 

Example host software source code for Android

simpledemo-androidsoftware.zip

Please note that, this app is compatible with Android 4.0.4 Alpha 4.0 or higher.

Precompiled Android app.

com.microchip.android.basicusbdevicedemo.zip

Unzip it and install with “adb install com.microchip.android.BasicUSBDeviceDemo.apk” command.

To test this app you need to connect a potentiometer (variable resistor) to the RA1 pin as in this picture.

Plug the IO-board to ODROID-X/X2/U/U2/Q/Q2 USB host with a cable and it shows a popup window like this.

You can switch an LED on/off and read a button status as well as ADC input on RA1.

Example host software source code for Ubuntu

Install libusb.

sudo apt-get install libusb-1.0-0-dev

Install python usb library.

git clone https://github.com/walac/pyusb
cd pyusb
sudo python ./setup.py install

Downloads C and python examples.

git clone https://github.com/hardkernel/Odroid-USBIO

This host software is just a simple command line, not X window system like QT and KDE. Connect the IO_board using a micro usb cable to your ubuntu system. Execute the command

cd Odroid-USBIO/usbio/linux

Make & Run C source.

make
sudo usbio

Run python file.

sudo python usb_io_demo.py

For the latest firmware and host python code, please visit [https://github.com/hardkernel/Odroid-USBIO ]

Logical data transfer between IO-board and ODROID

Logical data transfer between IO-board and ODROID is utilized driver-less USB HID protocol.

en/usbioboard.txt · Last modified: 2017/05/20 10:37 by odroid
CC Attribution-Share Alike 3.0 Unported
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0