Difference between revisions of "ECE434 Project -Polar Codes"

From eLinux.org
Jump to: navigation, search
(Executive Summary)
(Executive Summary)
Line 26: Line 26:
  
 
== Executive Summary ==
 
== Executive Summary ==
The Idea of the project is to generate a kernel module that has two files. The first file encodes what is written to it using a polar code or an LDPC code and outputs through a gpio pin. The other file responds with a decoding of the input from another gpio pin using the same algorithm.
+
The project idea is to use kernel modules to encode signals and then send them out with another linux driver, in this case the UART devices. The project origonally intended to implement Polar codes as the encoding scheme, but due to time constraints was limited to repeat codes.  
  
I started to setup UART devices. I am using UARTs 4 and 5. following the guidence at http://beaglebone.cameon.net/home/serial-ports-uart and http://www.summitdata.com/blog/uart-flow-control-rtscts-necessary-proper-operation-wireless-modules/, and https://learn.adafruit.com/setting-up-io-python-library-on-beaglebone-black/uart, https://unix.stackexchange.com/questions/117037/how-to-send-data-to-a-serial-port-and-see-any-answer
+
The UART devices work well and handle normal file I/O without the communicating software needing to handle any of the communication details. The kernel modules work the same way, it is possible to use echo  to write to the character device and cat to read from it. To do this, I needed to follow the instructions in the comments of Derek Moloy's post http://derekmolloy.ie/writing-a-linux-kernel-module-part-2-a-character-device/.  
 +
 
 +
following the guidence at http://beaglebone.cameon.net/home/serial-ports-uart and http://www.summitdata.com/blog/uart-flow-control-rtscts-necessary-proper-operation-wireless-modules/, and https://learn.adafruit.com/setting-up-io-python-library-on-beaglebone-black/uart, https://unix.stackexchange.com/questions/117037/how-to-send-data-to-a-serial-port-and-see-any-answer
 
Give two sentence intro to the project.
 
Give two sentence intro to the project.
  

Revision as of 07:49, 13 November 2021

thumb‎ Embedded Linux Class by Mark A. Yoder


Team members: Matthew Callahan

Grading Template

I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!

09 Executive Summary
09 Packaging
09 Installation Instructions 
09 User Instructions
09 Highlights
09 Theory of Operation
09 Work Breakdown
09 Future Work/Conclusions
09 Hackster.io
09 Demo/Poster
00 Not Late

Score:  90/100

Executive Summary

The project idea is to use kernel modules to encode signals and then send them out with another linux driver, in this case the UART devices. The project origonally intended to implement Polar codes as the encoding scheme, but due to time constraints was limited to repeat codes.

The UART devices work well and handle normal file I/O without the communicating software needing to handle any of the communication details. The kernel modules work the same way, it is possible to use echo to write to the character device and cat to read from it. To do this, I needed to follow the instructions in the comments of Derek Moloy's post http://derekmolloy.ie/writing-a-linux-kernel-module-part-2-a-character-device/.

following the guidence at http://beaglebone.cameon.net/home/serial-ports-uart and http://www.summitdata.com/blog/uart-flow-control-rtscts-necessary-proper-operation-wireless-modules/, and https://learn.adafruit.com/setting-up-io-python-library-on-beaglebone-black/uart, https://unix.stackexchange.com/questions/117037/how-to-send-data-to-a-serial-port-and-see-any-answer

Give two sentence intro to the project.

Give two sentences telling what works.

Give two sentences telling what isn't working.

End with a two sentence conclusion.

The sentence count is approximate and only to give an idea of the expected length.

Packaging

If you have hardware, consider Small Build, Big Execuition for ideas on the final packaging.

Installation Instructions

Give step by step instructions on how to install your project.

  • Include your github path as a link like this to the read-only git site: https://github.com/MarkAYoder/gitLearn.
  • Be sure your README.md is includes an up-to-date and clear description of your project so that someone who comes across you git repository can quickly learn what you did and how they can reproduce it.
  • Include a Makefile for your code if using C.
  • Include any additional packages installed via apt. Include install.sh and setup.sh files.
  • Include kernel mods.
  • If there is extra hardware needed, include links to where it can be obtained.

User Instructions

Once the modules are enabled, if the gpio lines are tied together then writing to the first file should then allow you to read back the same data from the other file.

Highlights

Here is where you brag about what your project can do.

Include a YouTube demo the audio description.

Theory of Operation

Give a high level overview of the structure of your software. Are you using GStreamer? Show a diagram of the pipeline. Are you running multiple tasks? Show what they do and how they interact.

Work Breakdown

List the major tasks in your project and who did what.

Also list here what doesn't work yet and when you think it will be finished and who is finishing it.

Future Work

Suggest addition things that could be done with this project.

Conclusions

Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.




thumb‎ Embedded Linux Class by Mark A. Yoder