getting started with beaglebone black

Hello BB experts,

I recently purchased my first Beaglebone Black and cant wait to get started.
Have mostly worked on bare-metal microcontroller projects mostly involving close loop motor control applications.I would like to step into the world of operating systems(especially Linux) and decided that i would use the beagle bone black as the starting platform.
My ultimate aim is to develop an On-grid/Grid tied inverter using the Beaglebone black.

I have a couple of questions and would be gratefull if someone points me in the right direction.
1.Having worked mostly in c/c++ and assembly,is it a good idea to stick to the same languages or i am better off programming in a different language like python,Java etc?
2.How easy it it to intergrate the software to access the hardware,i mean are most of the drivers already written and are they easily avalable?I plan to intergrate an two slave MCUs via SPI,and some sensors via I2C bus.
3.Is it possible to use the PRUs of the Sitara controller as a parallel port for some high speed data transfer?like getting data from a fast ADC or writing to a DAC?
Also interface a 20x4 LCD display via the GPIO ports.

I would like some starting directions as to how to proceed with the above with the BBB.
I fould some tutorials on using the beagle bone black here.

Many thank,
Arun

Hello Arun,

Congratulations on buying your first BBB :slight_smile:

I am also a beginner but will try to share my experience so far:

1.Having worked mostly in c/c++ and assembly,is it a good idea to stick to the same languages or i am better off programming in a different language like python,Java etc?
HK: If planning to run debain OS and good knowledge in C,C++, I would suggest to stick with the same.
Coming from same bare metal background, It was important for me to have a paradigm shift to work on a fully matured embedded OS. All you can do with bare metal can be done with OS but in a different way.
Having said that, I would suggest that a strong background with Linux fundamentals.

2.How easy it it to intergrate the software to access the hardware,i mean are most of the drivers already written and are they easily avalable?I plan to intergrate an two slave MCUs via SPI,and some sensors via I2C bus.
HK: Once you have mastered Linux internals a quick google search will be help you a long way.
I have recently written a hobby program to interact with a temprature sensor using I2C protocol, it is very basic but you can have a look to get an idea of programming involved.
https://github.com/hemantkapoor/temperatureSensor

3.Is it possible to use the PRUs of the Sitara controller as a parallel port for some high speed data transfer?like getting data from a fast ADC or writing to a DAC?
HK: Yes there is a way but I haven’t explored it myself.

Also interface a 20x4 LCD display via the GPIO ports.
HK: With Linux chances are you already will have a driver for this and you can create custom Linux kernel to include the driver. And interfacing with LCD will be a simple matter of opening a file and writing to it…

Remember with Linux everything thins is a file…

This is just a beginner sharing his expirience, I am sure there are experts in this forum who are very helpful and could guide you for specific issues.

Also interface a 20x4 LCD display via the GPIO ports.

I had some fun and success in the past getting LCD screens working on my Beaglebones.

First up were some approximately 1" square (OLED096 and OLED112) Grove twigs that connected via I2C.

https://www.ccoderun.ca/sg++/api/classSG_1_1CommonOLED.html#details

Scroll down to see the picture in this link:

https://www.ccoderun.ca/sg++/api/classSG_1_1OLED112.html#details

This is one of the 128 x 64 pixel OLED112 running on my Beaglebone Green.

Then I also ordered some 5" and 7" touchscreen LCDs, such as these ones: 5 Inch Seeed Studio BeagleBone® Green LCD Cape with Resistive Touch - Seeed Studio

Linux recognized these on bootup, so it was relatively easy to use. I also got the touch screen working which was nice. Some of the buttons on the bottom only worked on some devices – I don’t recall the details. I think the buttons worked on Beaglebone Green, but not all of them worked on Beaglebone Green Wireless. The manufacturer was looking for a solution, and shortly afterwards the project I was working on didn’t get funded so I never followed up to see if it was solved.

Stéphane

Thanks Hemant for your reply.
I have been reading up on linux systems for now before exploring the kernel,which actually interfaces the hardware with the user defined space.Tried out a few file handling examples.

Spent most of my time setting up a cross compliling platform from my computer to the board with eclipse.Found it really helpfull!
http://derekmolloy.ie/beaglebone/setting-up-eclipse-on-the-beaglebone-for-c-development/

I managed to get the LEDs blinking. :slight_smile: which was really satisfactory!

I am currently trying to get the BBB to read a few ADC signals via SPI.Will post the complete source on Github once i have written it.