Hi All!
I am in the process of drafting my proposal for the project, and should be able to finish it in sometime soon now
I am mentioning the major features that I plan to implement, I hope to get some assistance and reviews on the same.
- Create an Arduino-like library using StarterWare.
I plan to develop an library which would utilize the StarterWare Library for accessing the hardware. To begin with, StarterWare provides functions for talking to ADCs, GPIOs, etc and would use this to implement basic functionalities for the GPIO library. Using these functions from Startware, we create the following:
analogRead (using ADCs)
analogWrite (using PWM)
digitalRead, digitalWrite (using GPIOs)
This completes the basic functions that are needed for the work ahead.
Next, we need to develop techniques for these host applications to do the bootload and then establish the USB-serial connection to see output messages.
I plan to use the Linux-USB based boot ( https://github.com/ungureanuvladvictor/BBBlfs ) The host PC would run a bootloader to remotely bootload the device over usb.
For the connection between BBB and host-pc, I plan to have a UART based serial communication, with the host running a serial terminal application like hyperterminal. With this the user can check the working of the functions of our library in good detail.
Next, after GPIO, I plan to add support for devices such as Keyboard and Mouse using this library. This completes the basic functionality of the library.
Now moving to advanced functions. Using the PWM access provided by Starterware, we now add support drivers for Servo motors. Basic speed control for a DC Motor can also be achieved using the ADCs.
We now move to setting up the communication aspects of the library. Here, I plan to add support for SPI, as this enables both two-way and a fast connection mechanism, whose speed and success efficiency is quite satisfactory for major project applications. After SPI, I move to implement a basic function for connecting to Ethernet. This will help connect the library over internet, and a possible future implementation could be a web-page interacting via an app to the BBB, and we could see outputs of the functions of the library on this page.
As an extension, we can add support for some sensors (as suggested by Jason) like adding support for bluetooth and Xigbee connectivity. Also some other basic sensors for visual and ir. We could add GPS support but I am not sure if it is possible as a part of this project.
This completes the library.
- Create Support for BeagleBone Black on Energia.
We would create applications using our library on energia and hence introduce support for a new board (AM335X of the BBB). Also instead of using the CCSv5 IDE for starterware, we would use it on gcc (linaro toolchain) and hence it would make this project even more suitable for the open source community.
The end result would be to create a Makefile structure (similar to http://elinux.org/Userspace_Arduino) but for support through Energia. Thus, we would have given a loading functionality for our library.
- Basic Documentation for Library
The project would also involve creating basic documentation about the HowTos of the library and code samples. I could make a github repo for the documentations, as suggested by Victor MV. This would make the project complete and hence would be extremely helpful for the whole of our community.
This is what I plan to achieve as a part of the project. It would be great to have comments and reviews from the community.
Regards,
Naman Govil
(electrobuz)