Shop OBEX P1 Docs P2 Docs Learn Events
Advanced Serial Terminal Project — Parallax Forums

Advanced Serial Terminal Project

Kirk FraserKirk Fraser Posts: 364
edited 2013-04-26 05:25 in Propeller 1
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.

Comments

  • Heater.Heater. Posts: 21,230
    edited 2013-04-21 13:53
    Kirk Fraser,

    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.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2013-04-21 14:03
    Yes, and yes. But you would probably be served as well with the same MIT license that Parallax places on objects in the object exchange.

    Jeff
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2013-04-21 14:03
    Yes, and yes. But you would probably be served as well with the same MIT license that Parallax places on objects in the object exchange.

    Jeff
  • Kirk FraserKirk Fraser Posts: 364
    edited 2013-04-21 14:45
    MIT is fine. How do I get Smalltalk to interact with a Propeller?

    Smalltalk is already an IDE so it would make deploying custom applications of Propeller projects very easy.
  • Mike GMike G Posts: 2,702
    edited 2013-04-21 18:20
    MIT is fine. How do I get Smalltalk to interact with a Propeller?

    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?
  • Kirk FraserKirk Fraser Posts: 364
    edited 2013-04-21 19:33
    Mike G wrote: »
    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.
  • Mike GreenMike Green Posts: 23,101
    edited 2013-04-21 20:02
    I would not consider writing an advanced serial terminal program in Smalltalk. While it's certainly doable, I see only a complex development task for something where the tools are already available (and I've written a lot of Smalltalk at one time or another). For a lot of applications, either StampPlot Pro or its successor or Hanno's Viewport would be a ready-to-go tool for most plotting and GUI work. Another option for just the GUI display stuff might be a VT220 emulator of which a variety are available for PC / MacOS / Linux. VT220 is a standard graphics command set for serial terminals. Another option might be similar to what Heater suggested, using HTML to specify the GUI elements, either provided only on the PC side or supplied from the Prop side with a lightweight server on the PC side to communicate locally to a standard browser.
  • Kirk FraserKirk Fraser Posts: 364
    edited 2013-04-22 11:42
    Mike Green wrote: »
    For a lot of applications, either StampPlot Pro or its successor or Hanno's Viewport would be a ready-to-go tool for most plotting and GUI work.

    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.
    Mike Green wrote: »
    Another option for just the GUI display stuff might be a VT220 emulator of which a variety are available for PC / MacOS / Linux. VT220 is a standard graphics command set for serial terminals.

    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?
    Mike Green wrote: »
    Another option might be similar to what Heater suggested, using HTML to specify the GUI elements, either provided only on the PC side or supplied from the Prop side with a lightweight server on the PC side to communicate locally to a standard browser.

    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.
  • mindrobotsmindrobots Posts: 6,506
    edited 2013-04-22 11:54
    Would you be interested in a free public domain serial terminal for your Propeller projects.....
    <and then later>
    ....... so if I sell several copies of my project the profits are all mine.

    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.
  • Mike GMike G Posts: 2,702
    edited 2013-04-22 12:35
    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.
    Ummm, HTML a kludge? Them there are fighting words.

    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.
  • Kirk FraserKirk Fraser Posts: 364
    edited 2013-04-22 14:08
    mindrobots wrote: »
    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
    https://docs.google.com/document/pub?id=1bEH0DfGmu99M1SqCbmlzl991Ssv2J5m6XWmkJX0XSl8
    http://code.google.com/p/propforth/
    .
    Perhaps answering comparing to Forth may clarify.
    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.
  • Heater.Heater. Posts: 21,230
    edited 2013-04-22 14:15
    MIke G,

    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.
  • Heater.Heater. Posts: 21,230
    edited 2013-04-22 14:27
    Kirk,
    ...make a virtual machine to run Cuis or a tiny Smalltalk on Propellers.

    This is clearly impossible:)
  • Kirk FraserKirk Fraser Posts: 364
    edited 2013-04-22 14:49
    Heater. wrote: »
    Kirk,
    This is clearly impossible:)

    Why?
  • Heater.Heater. Posts: 21,230
    edited 2013-04-22 22:31
    Kirk,

    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:)
  • prof_brainoprof_braino Posts: 4,313
    edited 2013-04-24 12:32
    ... 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.

    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.
  • Kirk FraserKirk Fraser Posts: 364
    edited 2013-04-26 04:38
    A friend just mailed an urgent need for money about 2 years from now. So I'll be cutting back on the hobby ideas and moving forward with things I think have a chance at profit. So I may not work on putting Smalltalk on a Prop, For now I'll stick to making it a serial terminal since I can write Smalltalk easier than learning a new language.

    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.
  • Heater.Heater. Posts: 21,230
    edited 2013-04-26 05:25
    Kirk,
    ...I'll downsize to Bible understanding which could also be profitable.
    There is something very wrong with that entire concept.
    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.
    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.
Sign In or Register to comment.