What multitasking really means to you
SPLat Controller only $29.00.
The EC1 "EasyOne", a 32-bit SPLat board with USB and true multitasking is an easy way to learn and a cheap way to explore your project ideas.
Imagine a controller that lets you write 32 separate, completely independent programs, and have them running simultaneously!
That's what you get with all SPLat controllers, even the $29.00 EC1 "EasyOne". In fact, the EC1 and subsequent 32-bit controllers, such as the HMI430, give you 64 separate tasks! You can, quite literally, have one SPLat control your aquarium, your blinds and your garage door at the same time, with your smartphone as the user interface. In reality, any non-trivial single control application needs to be able to do several things at once — just your aquarium, for example, needs to cycle the pump, control the temperature, time the lights, and monitor pH and salinity, all at the same time as interacting with a user interface.
This "magic" comes courtesy of our MultiTrack™ multitasking programming system.
Even a single "machine" will usually need more than one thing to be happening at once. The diagram above is a "top level" diagram of the control system for an automatic grind and brew espresso machine.
Now, multitasking is not something new. Embedded controls professional have been using Real Time multitasking Operating Systems (RTOS) for years. However, they are difficult to use, and error prone. Billion dollar space launches have failed because of programming errors around RTOS usage. Very possibly (though we will never find out!) cars have suddenly run out of control on freeways, or suddenly stopped, due to programming errors with RTOS systems.
What's different, and unique, about the SPLat MultiTrack system is that it is an integral part of the SPLat language, deeply embedded in the SPLat Virtual Machine, and extremely easy to use. It is so easy to use that you only need to learn two instructions to master it. It is also safe, because its design precludes many of the mechanisms that can cause problems in other systems such as priority inversion. In all other systems, the multitasking is done by an RTOS that is distinctly separate from the language. For example, C/C++ not only have no intrinsic multitasking, they don't even directly support physical inputs and outputs. All that stuff comes from clunky bolt-ons. In SPLat multitasking is Programming 101, not mind-numbing PhD material!
SPLat is the only board system in the world designed specifically for real time, multitasking controls
About products like Arduino and many other that came before: These are not going to get much real work done, but they will probably help some learn about embedded programming (and the frustration of writing useful reliable code). I looked at it as a possible solution for me and when I reviewed the programming language I took a pass — it was simply not going to yield useful operation with my old EE programming skills (I am 68!). When I reviewed SPLat and ran the little FastTrack course, I was intrigued, but the capability that got me hooked was the very simple ability to do multi-tasking with only two commands; LaunchTask and RunTasksForever! At first I could not believe it could be that simple to actually do multiple tasks in real time reliably without worrying about endless loops and interrupts. I have used mostly FastTrack commands in my simple programs, but they do real and complex work and I can write it myself! I must say that one of the things I miss about leading a very capable group of engineers, is that I can no longer dream up the control scheme and then turn the programming over to others. If I want to make a system work that needs more than an ON/OFF switch, I now have a way to do it myself.
Jim Livingston, Manton, CA