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