project: Documentation for BeagleBone and BeagleBone Black

Hi!

I am Laszlo Benke, from Hungary, Budapest. I would like to participate in GSOC 2014. My mayor is electrical engineer (M.Sc.). I design basic circuits, I was dealing with STM32, PSoC and Arduino systems. I had a big project with Kinect (robot arm controlling by hand movement). Nowadays mostly I am working with C# and PLC systems.
In university I had some training with Beageboard (embedded web client and heating controlling)

I am interresting this project: Documentation for BeagleBone and BeagleBone Black.
Could you help me and answer some questions? Firstly: unfortunately in Hungary the Beaglebone shipping only available again end of the March. How to get it soon?
On the other hand I have an own idea (as project) as well, but I do not know what conditions must be pass.

Thank you for your answer!

Best regards,
Laszlo Benke

Hi!

I am Laszlo Benke, from Hungary, Budapest. I would like to participate in GSOC 2014. My mayor is electrical engineer (M.Sc.). I design basic circuits, I was dealing with STM32, PSoC and Arduino systems. I had a big project with Kinect (robot arm controlling by hand movement). Nowadays mostly I am working with C# and PLC systems.
In university I had some training with Beageboard (embedded web client and heating controlling)

I am interresting this project: Documentation for BeagleBone and BeagleBone Black.
Could you help me and answer some questions? Firstly: unfortunately in Hungary the Beaglebone shipping only available again end of the March. How to get it soon?

When we approve projects, I will ship boards immediately. I have a few available, though most are used in fine condition.

On the other hand I have an own idea (as project) as well, but I do not know what conditions must be pass.

The most critical part is getting potential mentors interested in your project. You then need to convince us as a group that your project is valuable and you know how to complete it successfully.

I do not know exactly, but I think there is no built in device (additional BeagleBone) that can communicate digital protocols (such I2C, SPI, UART…). So my idea is that, I will use accelerometers, thermometers and other devices. Is there any suggestions which device I should use?
I think, in the wiki page there will be a simple and a complex example each protocol.

Are there any preliminary task to write a proposal?

Thank you for the help!

Best regards,
Laszlo Benke

I do not know exactly, but I think there is no built in device (additional BeagleBone) that can communicate digital protocols (such I2C, SPI, UART…). So my idea is that, I will use accelerometers, thermometers and other devices. Is there any suggestions which device I should use?

I just got a set of these[1] from Tigal. Even if without using their specific breakout boards, the devices they’ve chosen provide a good set.

There is a project proposal to provide some kind of firmware load for the PRUs to monitor these busses as a logic analyzer (and perhaps stimulus generator) to help people learn about these various busses.

I think, in the wiki page there will be a simple and a complex example each protocol.

We are trying to make the interface more wizard-like and use github.com for maintaining the tutorials.

For teaching people to use these busses, you should integrate your materials into http://github.com/beagleboard/bone101 and make sure it includes an interactive portion where they are using code on the pages to activate and monitor the busses.

Are there any preliminary task to write a proposal?

We’ve been asking students to perform a cross-compilation task as outlined in the proposal template. This is just to make sure you know how people typically work with an embedded device and not all that relevant to the project you are looking to execute. Still, completing it is in your favor.

Thank you for the help!

Best regards,
Laszlo Benke

[1] https://www.tigal.com//product.asp?pid=3651

If I would like to do the Documentation for BeagleBone and BeagleBone Black, then the main purpose should be that I will upgrade this site: http://www.elinux.org/BeagleBone_Community?
And of course made example busses comm. and device jointing.

I do not understand exactly what did you mean this sentence:
“There is a project proposal to provide some kind of firmware load for the PRUs to monitor these busses as a logic analyzer (and perhaps stimulus generator) to help people learn about these various busses.”

  • so should I make a proposal with firmware load for PRU project?

Is the bonescrip-using is necessary when I am making any beagleboard project?

I made the cross compile task. Can I attach in a new message (in this thread)? If no, then where to?

Thanks for help!

If I would like to do the Documentation for BeagleBone and BeagleBone Black, then the main purpose should be that I will upgrade this site: http://www.elinux.org/BeagleBone_Community?
And of course made example busses comm. and device jointing.

Any project accepted needs to be primarily a coding project, not a documentation project. Providing associated documentation on that wiki is strongly desired, but writing code is required. Editing the documentation that ships with the board provides a solution to make it a coding project. That documentation is at http://github.com/beagleboard/bone101.

I do not understand exactly what did you mean this sentence:
“There is a project proposal to provide some kind of firmware load for the PRUs to monitor these busses as a logic analyzer (and perhaps stimulus generator) to help people learn about these various busses.”

  • so should I make a proposal with firmware load for PRU project?

Not necessarily. Just that you might consider that a future extension to aide in the learning you are attempting to foster. This is just meant to help inspire your idea and let you know what types of things have been imagined by the community.

Anyway of providing stimulus for learning the bus technologies is fine—as long as there is a functional code component that is central to the project.

Is the bonescrip-using is necessary when I am making any beagleboard project?

No, but bone101 specifically documents BoneScript and provides the in-page interactivity. These make it a coding project rather than a documentation project.

I made the cross compile task. Can I attach in a new message (in this thread)? If no, then where to?

That’d be fine or the thread dedicated to the uploads or as a github pull request.

  • Who will be the mentor? (project: Documentation for BeagleBone and BeagleBone Black)

  • I think, I am going to write a stimulus generator that simulate the real joint hardware (like thermometer, accelerometer and other recommended devices). I am document the ideal, typical and maybe wrong signal shape that can help other development.

  • My ideas, I’m curious about your opinion:

  • I would like to make an UART test example (I have a lot of experience with DMX and Modbus communication, but there will be other communication protocol), and a PC program, that can communicate and can modelling the signal shape. If I will receive devices, then I will make a test program too.

  • I2C: a basic thermometer and EEPROM communicate preview

  • SPI: accelerometer or an ADC device

  • PWM: typical LED brightness control, and motor controlling.

  • ADC: compare the joint ADC (SPI compatible) device.

  • USB: if I have enough time, then I would like to connect to a Kinect sensor. If you recommend an easier task, then will be e.g.: mouse or keyboard communicate example.- Am I on the right way? Are these enough or to less?

  • Can this example use up the PRU or I should choose another examples?

  • What does it mean “optimization” in the project description? Using the PRU if it is possible.

  • The current site (http://www.elinux.org/BeagleBone_Community) contains only links in tutorial and video topics. Maybe I could make a different page for this and collect the digital protocol on that.

Attached the binary file.
Please answer the previous mail, because I would like to make a good
proposal and I need you honest opinion. (Apologize for my unpatient,
but I can feel "out of time"..)

Thank you for your help!

helloworld.bin (572 KB)

  • Who will be the mentor? (project: Documentation for BeagleBone and BeagleBone Black)

For updating bone101, I’m likely to be the primary mentor. When the mentors meet to discuss the projects, we might identify a different primary mentor and will certainly be identifying backup mentors.

In general, I will answer with respect to this project idea: http://elinux.org/BeagleBoard/GSoC/Ideas#BoneScript_web_pages_with_live-running_examples_and_documentation

Matt and Hunyue have a rather different but useful proposal at http://elinux.org/BeagleBoard/GSoC/Ideas#Documentation_for_BeagleBone_and_BeagleBone_Black, but I have concerns it is overly focused on documentation and not open source coding. Hopefully they will reply, perhaps taking a leadership role that sends you in a completely different direction—and that is fine.

  • I think, I am going to write a stimulus generator that simulate the real joint hardware (like thermometer, accelerometer and other recommended devices). I am document the ideal, typical and maybe wrong signal shape that can help other development.

Sounds like it might get a bit complicated. What type of hardware would you design for this? Does indeed sound like it’d be useful.

  • My ideas, I’m curious about your opinion:
  • I would like to make an UART test example (I have a lot of experience with DMX and Modbus communication, but there will be other communication protocol), and a PC program, that can communicate and can modelling the signal shape. If I will receive devices, then I will make a test program too.

You will certainly get a BeagleBone Black, but we won’t be providing any other hardware than that.

  • I2C: a basic thermometer and EEPROM communicate preview
  • SPI: accelerometer or an ADC device
  • PWM: typical LED brightness control, and motor controlling.
  • ADC: compare the joint ADC (SPI compatible) device.

Also need to show using the on-board ADC as we have done with TMP36 devices and potentiometers.

You’ve seen BeagleBoard.org - BoneScript and http://github.com/beagleboard/bone101 and reviewed them, right? I’d expect you to be looking at all those existing tutorials forward, but cleaning up the presentation, content and functionality.

  • USB: if I have enough time, then I would like to connect to a Kinect sensor. If you recommend an easier task, then will be e.g.: mouse or keyboard communicate example.

Kinect would be great. A first step would be integrating webcam frame grabbing into presenting the captured images on a web page.

  • Am I on the right way? Are these enough or to less?

I think more consideration needs to go into the UI and I’ve had quite a bit of discussion with Diego in particular about how we’d want to make creating these tutorials something anyone can contribute to using gists.

  • Can this example use up the PRU or I should choose another examples?

Not sure what you mean here. I think you can load PRU firmware for the tutorials.

  • What does it mean “optimization” in the project description? Using the PRU if it is possible.

k, now I know you are talking about Matt and Hunyue’s idea. It means taking code and moving it to a dedicated processor such that it would run faster.

Check out:

Especially the comments.

Unfortunately, Matt and Hunyue did not send me any messages (however I send to him).

Yes, I checked the http://beagleboard.org/support/BoneScript and http://github.com/beagleboard/bone101. I can hardly wait to try all functions with BBB.

And what about mixing the two project like this:

  • The stimulus generator will simulate only 1 or 2 device per protocols. E.g.: I2C. In the website the user set the temperature and the generator simulate the suitable I2C signals and the EEPROM (only 1 or 2 bytes) store numbers and if the user send read or write message via I2C, then the simulator modify the appropriate virtual cells. It makes easier for developers to work even if you have not dealt with this kind of programming tools and they just do not have a real devices.

  • The SPI, PWM and the ADC (TMP36 and potentiometer) will be similar. USB might be the Kinect solution.

  • And I will speak to Matt and Hunyue to improve the community page.

  • Is Diego the other candidate? If yes, is it possible to cooperate with his? Do you recommend this idea?

  • What do you thing: the PRU complementary is compulsary, or optional?

Could you help me with this: how to send proposal in the google-melagne site? I do not have any role (no role) with beagleboard. Did I miss something?
I read it is not enough to send to you my proposal, it is have to upload gsoc site (https://www.google-melange.com/)

Thanks for the detailed answers!

I'll give the advice I've been giving others.... you might not want to
top-post. It makes it difficult to remember where we are in the
conversation.

Unfortunately, Matt and Hunyue did not send me any messages (however I send
to him).

Yes, I checked the BeagleBoard.org - BoneScript and
http://github.com/beagleboard/bone101. I can hardly wait to try all
functions with BBB.

And what about mixing the two project like this:

The stimulus generator will simulate only 1 or 2 device per protocols. E.g.:
I2C. In the website the user set the temperature and the generator simulate
the suitable I2C signals and the EEPROM (only 1 or 2 bytes) store numbers
and if the user send read or write message via I2C, then the simulator
modify the appropriate virtual cells. It makes easier for developers to work
even if you have not dealt with this kind of programming tools and they just
do not have a real devices.

What will generate the stimulus? External MCU? PRU?

The SPI, PWM and the ADC (TMP36 and potentiometer) will be similar. USB
might be the Kinect solution.

Not sure how that plays into my previous response.

And I will speak to Matt and Hunyue to improve the community page.
Is Diego the other candidate? If yes, is it possible to cooperate with his?
Do you recommend this idea?

Yes, he's another candidate. Cooperation is possible, but we are
limited by mentors.

What do you thing: the PRU complementary is compulsary, or optional?

Many mentors are interested in supporting a PRU project. One is
focused around a logic analyzer. I think that would be a great
project. It could be combined with this or in conjuction. It is up to
you to engage and produce a viable project proposal/plan.

Could you help me with this: how to send proposal in the google-melagne
site? I do not have any role (no role) with beagleboard. Did I miss
something?

Asking for a 'role' isn't what you want to do. Read the FAQ and figure
out as other students have to submit a proposal:

I read it is not enough to send to you my proposal, it is have to upload
gsoc site (https://www.google-melange.com/)

Correct, proposals are submitted to melange by Friday per the
timeline. Getting feedback here before submission is good.

I'll give the advice I've been giving others.... you might not want to
top-post. It makes it difficult to remember where we are in the
conversation.

Sorry for the straggling.

> Unfortunately, Matt and Hunyue did not send me any messages (however I
send
> to him).
>
> Yes, I checked the http://beagleboard.org/support/BoneScript and
> http://github.com/beagleboard/bone101. I can hardly wait to try all
> functions with BBB.
>
> And what about mixing the two project like this:
>
>
> The stimulus generator will simulate only 1 or 2 device per protocols.
E.g.:
> I2C. In the website the user set the temperature and the generator
simulate
> the suitable I2C signals and the EEPROM (only 1 or 2 bytes) store numbers
> and if the user send read or write message via I2C, then the simulator
> modify the appropriate virtual cells. It makes easier for developers to
work
> even if you have not dealt with this kind of programming tools and they
just
> do not have a real devices.

What will generate the stimulus? External MCU? PRU?

Generate external device signals. Main purpose is to test the developer the
protocol functions somehow (without real device). Maybe I could do with
pin-feedback (using 2 bus-channel) and the input channel is simulated via
user settings. This settings confiurable via webpage.

> The SPI, PWM and the ADC (TMP36 and potentiometer) will be similar. USB
> might be the Kinect solution.

Not sure how that plays into my previous response.

> And I will speak to Matt and Hunyue to improve the community page.
> Is Diego the other candidate? If yes, is it possible to cooperate with
his?
> Do you recommend this idea?

Yes, he's another candidate. Cooperation is possible, but we are
limited by mentors.

> What do you thing: the PRU complementary is compulsary, or optional?

Many mentors are interested in supporting a PRU project. One is
focused around a logic analyzer. I think that would be a great
project. It could be combined with this or in conjuction. It is up to
you to engage and produce a viable project proposal/plan.

I see.

>
> Could you help me with this: how to send proposal in the google-melagne
> site? I do not have any role (no role) with beagleboard. Did I miss
> something?

Asking for a 'role' isn't what you want to do. Read the FAQ and figure
out as other students have to submit a proposal:

http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2014/help_page

There was a problem with my account, so registrate another one. This one
works good.

I’ll give the advice I’ve been giving others… you might not want to
top-post. It makes it difficult to remember where we are in the
conversation.

Sorry for the straggling.

Unfortunately, Matt and Hunyue did not send me any messages (however I send
to him).

Yes, I checked the http://beagleboard.org/support/BoneScript and
http://github.com/beagleboard/bone101. I can hardly wait to try all
functions with BBB.

And what about mixing the two project like this:

The stimulus generator will simulate only 1 or 2 device per protocols. E.g.:
I2C. In the website the user set the temperature and the generator simulate
the suitable I2C signals and the EEPROM (only 1 or 2 bytes) store numbers
and if the user send read or write message via I2C, then the simulator
modify the appropriate virtual cells. It makes easier for developers to work
even if you have not dealt with this kind of programming tools and they just
do not have a real devices.

What will generate the stimulus? External MCU? PRU?

Generate external device signals. Main purpose is to test the developer the protocol functions somehow (without real device). Maybe I could do with pin-feedback (using 2 bus-channel) and the input channel is simulated via user settings. This settings confiurable via webpage.

I understand the purpose and didn’t ask why, but I don’t know what will be generating the stimulus. Using loop-back is fine, but what peripherals will you loop-back?

The SPI, PWM and the ADC (TMP36 and potentiometer) will be similar. USB
might be the Kinect solution.

Not sure how that plays into my previous response.

And I will speak to Matt and Hunyue to improve the community page.
Is Diego the other candidate? If yes, is it possible to cooperate with his?
Do you recommend this idea?

Yes, he’s another candidate. Cooperation is possible, but we are
limited by mentors.

What do you thing: the PRU complementary is compulsary, or optional?

Many mentors are interested in supporting a PRU project. One is
focused around a logic analyzer. I think that would be a great
project. It could be combined with this or in conjuction. It is up to
you to engage and produce a viable project proposal/plan.

I see.

Could you help me with this: how to send proposal in the google-melagne
site? I do not have any role (no role) with beagleboard. Did I miss
something?

Asking for a ‘role’ isn’t what you want to do. Read the FAQ and figure
out as other students have to submit a proposal:
http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2014/help_page

There was a problem with my account, so registrate another one. This one works good.

Great.

I'll give the advice I've been giving others.... you might not want to

top-post. It makes it difficult to remember where we are in the
conversation.

Sorry for the straggling.

> Unfortunately, Matt and Hunyue did not send me any messages (however I
send
> to him).
>
> Yes, I checked the http://beagleboard.org/support/BoneScript and
> http://github.com/beagleboard/bone101. I can hardly wait to try all
> functions with BBB.
>
> And what about mixing the two project like this:
>
>
> The stimulus generator will simulate only 1 or 2 device per protocols.
E.g.:
> I2C. In the website the user set the temperature and the generator
simulate
> the suitable I2C signals and the EEPROM (only 1 or 2 bytes) store
numbers
> and if the user send read or write message via I2C, then the simulator
> modify the appropriate virtual cells. It makes easier for developers
to work
> even if you have not dealt with this kind of programming tools and
they just
> do not have a real devices.

What will generate the stimulus? External MCU? PRU?

Generate external device signals. Main purpose is to test the developer
the protocol functions somehow (without real device). Maybe I could do with
pin-feedback (using 2 bus-channel) and the input channel is simulated via
user settings. This settings confiurable via webpage.

I understand the purpose and didn't ask *why*, but I don't know *what*
will be generating the stimulus. Using loop-back is fine, but what
peripherals will you loop-back?

A program module (=simulated module) in the beagleboard generate the
signals (e.g.: send appropriate I2C data if receive request and in this
situation the request is from same device). It enough the pin-to-pin
connecting like loop-back. And the program module communicate the webpage
via bonescript. In the webpage (user-friendly gui) you can set the the
temperature (if the device simulating is the thermometer) and memory
content (EEPROM) etc... (more digital protocols).

If it is possible, then I could try to show the sent and received signals
(like time-diagram) for both side (simulated and the user module). It is
important: the user module can be wrong and this feature help to detect the
timing or data errors.

I little worry about how to store the signals, but I think the lower
programming level can help me. Any suggestions?

I’ll give the advice I’ve been giving others… you might not want to
top-post. It makes it difficult to remember where we are in the
conversation.

Sorry for the straggling.

Unfortunately, Matt and Hunyue did not send me any messages (however I send
to him).

Yes, I checked the http://beagleboard.org/support/BoneScript and
http://github.com/beagleboard/bone101. I can hardly wait to try all
functions with BBB.

And what about mixing the two project like this:

The stimulus generator will simulate only 1 or 2 device per protocols. E.g.:
I2C. In the website the user set the temperature and the generator simulate
the suitable I2C signals and the EEPROM (only 1 or 2 bytes) store numbers
and if the user send read or write message via I2C, then the simulator
modify the appropriate virtual cells. It makes easier for developers to work
even if you have not dealt with this kind of programming tools and they just
do not have a real devices.

What will generate the stimulus? External MCU? PRU?

Generate external device signals. Main purpose is to test the developer the protocol functions somehow (without real device). Maybe I could do with pin-feedback (using 2 bus-channel) and the input channel is simulated via user settings. This settings confiurable via webpage.

I understand the purpose and didn’t ask why, but I don’t know what will be generating the stimulus. Using loop-back is fine, but what peripherals will you loop-back?

A program module (=simulated module) in the beagleboard generate the signals (e.g.: send appropriate I2C data if receive request and in this situation the request is from same device). It enough the pin-to-pin connecting like loop-back. And the program module communicate the webpage via bonescript. In the webpage (user-friendly gui) you can set the the temperature (if the device simulating is the thermometer) and memory content (EEPROM) etc… (more digital protocols).

If it is possible, then I could try to show the sent and received signals (like time-diagram) for both side (simulated and the user module). It is important: the user module can be wrong and this feature help to detect the timing or data errors.

I little worry about how to store the signals, but I think the lower programming level can help me. Any suggestions?

I believe that PRU firmware loads implementing simulated peripherals is your best option, but it isn’t clear to me you’ve gone through and understood the complexities of doing something like that.

Hi,

I got a little bit late information on GSoC and i am submiting my proposal today but while submitting it asks for a .exe “hello world” file but i don’t have Beagleboard …I have tried my hands on NXP’s chip, Atmel Chip and Arduino but haven’t yet used a BB
So what should I submit or rather what should I write in proposal ?

Also If its necessary then I will submit it within 2 weeks( considering shipping takes 1 week ) is it fine?

You can use QEMU.

(I do not know why Sanket wrote to this thread…)

I uploaded my proposal (on google-melange). But the image was skipped from that document, that is why I attach the .pdf version.

Thanks for all helps and good luck!

Best regards,
Laci

LaszloBenke_BeagleBoard_Proposal_GSoC14.pdf (67.5 KB)

May i get the document about BeagleBoneBlack…?