Skip to content
just a simple TMR example for UGA hacks
Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
img
.DS_Store
ECC.py
README.md
TMR-solution.py
TMR.py

README.md

Simple TMR Example

Some Examples of Triple Modular Redundancey (TMR) for a UGA SSRL workshop at the 4th annual UGA Hacks, the best hackathon on the planet. The slides accompanying this presentation can be found at smallsat.uga.edu/research

Disclaimer: This is not intended for real use. This is only for demonstration and educational purposes.

Dependencies

  • numpy
  • matplotlib
  • PIL (Python Image Library)

TMR

Fundamentally, TMR is exactly what it says it is. There are 3 copies of something and you can check values at particular locations to make sure all copies are still equal. If you notice that the copies are not equal, i.e. one copy is 0 and the other two are 1, then you can choose to correct the copy that is the outlier. As a logic circuite this looks like:

And logically, assuming your bits are b0, b1, and b2:

In python this could be done with:

if (not((not (b and b1)) and (not (b1 and b2)) and (not (b0 and b2)))):
  # do some TMR here

Worked Examples

In the TMR.py file, located in the root of this directory, there is an example setup to test some TMR algorithms. In this example an image of carl has 1 bitflip occuring every millisecond. This is a large exaggeration, only to demonstrate the concept of TMR. These bitflips can be seen below:

to attempt to slow the degridation of the image, TMR can be performed. In these examples the TMR algorthm occurs at a slower rate than bitflips occur. This is does to reflect the reality TMR is only capible of slowing the onslaught of radiation.

You can’t perform that action at this time.