Week #2 – Bricked laptop, testing functions and a little local community building

The past week was my second one at GSoC 13.

To be honest, as compared to the first week, this week was slow. I lost the use of laptop, for some hitherto unknown reasons. It was a Dell Vostro 1520, which I was using for almost 4 years now. I still have no clue as to what happened, but I suspect a motherboard failure here (there was no LED activity at all).
So I spent the entire weekend fretting over that.
Luckily I now have access to another machine (a better one when it comes to specs) with almost everything I will be needing. I installed Ubuntu, instead of my usual Debian, to save time in configuring. I figure I have everything that’s needed now ( git repos, tool chains, ssh keys to devices, etc etc)

Before all of these distractions, I was working on setting up the basics for the blink code. Me and Parav have divided the work amongst ourselves for the blink part. I would be taking care of all the functions that will be required for accessing /sys/ as well as stuff like delay, etc. Also, communication over ssh is something else that I am taking care of.
Parav is working on the pin_mux as well as the Makefile. The makfile part is pretty cool. The aim is to enable anyone to just download the libraries and makefile and let them write code using the arduino like functions in their own IDE ( Emacs, Vim, etc). So basically this is for folks who are not exactly newb to programming in general, but are new to Embedded Linux and the BBB.

The testing part which I mentioned in my last post was good. I found out a few minor errors I’d done in my previous code ( value to be passed to the functions should be a char[] instead of int, among other things). Also, I pushed it here. If anyone would like to test the code, you can just clone the repo, setup ssh keys for your BBB using the instructions in the bash file. And run it as ./send_exec generic_function.c
The code will compile, upload and execute. Right now I have enough functionality to turn on/off a usr_led, export/unexport a gpio pin and set/get its value, direction, etc.
So the next thing I will be working on is the delay function which will allow me to blink a LED. I hope to get this up and running by Wednesday (for the weekly meeting).  Once we have the core functionality up, we can tackle bigger things like pwm, adc, etc.

There exists an Internet of Things meetup in my city (Pune, IN), where Arduino hackers meet to work on awesome projects.
Most of the projects that are done here using the Arduino. But we also have a few Raspberry Pi enthusiasts amongst us.
So this week I gave a small demo of the BeagleBone Black (since I got it last week) and we had a nice discussion about the features of the Black, and the differences between the Arduino, Pi and the Black. I also talked about the userspace-arduino project and how we can use the same IDE and the same code/libraries for programming on the Black.
Some photos

Till next week !


Week #1 – Hardware, read/write sysfs entries and shell scripting

17th to 23rd June was the first week of GSoC.
This week I have been working on setting up a script to compile, upload and execute code over ssh to the BBB.
Apart from that, I wrote some basic C code for reading and writing values to /sys/class/ entries
Raw code is here
I haven’t yet pushed it anywhere, because I am still trying it out on various entries in /sys/ . That will be on the agenda for this week.

This week I received all the hardware that I need to get started with for my work with the arduino-like userspace libraries at BeagleBoard.org.
I’d like to shout-out to David Anders and the guys at CircuitCo for providing us with all the hardware to get going with this *awesome* project.
The fact that we are building a truly generic set of features for Embedded Linux boards inside the Energia ide is pretty mind-blowing, if you think of it. Any board (pcDuino, RaspberryPi, cubie, etc) could modify the work that we do and make it work for them ! So the same old Arduino-like environment will have a whole new plethora of ARM linux boards.
And I also received the GSoC welcome package ! Pretty classy diary Google 🙂 !

The green board is the Bacon cape, which is a really cool way to get started with the interfaces available on the BBB. The black board is the BeagleBone Black.


 Till next week !