Skip to content

line follower doesn't work with the latest kernel of rpi #8

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
RobertLucian opened this issue Oct 9, 2017 · 0 comments
Closed

line follower doesn't work with the latest kernel of rpi #8

RobertLucian opened this issue Oct 9, 2017 · 0 comments
Assignees
Labels

Comments

@RobertLucian
Copy link
Owner

This is an all-time bug we have since the foundation released their new kernel. Here's an example of what we get on our forums:
https://forum.dexterindustries.com/t/solved-grovepi-compiled-firmware-i2c-issue/3365

So, as it seems, the last kernel version that worked with the line follower was v4.4.50-v7.

Also, @johnisanerd had reported this issue here - you can find more details in there.

@RobertLucian RobertLucian self-assigned this Oct 9, 2017
RobertLucian added a commit that referenced this issue Oct 9, 2017
RobertLucian added a commit that referenced this issue Oct 9, 2017
RobertLucian added a commit that referenced this issue Oct 12, 2017
RobertLucian added a commit that referenced this issue Oct 12, 2017
@RobertLucian RobertLucian reopened this Oct 12, 2017
@RobertLucian RobertLucian reopened this Oct 17, 2017
RobertLucian added a commit that referenced this issue Oct 17, 2017
RobertLucian added a commit to DexterInd/GoPiGo that referenced this issue Nov 15, 2017
* ref RobertLucian#8 : hotfix - used alternative library that doesn't do repeated starts

* ref RobertLucian#8 : hotfix - corrected name of dependency

* ref RobertLucian#8 : hotfix - cured some syntax errors

* ref RobertLucian#8 : hotfix - removing import line that's causing errors + rms unnecessaries

* ref RobertLucian#8 : hotfix - removed python2 support and added python3 + added adequate shebangs

* ref RobertLucian#8 : hotfix - removed support for Python2

* Revert "ref RobertLucian#8 : hotfix - removed support for Python2"

This reverts commit 46be676.

* ref RobertLucian#8 : hotfix - brought back support for python 2 even it won't work

* ref RobertLucian#8 : hotfix - replaced quick2wire with periphery package

* ref RobertLucian#8 : hotfix - disabled the use of repeated starts

* ref RobertLucian#8 : hotfix - solved bug

* ref RobertLucian#8 : hotfix - further bugs solved

* ref RobertLucian#8 : hotfix - added desc of issue + fixed version

* ref RobertLucian#8 : hotfix - quick2wire deleted

* ref RobertLucian#8 : feature - print function error fixed
CleoQc added a commit to DexterInd/GoPiGo that referenced this issue Feb 2, 2018
* ref RobertLucian#8 : hotfix - used alternative library that doesn't do repeated starts

* ref RobertLucian#8 : hotfix - corrected name of dependency

* ref RobertLucian#8 : hotfix - cured some syntax errors

* ref RobertLucian#8 : hotfix - removing import line that's causing errors + rms unnecessaries

* ref RobertLucian#8 : hotfix - removed python2 support and added python3 + added adequate shebangs

* ref RobertLucian#8 : hotfix - removed support for Python2

* Revert "ref RobertLucian#8 : hotfix - removed support for Python2"

This reverts commit 46be676.

* ref RobertLucian#8 : hotfix - brought back support for python 2 even it won't work

* feature - assembly instructions for the GoPiGo2 (#274)

feature - assembly instructions for the GoPiGo2

* ref RobertLucian#8 : hotfix - replaced quick2wire with periphery package

* ref RobertLucian#8 : hotfix - disabled the use of repeated starts

* ref RobertLucian#8 : hotfix - solved bug

* ref RobertLucian#8 : hotfix - further bugs solved

* ref RobertLucian#8 : hotfix - added desc of issue + fixed version

* ref RobertLucian#8 : hotfix - quick2wire deleted

* object-oriented [I2C_mutex] module (#263)

* ref RobertLucian#6 : feature - adding object-oriented I2C_mutex

* ref RobertLucian#6 : feature - adapted easygopigo to new i2cmutex

* ref RobertLucian#6 : feature - solved bug with reset_speed method

* ref #6 : feature - added mutex one liners

* ref RobertLucian#6 : feature - adding object-oriented I2C_mutex

* ref RobertLucian#6 : feature - adapted easygopigo to new i2cmutex

* ref RobertLucian#6 : feature - solved bug with reset_speed method

* ref #6 : feature - added mutex one liners

* ref RobertLucian#6 : feature - separate functions for I2C mutex

* used functions for acquiring/releasing the mutex that are out of the classes' scope

* Some cleanup in new mutex (#277)

* Attempt at making easygopigo thread_safe

First, before each read, wait till the bus is available
Second, confirm the bus is open before doing the read (in case another thread got it)
Third, grab the read flag
Fourth do the read
Fifth, release the read flag asap for other threads

This only works for one process and only if all readings go through easygopigo

More than one process would still experience issues, but a single multi threaded process would be safe.

* Install line follower in a standard way.
To import use:
from line_follower import line_sensor
and it works!

* get rid of double self. One ego is enough

* Some phantom lines had reappeared. I must have goofed in Github again

* Change the way the IR Receiver behaves on GPG2.
By default, the behaviour is the same as before, but now we can have a "consume" stauts.
When 'consume' is set to False, the key is not erased and can be returned more than once.

* remove extra blank line

* Limit percent readings to 100. Mostly for sound and loudness sensors. We don't want to encourage classrooms into noise contests

* feature - assembly instructions for the GoPiGo2 (#274) (#275)

feature - assembly instructions for the GoPiGo2

* Line follower  (#276)

* Attempt at making easygopigo thread_safe

First, before each read, wait till the bus is available
Second, confirm the bus is open before doing the read (in case another thread got it)
Third, grab the read flag
Fourth do the read
Fifth, release the read flag asap for other threads

This only works for one process and only if all readings go through easygopigo

More than one process would still experience issues, but a single multi threaded process would be safe.

* Install line follower in a standard way.
To import use:
from line_follower import line_sensor
and it works!

* get rid of double self. One ego is enough

* Some phantom lines had reappeared. I must have goofed in Github again

* Change the way the IR Receiver behaves on GPG2.
By default, the behaviour is the same as before, but now we can have a "consume" stauts.
When 'consume' is set to False, the key is not erased and can be returned more than once.

* remove extra blank line

* Limit percent readings to 100. Mostly for sound and loudness sensors. We don't want to encourage classrooms into noise contests

* feature - assembly instructions for the GoPiGo2 (#274)

feature - assembly instructions for the GoPiGo2

* Make the line follower returns all lowercase letters. Easier for string manipulation
Needed for DexterOS

* _is_read_open() is obsolete

* Keep use_mutex flag in the base Sensor class as this makes it available to all sensors

Keep all sensor __init__ methods the same as in easygopigo3 library

Create a test file (test_mutex.py) which is the same for both robots, except the library loading
Verify that use_mutex is set properly

* Fix I2C_mutex
Wrong variable name

* Fix mutex (#278)

* Attempt at making easygopigo thread_safe

First, before each read, wait till the bus is available
Second, confirm the bus is open before doing the read (in case another thread got it)
Third, grab the read flag
Fourth do the read
Fifth, release the read flag asap for other threads

This only works for one process and only if all readings go through easygopigo

More than one process would still experience issues, but a single multi threaded process would be safe.

* Install line follower in a standard way.
To import use:
from line_follower import line_sensor
and it works!

* get rid of double self. One ego is enough

* Some phantom lines had reappeared. I must have goofed in Github again

* Change the way the IR Receiver behaves on GPG2.
By default, the behaviour is the same as before, but now we can have a "consume" stauts.
When 'consume' is set to False, the key is not erased and can be returned more than once.

* remove extra blank line

* Limit percent readings to 100. Mostly for sound and loudness sensors. We don't want to encourage classrooms into noise contests

* feature - assembly instructions for the GoPiGo2 (#274) (#275)

feature - assembly instructions for the GoPiGo2

* Line follower  (#276)

* Attempt at making easygopigo thread_safe

First, before each read, wait till the bus is available
Second, confirm the bus is open before doing the read (in case another thread got it)
Third, grab the read flag
Fourth do the read
Fifth, release the read flag asap for other threads

This only works for one process and only if all readings go through easygopigo

More than one process would still experience issues, but a single multi threaded process would be safe.

* Install line follower in a standard way.
To import use:
from line_follower import line_sensor
and it works!

* get rid of double self. One ego is enough

* Some phantom lines had reappeared. I must have goofed in Github again

* Change the way the IR Receiver behaves on GPG2.
By default, the behaviour is the same as before, but now we can have a "consume" stauts.
When 'consume' is set to False, the key is not erased and can be returned more than once.

* remove extra blank line

* Limit percent readings to 100. Mostly for sound and loudness sensors. We don't want to encourage classrooms into noise contests

* feature - assembly instructions for the GoPiGo2 (#274)

feature - assembly instructions for the GoPiGo2

* Make the line follower returns all lowercase letters. Easier for string manipulation
Needed for DexterOS

* _is_read_open() is obsolete

* Keep use_mutex flag in the base Sensor class as this makes it available to all sensors

Keep all sensor __init__ methods the same as in easygopigo3 library

Create a test file (test_mutex.py) which is the same for both robots, except the library loading
Verify that use_mutex is set properly

* Fix I2C_mutex
Wrong variable name

* ref RobertLucian#8 : feature - print function error fixed

* Update README.md

* read_position_str() is also needed here to keep in sync with easygopigo3 (#283)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant