Releases: frivolas/TinyTerm
V2.0.0-RibEye
TinyTerm
V2.0.0 - Ribeye
This version of tinyTerm has a bit less fat on it, hence the name.
Added:
-
Added reportEvent() method to make the comms to the user much leaner:
reportEvent();
replaces:
myTerminal.append();
myTerminal.scroll();
println();
-
Sends a
$ej:0
tinyG command upon connection to the tinyG to make sure the comms happen in TEXT mode. If comms are configured in JSON mode ($ej:1), tinyTerm fails to catch the status reports. This is a super annoying bug that still needs to be resolved. But this quick workaround has been implemented. -
Fully functional homing routines have been implemented. The user can home the machine by sending the following commands:
Command | Action |
---|---|
home | homes all axes (Z, X, A, in that order) |
homea | homes axis A (special routine) |
homex | homes axis X (simple canned cycle |
homez | homes axis Z (simple canned cycle |
- Fixed some issues with the queue manager that was locking the app if the scripts had comments
(
or tinyG commands$
in them. Since the tinyG doesn't send a response for either of these, I now look at the outgoing string and if it's either a comment or a tinyG command I don't add to the buffer. This seems to work pretty good.
TinyTerm V2.0.0 does:
- Runs a full homing sequence for a DIWire PRO for axes X, Z and A
- Sends raw GCode and tinyG commands
- Dumps text files (one line at a time)
- Dumps init files (configuration files) in JSON format
- Save log files and make them human readable
- Allows to send the same file multiple times and keep track of how many times it's done it
- Reads tinyG status codes, looking for {stat:3} and {stat:6} status reports.
TinyTerm V2.0.0 doesn't:
- Doesn't run custom homing sequences
- REMOVED: Runs a custom "measure" sequence that uses the digital I/O pins to detect changes on a probe - Raspberry Pi Only
Compatibility:
- Windows only
Known issues:
- The memory issue is still an issue. Haven't looked at it
- Homing the A axis may be tricky sometimes. Still unknown why the INTERLOCK ($di1fn:2) will be set only sometimes (non-repeatable bug)
- Equally annoying is that the INTERLOCK HIT (stat:6) seems to not be read sometimes
- The workaround for this is to send the
homea
command again, you may need to resend the init file first, but if you try again, it will work.
V1.1.0-Kobe
TinyTerm
V1.1.0 - Kobe
This version of tinyTerm has tons of fat on it, hence the name. And like a good Kobe steak, it's nice and juicy, but you'll need an alka seltzer to wash it down. It was heavily updated to add functionality that was needed, but the implementation is not the cleanest one. I split the code into a few different sketches to make it easier to read and follow, but it's still kinda convoluted. It also has code that makes it work on a Raspberry Pi, but needs to be commented / uncommented accordingly. Word of caution, this code is somewhat messy.
Added:
- In this release I added a "repeater" which allows you to send the same file as many times as indicated in the input field. This is super helpful if you're running the same test over and over again.
- I started parsing for particular keywords, like "CLS" to clear the terminal, we'll use this heavily later on
- This version also has many contributions from Dinesh Durai. Dinboy implemented a queue to improve the communications with the tinyG. Previously we were sending one line every so many milliseconds, which was OK but prevented us from injecting tinyG commands in the middle of a cnc script. He also added a few different methods for measuring using probes and sensors connected to the tinyG's digital I/O pins. This functionality is still on the works and needs tons of improvement.
- This version starts to look for a response from the tinyG
{stat:n}
in order to perform specific tasks. For example, astat:3
means the machine has stopped moving, so you could do something afterwards.
This version has code that is not yet fully functional for running a homing sequence.
TinyTerm V1.1.0 does:
- Runs a homing sequence for a DIWire PRO
- Send raw GCode and tinyG commands
- Dump text files (one line at a time)
- Dump init files (configuration files) in JSON format
- Save log files and make them human readable
- Allows to send the same file multiple times and keep track of how many times it's done it
- Reads tinyG status codes, but only looks for the {stat:3} status report.
- Runs a custom "measure" sequence that uses the digital I/O pins to detect changes on a probe - Raspberry Pi Only
TinyTerm V1.1.0 doesn't:
- Doesn't run custom homing sequences
Compatibility:
- Windows mostly
- Some linux but needs to be reviewed, commented and uncommented accordingly.
Known issues:
-
I'm still using Sojamo's ControlP5 library for the UI, which includes the textArea for displaying the terminal. This element ends up being a memory hog and will make your computer lag if you let it run for long. That's why I implemented the CLS command. If you feel your computer starts to struggle, send it a CLS and you'll free tons of memory.
I need to look at Sojamo's code to see how he implemented the textArea, and see if there's a way to make it more memory efficient, or check if there's a different way to implement this altogether. This app should be super lean.
V1.0.0-Barebones
TinyTerm
V1.0.0 - Barebones
This is the barebones implementation of tinyTerm, written in 2016. This Code works OK and has minimal functionality to run a tinyG.
TinyTerm V1.0.0 does:
- Send raw GCode and tinyG commands
- Dump text files (one line at a time)
- Dump init files (configuration files) in JSON format
- Save log files and make them human readable
TinyTerm V1.0.0 doesn't:
- Doesn't allow to send the same file multiple times and keep track of how many times it's done it
- Doesn't run custom homing sequences
- Doesn't read tinyG status codes
Compatibility:
- Windows only. You will need to re-write the Serial part to work on linux or mac