Alright.
So turns out the previous firmware made by Marcoq, which is 0.19c, actually works quite well and I can notice the bike got a bit more powerful now. My goal was to get maximum assist and minimal pedaling effort. I mostly use Turbo and it's definitely gotten better than with stock firmware. So as far as I know this is the version that works well, at least for me - https://github.com/stancecoke/TSDZ2-Smart-EBike-compatible-with-original-VlCD6-display
Another issue here is that the naming of modes and assist levels are all confusing as hell. The information here is simply all over the place and nothing is quite clear until you go through all of the 19 pages. And even then, certain important questions were either not answered or answered in a language that is too technical. And then to add more confusion to the mess there were people asking and advising for displays other than VLCD5 even though the thread name clearly states VLCD5. There should be other threads for other displays imho.
Anyways, here's a question I've been wondering the whole time. On VLCD5 I've got 4 modes. Eco, Tour, Speed (Not Sport) and Turbo. So I go into configurator and see "Speed" being called "Sport" all of a sudden. Why is that? Is my version of display different to others? :?
Apart from that now here is something new to me and maybe even to others who are dealing with this for the first time. First off, for the sake of making myself clear, I'm going to call the terms "ECO, TOUR, STREET/(SPORT for some?)/TURBO" that you see on the display - "Assist levels". And I'm going to refer to hidden features described below as "Modes".
Now that we got that out of the way, after flashing with open source (didn't test this with stock) there are extra hidden features you can change in each assist level with clicking the Power Button two times with around half a second delay in-between the presses, and you should see a code displayed for less than a second which means the following:
ECO:
E03 - Street mode (limited to 25kmh and 250w)
E04 - Offroad mode
TOUR:
E01 - Boost off
E05 - Boost on
Street/Sport:
E01 - Emtb mode off
E02 - Emtb mode on
Turbo:
This one has no modes.
I am not entirely sure on the effect of these modes because I personally haven't felt any noticeable differences in them, but it's up to you to test and try it out.
In case you are wondering, here are my settings for 36v, 12ah battery and 36V motor (all 36v motors from 250W to 500W are the same). Once again, I was going for maximum torque/cadence and minimal pedaling effort.
Another point to make is the connection/flashing firmware and software needed. I think it would be smart to write a simple guide for VLCD5 display owners. Here's a very simplified noob-friendly version I made:
1. Buy a STlink v2 USB clone from ebay. It will need to be connected to the motor's controller plug (where your speed sensor and light wires go). Don't connect to the display plug. The wiring can be found here https://github.com/OpenSource-EBike-firmware/TSDZ2_wiki/wiki/Flash-the-firmware-on-TSDZ2#Wire_the_STLinkV2_to_the_TSDZ2_wheel_speed_sensor_cable
2. Download and install correct drivers https://www.st.com/en/development-tools/stsw-link009.html (will need your email)
3. Download and install ST link Visual programmer https://www.st.com/en/development-tools/stvp-stm32.html (will need your email)
4. Download and install ST Toolset http://www.bdtic.com/download/ST/sttoolset.zip
5. After installing ST Toolset, copy the folder "STmicroelectroncs" (usually found in Program Files (x86)) to root directory of disk C:\. Make sure it has a subfolder named "st_toolset".
6. Download and install Java if you don't already have it.
7. Download and unpack the TSDZ2 controller firmware and configurator to a separate folder (Usually on github, for instance marcoq's latest stable version - https://github.com/stancecoke/TSDZ2-Smart-EBike-compatible-with-original-VlCD6-display .
8. Run TSDZ2-Configurator.jar
9. Play with settings and press "Compile". A command line window will appear with running text. Wait for it to finish, it will close automatically. If there is an error, check what it says and try to figure out the solution or ask for help here. Don't close the configurator yet.
10. If at this point you still haven't hooked up your STlink thingy to the motor's controller, it's time to do so. Go to step 1 for the wiring and also unplug/take out your ebike battery.
11. If step 9 went smoothly and step 10 is done, while still in the Configurator window press "Program". A command line window will appear with running text. Wait for it to finish, it will close automatically. If there is an error, check what it says and try to figure out the solution or ask for help here.
12. Remove STlink wires and plug the connector back to your speed sensor/lights.
13. Enjoy your new firmware.
If you messed the settings and want to return to original firmware, then follow the guide here in the "Stock TSDZ2 Firmware (STF) Programming" section https://www.eco-ebike.com/blogs/eco-cycles-instructionals/tsdz2-motor-firmware-programming
But remember that you need to change Open Byte in "Option Byte 2" section from whatever number you have after opensource firmware (I had 20) to 28 just like in the guide's picture. Otherwise the motor won't start.