ISOBUS Virtual Terminal

VT works a bit like the old X11 protocol where the widgets were all drawn server-side. Makes for very low-bandwidth capabilities but also you’re stuck with 20 year old screen resolutions. Of course the VT implementation could upscale them and I’m sure the latest monitors all do that.

2 Likes

Thank you for the answer. I had a rough idea of how it works, and now it all falls into place.
I want to use the ISOBUS++, it is good to have it working. Now that we understand how it works it is possible to get the data and based on them create a grid and display the items on the grid.
When I have more free time I will look into some of the code and how to make it look good. Maybe using some c++ GUI library.

1 Like

So there’s no description anywhere (other than the expensive ISO documents) on the format of the data in the IOP file? No way to create the pool objects programmatically? Seems like you need the equivalent of the Microsoft resource compiler.

Also, can ISOBUS++ build and run on the Teensy 4 microcontroller? That’s got no less than three CAN ports, including a CAN HD port, and has quite a bit of processing power behind it.

So there’s no description anywhere (other than the expensive ISO documents) on the format of the data in the IOP file? No way to create the pool objects programmatically? Seems like you need the equivalent of the Microsoft resource compiler.

As far as I know, the actual description and format of those objects (and the IOP file structure) does fall under the ISO’s copyright, which is a bummer for sure, and they are very strict about that kind of thing. Not very “open” despite it being an international standard when you have to hand over that much cash to read it in my opinion.

Anyways, VT object pools could be created programmatically, but could be challenging without tooling to preview what it will look like, plus time consuming to iterate on without that visual feedback.
I have considered adding at least the ability to serialize and de-serialize these objects to and from IOP files to Isobus++, but I haven’t had the time to get it done fully yet. I do have a draft of that functionality saved somewhere though, so I think you could expect that to get added to our library at some point in the future! Though, to be clear, a full object pool designer is out of scope for our library as it’s just a CAN library. This would be another great opportunity for the open source community to really solve a cool problem for the ISOBUS community, by creating an open source, free object pool designer of some kind. I hope something like that happens. I do know of this project which tried to do that some time ago, but it seems to be a bit flaky, and written in Java.

Also, can ISOBUS++ build and run on the Teensy 4 microcontroller? That’s got no less than three CAN ports, including a CAN HD port, and has quite a bit of processing power behind it.

The Teensy is a very neat micro controller that I have looked at before. I would like it to be compatible, but I do not have a teensy to test on right now. I will see if I can order a Teensy 4.1 and get it working (this may take some time. I will add an issue on our GitHub so it doesn’t get forgotten). If you are developing with the Arduino IDE, I can say it probably will not work in it’s current state at this time of writing without some effort, as the library isn’t packaged up to be an Arduino library.

4 Likes

Good morning,
do you think we could make an isobus task controller?

Maybe you can just use the GPS Signal from AgOpenGPS and use the task controller of the VT device as described here:

I have to politely disagree given the audience here; wasn’t that long ago when it was ‘common knowledge’ that open source autosteer and section control was considered to be unachievable :slight_smile:

Look where we are today…

4 Likes

Hello InterFan, I am Rumi. I am doing a master’s degree in Electrical Engineering. I want to work on ISOBUS. Can you help me too? I would also like to do a project with you. If your answer is yes, you can give me the contact address you want. I can also give you my contact information. Mail, whatsapp, telegram etc.

I am waiting for good news from you.

I’m just coming back to this thread to note that our library does now run on Teensy 4 and 4.1 using the Arduino IDE :slightly_smiling_face:

5 Likes

The virtual terminal client library is indeed neat, but I’m still hoping to see an open-source virtual server terminal implementation. And a task controller. So far haven’t seen any. I’d actually even be interested in a non-open source implementation for windows or android.

1 Like

This is the only one open-source VT as I currently know of… not really well documented, but seems like lots of things implemented from the standards, someone with isobus development knowledge can easily tell what’s missing.

It was built for the M5Stack module (esp32 based, with 320x240 display, no touch). Weird choice but it can be ported to other hardware with bigger touchscreen. Maybe with some fiddling, it can already control sprayer/spreader sections.

6 Likes

Thanks for posting that. Very interesting.

@IsobusPlusPlus Hello,I have been watching the development of isobus++ recently.
I have just completed the porting of ESP32S3 and successfully ran the virtual terminal examples for the esp32,
I initially planned to program and port to ESP32 using Arduino( AgIsoStack-Arduino), but there was an error message, “. cpp: 42:36: error: ‘make_unique’ is not a member of ‘std’”. Because I want to try using it in ARM Cortex-M3/4, such as STM32, which is more similar to the programming method of Arduino.
Finally, I successfully used PlatformIO( AgIsoStack-plus-plus).

Hello! That is great! I think we could remove the dependency on std::make_unique if it it makes life easier for people by instead doing .reset(new on these few unique_ptrs. make_unique is a C++14 feature that some compilers apparently do not like. If this is something you’d be interested in I’d encourage you to make an issue on our GitHub page, but regardless I am glad you are finding success with PlatformIO.

We’ve got a lot of new things coming soon, including a fully functional VT server that runs on windows, linux, and mac!

10 Likes

Wow, now that’s going to really be something - really looking forward to a VT on Windows !

Succesfully compiled/built with Visual Studio 2017. Can I connect now to tractor isobus and run example?

As long as you have a compatible CAN adapter, yep! Connect to the implement bus, example shown below with the ISOBUS/J1939 diagnostic connector, but there should be multiple places to connect.

image

Hi JinQQQQQ - very interesting, are FJD planning on open-sourcing their code then?

5 Likes

I suppose it need to select right manufacturer id or am I wrong?

Watching this with considerable interest. I can see that eventually it might be possible to add a task controller to AOG, along with variable rate. And looking forward to seeing the VT server. It’s crazy how much money OEMs charge for bare VT monitors with no task controller enabled even.

Of course, development of cheap replacements is still costly. @IsobusPlusPlus, what is the best way to support your development? Is this endeavor company backed?

4 Likes