Extend Wiring/Process libraries to MinnowBoard Max

 '''PAGE UNDER CONSTRUCTION.

This wiki page is to document the initial development process of this project. Most of the contents are without being tested in the concerned board.

This same page might evolve from simple idea page to complete documentation of this project. ''' Minnowboard:GSoC2015 Idea Page

The Wiring/Process combination often referred to generically as the "Arduino" style programming environment was originally extended to platforms such as the Galileo development platform running Linux. Extending this environment to MinnowBoard Max would provide a great platform for education and development. Extending this program means Arduino users can start using the power of single board computer without putting any additional efforts as they will be working in a very familiar environment.

=Building the Arduino development environment from source= The instructions for building the Arduino development environment from source is available here.

Windows

 * Cygwin
 * Java JDK
 * ant

Mac OS X

 * Apple's Developer Tools

Linux

 * Java SDK
 * avr-libc
 * gcc-avr
 * gdb-avr
 * g++
 * make
 * ant

=Initial development= The starting point of this project will be from the Intel Galileo's customized Arduino IDE (Source Code).

First task is to identify what might need to be changed in the source code to extend this environment to Minnowboard Max.

Things need to be changed
In Galileo Arduino IDE source, most of the changes are to be made in hardware --> arduino --> x86 directory. The x86 section is pretty generic, so we have to identify what sections are specifically geared towards Galileo. So it can be ported to Max.

Few of those sections are:
 * cores
 * libraries
 * variants

First priority will be to define the pin mapping of minnowboard max, which are to be changed in 'variants' section and few sections of 'cores'. 'sysfs' section in cores(hardware --> arduino --> x86 --> cores --> arduino) might be changed according to GPIO sysfs interface of max.

TODO

 * The Linux GPIO numbering for kernel <=3.17 and kernel >=3.18 are different. So different variants might be needed accordingly.