pharo-iot@lists.pharo.org

Pharo IoT Developers and Hardcore users

View all threads

another driver (for the Pi this time)

RV
Rob van Lopik <robvanlopik@gmail.com>
Tue, Aug 11, 2020 1:54 PM

First, thanks for merging my Firmata additions. There is a bit more to be done and I will certainly look into the suggestions for further refactoring.

Because I didn't like the fact that WiringPi requires su and is limited in PWM and servo support, I looked at pigpio (( http://abyz.me.uk/rpi/pigpio/index.html). This has pwm and servo on all pins, and a lot more. Moreover it runs as a daemon (started with sudo) so no privileges are needed for the client. When I saw that the daemon has a socket interface, I decided to give it a go. The result is in https://github.com/robvanlopik/PiGPIO. This was fully developed on Windows10, with a Pharo8-IOT image from Pharo Launcher, against a remote Pi3B and a Pi4. I also wrote the corresponding PotBoardDriver. It works with an RpiBoard3B and also with the DT1307 I2C device that I had written. without code changes.

I plan to add some more of the pigpiod functions, like SPI, pulse, maybe waveforms (that can be used to drive stepper motors).

I would appreciate your feedback. Especially with regard to eventual inclusion in the IOT image.

Next I want to look at PharoThings itself. The inclusion of Firmata (or Arduino devices) is a bit hindered by the connector concept (many of them haven't any or mostly it is single row). I would prefer to have this stuff away in an optional BoardLayout class, that you don't need for your everyday work. All persons are different. Personally I am less inclined to use the board inspector, as I would rather hook up an oscilloscope to the board (just as I used a logic protocol analyzer to check Firmata messages).Also the question of "modes" versus "functions" versus "capabilities" needs to be investigated. Another thing I want to think about is the need for subclasses for different devices. With configurable Firmata you can have many different devices, but the driver itself knows what the capabilitie are of the device; just like a Pi driver knows what type of Pi you are running on.

It is holiday time now, but I am really interested to know what parts of Pharo-iot iare worked on now, by whom and what it is used for. Personally I will start using it for some moving objects within projects by my wife (she is a plastic artist) and I am planning to do some educational writing.

Cheers Rob van Lopik

First, thanks for merging my Firmata additions. There is a bit more to be done and I will certainly look into the suggestions for further refactoring. Because I didn't like the fact that WiringPi requires su and is limited in PWM and servo support, I looked at pigpio (( http://abyz.me.uk/rpi/pigpio/index.html). This has pwm and servo on all pins, and a lot more. Moreover it runs as a daemon (started with sudo) so no privileges are needed for the client. When I saw that the daemon has a socket interface, I decided to give it a go. The result is in https://github.com/robvanlopik/PiGPIO. This was fully developed on Windows10, with a Pharo8-IOT image from Pharo Launcher, against a remote Pi3B and a Pi4. I also wrote the corresponding PotBoardDriver. It works with an RpiBoard3B and also with the DT1307 I2C device that I had written. without code changes. I plan to add some more of the pigpiod functions, like SPI, pulse, maybe waveforms (that can be used to drive stepper motors). I would appreciate your feedback. Especially with regard to eventual inclusion in the IOT image. Next I want to look at PharoThings itself. The inclusion of Firmata (or Arduino devices) is a bit hindered by the connector concept (many of them haven't any or mostly it is single row). I would prefer to have this stuff away in an optional BoardLayout class, that you don't need for your everyday work. All persons are different. Personally I am less inclined to use the board inspector, as I would rather hook up an oscilloscope to the board (just as I used a logic protocol analyzer to check Firmata messages).Also the question of "modes" versus "functions" versus "capabilities" needs to be investigated. Another thing I want to think about is the need for subclasses for different devices. With configurable Firmata you can have many different devices, but the driver itself knows what the capabilitie are of the device; just like a Pi driver knows what type of Pi you are running on. It is holiday time now, but I am really interested to know what parts of Pharo-iot iare worked on now, by whom and what it is used for. Personally I will start using it for some moving objects within projects by my wife (she is a plastic artist) and I am planning to do some educational writing. Cheers Rob van Lopik