As to the control buttons on the Java GUI, it's not supposed to run under any permutated order, mostly due to the mechanic of how ECho channel is implemented. If an incorrect chaining of the adapatation is applied, it will either crash the source or the sink side. However, here're some rules for applying the control button: 0. If a series buttons have been clicked to apply the adaptation, you need to undo the button in first-in-last-out order if you want to apply the next chain of adaptation. i.e. you'd better come back to 320x240 color mode before applying the new serial of button-clickings. 1. EdgeDetect can only be applied after GreyImage 2. If any of the CropImage is applied, it must be the first one in the adapation chain -- ie. cropImage may be only applied at the first stage from 320x240 color (2C) raw channel.