Difference between revisions of "Wiki/beaglebone serial terminal"

From eLinux.org
Jump to: navigation, search
m (add Wiki link (self))
(Added content)
Line 2: Line 2:
 
[[Category: GSoC]]
 
[[Category: GSoC]]
 
[[Category: GSoCProposal]]
 
[[Category: GSoCProposal]]
 +
  
 
=[[BeagleBoard/GSoC/ProposalTemplate|ProposalTemplate]] =
 
=[[BeagleBoard/GSoC/ProposalTemplate|ProposalTemplate]] =
{{#ev:youtube|Jl3sUq2WwcY||right|BeagleLogic}} <!-- latest video will go here -->
 
canDo: upload your project intro video and upload here
 
  
 
+
A short summary of the idea will go here<br><br>
A short summary of the idea will go here
 
  
 
''Student'': [http://elinux.org/User_talk:Gurnoors Gurnoor Singh Bhatia]<br>
 
''Student'': [http://elinux.org/User_talk:Gurnoors Gurnoor Singh Bhatia]<br>
 
''Mentors'': Michael Welling (m_w), [http://elinux.org/User:Jkridner Jason Kridner]<br>
 
''Mentors'': Michael Welling (m_w), [http://elinux.org/User:Jkridner Jason Kridner]<br>
''Code'': https://github.com/gurnoors/bone-monitor<br>
+
''Code'': (Empty repo) https://github.com/gurnoors/bone-monitor<br>
 
''Wiki'': http://www.elinux.org/Wiki/beaglebone_serial_terminal<br>
 
''Wiki'': http://www.elinux.org/Wiki/beaglebone_serial_terminal<br>
''GSoC'': [https://summerofcode.withgoogle.com/archive/2016/projects/4885400476712960/ GSoC entry]<br>
+
''GSoC'': TODO: [https://summerofcode.withgoogle.com/archive/2016/projects/4885400476712960/ GSoC entry]<br>
 
<div style="clear:both;"></div>
 
<div style="clear:both;"></div>
  
Line 24: Line 22:
  
 
==About you==
 
==About you==
''IRC'': Freenode IRC nickname<br>
+
''IRC'': noor_<br>
''Github'': Github account<br>
+
''Github'': https://github.com/gurnoors<br>
''School'': School name<br>
+
''School'': San Jose State University<br>
''Country'': Country<br>
+
''Country'': United States<br>
''Primary language'' (We have mentors who speak multiple languages): Language<br>
+
''Primary language'': English<br>
''Typical work hours'' (We have mentors in various time zones): 8AM-5PM US Eastern<br>
+
''Typical work hours'': 6PM-11PM CDT (I will be in CDT zone during Summer. Currently I am in PDT zone)<br>
 +
 
 +
//TODO: omit or provide other experience, git links
 
''Previous GSoC participation'': Provide list of URLs for previous participation or tell us why you want to participate here. No previous experience required.
 
''Previous GSoC participation'': Provide list of URLs for previous participation or tell us why you want to participate here. No previous experience required.
  
 
==About your project==
 
==About your project==
''Project name'': Super Awesome Project<br>
+
''Project name'': BeagleBone-based Serial Terminal Server<br>
  
 
===Description===
 
===Description===
 +
//TODO:
 
In 10-20 sentences, what are you making, for whom, why and with what technologies (programming languages, etc.)? (We are looking for open source SOFTWARE submissions.)
 
In 10-20 sentences, what are you making, for whom, why and with what technologies (programming languages, etc.)? (We are looking for open source SOFTWARE submissions.)
 +
 +
Description, quoted from GSoC BeagleBone [http://elinux.org/BeagleBoard/GSoC/Ideas#Idea_template ideas page]:
 +
<blockquote style="
 +
color: black;
 +
border: solid thin gray;
 +
padding-top: 10px;
 +
padding-right: 10px;
 +
padding-bottom: 10px;
 +
padding-left: 10px;
 +
">
 +
Goal: Often in embedded development it is valuable to have a serial terminal server which can retain a serial port connection along with buffered past I/O separate from a typical host PC, either for longer term logging of serial port data or to enable remote management of a device via serial port. Commercial units which have this capability are very expensive. The BeagleBones have 4 highly capable UARTs exposed besides UART0 through the cape connectors and a simple cape hardware could easily enable a BeagleBone to physically have all the interfaces needed to be a serial terminal server. The cape hardware does not need to be created for this project to go forward, so long as other devices which connected to the BeagleBone terminal server used 3.3 V UARTs themselves.<br>
 +
This project would begin with a survey of existing software which could be adapted to provide a terminal server experience (for example something as simple as using GNU screen with some adaptations over an SSH connection to the BeagleBone) and then proceed to create software changes needed to enable such operation in an easy to use and deploy way. This resulting (or found) software would likely end up being generic for Linux based serial terminal servers. The end result of this project should likely be an easy to deploy SD card image to enable someone to setup a low cost serial terminal server based on a BeagleBone in only a few minutes.<br>
 +
A reach goal would be to enable the cape hardware and also to potentially provide DC relays which could switch 5-12 V at 2-3 A such that development boards could be powered on and off through the same software interface as is used for the serial communications. Since hardware is not the focus of GSoC, actual development of such hardware should not be the focus of the project itself.<br>
 +
Hardware Skills: Datasheet/specification reading<br>
 +
Software Skills: C programming/Linux kernel programming<br>
 +
Possible Mentors: Michael Welling<br>
 +
Upstream Repository: N/A<br>
 +
References: N/A<br>
 +
 +
</blockquote>
 +
 +
Apart from the above requirements, a reach goal is to upload the data to cloud continuously and plot charts using D3.js.
  
 
===Timeline===
 
===Timeline===
Line 42: Line 65:
  
 
2017-06-06: Milestone #1<br>
 
2017-06-06: Milestone #1<br>
 +
Finish surveying previous work. There are many sub-components where a suitable library might be available.<br>
 
2017-06-13: Milestone #2<br>
 
2017-06-13: Milestone #2<br>
 +
Deliver a basic running sample which reads serial data from UART and displays it on a GNU screen.<br>
 
2017-06-20: Milestone #3<br>
 
2017-06-20: Milestone #3<br>
 +
Survey and deliver a version which can be flashed to the SD card on BeagleBone.<br>
 
2017-06-27: Milestone #4<br>
 
2017-06-27: Milestone #4<br>
 +
Deliver the continuous upload to cloud and basic UI displaying text readings.
 
2017-07-04: Milestone #5<br>
 
2017-07-04: Milestone #5<br>
2017-07-11: Milestone #6<br>
+
Deliver plotting using D3.js
2017-07-18: Milestone #7<br>
+
 
2017-07-25: Milestone #8<br>
 
2017-08-01: Milestone #9<br>
 
2017-08-08: Milestone #10<br>
 
2017-08-15: Milestone #11<br>
 
  
 
===Experience and approach===
 
===Experience and approach===
 +
//TODO:
 
In 5-15 sentences, convince us you will be able to successfully complete your project in the timeline you have described.
 
In 5-15 sentences, convince us you will be able to successfully complete your project in the timeline you have described.
 +
 +
I am currently working as a Research Assistant in an IoT project. This involves interfacing devices with BeagleBone via UART.
 +
The serial monitor would be very helpful in debugging many devices while building an IoT application.<br>
 +
I have previously worked with UART to write a wrapper in JNI over Freescale's UART API (in C) to interface with its devices.
  
 
===Contingency===
 
===Contingency===
What will you do if you get stuck on your project and your mentor isn’t around?
+
'''What will you do if you get stuck on your project and your mentor isn’t around?'''<br>
 +
 
 +
The BeagleBone online community is usually very helpful to point in the right direction.
  
 
===Benefit===
 
===Benefit===
If successfully completed, what will its impact be on the BeagleBoard.org community? Include quotes from BeagleBoard.org community members who can be found on http://beagleboard.org/discuss and http://bbb.io/gsocchat.
+
'''If successfully completed, what will its impact be on the BeagleBoard.org community?'''<br>
 
+
This project will help users to use BeagleBone as a Serial Terminal Monitor using by just flashing an image to the SD Card.
===Suggestions===
 
Is there anything else we should have asked you?
 

Revision as of 03:23, 2 April 2017


ProposalTemplate

A short summary of the idea will go here

Student: Gurnoor Singh Bhatia
Mentors: Michael Welling (m_w), Jason Kridner
Code: (Empty repo) https://github.com/gurnoors/bone-monitor
Wiki: http://www.elinux.org/Wiki/beaglebone_serial_terminal
GSoC: TODO: GSoC entry

Status

This project is currently just a proposal.

Proposal

Please complete the requirements listed on the ideas page and fill out this template.

About you

IRC: noor_
Github: https://github.com/gurnoors
School: San Jose State University
Country: United States
Primary language: English
Typical work hours: 6PM-11PM CDT (I will be in CDT zone during Summer. Currently I am in PDT zone)

//TODO: omit or provide other experience, git links Previous GSoC participation: Provide list of URLs for previous participation or tell us why you want to participate here. No previous experience required.

About your project

Project name: BeagleBone-based Serial Terminal Server

Description

//TODO: In 10-20 sentences, what are you making, for whom, why and with what technologies (programming languages, etc.)? (We are looking for open source SOFTWARE submissions.)

Description, quoted from GSoC BeagleBone ideas page:

Goal: Often in embedded development it is valuable to have a serial terminal server which can retain a serial port connection along with buffered past I/O separate from a typical host PC, either for longer term logging of serial port data or to enable remote management of a device via serial port. Commercial units which have this capability are very expensive. The BeagleBones have 4 highly capable UARTs exposed besides UART0 through the cape connectors and a simple cape hardware could easily enable a BeagleBone to physically have all the interfaces needed to be a serial terminal server. The cape hardware does not need to be created for this project to go forward, so long as other devices which connected to the BeagleBone terminal server used 3.3 V UARTs themselves.
This project would begin with a survey of existing software which could be adapted to provide a terminal server experience (for example something as simple as using GNU screen with some adaptations over an SSH connection to the BeagleBone) and then proceed to create software changes needed to enable such operation in an easy to use and deploy way. This resulting (or found) software would likely end up being generic for Linux based serial terminal servers. The end result of this project should likely be an easy to deploy SD card image to enable someone to setup a low cost serial terminal server based on a BeagleBone in only a few minutes.
A reach goal would be to enable the cape hardware and also to potentially provide DC relays which could switch 5-12 V at 2-3 A such that development boards could be powered on and off through the same software interface as is used for the serial communications. Since hardware is not the focus of GSoC, actual development of such hardware should not be the focus of the project itself.
Hardware Skills: Datasheet/specification reading
Software Skills: C programming/Linux kernel programming
Possible Mentors: Michael Welling
Upstream Repository: N/A
References: N/A

Apart from the above requirements, a reach goal is to upload the data to cloud continuously and plot charts using D3.js.

Timeline

Provide a development timeline with a milestone each of the 11 weeks. (A realistic timeline is critical to our selection process.)

2017-06-06: Milestone #1
Finish surveying previous work. There are many sub-components where a suitable library might be available.
2017-06-13: Milestone #2
Deliver a basic running sample which reads serial data from UART and displays it on a GNU screen.
2017-06-20: Milestone #3
Survey and deliver a version which can be flashed to the SD card on BeagleBone.
2017-06-27: Milestone #4
Deliver the continuous upload to cloud and basic UI displaying text readings. 2017-07-04: Milestone #5
Deliver plotting using D3.js


Experience and approach

//TODO: In 5-15 sentences, convince us you will be able to successfully complete your project in the timeline you have described.

I am currently working as a Research Assistant in an IoT project. This involves interfacing devices with BeagleBone via UART. The serial monitor would be very helpful in debugging many devices while building an IoT application.
I have previously worked with UART to write a wrapper in JNI over Freescale's UART API (in C) to interface with its devices.

Contingency

What will you do if you get stuck on your project and your mentor isn’t around?

The BeagleBone online community is usually very helpful to point in the right direction.

Benefit

If successfully completed, what will its impact be on the BeagleBoard.org community?
This project will help users to use BeagleBone as a Serial Terminal Monitor using by just flashing an image to the SD Card.