UPDATE: I figured out the issue - I needed to burn a fresh image onto the 
SD card before the script would copy the files. I would have appreciated 
some sort of error message :P Anyways, using the manual .dtb file copy 
mentioned previously, I got the driver loaded and the device tree loaded 
for eqep0. However, I'm getting no useable output from the position 
variable. While troubleshooting, I began to wonder if the eQEPs will work 
with only Ain and Bin connected (all my encoder has). Is there a setting 
that needs to be changed to ignore INDEX and STROBE? Just wondering, though 
I'll probably figure out how to get it operational sooner or later.

--Willie

On Monday, January 27, 2014 8:07:10 PM UTC-6, Willie Warke wrote:
>
> Nathaniel,
>
> First of all, thank you very much for all the work you have put into the 
> BeagleBone and provided to the community through your Github repository. I 
> am working on a robotics project using a BeagleBone Black and have 
> thoroughly enjoyed using it as a hardware platform. Recently, I've been 
> working towards getting a rotary encoder reading up and running using your 
> eQEP method, but, being inexperienced with Linux kernel compilation, have 
> run into a problem I can't seem to solve. I've made it through most of 
> Derek Molloy's tutorial and patched it with your eqep script, but haven't 
> figured out how to deploy the image to SD card. Instead of install_image.sh 
> in the linux-dev/tools directory, all I have is install_kernel.sh. Having 
> configured the system.sh MMC variable for my SD card (/dev/sdd), I run the 
> script, it asks the "are you 100% sure" question, I enter "y", then it 
> unmounts, displays the partitions on the card, and the script finishes 
> without copying anything onto the card. Any advice or input would be 
> greatly appreciated! I admit I don't really know what I'm doing, but I've 
> searched and searched for an answer and haven't found one yet. 
>
> Thanks,
> Willie
>
> On Thursday, July 25, 2013 2:38:29 AM UTC-5, Teknoman117 wrote:
>>
>> Its just a work in progress, but here's what I have now that its 
>> midnight.  Tomorrow I'll through together some documentation, test it 
>> further, and put together an API.  Essentially in its current form its a 
>> couple of device tree overlays, a kernel patch (been using Robert's 
>> linux-dev am33x-v3.8 kernel) which puts in the driver, and there is an 
>> example of polling the position attribute.  I'll put some docs together 
>> tomorrow, I'm tired.
>>
>> https://github.com/Teknoman117/beaglebot/tree/master/encoders
>>
>> Nathaniel Lewis
>> CTO at E1FTW Games
>> 3rd year Undergraduate, Computer Science and Engineering
>> Project Manager for the Robotics Society at UC Merced
>> Undergraduate Lab Technician Intern at MESA Labs
>> (925) 961 7578
>> [email protected]
>>
>> On Jul 24, 2013, at 12:18 PM, Nathaniel Lewis <[email protected]> 
>> wrote:
>>
>> I've actually put together a kernel driver for the eQEP hardware that 
>> presents a poll able sysfs interface.  It plugs beautifully into the device 
>> tree, and supports absolute and relative modes.  Relative resets the 
>> counter and notifies a polling program based on a provided period, which 
>> drives the eQEP unit timer.  I'm posting all my code to my blog and to 
>> github today.
>>
>> - Nathaniel Lewis
>>
>> On Wednesday, July 24, 2013, tbh wrote:
>>
>>> My overall goal is like the title says: I need to read a quad encoder 
>>> count, and I have a beaglebone black.  Eventually, I'll be using c++.  Any 
>>> help on how to proceed or links on things I should read are appreciated.
>>>
>>> I've seen 3 ways of reading an encoder on the beaglebone: (1)polling 
>>> GPIO 
>>> pins<http://bwgz57.wordpress.com/2012/04/11/beaglebone-with-a-rotary-encoder/>,
>>>  
>>> (2)using interrupts in a kernel driver, and (3)using the eQEP built in to 
>>> the hardware of the beaglebone SOC.  I'm interested in (3) because it seems 
>>> to me that it would be the most efficient. However, it seems like most 
>>> people are using (2), and I can't find a whole lot on how to do (3). 
>>>
>>> Here's what I have found so far in case it's useful to anyone else.
>>> - the TRM for the bealgebone 
>>> SOC<http://www.ti.com/lit/ug/spruh73h/spruh73h.pdf>. 
>>> Section 15.4 is where the eQEP is documented.
>>> - A thread 
>>> here<https://groups.google.com/forum/embed/?place=forum/beagleboard&showsearch=true&showpopout=true&showtabs=true&hideforumtitle=true&parenturl=http%3A%2F%2Fbeagleboard.org%2FCommunity%2FForums#!searchin/beagleboard/quadrature/beagleboard/GzRSJYjs60M/Vs67S0SRon4J>apparently
>>>  about enhancing an already working eQEP driver.
>>> - A thread from the TI Community asking about linux drivers for 
>>> eQEP<http://e2e.ti.com/support/arm/sitara_arm/f/791/t/276433.aspx>
>>> .
>>> - A wiki page from a TI presentation about using eQEP with one of their 
>>> dev 
>>> boards<http://processors.wiki.ti.com/index.php/Omapl137_linux_eqep_driver>
>>> .
>>> - Two threads with the same original post, and slightly different 
>>> responses. They are a bit over my head. 
>>> thread1<http://comments.gmane.org/gmane.linux.kernel.input/21481> 
>>> thread2 <http://en.it-usenet.org/thread/18798/20687/>
>>> - A reference in some comments on a blog 
>>> post<http://bwgz57.wordpress.com/2012/04/11/beaglebone-with-a-rotary-encoder/>that
>>>  they got an eQEP driver working to read a quad encoder (but without 
>>> any explanation).
>>>
>>> I know people are working on the problem of making (3) easy to use. Is 
>>> there some other link on how to do it that is eluding me?  
>>>
>>> If there's not, in the meantime, I'm interested in device drivers, and I 
>>> think it's practical information, so I'd like to learn as much about them 
>>> as I can. Perhaps I'll even get to the point where I can help the ongoing 
>>> eQEP effort.  I'm rather inexperienced in driver writing, though. I've been 
>>> wading through the linux device drivers book<http://lwn.net/Kernel/LDD3/>, 
>>> so I guess that's a start. However, I've never recompiled my own kernel, 
>>> which it looks like I'll probably have to do, and I've never even 
>>> cross-compiled. Could somebody help me out with a place to start?
>>>
>>> In the meantime, I'll be looking at method (2). Thanks in advance.
>>>
>>> -- 
>>> For more options, visit http://beagleboard.org/discuss
>>> --- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "BeagleBoard" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>  
>>>  
>>>
>>
>>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to