Advanced Serial Terminal Project
Kirk Fraser
Posts: 364
Would you be interested in a free public domain serial terminal for your Propeller projects that would give you the ability to write a Graphical User Interface to display your interaction instead of only seeing a stream of numbers (and debug statements) scrolling by? What if it were 3 times easier to program in than C? That could make you more productive on the PC side of your projects.
An application for robots would be tracking the robot graphically, possibly displaying one or two video images along side or under the path of the robot, and simplifying writing scripts for making the robot perform sequences of events.
Adding Smalltalk to the Serial Terminal can accomplish all these features. Are you willing to put some time in either paid or volunteer to write a new serial terminal in Squeak or Cuis Smalltalk which are free versions which the source code is freely available for both the GUI engine and virtual machine? If paid, what would be your bid on a nominal fee for this project? Thanks.
An application for robots would be tracking the robot graphically, possibly displaying one or two video images along side or under the path of the robot, and simplifying writing scripts for making the robot perform sequences of events.
Adding Smalltalk to the Serial Terminal can accomplish all these features. Are you willing to put some time in either paid or volunteer to write a new serial terminal in Squeak or Cuis Smalltalk which are free versions which the source code is freely available for both the GUI engine and virtual machine? If paid, what would be your bid on a nominal fee for this project? Thanks.
Comments
What do you mean "public domain"? As far as I know there is no way to put your works into the public domain unless you die and wait seventy years or whatever the term is crrently. I presume you mean under some license that provides for free use of binaries and or open source.
My plan is to do what you are describing using a small server process in JavaScript running under Node.js and a WEB browser for the GUI. Certainly three or more times easier to program than doing it all in C. Mind you I'm not looking to build anything as grand as an IDE and debugger with that although it has potential as things like the Cloud9 web based IDE show us.
Jeff
Jeff
Smalltalk is already an IDE so it would make deploying custom applications of Propeller projects very easy.
I'm a little confused... I thought Smalltalk was a language. What kind of custom application and deploy how? Do you mean load a program in EEPROM/RAM on the propeller?
Yes Smalltalk is a language. It also has a library with lots of features including a GUI, debugger, and more. It's only good for the personal computer on the other side of the USB interface of a Propeller, not executable within a propeller itself at present. It could be used in place of the serial terminal to display graphics instead of just numbers. If the right people liked its operation as a serial terminal then someone might get inspired to make a version that works on a Propeller.
Any custom application that needs a PC plus Propeller such as a robot run by a laptop or a sensor net reporting to a laptop or any such application to deploy by selling to a specific customer or to the public.
Except for one thing. Each copy is not free, they both cost licence money. Squeak and its derivative Cuis are free to copy so if I sell several copies of my project the profits are all mine. Eventually there is a break even point where the work would be paid for. Also if it was posted for Parallax community use, everyone could benefit from Smalltalk objects like they do Spin objects.
While there are freeware VT220's (not sure they are really free or just delayed licencing or heavy on ads), they don't provide a programming language which is a key need for a better serial terminal. Maybe you could get Parallax to build one that allows programming in Spin?
It looks like a kluge of packages to me but if you can explain how to hook HTML up to a Propeller,I'll give it a try - I have plenty of html experience writing www.freetom.info and I have some past acquaintance with html graphics.
I'm confused....why am I buying a free copy?
What am I investing in?
Why is this better than any of the other solutions if I don't Squeak already?
I'll stick to the irons I already have in the fire and stick with the horse that brung me.
I've built graphics (gadgets) that wire up to UDP/TCP but the app would work over serial just as well. I know there's very cool work going on with ucProbe, http://micrium.com/tools/ucprobe/overview/, and the W5200 for the Quick Start.
I also built simple SVG graphics - thermometer. The propeller renders the SVG file to the client. So, no PC side code except a browser. All the logic is wrapped in SPIN.
Keep us up-to-date on your project.
One doesn't buy free Forth's, but one might sell a Propeller with a useful solution in an application of Forth and a copy of a free Forth could be included so the end user can extend, refine, or apply the product.
The advantage of Smalltalk over Spin is it allows object variables, not simply methods, functions, or subroutines called objects. The advantages of Smalltalk over Forth include that and more. Object variables allow more creativity when designing solutions. But in any language sometimes legacy code can use confusing variable names depending on the programmer.
One could use Tachyon Forth or PropForth to make a virtual machine to run Cuis or a tiny Smalltalk on Propellers. This with enough memory could be interesting and a lot cheaper than an 8 core PC. Perhaps PropForth's ability to unite mutliple Propellers could be interesting. If it is possible to program one Propeller from another and address a large memory stick using Smalltalk, there should be no need to use a PC for my Propeller projects.
When Kirk says " It looks like a kluge of packages to me but... HTML...Propeller" he describes the web very well:)
HTML, CSS, JavaScript, XML, JSON, HTTP, Apache, PHP, MySQL. etc etc ect. Getting the simplest things up on th a web page can take understanding some of all of that and more.
Some times I marvel that the entire mess works at all.
But what I have in mind for a Prop to browser link is a lot simpler. One simple program to run on the PC and your browser. The same language throughout, JavaScript. As little of any HTML/CSS and other nonsense as possible.
This is clearly impossible:)
Why?
Sorry, the "X is impossible to do on a Propeller" thing has become a bit of a standing joke around here. I'm not sure but I might have started it. I commented once something to the effect that I had discounted some tasks as obviously impossible for the Propeller to do because it did not have the speed or memory capacity or whatever. Only to find that someone had done it already in some form or other. Often only a partial solution but usefull anyway, and amazingly clever.
Since then when a tough job comes up people immediately say "It's impossible" in the hope that it will then be done.
A good example of this the idea of compiling C code to run on the Prop. It was not really a sensible idea, until Bill Henning invented the "Large Memory Model" technique for running native COG code from HUB RAM.
Another example is the obvious impossibility of running Java on the Prop. It's done. Yet another is running a JavaScript interpreter on the Prop. It's done.
Now, you did say SmalTalk on the Prop. Well the Prop is a computer and one way or another it is possible to get it to run SmallTalk. First you have to solve the problem of insufficient memory. Then you have to solve the speed issues, or just live with them.
Clearly impossible. I Look forward to your solution:)
Its said that forth inherently has the best features of objects, the programmer just has to understand how to use them. On a microcontroller, I find compiler maintained objects to be an extra layer of abstraction that just gets way. Best to just understand what needs to be done and just do it. But thats just me, I like to keep things simple.
If you use Smalltalk on the PC for a GUI, its easy to make an interface to it with propforth.
You still need display and keyboard services, so its hard to get rid o f the PC, ieven if just for running the terminal program.
If you can mess with bluetooth and use an android device, there's an android app (not yet released due to low urgency from low interest) that uses buttons on the android touch screen to send text to the propforth, and the text is commands or scripts. Also, on boot up, the prop tells the android app what buttons it supports, and what scripts should go with each button, so the same script works with all the different apps on the various props. The android app also supports modifying the button definitions on the prop, so you can reprogram the buttons on the fly and have them still available next boot. Aside from the initial loading of the propforth kernel, the PC is not needed.
This isn't the best solution for all applications, but it is one solution that can be handy in at least some situations. And it does much of what I think you are describing already, it might be some kind of starting point for you.
Eventually I'll write an AI program in Smalltalk. If that gets going on the right foot, I'll someday have it do the impossible. Since even PC's are too small for a Watson (which won Jeopardy with a 4Tb database) I'll downsize to Bible understanding which could also be profitable. If I can make it learn the highest level concepts from a text file, then I can make it learn programming well enough to be profitable.
Thanks everyone.
There is something very wrong with that entire concept.
You are extremely optimistic. If you can pull that off you will have achieved what sixty years of research by the best minds has failed to achieve.
I wish you the best of luck with that but I suspect your friends urgent need for money will not be met my the attempt.