TSDZ2 EBike wireless standard (like Specialized Turbo Levo) - OpenSource

To to see what it would look like I designed a battery case with a CR2 battery, with a access hole for the brakes.
I could make it smaller by using smaller button batteries at the expense of lifetime.
I was motivated to do this as I really don't like the idea of having to dismantle the remote to change the CR2032 battery!
However, the design is pretty bulky, I much prefer the Z modification discussed above to allow for lower remote height and a removable CR2032 battery.cr2-front.pngcr2-side.pngcr2-top.pngcr2-bottom.png
 
I would do the modification myself on your design, but oh, boy is your design complex!
You are very talented with freecad; I just do not yet have the skills yet to do this mod.....
 
rananna said:
I would do the modification myself on your design, but oh, boy is your design complex!
You are very talented with freecad; I just do not yet have the skills yet to do this mod.....
No I am not. I took 2 weeks to look at original file from Stancecoke and understand each step - see the FreeCAD tool used on the left tree, see a tutorial video on youtube about that tool and file I could understand the logic steps Stancecoke took.

I used the same measures for the main 4 holes to the VLCD5 keypad:


This part here is copy the same sketch to a datum plane that is +Z and then use the ruled surface all around and finally apply an offset that will be the wall thickness:


On the top part, there is a curved surface that is created by sweep 2 lines (one is the curved one) and then that surface is used to slice the main pad - that way we get the shape for the keypad:
 
@rananna, I will not keep developing a new design to the remote because I want to move forward to other parts of the project. If the battery works for 1 year or more, then I think there will be no issue to solve on the next year. We are still to see when the battery discharges as I never get there yet (few days ago I though I had a battery discharged but not, the wireless board got damaged and took me sometime to figure it, after changing for a new one, everything was ok).

If you need more help to understand the current FreeCAD design, just tell me and I will keep explaining.
 
@rananna or for anyone interested, I was able to use the Eclipse debugging for the simulator of Garmin development. The Bluetooth connection is working and detecting TSDZ2 wireless board as seen on the image - I know there is an issue as Garmin only receives first 20 bytes but for the mobile app we are sending much more, I need to see how I will figure this out.

I just followed their instructions for working and debugging using BLE and it is needed a Nordic nRF52 DK board that luckily I had with me from a previous professional work :)

 
Tiger_one said:
casainho said:
I wounder how are the others brake levers...

Mine:
file.php
So access to the original VLCD5 remote should be a bit hard for you due to the distance. The remote I designed has 8mm clearance, at least can be placed on top of your brake lever and will be easier for you.

Can you post a picture of your EBike? I am curious...
 
casainho said:
So access to the original VLCD5 remote should be a bit hard for you due to the distance. The remote I designed has 8mm clearance, at least can be placed on top of your brake lever and will be easier for you.

Can you post a picture of your EBike? I am curious...
Bike was donated by a close friend, it is a "Specialized Fuse" with 3" tubeless tires and drop seat (the lever next to the keypad). I do have to reach for the keypad, could move the drop seat control over to right and move keypad closer, brake clamp is very minimal.

20210301_105845.jpg20210311_061305.jpg
 
Tiger_one said:
Bike was donated by a close friend, it is a "Specialized Fuse" with 3" tubeless tires and drop seat (the lever next to the keypad). I do have to reach for the keypad, could move the drop seat control over to right and move keypad closer, brake clamp is very minimal.
I also like to use the drop seat control on the left. Probably the wireless remote will be able to stay on top of your brake lever and drop control.
 
beemac said:
Frzoen said:
Hi after delay :D

So basically I've came up with this. Minimal setup that from my calculations should work.
There are no parts on the back of the board :D
Power supply is only 100mA but for NRF-dongle and control of one mosfet it should be plenty.
There is hole to tie the cables to the board if You're not a connector type of a guy.

@beemac tell me if it seems to be ok for You. Then I will finish routing and put it into prototype production.



Hi, thanks - looks good from my point of view. I believe most of the button assemblies supplied with the displays have just 5 wires - using a shared gnd so you don't need so many gnd holes for the buttons - unless you plan to use individual buttons? Up to you if you want to keep a separate gnd for each as it will still work either way. Thanks for adding the wire holes and holes to secure the cables!

Is this using the published schematic for the circuit or have you made modifications?

Hi again, delayed again...

I've cleaned project and give it last touch.
Below is link to the repo. V1.0.0 tag comes with pre-generated gerbers.
https://github.com/Frzoen/TSDZ2-NRF-module-board

Soon we'll have boards and parts for testing.
For now, have a peak into schematic if it looks ok.

Btw. Project is made with Kicad Nigtly builds and nightly build is necessary to open project.
 
Frzoen said:
Btw. Project is made with Kicad Nigtly builds and nightly build is necessary to open project.
If you make a pull request, I will accept the sources files. Then you should also make a page to document all that, for the user be able to make and test the board.
 
I have the Garmin data fields working BUT, I found in the end that I can not have more than one data field, as each one is like an unique app that tries to connect to the wireless board by Bluetooth and only one connection is possible by Bluetooth, so, no luck here....

I am now exploring to do the same but using ANT. For what I did read, Garmin supports each data field to communicate with ANT but each data field must use a unique ANT channel and seems Garmin limit is 8 ANT channels. So, I think user will be able to use up to 7 TSDZ2 data fields since one is already being used for ANT+ LEV.

I want to implement this test for ANT and I see the limitations of Blueooth and BIG advantage of ANT!!!
 
casainho said:
I have the Garmin data fields working BUT, I found in the end that I can not have more than one data field, as each one is like an unique app that tries to connect to the wireless board by Bluetooth and only one connection is possible by Bluetooth, so, no luck here....

I am now exploring to do the same but using ANT. For what I did read, Garmin supports each data field to communicate with ANT but each data field must use a unique ANT channel and seems Garmin limit is 8 ANT channels. So, I think user will be able to use up to 7 TSDZ2 data fields since one is already being used for ANT+ LEV.

I want to implement this test for ANT and I see the limitations of Blueooth and BIG advantage of ANT!!!

Thank you for all the work. It is a very intresstig projekt.

Are all 7 data fields saved in my Garmin account so that I can access them online later? Is that only possible with an edge display or could I also collect this data using a Garmin watch? The most intressting data for me would be the humen power.
 
Chri_Tof said:
casainho said:
I have the Garmin data fields working BUT, I found in the end that I can not have more than one data field, as each one is like an unique app that tries to connect to the wireless board by Bluetooth and only one connection is possible by Bluetooth, so, no luck here....

I am now exploring to do the same but using ANT. For what I did read, Garmin supports each data field to communicate with ANT but each data field must use a unique ANT channel and seems Garmin limit is 8 ANT channels. So, I think user will be able to use up to 7 TSDZ2 data fields since one is already being used for ANT+ LEV.

I want to implement this test for ANT and I see the limitations of Blueooth and BIG advantage of ANT!!!

Thank you for all the work. It is a very intresstig projekt.

Are all 7 data fields saved in my Garmin account so that I can access them online later? Is that only possible with an edge display or could I also collect this data using a Garmin watch? The most intressting data for me would be the humen power.
I did not thought yet about that but I am pretty sure it is possible to make each data field record (it records to a FIT file) as soon as you start your activity - then the data should be added automatically to your activity just like you have the heart rate, cadence, etc.

I have a Fenix 6 Pro watch and the seems the watchs have a limitation of running only 2 CIQ data fields but I think the Edge can go to 10 or more.

Also I know that each data field can be configured on the Garmin mobile app, maybe a configuration can be to enable or disable the record of the FIT file as recording should use more power of your Garmin device.
 
casainho said:
Chri_Tof said:
casainho said:
I have the Garmin data fields working BUT, I found in the end that I can not have more than one data field, as each one is like an unique app that tries to connect to the wireless board by Bluetooth and only one connection is possible by Bluetooth, so, no luck here....

I am now exploring to do the same but using ANT. For what I did read, Garmin supports each data field to communicate with ANT but each data field must use a unique ANT channel and seems Garmin limit is 8 ANT channels. So, I think user will be able to use up to 7 TSDZ2 data fields since one is already being used for ANT+ LEV.

I want to implement this test for ANT and I see the limitations of Blueooth and BIG advantage of ANT!!!

Thank you for all the work. It is a very intresstig projekt.

Are all 7 data fields saved in my Garmin account so that I can access them online later? Is that only possible with an edge display or could I also collect this data using a Garmin watch? The most intressting data for me would be the humen power.
I did not thought yet about that but I am pretty sure it is possible to make each data field record (it records to a FIT file) as soon as you start your activity - then the data should be added automatically to your activity just like you have the heart rate, cadence, etc.

I have a Fenix 6 Pro watch and the seems the watchs have a limitation of running only 2 CIQ data fields but I think the Edge can go to 10 or more.

Also I know that each data field can be configured on the Garmin mobile app, maybe a configuration can be to enable or disable the record of the FIT file as recording should use more power of your Garmin device.
Is it necessary to program a own app? Couldn't you fall back on a ready made one in the IQ store? I just had a look and i found these for example:

https://apps.garmin.com/en-US/search?q=ebike&device=&deviceLimit=&appType=&sort=&start=0&count=30

PS: I never tested one, so no idea if they are working properly.
 
Finally I was able to do it :)

As for first test, I just made 2 different Garmin Connect IQ data fields, one for show the battery voltage and other the motor temperature.

As can be seen on the following pictures, the ANT+ LEV is working as usually but then I added that new data fields that shows TSDZ2 motor data that ANT+ LEV can not.

I verified that I can only have 7 data fields on the TSDZ2 wireless board but that should be more than enough to show the most relevant TSDZ2 data:





 
Hello gentlemen!
Finally, I read the whole topic, it was much more than on TSDZ-ESP32:]

@casainho / rananna / beemac / Headless / all others.

I am impressed with your work as well as the idea put into the project!
Thanks for all your time!
Thank you also @bikelpl without his videos I would not have found this part of the internet ;D

I am starting to complete the necessary parts, but before buying, I wanted to ask about
one very important thing for me.
Will I be able to turn on / off Street mode from the DIY wireless remote level?
You added Turn on / off, Walk assist, Change assist level but I haven't seen anything about Street mode; /
I also have some suggestions about Street mode.
Would it be possible to add a password or confirm the exit from this mode on the mobile application?
Something like a popup asking "are you sure you leave Street Mode?"
My point is that an unauthorized person could not exit this mode without confirmation from the owner.
Of course, it could be optional, to be marked in the settings by the end user.
I hope you will like this idea:]

@Frzoen
I can see some board improvements if you agree to them.
1. Adding a circuit for lights with a voltage higher than 6v and high current consumption.
(currently in tsdz2 we are very limited when it comes to lighting, which is quite important)
2. Addition of pads for the external temperature sensor.
As in TSDZ-ESP32,
(here request to @casainho and @Headless to add a reading from this sensor and check the correctness of the circuitry on the board, if you find it interesting)
at this point we would release the pins on the original engine controller.
3. Removal of unnecessary GND for additional buttons and changing from 4 connectors to one smaller JST, or leaving only the solder pads.
(I know you won't be looking very well at removing the connector).
We'd save room for some MOSFET for the light circuit.
4. Optimize the size of the board in terms of space in the engine.
5. Adding connector to external antenna. I'm pretty sure the motor housing will jam the blue tooth a lot.)
6. It would be good to stick to the freely available components as previously written by casainho.
I like DIY and I would like to do the board myself, probably a lot of people will also want to have this option.

I think that's all that could be improved / added at the moment.
Write what you think about it.

I keep my fingers crossed for the success of this project, gentlemen, you are very close :bigthumb: !
I greet and have a nice evening!
 
There is an annoying bug on the firmware that resets the assist level when we apply brakes, but this happens randomly, not always but happens maybe 75% of time.

I finally implemented the Garmin data fields but I had an issue that made me almost to quit. The way Garmin let us implement data fields means each one needs a specific ANT channel and seems it brings more drops to the communication and time to connect - luckily I found a way to minimize it.

My plan is to try solve the bug of reset assist level and test more and more the Garmin data fields so then I will make a release.

Today I did the very first ride to the beach at the end of day, here pictures with 1h difference. And I disable the ANT+ LEV on the Garmin Edge so the speed seen on the display is the one from the GPS of the Edge - I have no wheel sensor installed on my EBike:






woojak said:
Will I be able to turn on / off Street mode from the DIY wireless remote level?
You added Turn on / off, Walk assist, Change assist level but I haven't seen anything about Street mode; /
I also have some suggestions about Street mode.
Would it be possible to add a password or confirm the exit from this mode on the mobile application?
Something like a popup asking "are you sure you leave Street Mode?"
- Street mode is not implemented.
- Password is not a priority, at least for me.
 
I finally had time to make a new wired remote+controller assembly for my fsr build - going to put the controller in a small box on the handlebars. I'll add some documentation for the wired remote once I've tested it fully.

File_000 (2).jpeg

File_001.jpeg

File_002.jpeg
 
beemac said:
I finally had time to make a new wired remote+controller assembly for my fsr build - going to put the controller in a small box on the handlebars. I'll add some documentation for the wired remote once I've tested it fully.
I must say that wired remote is an important alternative, I am being changing my mind about it.

The wireless remote and the Garmin Edge always worked for me flawlessly but now after adding the extra ANT communications, I have some issues and even the remote fails sometimes -- maybe it is an issue of my implementation... As I have a few issues like the firmware only works if I use ANT and Bluetooth, if flashed by the bootloader but works perfectly with everything if I flash using the STLinkv2 for debug...
 
casainho said:
beemac said:
I finally had time to make a new wired remote+controller assembly for my fsr build - going to put the controller in a small box on the handlebars. I'll add some documentation for the wired remote once I've tested it fully.
I must say that wired remote is an important alternative, I am being changing my mind about it.

The wireless remote and the Garmin Edge always worked for me flawlessly but now after adding the extra ANT communications, I have some issues and even the remote fails sometimes -- maybe it is an issue of my implementation... As I have a few issues like the firmware only works if I use ANT and Bluetooth, if flashed by the bootloader but works perfectly with everything if I flash using the STLinkv2 for debug...

Odd issues for sure...

I haven't used the latest firmware - i'm still running a version from a couple of weeks ago - but I have been riding it fine on some long rides with no issues, but I don't use any of the ant/lev - just headless - in fact I can't remember when I last connected a phone.

I'm hoping to have a bit more time over the next week or so to test the latest version. I do need to add a couple of led event calls - e.g. when braking - but that's simple and easy to test.

One issue I forsee with my wiring harness is I've hardwired the brake sensors in - I might add a switch to bypass - as if you lose a magnet when riding the bike would then refuse to do anything without being able to disconnect the sensors...
 
beemac said:
One issue I forsee with my wiring harness is I've hardwired the brake sensors in - I might add a switch to bypass - as if you lose a magnet when riding the bike would then refuse to do anything without being able to disconnect the sensors...
Better would be a configuration to ignore faulty sensors like the brake sensors, but that means you need your phone to change the configuration - and that check for sensors should be done on the motor firmware.

Even today my EBike of my soon lost a magnet but I always carry with me other ones and tape, to solve this issue, because it happened once and was a problem :)
 
casainho said:
beemac said:
One issue I forsee with my wiring harness is I've hardwired the brake sensors in - I might add a switch to bypass - as if you lose a magnet when riding the bike would then refuse to do anything without being able to disconnect the sensors...
Better would be a configuration to ignore faulty sensors like the brake sensors, but that means you need your phone to change the configuration - and that check for sensors should be done on the motor firmware.

Even today my EBike of my soon lost a magnet but I always carry with me other ones and tape, to solve this issue, because it happened once and was a problem :)

Yes and/or define a keypress sequence to enable/disable. i have mentioned on the thread before that I'd really like a configuration setting to say you use brake sensors - more so that we can warn if they are not detected when the rider expects them to be functioning - but would also be good to switch off the function if you don't use them (or they are broken).

There are a number of other things on my future release wishlist - but would be interesting to see what other people want to see in the core functionality. Either new features or things that were in the display versions that aren't yet in the wireless controller.

Mine are:

Mspider65's motor efficiency improvements - although I think it's possibly worth retesting against 1.11 as the serial changes mean a smoother main loop - some of the receive issues caused spikes in cycle times that could cause lower efficiency i think. However much of the motor control discussion is a bit beyond my engineering skills.

Street Mode - i'd like the veneer of legality back ideally - even if it's just a veneer!

Boost function - i need to test some of the settings being talked about on the main tsdz2 thread as seems some people use boost ok as it is. Using the bike as an eMtb i've had several occasions where the delay in power kicking in means you lose momentum and have to stop - i'd like better startup performance.

Better regional settings (Although now I don't use the app I don't care so much) - Would be nice to be able to have mph and kg/Celsius - or whatever regional variations people need - although I have worked out that if I reduce the wheel circumference to 5/8 of the actual figure - you'll get mph effectively...

There are also some odd things in the config packets where some settings are duplicated - makes for confusing reading and probably problems further down the line - if we're thinking about making config packet changes may as well sort those out too...

Other things I've thought about - but don't personally have a use for right now:

Lights/Brake lights - it would be simple to provide these two signals on spare pins the controller nrf so people can attach the necessary circuitry if they want to. And means you don't have to do the current fudge of using a 6v relay on the light signal from the speed controller...

There is also the vThrottle code that's all in there - but I'm less interested in that - although it's probably an easy win if people do want it - just need to agree visual cues to show when it's enabled/disabled.

Motor control aside - these are all pretty easy to implement I think - time permitting obviously.

Edit: one other thing I may also implement for my own purposes - is a separate soc input - as I'm planning to put a dc booster on at least one of my bikes, if not both - and then the controller will never see the voltage dropping - so will have no idea of SOC.
 
Frzoen said:
beemac said:
Frzoen said:
Hi after delay :D

So basically I've came up with this. Minimal setup that from my calculations should work.
There are no parts on the back of the board :D
Power supply is only 100mA but for NRF-dongle and control of one mosfet it should be plenty.
There is hole to tie the cables to the board if You're not a connector type of a guy.

@beemac tell me if it seems to be ok for You. Then I will finish routing and put it into prototype production.



Hi, thanks - looks good from my point of view. I believe most of the button assemblies supplied with the displays have just 5 wires - using a shared gnd so you don't need so many gnd holes for the buttons - unless you plan to use individual buttons? Up to you if you want to keep a separate gnd for each as it will still work either way. Thanks for adding the wire holes and holes to secure the cables!

Is this using the published schematic for the circuit or have you made modifications?

Hi again, delayed again...

I've cleaned project and give it last touch.
Below is link to the repo. V1.0.0 tag comes with pre-generated gerbers.
https://github.com/Frzoen/TSDZ2-NRF-module-board

Soon we'll have boards and parts for testing.
For now, have a peak into schematic if it looks ok.

Btw. Project is made with Kicad Nigtly builds and nightly build is necessary to open project.

Hey @frzoen - how are you only using one mosfet? I originally questioned why we were using two - but i realised when I was testing that having just one exposed the vbatt voltage to the nrf pin - that's why (i believe) we have the low side bsp296 mosfet exposed to the nrf (so it only sees gnd, not 48-60v) controlling the high side 4140... how do you get around that with only one?
 
Today I tested the data fields on my watch but Garmin limits to only 2 data fields on the watch - on the Edge, limits to 10.

So on the next picture the Battery SOC and the Power are from TSDZ2 and Speed and Distance are automatically calculated from the GPS of the watch. I was seeing in parallel the same Battery SOC and the Power on the Edge.

Unfortunately there is that limit of 2 data fields on the watch... what developers usually do is a data field that it self divides in 2 or more parts to show more data, as it is possible to show big data fields of the size of the entire screen / page - but I do not like this, ideally different data fields are mixed together to compose a page (and we can have a few different pages, that we swipe to left clicking on the TSDZ2 wireless remote button).



And the watch measures also my heart rate, elevation, etc, and all that information including the TSDZ2 can be automatically recorded (by the watch or the Edge) and seen on the Garmin app at the end of the fitness activity, for instance:

image.png
 
Back
Top