This is a new version without the need of an Arduino board.
Instead its based on a USB-UART Serial Adapter Module ( FT232RL in this example)
Last year I wanted to get the data out of my Diving Computer without buying $100 cable,
and I succeed doing it by using an Arduino board.
You can read about it here
I was getting lots of comments from people who didn’t succeed building this using other Arduino boards and I thought there must be a way to make it easier.
It just a half duplex (or ‘1 wire’ ) UART , so why it not build a converter from UART to ‘1 Wire’? It should’t be that complicated 🙂
Lets try to make it short
The diving computer has a connector with 2 connection points and a ground.
After poking with it for a ‘few’ hours (I drained all my computer battery and had only 6 dives with it!!) I found that:
- A voltage on the Enable pin makes the diving computer enter the Data Transfer mode.
- The Data pin is a bi-directional line, using UART for communication.
- All the metal around the pins is ‘ground’.
The Suunto DM5 application is looking for a communication port named ‘Suunto USB Serial Port‘.
I used USB to UART Serial Adapter based on the FT232R chip.
Last time I modified the Arduino driver in order to change the device display name,
but after digging I found that Suunto use PID 0xF680 with VID 0x0403 which is the Vendor ID of FTDI chips.
That’s the reason I choose to use the FT232R.
I can still modify the driver, but I have a better option now which is to write to the FT232R eeprom memory and change its PID to 0xF680.
Windows think it’s the Suunto cable and install Suunto drivers with the name we want.
With this method I don’t need to disable the driver signing enforcement.
To modify the eeprom, I used MProg which is a utility from FTDI.
I first scanned for devices on the (Device->Scan), then read the current settings (Tools->Read and Parse), and then change the PID (Product ID) to F680 as you can see in the picture.
I flashed the new settings (Device->Program), uninstalled the current driver in the device manager (right click, Uninstall Device), and removed if from the USB port and then plugged it again.
I don’t know if it’s possible to program it multiple time so it might be irreversible.
Update: It might not be possible to change the PID of a cloned FTDI chip.
In this case, you can still use a modified driver (and disable windows driver signing enforcement), or just use other app like Subsurface which just asks for a COM port number
I can still sync the diving computer without doing this step, but I have to use other apps like ‘Subsurface’.
Because there is only one data line, it was not possible to connect both RX and TX of the UART adapter together as is.
I built a converter circuit with some transistor and resistors to make it ‘1 wire’ half duplex UART.
I used the 3.3V from the USB to UART module.
I also changed the jumper on the module to 3.3V (5V might hard the diving computer)
BOM:
– 1x USB-UART module (FT232RL)
– 2x 2N7000 NPN transistors
– 2x 1k resistors
– 1x 15k resistor
– Jumper cables (optional)
– Breadboard (optional)
All can be found in eBay or Aliexpress
If you are using a breadboard you almost don’t need to solder anything.
The only problematic pin is the ’33v’ pin that you have better a jumper cable soldered to.
The Ugly Side
I still didn’t find any novel way to connect with this connector.
I took a clamp and drilled holes in it, then pushed ‘pogo pins’ in such a way they will touch the connection points.
I need to think and make something more simple.
Another option:
MudiStar has made a 3D design of a plug to the Zoop Novo.
You can use a 3D printer to print it, or a 3D printing service.
More info can be found here: https://www.thingiverse.com/thing:5184406
First prototype of a PCB version:
And.. that’s it.
I can now sync my diving computer with my PC.
You can find the modified FT232R driver and the MProg config in my gitlab:
https://gitlab.com/itaysp/suunto-data-cable
is this new solution much better/safer than your previous pro micro solution? also what wattage resistors do i need?
i have no experience with this but i want to learn. also i really want the download cable for my zoop novo.
could i get a pic of what the breadboard should look like?
Thanks a lot for working on this and releasing the details.
Yes this solution is safer in my opinion.
You don’t need special resistors, the 1/4W or 1/8W is fine.
I will try to take some more photos this weekend.
that would be awesome. thank you.
It’s a little messy, I hope you will find it useful.
I didn’t have a 15k resistor so I used two 33k in parallel.
Maybe a 10k resistor will work as well, I didn’t tested it yet.
http://itay.cc/?attachment_id=372
I’ve try it, and its working,
Cool finally able to download logs from my D9TX, original cable somehow not working anymore.
Just have not done renaming the PID, need to wait for the original FTDI chip, seem im using the fake one now 🙁 FT prog not working.
Thanks.
Next wishing someone can recreate the Suunto Eraser app for new models, need to wipeout previous owner logs.. 🙂
Mprog is failing to program my chip and i made sure to have the proper drivers
Looks like it’s not possible to change the PID in a cloned FTDI chips.
I tried other modules I have and it didn’t work too.
Your options are:
1. get module with a genuine FTDI chip
2. use the modified drivers (and disable windows driver enforcement)
3. use other programs like Subsurface which just asks for a com port
for the life of me i cant figure this out… but glad its working for you and others… maybe its the transistor i have, it is called 2N7000 171
guess ill have to give up but thanks for the info you posted. im just going to sell this suunto and buy something with bluetooth because im so frustrated at this company for charging over $100 for the DL cable and having to go through all this effort.
Does the watch says “Data Transfer”? if not the EN is not connected properly.
Do you see a bar of dots getting filled when you trying to download data?
If yes, this means it’s working but it’s not stable. maybe changing the resistors values can solve this.
If not, again make sure there is a proper connection to the data pin.
The resistors values are important, don’t change them too much.
stayed up late and got it working! i just tried a few different ways of routing the jumper cables on my board.
no idea why it was not working before as i think i changed nothing electrically but i don’t really know what i’m doing so could be anything
thank you very much for helping me.
the PCB looks great, are you still working on this? it would be really cool to release the PCB design so we could take your design and get it created, it would be better then keeping my messy breadboard to get this to work.
that is of course if the cost of creating a pcb like this with the components would be less than the $100 cable
Thank You!
The I still have mechanical issues.
The solution I came up with these pins doesn’t work as expected..
The PCB is working but it’s not easy to use.
I need to figure out how to solve this issue.
Hey,
thanks for this nice article. I have the old Zoop computer with 2 contacts only. but I think the difference should only be, that I need to go into the download menu before manually instead of the EN-Contact.
Unfortunately this solution does not work for me. I tried it with the Subsurface Program. I think this would be just fine for me. But when I want to download, there is always an error. The USB-UART-Adapter is not from FTDI, but SILabs (CP2102).
When I download, then the LED for RX and TX seem the blink simultaneously. Is that the same for you when you start downloading?
I think this should work as well. Do you have any idea, why this would not work? Seems like you had a look on the old plans for the zoop as well… But I think your circuit is much more simple and the old circuits are mainly done for COM-Ports rather than USB.
Hey,
Yes both LEDs should blink if I remember correctly.
I would think this is something with the voltage levels are too low and not interpreted correctly,
or maybe the Pull-up resistors are too strong the TTL signal is warped.
I found a simple circuit for the old Suunto Vyper, maybe it can work for the Novo
http://www.chrisgreenley.com/projects/vyper-cable/
how to install the modified driver ? i try to uninstall the driver, but when i plug in the usb it automaticlly install default driver
Hi, I have some ESP32 boards laying around the Lolin D32 (not the pro version) https://projetsdiy.fr/nouvelle-wemos-d32-remplacante-esp32-lolin32-lolin32-lite-pro
I am figuring if it is a better way to go over the FTDI board, because it doesn’t need any external component
No transistor, no resistor, juste the code to adapt a little to the corresponding pins over the lolin32 Lite.
Do you think that it would work with the lolinD32 board if I solder the RX output to the RX pin of the Lolin D32, instead of the pin 16 on the Lolin32 Lite ?
Thank you
Yes, I guess it should work
Hi Itay, thank you for sharing this tutorial!
I’m trying to make it work but had no luck. I’ve checked your diagram 100 times and although I’m not an expert in electronics managed to translate it to a protoboard and test it in real life, but it’s not working.
As I can’t paste an image here, I created a branch in your GitLab’s repo and made a merge request with the image of the protoboard and the source file in Fritzing (https://gitlab.com/itaysp/suunto-data-cable/-/merge_requests/1).
Would you mind checking it out and telling me if the design is correct? I think you can also add those files to your repo as it might help other to recreate it.
תודה רבה, דן
Hi Dan,
What type of transistor did you use?
What about the first part with the driver change? Did you manage to use the modified drivers?
You can try changing the 15k resistor to 1k resistor,
and the 1k resistor to 4.7k.
I also found these values works for me.
Great job, thank you. Is any kind of pcb layout available?
I wait for my 3d printer, then I can print a bracket top hold the computer. There’ll be holes for the pogo pins.
I don’t feel it’s good enough to release this layout as is, so currently no..
I need to make some improvements and another PCB to test it before I release this.
I had no 15k resistors, so used 10k. Everything works with modified drivers. It even works on Ubuntu with Subsurface software.
Hi
I would like to share my approach to get rid of the “ugly side” of your project.
Please have a look at this 3D model/picture:
https://ibb.co/1n73cn7
The pogo pins are still on the way but the 3D printed bayonet catch works fine.
If you like to team up let me know 😉
I gave you a star on gitlab but I couldn’t figure out how to write you a pm
very cool!
I will be happy to link to your website / git 🙂
Is it possible to use the simplified version mentioned here?
https://github.com/dword1511/onewire-over-uart
Or if not, I would use the bc547 if you agree
I have some lying around
Here a preview of the 3D model:
https://www.thingiverse.com/thing:5184406
The idea is the same idea behind the 1wire.
I remeber trying such a designs and it didn’t work well (but it should)
It was long time ago, so I don’t remember why it didn’t work.
Maybe I will try again, or you can try and share the result 🙂
bc547 should be fine.
I will add a link to your design! thanks
The simplified version doesn’t work for me.
Maybe the R 4k7 has to be adjusted
Forks fine for me with the BC547.
I will complete the 3D model later this year.
Updated the plug to be a real plug
Hello! Where did you get the pogo pins of that size?
Big thanks for this tutorial and contributions, worked first time on DM5 and Subsurface, Mudistar your 3D print worked great in PLA so big thanks
Hi,
i bought from aliexpress the FTDI, when i’ll try tro program it doesnt change the PID (but i installed the Drivers from you) and on the device manager shows the correct suunto name, but also from mprog or ftprog, the serial will be always wrote like this A50285BI and not with the F instead of the I , it can be a problem?
Thanks!