[ANN] Libusb binding + HID support for Pharo
Hello, A bit late, there is a Libusb [1] binding (using UFFI) and support for the Human Interface Device [2] (that uses the binding but is written in pure Smalltalk) for Pharo. Everything is on the github repository [3]. « Install » and « Quick start » sections give you all you need to start using the project. One could also have a look at the wiki [4]. It works on Linux but hasnât been tested on Mac OS nor Windows (it should work since libusb library works on these platforms). Do not forget to install the 32 bits versions of libusb on your computer. The purpose of this library is to provide the ability to use USB devices directly from Pharo. For example, one could get data from a PS3 controller, a mouse, a keyboard, an Arduino device, etc⦠Cheers, Julien PS: I realised this project during an internship in TaMère SCRL company [5]. Thanks to them! Links: [1]: http://libusb.info <http://libusb.info/> [2]: https://en.wikipedia.org/wiki/Human_interface_device <https://en.wikipedia.org/wiki/Human_interface_device> [3]: https://github.com/tamerescrl/libusb-pharo <https://github.com/tamerescrl/libusb-pharo> [4]: https://github.com/tamerescrl/libusb-pharo/wiki <https://github.com/tamerescrl/libusb-pharo/wiki> [5]: http://tamere.eu <http://tamere.eu/>
Nice!!! Thanks for sharing :) On Thu, Oct 12, 2017 at 1:29 PM, Julien <julien.delplanque@inria.fr> wrote:
Hello,
A bit late, there is a Libusb [1] binding (using UFFI) and support for the Human Interface Device [2] (that uses the binding but is written in pure Smalltalk) for Pharo.
Everything is on the github repository [3]. « Install » and « Quick start » sections give you all you need to start using the project.
One could also have a look at the wiki [4].
It works on Linux but hasnât been tested on Mac OS nor Windows (it should work since libusb library works on these platforms).
Do not forget to install the 32 bits versions of libusb on your computer.
The purpose of this library is to provide the ability to use USB devices directly from Pharo.
For example, one could get data from a PS3 controller, a mouse, a keyboard, an Arduino device, etcâ¦
Cheers,
Julien
PS: I realised this project during an internship in TaMère SCRL company [5]. Thanks to them!
Links: [1]: http://libusb.info [2]: https://en.wikipedia.org/wiki/Human_interface_device [3]: https://github.com/tamerescrl/libusb-pharo [4]: https://github.com/tamerescrl/libusb-pharo/wiki [5]: http://tamere.eu
-- Guille Polito Research Engineer Centre de Recherche en Informatique, Signal et Automatique de Lille CRIStAL - UMR 9189 French National Center for Scientific Research - *http://www.cnrs.fr <http://www.cnrs.fr>* *Web:* *http://guillep.github.io* <http://guillep.github.io> *Phone: *+33 06 52 70 66 13
Youâre welcome! :-)
Le 12 oct. 2017 à 14:36, Guillermo Polito <guillermopolito@gmail.com> a écrit :
Nice!!! Thanks for sharing :)
On Thu, Oct 12, 2017 at 1:29 PM, Julien <julien.delplanque@inria.fr <mailto:julien.delplanque@inria.fr>> wrote: Hello,
A bit late, there is a Libusb [1] binding (using UFFI) and support for the Human Interface Device [2] (that uses the binding but is written in pure Smalltalk) for Pharo.
Everything is on the github repository [3]. « Install » and « Quick start » sections give you all you need to start using the project.
One could also have a look at the wiki [4].
It works on Linux but hasnât been tested on Mac OS nor Windows (it should work since libusb library works on these platforms).
Do not forget to install the 32 bits versions of libusb on your computer.
The purpose of this library is to provide the ability to use USB devices directly from Pharo.
For example, one could get data from a PS3 controller, a mouse, a keyboard, an Arduino device, etcâ¦
Cheers,
Julien
PS: I realised this project during an internship in TaMère SCRL company [5]. Thanks to them!
Links: [1]: http://libusb.info <http://libusb.info/> [2]: https://en.wikipedia.org/wiki/Human_interface_device <https://en.wikipedia.org/wiki/Human_interface_device> [3]: https://github.com/tamerescrl/libusb-pharo <https://github.com/tamerescrl/libusb-pharo> [4]: https://github.com/tamerescrl/libusb-pharo/wiki <https://github.com/tamerescrl/libusb-pharo/wiki> [5]: http://tamere.eu <http://tamere.eu/>
--
Guille Polito Research Engineer
Centre de Recherche en Informatique, Signal et Automatique de Lille CRIStAL - UMR 9189 French National Center for Scientific Research - http://www.cnrs.fr <http://www.cnrs.fr/>
Web: http://guillep.github.io <http://guillep.github.io/> Phone: +33 06 52 70 66 13
Very cool. Would that be doable to adapt for a 64bits version? Thierry 2017-10-12 13:29 GMT+02:00 Julien <julien.delplanque@inria.fr>:
Hello,
A bit late, there is a Libusb [1] binding (using UFFI) and support for the Human Interface Device [2] (that uses the binding but is written in pure Smalltalk) for Pharo.
Everything is on the github repository [3]. « Install » and « Quick start » sections give you all you need to start using the project.
One could also have a look at the wiki [4].
It works on Linux but hasnât been tested on Mac OS nor Windows (it should work since libusb library works on these platforms).
Do not forget to install the 32 bits versions of libusb on your computer.
The purpose of this library is to provide the ability to use USB devices directly from Pharo.
For example, one could get data from a PS3 controller, a mouse, a keyboard, an Arduino device, etcâ¦
Cheers,
Julien
PS: I realised this project during an internship in TaMère SCRL company [5]. Thanks to them!
Links: [1]: http://libusb.info [2]: https://en.wikipedia.org/wiki/Human_interface_device [3]: https://github.com/tamerescrl/libusb-pharo [4]: https://github.com/tamerescrl/libusb-pharo/wiki [5]: http://tamere.eu
Normally, it should be possible. Libusb can be compiled for 64bits architectures. I donât know if it changes something in the UFFI binding side? Julien
Le 12 oct. 2017 à 14:41, Thierry Goubier <thierry.goubier@gmail.com> a écrit :
Very cool. Would that be doable to adapt for a 64bits version?
Thierry
2017-10-12 13:29 GMT+02:00 Julien <julien.delplanque@inria.fr <mailto:julien.delplanque@inria.fr>>: Hello,
A bit late, there is a Libusb [1] binding (using UFFI) and support for the Human Interface Device [2] (that uses the binding but is written in pure Smalltalk) for Pharo.
Everything is on the github repository [3]. « Install » and « Quick start » sections give you all you need to start using the project.
One could also have a look at the wiki [4].
It works on Linux but hasnât been tested on Mac OS nor Windows (it should work since libusb library works on these platforms).
Do not forget to install the 32 bits versions of libusb on your computer.
The purpose of this library is to provide the ability to use USB devices directly from Pharo.
For example, one could get data from a PS3 controller, a mouse, a keyboard, an Arduino device, etcâ¦
Cheers,
Julien
PS: I realised this project during an internship in TaMère SCRL company [5]. Thanks to them!
Links: [1]: http://libusb.info <http://libusb.info/> [2]: https://en.wikipedia.org/wiki/Human_interface_device <https://en.wikipedia.org/wiki/Human_interface_device> [3]: https://github.com/tamerescrl/libusb-pharo <https://github.com/tamerescrl/libusb-pharo> [4]: https://github.com/tamerescrl/libusb-pharo/wiki <https://github.com/tamerescrl/libusb-pharo/wiki> [5]: http://tamere.eu <http://tamere.eu/>
On Thu, Oct 12, 2017 at 2:49 PM, Julien <julien.delplanque@inria.fr> wrote:
Normally, it should be possible.
Libusb can be compiled for 64bits architectures. I donât know if it changes something in the UFFI binding side?
It should not, besides the library's location. And, if you find a case where the binding does not work on 64 bits it is either: - a UFFI bug in the type mappings (e.g., a wrong mapping between a type name and the correct 32/64 bit size and marshalling) - or a bug in the bindings using the wrong types (e.g., using long instead of void*)
Julien
Le 12 oct. 2017 à 14:41, Thierry Goubier <thierry.goubier@gmail.com> a écrit :
Very cool. Would that be doable to adapt for a 64bits version?
Thierry
2017-10-12 13:29 GMT+02:00 Julien <julien.delplanque@inria.fr>:
Hello,
A bit late, there is a Libusb [1] binding (using UFFI) and support for the Human Interface Device [2] (that uses the binding but is written in pure Smalltalk) for Pharo.
Everything is on the github repository [3]. « Install » and « Quick start » sections give you all you need to start using the project.
One could also have a look at the wiki [4].
It works on Linux but hasnât been tested on Mac OS nor Windows (it should work since libusb library works on these platforms).
Do not forget to install the 32 bits versions of libusb on your computer.
The purpose of this library is to provide the ability to use USB devices directly from Pharo.
For example, one could get data from a PS3 controller, a mouse, a keyboard, an Arduino device, etcâ¦
Cheers,
Julien
PS: I realised this project during an internship in TaMère SCRL company [5]. Thanks to them!
Links: [1]: http://libusb.info [2]: https://en.wikipedia.org/wiki/Human_interface_device [3]: https://github.com/tamerescrl/libusb-pharo [4]: https://github.com/tamerescrl/libusb-pharo/wiki [5]: http://tamere.eu
-- Guille Polito Research Engineer Centre de Recherche en Informatique, Signal et Automatique de Lille CRIStAL - UMR 9189 French National Center for Scientific Research - *http://www.cnrs.fr <http://www.cnrs.fr>* *Web:* *http://guillep.github.io* <http://guillep.github.io> *Phone: *+33 06 52 70 66 13
2017-10-12 15:05 GMT+02:00 Guillermo Polito <guillermopolito@gmail.com>:
On Thu, Oct 12, 2017 at 2:49 PM, Julien <julien.delplanque@inria.fr> wrote:
Normally, it should be possible.
Libusb can be compiled for 64bits architectures. I donât know if it changes something in the UFFI binding side?
It should not, besides the library's location.
That was the first hurdle. Easily solved.
And, if you find a case where the binding does not work on 64 bits it is either: - a UFFI bug in the type mappings (e.g., a wrong mapping between a type name and the correct 32/64 bit size and marshalling) - or a bug in the bindings using the wrong types (e.g., using long instead of void*)
And the first FFI call fails (the lib init). Thierry
Julien
Le 12 oct. 2017 à 14:41, Thierry Goubier <thierry.goubier@gmail.com> a écrit :
Very cool. Would that be doable to adapt for a 64bits version?
Thierry
2017-10-12 13:29 GMT+02:00 Julien <julien.delplanque@inria.fr>:
Hello,
A bit late, there is a Libusb [1] binding (using UFFI) and support for the Human Interface Device [2] (that uses the binding but is written in pure Smalltalk) for Pharo.
Everything is on the github repository [3]. « Install » and « Quick start » sections give you all you need to start using the project.
One could also have a look at the wiki [4].
It works on Linux but hasnât been tested on Mac OS nor Windows (it should work since libusb library works on these platforms).
Do not forget to install the 32 bits versions of libusb on your computer.
The purpose of this library is to provide the ability to use USB devices directly from Pharo.
For example, one could get data from a PS3 controller, a mouse, a keyboard, an Arduino device, etcâ¦
Cheers,
Julien
PS: I realised this project during an internship in TaMère SCRL company [5]. Thanks to them!
Links: [1]: http://libusb.info [2]: https://en.wikipedia.org/wiki/Human_interface_device [3]: https://github.com/tamerescrl/libusb-pharo [4]: https://github.com/tamerescrl/libusb-pharo/wiki [5]: http://tamere.eu
--
Guille Polito
Research Engineer
Centre de Recherche en Informatique, Signal et Automatique de Lille
CRIStAL - UMR 9189
French National Center for Scientific Research - *http://www.cnrs.fr <http://www.cnrs.fr>*
*Web:* *http://guillep.github.io* <http://guillep.github.io>
*Phone: *+33 06 52 70 66 13 <+33%206%2052%2070%2066%2013>
2017-10-12 13:29 GMT+02:00 Julien <julien.delplanque@inria.fr>:
Hello,
A bit late, there is a Libusb [1] binding (using UFFI) and support for the Human Interface Device [2] (that uses the binding but is written in pure Smalltalk) for Pharo.
Everything is on the github repository [3]. « Install » and « Quick start » sections give you all you need to start using the project.
One could also have a look at the wiki [4].
It works on Linux but hasnât been tested on Mac OS nor Windows (it should work since libusb library works on these platforms).
Do not forget to install the 32 bits versions of libusb on your computer.
The purpose of this library is to provide the ability to use USB devices directly from Pharo.
Cool project.
For example, one could get data from a PS3 controller, a mouse, a keyboard, an Arduino device, etcâ¦
And did you use it for these kind of devices? Or anything else?
Cheers,
Julien
PS: I realised this project during an internship in TaMère SCRL company [5]. Thanks to them!
Links: [1]: http://libusb.info [2]: https://en.wikipedia.org/wiki/Human_interface_device [3]: https://github.com/tamerescrl/libusb-pharo [4]: https://github.com/tamerescrl/libusb-pharo/wiki [5]: http://tamere.eu
For example, one could get data from a PS3 controller, a mouse, a keyboard, an Arduino device, etcâ¦
And did you use it for these kind of devices? Or anything else?
There is an example with an HID mouse on the wiki https://github.com/tamerescrl/libusb-pharo/wiki/Get-and-parse-HID-reports <https://github.com/tamerescrl/libusb-pharo/wiki/Get-and-parse-HID-reports> I managed to get data from a PS3 controller but I can not find my code anymore, I think I lost it. It was not that hard to do, I may re-do it one day and write a small tutorial. The only problem with PS3 controller is that the HID descriptor is hidden (you have to get it from the internet, it is not stored in the device). Julien
Hi Julien I will read the small tutorial for sure. I have many PS3 paddle at home waiting for it. Stef On Thu, Oct 12, 2017 at 3:34 PM, Julien <julien.delplanque@inria.fr> wrote:
For example, one could get data from a PS3 controller, a mouse, a keyboard, an Arduino device, etcâ¦
And did you use it for these kind of devices? Or anything else?
There is an example with an HID mouse on the wiki https://github.com/tamerescrl/libusb-pharo/wiki/Get-and-parse-HID-reports
I managed to get data from a PS3 controller but I can not find my code anymore, I think I lost it.
It was not that hard to do, I may re-do it one day and write a small tutorial.
The only problem with PS3 controller is that the HID descriptor is hidden (you have to get it from the internet, it is not stored in the device).
Julien
participants (5)
-
Denis Kudriashov -
Guillermo Polito -
Julien -
Stephane Ducasse -
Thierry Goubier