My thoughts for PyBBIO this summer

Hi there,
I’m Alaa Agwa , A 4th computer engineering student. A week ago I started writing what I’m going to do this summer with beaglebone community and I ended up with contributing to PyBBIO as I’ve used Arduino for the past two years and has a good experience with python. here’s what I’m going to do during this summer:

adding SPI library by making a python wrapper for a C code that makes the whole process . here’s one that talks about that in this blog.

adding CAN library after finishing SPI library as in canduino - an Arduino library for implementing CAN - that’s built over the SPI library - link -

adding peripherals like temperature sensors , gyro , MQ gas sensors series and IR will be done by interfacing them with serial communication just like Arduino. LCDs will be implemented with GLUT like in simavr parts .

any comments for what I’m planning for ?

There are 4 students doing almost the same thing - though CAN, IR may be new (I don’t know whether it has been proposed by anyone before)

The AM3359 has a CAN module built-in, so there’s no need to use an external SPI CAN controller like canduino does. The kernel already has CAN drivers for it, so once it’s enabled through the Device Tree it can be controlled through tools like can-utils. A CAN library in PyBIBO would probably only need to consist of loading a device tree overlay to enable it, then some wrapper code for something like python-can (https://bitbucket.org/hardbyte/python-can). I think the big question to address here is: what would be the benefit of having a CAN library in PYBBIO as opposed to just importing and using python-can directly?

“LCDs will be implemented with GLUT like in simavr parts .”
Can you elaborate? Isn’t GLUT used to simulate LCDs in simavr?

Peripheral support libraries are a great because they make the BeagleBone much more approachable for people new to hardware. A library for the MQ gas sensors would be awesome because those things can be pretty annoying to get any sort of reasonable data out of.

What do you mean by IR? If you’re referring to IR remotes that’s already implemented in the kernel with LIRC, though a library to fire a user callback on a remote key press could be cool…