You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is a whole story behind those encoders. I was using only my firmware all the time and I have tried the original fw just when the device arrived. So I thought this was something related to my own code implemetation why the encoders were behaving so badly. Then someone mentioned here that also the official fw has similar problems, so I decided to spend some time investigating where is the problem. I made simple program that just shows color lines on the screen depending on the logic levels coming from the encoders. I noticed that there is terrible noise (switch bouncing) when the encoders were turning. I wanted to place some capacitors at the encoder signals to prevent this:
and I was lucky, because the engineers at miniware placed there vias on the PCB where the encoders were soldered. After placing 100nF ceramic caps, the signal became perfectly clean. But just to be sure I also implemented simple digital filter to filter out some short term signals which waits until the encoder signal becomes stable for 4 milliseconds: https://github.com/gabonator/LA104/blob/master/system/os_host/source/bios/ds213/imports.c#L105
And then I tried the same algorithm on the second encoder (without caps) and for my surprise, it was working very well even without capacitors. Even better than on LA104 which I was working on last months... Again, software solves hardware problem with ease...
@darkonerakot this took about one year to finish :) Most of the work was already done for the DS203 oscilloscope and I was waiting until miniware fixes their fpga issue before developing for DS213. And I have recently finished one interesting project for LA104 (https://www.youtube.com/watch?v=Gwyi00NKBNg) and was looking for another challenge
@gabonator I have the same problem with jumping menue from bouncing at the wheel after my DS213 which is now 2 1/2 year old. Do you have still bouncing problems with your device or are they until now solved by your solution ?
I'm not a software expert, but I built in some corrections based on xjituecho's software and his compiler
Does the hardwaresolution with 100nF works too, or do you recommand the software filter solution ?
I will compare the import.c with the one of xjituecho to appreciate my effort to add.
and I was lucky, because the engineers at miniware placed there vias on the PCB where the encoders were soldered. After placing 100nF ceramic caps, the signal became perfectly clean. But just to be sure I also implemented simple digital filter to filter out some short term signals which waits until the encoder signal becomes stable for 4 milliseconds:
https://github.com/gabonator/LA104/blob/master/system/os_host/source/bios/ds213/imports.c#L105
And then I tried the same algorithm on the second encoder (without caps) and for my surprise, it was working very well even without capacitors. Even better than on LA104 which I was working on last months... Again, software solves hardware problem with ease...
@darkonerakot this took about one year to finish :) Most of the work was already done for the DS203 oscilloscope and I was waiting until miniware fixes their fpga issue before developing for DS213. And I have recently finished one interesting project for LA104 (https://www.youtube.com/watch?v=Gwyi00NKBNg) and was looking for another challenge
Originally posted by @gabonator in #44 (comment)
The text was updated successfully, but these errors were encountered: