almost working but without free unused gpios on fly when change read or write