Video of VAST running on Raspberry Pi and controlling the hardware pins...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Video of VAST running on Raspberry Pi and controlling the hardware pins...

Seth Berman
Hi All,

This is really cool!  Alex and Lou LaBrunda ported the pigpio (general purpose I/O) library to VAST and built a nice
visual test program that show VAST talking to the hardware on the Pi.

I know Lou has moved on at this point and is now doing Seaside on the Pi, so more interesting things to come.
But in the meantime, I made a video of what the it looks like.  This is the latest ECAP build (to be released this week and also our last before the release)
running on the Pi.  I've also attached a picture for those that don't know what a Raspberry Pi looks like and I
circled the hardware pins that the test program is talking to.

Really amazing that VA can run on a piece of hardware I can almost close my entire hand over...and the environment
is pretty snappy too considering the hardware....completely usable.


Enjoy!

-- Seth

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Video of VAST running on Raspberry Pi and controlling the hardware pins...

Louis LaBrunda
Hi Everybody,

The Seaside program that Seth mentions is almost finished.  It took a quick fix to one method by Seth that he says will be in the released product.

The Seaside program is designed to run headless on the Raspberry Pi (hopefully any version).  It has about three screens.  A simple login screen with just a password (no user id) and an option to save the password in a cookie.  From there you can move on to a screen to control the relays you have wired to the GPIO pins of the Raspberry or to a setting screen where you describe how you have the pins wired.  You can define the pins as controlling a relay or sensing an open or closed switch.  The relay controls can be defined to activate/deactivate or momentarily activate then deactivate.

On the relay control screen there are pictures that show the state of a relay or switch.  You can click on a relay to change its state.

Since this is a Seaside program you can connect into it from any browser even one on your smart phone.  I'm not sure if I am going to sell this program or give it away but the real point of this post is to say VA Smalltalk runs on the Raspberry Pi and that you can write programs that control the GPIO pins and use Seaside to make web browser applications.

Lou

P.S.  I have punched a hole in my router to test from outside my local network, if anyone is really interested in seeing a live demo, I can be convinced to let you take a look.


On Monday, June 25, 2018 at 6:32:12 PM UTC-4, Seth Berman wrote:
Hi All,

This is really cool!  Alex and Lou LaBrunda ported the pigpio (general purpose I/O) library to VAST and built a nice
visual test program that show VAST talking to the hardware on the Pi.

I know Lou has moved on at this point and is now doing Seaside on the Pi, so more interesting things to come.
But in the meantime, I made a video of what the it looks like.  This is the latest ECAP build (to be released this week and also our last before the release)
running on the Pi.  I've also attached a picture for those that don't know what a Raspberry Pi looks like and I
circled the hardware pins that the test program is talking to.

Really amazing that VA can run on a piece of hardware I can almost close my entire hand over...and the environment
is pretty snappy too considering the hardware....completely usable.

<a href="http://www.instantiations.com/videos/RaspberryPi/VastOnPi.mp4" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.instantiations.com%2Fvideos%2FRaspberryPi%2FVastOnPi.mp4\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH5Ft8S_9l1NWZNyXX0drvXzw-72w&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.instantiations.com%2Fvideos%2FRaspberryPi%2FVastOnPi.mp4\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH5Ft8S_9l1NWZNyXX0drvXzw-72w&#39;;return true;">Click here to see the video
<a href="http://www.instantiations.com/videos/RaspberryPi/PicOfPi.png" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.instantiations.com%2Fvideos%2FRaspberryPi%2FPicOfPi.png\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFrxzqCHlBBBa6NtFZSL3088hsAyw&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.instantiations.com%2Fvideos%2FRaspberryPi%2FPicOfPi.png\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFrxzqCHlBBBa6NtFZSL3088hsAyw&#39;;return true;">Click here to see the picture

Enjoy!

-- Seth

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Video of VAST running on Raspberry Pi and controlling the hardware pins...

Seth Berman
Hi Lou,

Thanks Lou for the great work that your doing on this!
We had an amazing response on both LinkedIn and Twitter from both the Smalltalk and Raspberry PI community.
It was a little bittersweet because the response stats for that video are already caught up with our 64-bit VAST announcement we did in September.
I guess I should have made a video showing an visual layout of a live 30GB heap:) 
Lesson learned...maybe next time.

Looking forward to the Seaside demonstration!

-- Seth

On Friday, June 29, 2018 at 12:10:55 PM UTC-4, Louis LaBrunda wrote:
Hi Everybody,

The Seaside program that Seth mentions is almost finished.  It took a quick fix to one method by Seth that he says will be in the released product.

The Seaside program is designed to run headless on the Raspberry Pi (hopefully any version).  It has about three screens.  A simple login screen with just a password (no user id) and an option to save the password in a cookie.  From there you can move on to a screen to control the relays you have wired to the GPIO pins of the Raspberry or to a setting screen where you describe how you have the pins wired.  You can define the pins as controlling a relay or sensing an open or closed switch.  The relay controls can be defined to activate/deactivate or momentarily activate then deactivate.

On the relay control screen there are pictures that show the state of a relay or switch.  You can click on a relay to change its state.

Since this is a Seaside program you can connect into it from any browser even one on your smart phone.  I'm not sure if I am going to sell this program or give it away but the real point of this post is to say VA Smalltalk runs on the Raspberry Pi and that you can write programs that control the GPIO pins and use Seaside to make web browser applications.

Lou

P.S.  I have punched a hole in my router to test from outside my local network, if anyone is really interested in seeing a live demo, I can be convinced to let you take a look.


On Monday, June 25, 2018 at 6:32:12 PM UTC-4, Seth Berman wrote:
Hi All,

This is really cool!  Alex and Lou LaBrunda ported the pigpio (general purpose I/O) library to VAST and built a nice
visual test program that show VAST talking to the hardware on the Pi.

I know Lou has moved on at this point and is now doing Seaside on the Pi, so more interesting things to come.
But in the meantime, I made a video of what the it looks like.  This is the latest ECAP build (to be released this week and also our last before the release)
running on the Pi.  I've also attached a picture for those that don't know what a Raspberry Pi looks like and I
circled the hardware pins that the test program is talking to.

Really amazing that VA can run on a piece of hardware I can almost close my entire hand over...and the environment
is pretty snappy too considering the hardware....completely usable.

<a href="http://www.instantiations.com/videos/RaspberryPi/VastOnPi.mp4" rel="nofollow" target="_blank" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.instantiations.com%2Fvideos%2FRaspberryPi%2FVastOnPi.mp4\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH5Ft8S_9l1NWZNyXX0drvXzw-72w&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.instantiations.com%2Fvideos%2FRaspberryPi%2FVastOnPi.mp4\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH5Ft8S_9l1NWZNyXX0drvXzw-72w&#39;;return true;">Click here to see the video
<a href="http://www.instantiations.com/videos/RaspberryPi/PicOfPi.png" rel="nofollow" target="_blank" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.instantiations.com%2Fvideos%2FRaspberryPi%2FPicOfPi.png\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFrxzqCHlBBBa6NtFZSL3088hsAyw&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.instantiations.com%2Fvideos%2FRaspberryPi%2FPicOfPi.png\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFrxzqCHlBBBa6NtFZSL3088hsAyw&#39;;return true;">Click here to see the picture

Enjoy!

-- Seth

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Video of VAST running on Raspberry Pi and controlling the hardware pins...

Louis LaBrunda
Hi Seth and Everybody,

You are very welcome.  Don't feel too bad about the response to the 64-bit VAST announcement, I expect it is hard to get people excited about that kind of thing.  Not to mention the demo program literally had flashing lights.

I just remembered I wanted to post a little about the hardware GPIO interface, so I will do so here.

My original intention was to just port the interface from Squeak.  It is not that simple a port because the implementation of both platform functions and exceptions are very different in VA Smalltalk and Squeak.  First some big picture info.  There are two interface libraries, pigpio.so and pigpiod_if2.so, this (the difference between pigpio and pigpiod C interface), will explain in more detail.  Basically, the first one only runs on the Raspberry, it gives one more control but is harder to use.  The second one pairs up with the pigpiod daemon.  The deamon runs on the Raspberry being controlled and the interface can be used from other computers.  The Squeak interface and our VA Smalltalk interface use the daemon.  The deamon is accessed through the pigpiod_if2.so interface via a TCP/IP address and port.  The latest version of pigpiod_if2.so contains more functions than the Squeak and our interface support.  When time permits, those functions will be added to our interface.  When that version is ready, it will be posted to VASt Goodies.

Once I got past the changes I needed to make to deal with the differences in Squeak and VAST, I had a better understanding of the interface as a whole.  The Squeak interface revolved around a class that did most of the talking to the functions in pigpiod_if2.so.  Although it allowed more than one instance of that class, they pushed one instance and made it a little hard to use more than one.  For the most part, this is fine but if say you want to control more than one Raspberry from a single program, it gets hard to set this up and keep track of things.

In our interface, every connection to one or more Raspberries is through an instance of the interface class: PiGpiodInterface.  There are simple class methods to instantiate an instance and a connection to the Raspberry being controlled.  There are many devices that can be connected to a Raspberry, many of them require a device and bus object to aid in controlling the device.  Instantiating these objects is done through methods of an instance of PiGpiodInterface that controls the device.  Many of these objects have handles assigned by the pigpiod_if2.so interface.  When finished, these handles need to be closed or freed.  Since the interface instance knows about the instances it created, it can and does automatically handle that process.

Given this arrangement, many Raspberries, each running the deamon, can be connected to and controlled by another Raspberry (or other Linux computer) running a VA Smalltalk program.  If we can compile a Windows version of pigpiod_if2.so (as a DLL) then a VA Smalltalk Windows program could do the same.

Lou

On Friday, June 29, 2018 at 12:19:24 PM UTC-4, Seth Berman wrote:
Hi Lou,

Thanks Lou for the great work that your doing on this!
We had an amazing response on both LinkedIn and Twitter from both the Smalltalk and Raspberry PI community.
It was a little bittersweet because the response stats for that video are already caught up with our 64-bit VAST announcement we did in September.
I guess I should have made a video showing an visual layout of a live 30GB heap:) 
Lesson learned...maybe next time.

Looking forward to the Seaside demonstration!

-- Seth

On Friday, June 29, 2018 at 12:10:55 PM UTC-4, Louis LaBrunda wrote:
Hi Everybody,

The Seaside program that Seth mentions is almost finished.  It took a quick fix to one method by Seth that he says will be in the released product.

The Seaside program is designed to run headless on the Raspberry Pi (hopefully any version).  It has about three screens.  A simple login screen with just a password (no user id) and an option to save the password in a cookie.  From there you can move on to a screen to control the relays you have wired to the GPIO pins of the Raspberry or to a setting screen where you describe how you have the pins wired.  You can define the pins as controlling a relay or sensing an open or closed switch.  The relay controls can be defined to activate/deactivate or momentarily activate then deactivate.

On the relay control screen there are pictures that show the state of a relay or switch.  You can click on a relay to change its state.

Since this is a Seaside program you can connect into it from any browser even one on your smart phone.  I'm not sure if I am going to sell this program or give it away but the real point of this post is to say VA Smalltalk runs on the Raspberry Pi and that you can write programs that control the GPIO pins and use Seaside to make web browser applications.

Lou

P.S.  I have punched a hole in my router to test from outside my local network, if anyone is really interested in seeing a live demo, I can be convinced to let you take a look.


On Monday, June 25, 2018 at 6:32:12 PM UTC-4, Seth Berman wrote:
Hi All,

This is really cool!  Alex and Lou LaBrunda ported the pigpio (general purpose I/O) library to VAST and built a nice
visual test program that show VAST talking to the hardware on the Pi.

I know Lou has moved on at this point and is now doing Seaside on the Pi, so more interesting things to come.
But in the meantime, I made a video of what the it looks like.  This is the latest ECAP build (to be released this week and also our last before the release)
running on the Pi.  I've also attached a picture for those that don't know what a Raspberry Pi looks like and I
circled the hardware pins that the test program is talking to.

Really amazing that VA can run on a piece of hardware I can almost close my entire hand over...and the environment
is pretty snappy too considering the hardware....completely usable.

<a href="http://www.instantiations.com/videos/RaspberryPi/VastOnPi.mp4" rel="nofollow" target="_blank" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.instantiations.com%2Fvideos%2FRaspberryPi%2FVastOnPi.mp4\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH5Ft8S_9l1NWZNyXX0drvXzw-72w&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.instantiations.com%2Fvideos%2FRaspberryPi%2FVastOnPi.mp4\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH5Ft8S_9l1NWZNyXX0drvXzw-72w&#39;;return true;">Click here to see the video
<a href="http://www.instantiations.com/videos/RaspberryPi/PicOfPi.png" rel="nofollow" target="_blank" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.instantiations.com%2Fvideos%2FRaspberryPi%2FPicOfPi.png\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFrxzqCHlBBBa6NtFZSL3088hsAyw&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.instantiations.com%2Fvideos%2FRaspberryPi%2FPicOfPi.png\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFrxzqCHlBBBa6NtFZSL3088hsAyw&#39;;return true;">Click here to see the picture

Enjoy!

-- Seth

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Video of VAST running on Raspberry Pi and controlling the hardware pins...

Mariano Peck
Hi Louis,

This is just a quick email to thank you for sharing such a nice project. It has been years since I wanted to toy with the idea of having Seaside running on Raspberry but I never had the time. And now that I saw you video, I can't wait to order one via Amazon :)

In fact, I almost did something related to that for my PhD (I wanted to have a farm of raspberries serving very small Seaside images with an apache on front doing load balancing).

I am curious, what's the size of those abt.icx images? Looks like a normal development image for the pins/lights demo right?  As for "deploying the Seaside",  did you ever try doing XD reduced packaging?   

Once again, thanks for sharing!


On Fri, Jun 29, 2018 at 3:48 PM Louis LaBrunda <[hidden email]> wrote:
Hi Seth and Everybody,

You are very welcome.  Don't feel too bad about the response to the 64-bit VAST announcement, I expect it is hard to get people excited about that kind of thing.  Not to mention the demo program literally had flashing lights.

I just remembered I wanted to post a little about the hardware GPIO interface, so I will do so here.

My original intention was to just port the interface from Squeak.  It is not that simple a port because the implementation of both platform functions and exceptions are very different in VA Smalltalk and Squeak.  First some big picture info.  There are two interface libraries, pigpio.so and pigpiod_if2.so, this (the difference between pigpio and pigpiod C interface), will explain in more detail.  Basically, the first one only runs on the Raspberry, it gives one more control but is harder to use.  The second one pairs up with the pigpiod daemon.  The deamon runs on the Raspberry being controlled and the interface can be used from other computers.  The Squeak interface and our VA Smalltalk interface use the daemon.  The deamon is accessed through the pigpiod_if2.so interface via a TCP/IP address and port.  The latest version of pigpiod_if2.so contains more functions than the Squeak and our interface support.  When time permits, those functions will be added to our interface.  When that version is ready, it will be posted to VASt Goodies.

Once I got past the changes I needed to make to deal with the differences in Squeak and VAST, I had a better understanding of the interface as a whole.  The Squeak interface revolved around a class that did most of the talking to the functions in pigpiod_if2.so.  Although it allowed more than one instance of that class, they pushed one instance and made it a little hard to use more than one.  For the most part, this is fine but if say you want to control more than one Raspberry from a single program, it gets hard to set this up and keep track of things.

In our interface, every connection to one or more Raspberries is through an instance of the interface class: PiGpiodInterface.  There are simple class methods to instantiate an instance and a connection to the Raspberry being controlled.  There are many devices that can be connected to a Raspberry, many of them require a device and bus object to aid in controlling the device.  Instantiating these objects is done through methods of an instance of PiGpiodInterface that controls the device.  Many of these objects have handles assigned by the pigpiod_if2.so interface.  When finished, these handles need to be closed or freed.  Since the interface instance knows about the instances it created, it can and does automatically handle that process.

Given this arrangement, many Raspberries, each running the deamon, can be connected to and controlled by another Raspberry (or other Linux computer) running a VA Smalltalk program.  If we can compile a Windows version of pigpiod_if2.so (as a DLL) then a VA Smalltalk Windows program could do the same.

Lou

On Friday, June 29, 2018 at 12:19:24 PM UTC-4, Seth Berman wrote:
Hi Lou,

Thanks Lou for the great work that your doing on this!
We had an amazing response on both LinkedIn and Twitter from both the Smalltalk and Raspberry PI community.
It was a little bittersweet because the response stats for that video are already caught up with our 64-bit VAST announcement we did in September.
I guess I should have made a video showing an visual layout of a live 30GB heap:) 
Lesson learned...maybe next time.

Looking forward to the Seaside demonstration!

-- Seth

On Friday, June 29, 2018 at 12:10:55 PM UTC-4, Louis LaBrunda wrote:
Hi Everybody,

The Seaside program that Seth mentions is almost finished.  It took a quick fix to one method by Seth that he says will be in the released product.

The Seaside program is designed to run headless on the Raspberry Pi (hopefully any version).  It has about three screens.  A simple login screen with just a password (no user id) and an option to save the password in a cookie.  From there you can move on to a screen to control the relays you have wired to the GPIO pins of the Raspberry or to a setting screen where you describe how you have the pins wired.  You can define the pins as controlling a relay or sensing an open or closed switch.  The relay controls can be defined to activate/deactivate or momentarily activate then deactivate.

On the relay control screen there are pictures that show the state of a relay or switch.  You can click on a relay to change its state.

Since this is a Seaside program you can connect into it from any browser even one on your smart phone.  I'm not sure if I am going to sell this program or give it away but the real point of this post is to say VA Smalltalk runs on the Raspberry Pi and that you can write programs that control the GPIO pins and use Seaside to make web browser applications.

Lou

P.S.  I have punched a hole in my router to test from outside my local network, if anyone is really interested in seeing a live demo, I can be convinced to let you take a look.


On Monday, June 25, 2018 at 6:32:12 PM UTC-4, Seth Berman wrote:
Hi All,

This is really cool!  Alex and Lou LaBrunda ported the pigpio (general purpose I/O) library to VAST and built a nice
visual test program that show VAST talking to the hardware on the Pi.

I know Lou has moved on at this point and is now doing Seaside on the Pi, so more interesting things to come.
But in the meantime, I made a video of what the it looks like.  This is the latest ECAP build (to be released this week and also our last before the release)
running on the Pi.  I've also attached a picture for those that don't know what a Raspberry Pi looks like and I
circled the hardware pins that the test program is talking to.

Really amazing that VA can run on a piece of hardware I can almost close my entire hand over...and the environment
is pretty snappy too considering the hardware....completely usable.


Enjoy!

-- Seth

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.


--
Mariano Martinez Peck
Software Engineer, Instantiations Inc.
[hidden email]

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Video of VAST running on Raspberry Pi and controlling the hardware pins...

Louis LaBrunda
Hi Mariano,

On Friday, June 29, 2018 at 3:44:10 PM UTC-4, marianopeck wrote:
Hi Louis,

This is just a quick email to thank you for sharing such a nice project. It has been years since I wanted to toy with the idea of having Seaside running on Raspberry but I never had the time. And now that I saw you video, I can't wait to order one via Amazon :)

You are welcome.  Just to be clear, the video shows a regular GUI window program to demonstrate controlling the GPIO pins, it is NOT a Seaside program. 
 
In fact, I almost did something related to that for my PhD (I wanted to have a farm of raspberries serving very small Seaside images with an apache on front doing load balancing).

That sounds cool.  I have written two Seaside program for the Raspberry both in Squeak.  One controls the GPIO pins and has now been (almost done) converted to VA Smalltalk.  The second is actually a GUI program that is intended to make a Raspberry Zero W ($10 - the W is for WiFi) and a monitor (no keyboard) look like a clock.  The Seaside part is to allow remote access to change the settings (things like the picture for the clock face).  I played with Apache but found it overkill and had some problems, so now I just use Seaside and some special code to deal with files.  But for load balancing, it is probable the way to go.
 
I am curious, what's the size of those abt.icx images? Looks like a normal development image for the pins/lights demo right?  As for "deploying the Seaside",  did you ever try doing XD reduced packaging?   

The 32 bit development image on the Raspberry is about 24MB.  On Windows I make XD images for my Windows NT Services all the time.  They run about 2MBs to 3MBs.  I'm not at the point of packaging any thing on the Raspberry yet.  I may not bother to package the GUI demo program as it is really for testing (when Seth changes the VM) and to show developers how to do basic GPIO stuff.  I doubt a packaged Seaside XD image would be much more than 4MBs.
 
Once again, thanks for sharing!


On Fri, Jun 29, 2018 at 3:48 PM Louis LaBrunda <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="O-6AdI8DCgAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">L...@...> wrote:
Hi Seth and Everybody,

You are very welcome.  Don't feel too bad about the response to the 64-bit VAST announcement, I expect it is hard to get people excited about that kind of thing.  Not to mention the demo program literally had flashing lights.

I just remembered I wanted to post a little about the hardware GPIO interface, so I will do so here.

My original intention was to just port the interface from Squeak.  It is not that simple a port because the implementation of both platform functions and exceptions are very different in VA Smalltalk and Squeak.  First some big picture info.  There are two interface libraries, pigpio.so and pigpiod_if2.so, this <a href="https://github.com/joan2937/pigpio/issues/129" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjoan2937%2Fpigpio%2Fissues%2F129\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFT1GrDc1kY8HhCmSz2BevQ0uPfXQ&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjoan2937%2Fpigpio%2Fissues%2F129\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFT1GrDc1kY8HhCmSz2BevQ0uPfXQ&#39;;return true;">(the difference between pigpio and pigpiod C interface), will explain in more detail.  Basically, the first one only runs on the Raspberry, it gives one more control but is harder to use.  The second one pairs up with the pigpiod daemon.  The deamon runs on the Raspberry being controlled and the interface can be used from other computers.  The Squeak interface and our VA Smalltalk interface use the daemon.  The deamon is accessed through the pigpiod_if2.so interface via a TCP/IP address and port.  The latest version of pigpiod_if2.so contains more functions than the Squeak and our interface support.  When time permits, those functions will be added to our interface.  When that version is ready, it will be posted to <a href="http://vastgoodies.com" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fvastgoodies.com\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHxjcEL5lPg-RJkLXxK7FrDTlALcw&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fvastgoodies.com\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHxjcEL5lPg-RJkLXxK7FrDTlALcw&#39;;return true;">VASt Goodies.

Once I got past the changes I needed to make to deal with the differences in Squeak and VAST, I had a better understanding of the interface as a whole.  The Squeak interface revolved around a class that did most of the talking to the functions in pigpiod_if2.so.  Although it allowed more than one instance of that class, they pushed one instance and made it a little hard to use more than one.  For the most part, this is fine but if say you want to control more than one Raspberry from a single program, it gets hard to set this up and keep track of things.

In our interface, every connection to one or more Raspberries is through an instance of the interface class: PiGpiodInterface.  There are simple class methods to instantiate an instance and a connection to the Raspberry being controlled.  There are many devices that can be connected to a Raspberry, many of them require a device and bus object to aid in controlling the device.  Instantiating these objects is done through methods of an instance of PiGpiodInterface that controls the device.  Many of these objects have handles assigned by the pigpiod_if2.so interface.  When finished, these handles need to be closed or freed.  Since the interface instance knows about the instances it created, it can and does automatically handle that process.

Given this arrangement, many Raspberries, each running the deamon, can be connected to and controlled by another Raspberry (or other Linux computer) running a VA Smalltalk program.  If we can compile a Windows version of pigpiod_if2.so (as a DLL) then a VA Smalltalk Windows program could do the same.

Lou

On Friday, June 29, 2018 at 12:19:24 PM UTC-4, Seth Berman wrote:
Hi Lou,

Thanks Lou for the great work that your doing on this!
We had an amazing response on both LinkedIn and Twitter from both the Smalltalk and Raspberry PI community.
It was a little bittersweet because the response stats for that video are already caught up with our 64-bit VAST announcement we did in September.
I guess I should have made a video showing an visual layout of a live 30GB heap:) 
Lesson learned...maybe next time.

Looking forward to the Seaside demonstration!

-- Seth

On Friday, June 29, 2018 at 12:10:55 PM UTC-4, Louis LaBrunda wrote:
Hi Everybody,

The Seaside program that Seth mentions is almost finished.  It took a quick fix to one method by Seth that he says will be in the released product.

The Seaside program is designed to run headless on the Raspberry Pi (hopefully any version).  It has about three screens.  A simple login screen with just a password (no user id) and an option to save the password in a cookie.  From there you can move on to a screen to control the relays you have wired to the GPIO pins of the Raspberry or to a setting screen where you describe how you have the pins wired.  You can define the pins as controlling a relay or sensing an open or closed switch.  The relay controls can be defined to activate/deactivate or momentarily activate then deactivate.

On the relay control screen there are pictures that show the state of a relay or switch.  You can click on a relay to change its state.

Since this is a Seaside program you can connect into it from any browser even one on your smart phone.  I'm not sure if I am going to sell this program or give it away but the real point of this post is to say VA Smalltalk runs on the Raspberry Pi and that you can write programs that control the GPIO pins and use Seaside to make web browser applications.

Lou

P.S.  I have punched a hole in my router to test from outside my local network, if anyone is really interested in seeing a live demo, I can be convinced to let you take a look.


On Monday, June 25, 2018 at 6:32:12 PM UTC-4, Seth Berman wrote:
Hi All,

This is really cool!  Alex and Lou LaBrunda ported the pigpio (general purpose I/O) library to VAST and built a nice
visual test program that show VAST talking to the hardware on the Pi.

I know Lou has moved on at this point and is now doing Seaside on the Pi, so more interesting things to come.
But in the meantime, I made a video of what the it looks like.  This is the latest ECAP build (to be released this week and also our last before the release)
running on the Pi.  I've also attached a picture for those that don't know what a Raspberry Pi looks like and I
circled the hardware pins that the test program is talking to.

Really amazing that VA can run on a piece of hardware I can almost close my entire hand over...and the environment
is pretty snappy too considering the hardware....completely usable.

<a href="http://www.instantiations.com/videos/RaspberryPi/VastOnPi.mp4" rel="nofollow" target="_blank" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.instantiations.com%2Fvideos%2FRaspberryPi%2FVastOnPi.mp4\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH5Ft8S_9l1NWZNyXX0drvXzw-72w&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.instantiations.com%2Fvideos%2FRaspberryPi%2FVastOnPi.mp4\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH5Ft8S_9l1NWZNyXX0drvXzw-72w&#39;;return true;">Click here to see the video
<a href="http://www.instantiations.com/videos/RaspberryPi/PicOfPi.png" rel="nofollow" target="_blank" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.instantiations.com%2Fvideos%2FRaspberryPi%2FPicOfPi.png\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFrxzqCHlBBBa6NtFZSL3088hsAyw&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fwww.instantiations.com%2Fvideos%2FRaspberryPi%2FPicOfPi.png\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFrxzqCHlBBBa6NtFZSL3088hsAyw&#39;;return true;">Click here to see the picture

Enjoy!

-- Seth

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="O-6AdI8DCgAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">va-smalltalk...@googlegroups.com.
To post to this group, send email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="O-6AdI8DCgAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">va-sma...@....
Visit this group at <a href="https://groups.google.com/group/va-smalltalk" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://groups.google.com/group/va-smalltalk&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/group/va-smalltalk&#39;;return true;">https://groups.google.com/group/va-smalltalk.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;">https://groups.google.com/d/optout.


--
Mariano Martinez Peck
Software Engineer, Instantiations Inc.
<a href="javascript:" target="_blank" gdf-obfuscated-mailto="O-6AdI8DCgAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">mp...@...

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Video of VAST running on Raspberry Pi and controlling the hardware pins...

Mariano Peck


On Fri, Jun 29, 2018 at 6:44 PM Louis LaBrunda <[hidden email]> wrote:
Hi Mariano,

On Friday, June 29, 2018 at 3:44:10 PM UTC-4, marianopeck wrote:
Hi Louis,

This is just a quick email to thank you for sharing such a nice project. It has been years since I wanted to toy with the idea of having Seaside running on Raspberry but I never had the time. And now that I saw you video, I can't wait to order one via Amazon :)

You are welcome.  Just to be clear, the video shows a regular GUI window program to demonstrate controlling the GPIO pins, it is NOT a Seaside program. 
 


Yes, I know the video was a regular GUI but I read that you get past that and had something with Seaside :)

 
In fact, I almost did something related to that for my PhD (I wanted to have a farm of raspberries serving very small Seaside images with an apache on front doing load balancing).

That sounds cool.  I have written two Seaside program for the Raspberry both in Squeak.  One controls the GPIO pins and has now been (almost done) converted to VA Smalltalk.  The second is actually a GUI program that is intended to make a Raspberry Zero W ($10 - the W is for WiFi) and a monitor (no keyboard) look like a clock.  The Seaside part is to allow remote access to change the settings (things like the picture for the clock face). 

Excellent!  That sounds very cool! 
 
I played with Apache but found it overkill and had some problems, so now I just use Seaside and some special code to deal with files.  But for load balancing, it is probable the way to go.
 

Yeah...I said Apache but I wanted to mean any web server...I usually run with nginx...

 
I am curious, what's the size of those abt.icx images? Looks like a normal development image for the pins/lights demo right?  As for "deploying the Seaside",  did you ever try doing XD reduced packaging?   

The 32 bit development image on the Raspberry is about 24MB.  On Windows I make XD images for my Windows NT Services all the time.  They run about 2MBs to 3MBs.  I'm not at the point of packaging any thing on the Raspberry yet.  I may not bother to package the GUI demo program as it is really for testing (when Seth changes the VM) and to show developers how to do basic GPIO stuff.  I doubt a packaged Seaside XD image would be much more than 4MBs.


Sure. I was thinking more on domain application running Seaside on a reduced XD image. I did experiment packaging Seaside with XD reduced image and it was around 7MB which is still awesome. 

Anyway, great project. Thanks for keep us informed!

 
 
Once again, thanks for sharing!


On Fri, Jun 29, 2018 at 3:48 PM Louis LaBrunda <[hidden email]> wrote:
Hi Seth and Everybody,

You are very welcome.  Don't feel too bad about the response to the 64-bit VAST announcement, I expect it is hard to get people excited about that kind of thing.  Not to mention the demo program literally had flashing lights.

I just remembered I wanted to post a little about the hardware GPIO interface, so I will do so here.

My original intention was to just port the interface from Squeak.  It is not that simple a port because the implementation of both platform functions and exceptions are very different in VA Smalltalk and Squeak.  First some big picture info.  There are two interface libraries, pigpio.so and pigpiod_if2.so, this (the difference between pigpio and pigpiod C interface), will explain in more detail.  Basically, the first one only runs on the Raspberry, it gives one more control but is harder to use.  The second one pairs up with the pigpiod daemon.  The deamon runs on the Raspberry being controlled and the interface can be used from other computers.  The Squeak interface and our VA Smalltalk interface use the daemon.  The deamon is accessed through the pigpiod_if2.so interface via a TCP/IP address and port.  The latest version of pigpiod_if2.so contains more functions than the Squeak and our interface support.  When time permits, those functions will be added to our interface.  When that version is ready, it will be posted to VASt Goodies.

Once I got past the changes I needed to make to deal with the differences in Squeak and VAST, I had a better understanding of the interface as a whole.  The Squeak interface revolved around a class that did most of the talking to the functions in pigpiod_if2.so.  Although it allowed more than one instance of that class, they pushed one instance and made it a little hard to use more than one.  For the most part, this is fine but if say you want to control more than one Raspberry from a single program, it gets hard to set this up and keep track of things.

In our interface, every connection to one or more Raspberries is through an instance of the interface class: PiGpiodInterface.  There are simple class methods to instantiate an instance and a connection to the Raspberry being controlled.  There are many devices that can be connected to a Raspberry, many of them require a device and bus object to aid in controlling the device.  Instantiating these objects is done through methods of an instance of PiGpiodInterface that controls the device.  Many of these objects have handles assigned by the pigpiod_if2.so interface.  When finished, these handles need to be closed or freed.  Since the interface instance knows about the instances it created, it can and does automatically handle that process.

Given this arrangement, many Raspberries, each running the deamon, can be connected to and controlled by another Raspberry (or other Linux computer) running a VA Smalltalk program.  If we can compile a Windows version of pigpiod_if2.so (as a DLL) then a VA Smalltalk Windows program could do the same.

Lou

On Friday, June 29, 2018 at 12:19:24 PM UTC-4, Seth Berman wrote:
Hi Lou,

Thanks Lou for the great work that your doing on this!
We had an amazing response on both LinkedIn and Twitter from both the Smalltalk and Raspberry PI community.
It was a little bittersweet because the response stats for that video are already caught up with our 64-bit VAST announcement we did in September.
I guess I should have made a video showing an visual layout of a live 30GB heap:) 
Lesson learned...maybe next time.

Looking forward to the Seaside demonstration!

-- Seth

On Friday, June 29, 2018 at 12:10:55 PM UTC-4, Louis LaBrunda wrote:
Hi Everybody,

The Seaside program that Seth mentions is almost finished.  It took a quick fix to one method by Seth that he says will be in the released product.

The Seaside program is designed to run headless on the Raspberry Pi (hopefully any version).  It has about three screens.  A simple login screen with just a password (no user id) and an option to save the password in a cookie.  From there you can move on to a screen to control the relays you have wired to the GPIO pins of the Raspberry or to a setting screen where you describe how you have the pins wired.  You can define the pins as controlling a relay or sensing an open or closed switch.  The relay controls can be defined to activate/deactivate or momentarily activate then deactivate.

On the relay control screen there are pictures that show the state of a relay or switch.  You can click on a relay to change its state.

Since this is a Seaside program you can connect into it from any browser even one on your smart phone.  I'm not sure if I am going to sell this program or give it away but the real point of this post is to say VA Smalltalk runs on the Raspberry Pi and that you can write programs that control the GPIO pins and use Seaside to make web browser applications.

Lou

P.S.  I have punched a hole in my router to test from outside my local network, if anyone is really interested in seeing a live demo, I can be convinced to let you take a look.


On Monday, June 25, 2018 at 6:32:12 PM UTC-4, Seth Berman wrote:
Hi All,

This is really cool!  Alex and Lou LaBrunda ported the pigpio (general purpose I/O) library to VAST and built a nice
visual test program that show VAST talking to the hardware on the Pi.

I know Lou has moved on at this point and is now doing Seaside on the Pi, so more interesting things to come.
But in the meantime, I made a video of what the it looks like.  This is the latest ECAP build (to be released this week and also our last before the release)
running on the Pi.  I've also attached a picture for those that don't know what a Raspberry Pi looks like and I
circled the hardware pins that the test program is talking to.

Really amazing that VA can run on a piece of hardware I can almost close my entire hand over...and the environment
is pretty snappy too considering the hardware....completely usable.


Enjoy!

-- Seth

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.


--
Mariano Martinez Peck
Software Engineer, Instantiations Inc.
[hidden email]

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.


--
Mariano Martinez Peck
Software Engineer, Instantiations Inc.
[hidden email]

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/va-smalltalk.
For more options, visit https://groups.google.com/d/optout.