Snap-On automotive scan tool system date not set in flash memory - Page 1
Forum section: electronics / beginners

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 06, 2024, 08:32:45 pm
content: Let me start by saying snap-on no longer supports this tool so contacting them just gets a sorry we can't help you.I have a snap-on solus ultra automotive scan tool. The tool has a 3V coin cell battery on the main PCB that died. When this died the date on the tool became set to 01/02/1970. This also made the tool say the software was unregistered so the tool can no longer be used. I replaced the coin cell battery but the date issue still persists. The positive side of the coin cell seems to disappear to know where, and I can not seem to find anything with continuity to it.What I do know is snap-on could fix this issue by connecting to the tool over the internet through the usb port when it was supported. The tool runs an embedded SMXcf operating system. The operating system is run off a micro SD card. If the micro SD card is removed a GEP utilities screen comes up with some information and says clock not set. This indicated to me that the clock needs set in the flash memory, but I'm just guessing. The tool has a MXIC MX29LV640EBXEI-70G flash chip and Coldfire MCF5232CVM100 processor.Is there anyway to write the date to the chip? Or Dump the flash and edit it to add the date? This was a $3000 tool 10 years ago, and would still be usable for a very long time if it could be fixed. I'll add some pictures of the tool and main PCB front and back. I can get better pictures of anything iff needed.

author: darkspr1te
author_rank: Frequent Contributor
timestamp: November 07, 2024, 07:58:06 am
content: The chip that is next to J7 (top right of board, near mcu) is the RTC chip and is programmed via I2c(the pads marked SDA/SCK), if you peal the yellow tape off you will see the chips code, using this we can figure out how to set the date/time via the i2c connecter using a arduino or similar, if the date code is set right it should work, normally i assume the dealer can do this via debug software.darkspr1te

author: darkspr1te
author_rank: Frequent Contributor
timestamp: November 07, 2024, 08:04:01 am
content: from the pictures and layout the rtc might be a ds1307 m if so this arduino lib will help you program it.https://docs.arduino.cc/libraries/ds1307rtc/

author: mikerj
author_rank: Super Contributor
timestamp: November 07, 2024, 08:43:04 am
content: Can you not set the clock through the settings menu?

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 07, 2024, 01:46:35 pm
content: You can only set the time in the settings menu. There is no option to set the date.

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 07, 2024, 02:03:40 pm
content: Thanks for your help. That chip is marked 1371 323A2 + Picture is included. It does receive power from the coin cell battery on the pin opposite of pin 1 (pin 8?). I do not have a Arduino but will purchase one if needed. I do have a raspberry pi 4 if that would work.

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 07, 2024, 02:13:11 pm
content: Found the data sheet for the chip.

author: coromonadalix
author_rank: Super Contributor
timestamp: November 07, 2024, 02:18:07 pm
content: i used an arduino sketch and a small duino board on the spi lines to push the clock settings to an similar one ...since on the main board you have the sda sck ... lines almost all the job is already done ....maybe one trick would be to hold the main mcu in reset, push the configs into the clock and trysince the duino library is posted ... should be relatively easy, you may find others who could push all the configs when you connect... or other who need the arduino ide terminal opened and you type the infos and send ....the link ------> DS1307RTC/examples/SetTime/SetTime.ino should do the job perfectly

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 07, 2024, 03:25:03 pm
content: I have no experience with Arduino but I'm willing to learn. Which board would be recommended for this?To make sure I got this right1. Get Arduino2. Learn to program Arduino with code from DS1307RTC/examples/SetTime/SetTime.ino3. Use Arduino to program DS1371 clockWould those be the correct steps? Does that code need modified to the correct date?Guess I have some learning to do. Any links with relevent information on any of this is appreciated.

author: darkspr1te
author_rank: Frequent Contributor
timestamp: November 07, 2024, 03:49:54 pm
content: As you have a pi4 then use these linkshttps://www.instructables.com/DIY-RTC-DS1307-Module-and-use-with-Raspberry-Pi/https://wiki.seeedstudio.com/Pi_RTC-DS1307/you will only need SDA/SCL/GND from pi to the chip, i dont know if it will program via coin cell only power so you may need to connect the power , the i2c bus should be accesed only only a few times on boot up then the system would just hang, thats when you should be able to to connect and run the right programsdarkspr1te

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 07, 2024, 04:20:59 pm
content: Thank you. I will give it a try.

author: bson
author_rank: Unknown
timestamp: November 07, 2024, 07:16:31 pm
content: Isn't there a way to set the date and time from the menu? Or does that not help?It's also possible there is a tamper sensor, in which case it needs to go to Snap-On to reactivate. I'd contact them, Snap-On has very good customer support.

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 07, 2024, 07:25:10 pm
content: Seems like you skipped reading much of this thread. You can only set the time in the software, no option to set the date. Snap-on is no help since the tool is no longer supported. It seems the date must be written directly to a timer chip on the main PCB.

author: u666sa
author_rank: Frequent Contributor
timestamp: November 07, 2024, 08:55:14 pm
content: Quote from: Agentfoot on November 07, 2024, 01:46:35 pmCould be a long shot and totally into dark. In that settings menu could you enter 1731012801 into where you set the time?I mean, perhaps it takes time and date formatted as one number. Nah?

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 07, 2024, 09:03:55 pm
content: Can only enter 2 digits in an hour box then 2 digits in the minutes box. So that is not possible.

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 07, 2024, 09:52:28 pm
content: So I got my Raspberry pi 3 out updated it, turned on I2C in the configuration and did a reboot. I then soldered jumper wires directly to the SDA and SCK pads on the solus ultra. Running the "sudo i2cdetect -y 1" command results in nothing being detected. I have tried with the solus ultra powered on, powered off with battery power, and battery removed powered by the pi 3.3V.One place mentioned the pi needs a Bi-directional level shifter because I2C bus of Raspberry Pi uses 3.3V, however the chip DS1307 works at 5V. So I looked at the DS1307 and DS1371 data sheets and noticed some differences.DS1307 Vcc=4.5-5.5V typical 5V Then pin3 is Vbat for the 3V batteryDS1371 Vcc=1.7-5.5V typical 3.3V Then pin3 is WDS for the watchdog timer. This chip is powered by the coin cell directly and the tool provides 3V when its on.So it appears the DS1371 I'm dealing with does not require the 5V. Am I doing something incorrect?

author: darkspr1te
author_rank: Frequent Contributor
timestamp: November 08, 2024, 05:28:26 am
content: did you enable i2c ?https://www.mathworks.com/help/matlab/supportpkg/enable-the-i2c-interface-onraspberry-pi-hardware-kernel.htmli would also put a multimeter on the sda /sck lines to see it it changes when you run the i2c detect command.another mad option is to use this apphttps://github.com/superzerg/logic-analyzeron the pi as well and see if it does pickup data on the i2c bus both when you power up the device and when you run the i2c detect command.darkspr1te

author: MrAl
author_rank: Super Contributor
timestamp: November 08, 2024, 05:57:13 am
content: Quote from: Agentfoot on November 06, 2024, 08:32:45 pmHi,I am just curious, how did you come to the conclusion that setting the date would make it work again?I am not saying you are wrong, just how you figured that out. Or is that just a guess in a last ditch attempt to get it working again?I am wondering if the activation code has to be changed or reentered also after a battery change.

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 08, 2024, 12:29:33 pm
content: I’ve called snap-on and they have confirmed the battery probably died causing the date changed and license issue. They confirmed the battery needs changed and date reset. They just won’t do it anymore since this tool is no longer supported. They say sorry we can’t help that tool is unsupported but a new one.

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 08, 2024, 12:44:20 pm
content: I did enable i2c. A multi meter did show some activity. I have an automotive oscilloscope I should be able to view the signals on, so I’ll try that. I also ordered a RTC board for the pi so I can verify I can program that. One thing I noticed is my PCB has a SCK pad is this the same as SCL? I understand this should be the clock signal. On the back of the PCB it does have a pad labeled clock out. I’m wondering if my connections are right.edit: I see SCK and SCL are both names for the clock line. So my connections are right.

author: darkspr1te
author_rank: Frequent Contributor
timestamp: November 08, 2024, 02:11:20 pm
content: your ground looks very wrong, use the battery ground point for this as we know it goes almost direct to the chip.i looked up the pinouts for rasp pi,according to your wire colours green from pi is going to SCL or clock but that pin is SDA, so with bad ground choice and swapped SDA/SCL it wont work, fix those two issues and it should work.so to confirm,when looking at the pads with the RTC chip above SDA is on the left and SCL on the right , on the Pi pin 3 is SDA and pin 5 is SCL.darkspr1te

author: darkspr1te
author_rank: Frequent Contributor
timestamp: November 08, 2024, 02:20:23 pm
content: see this picture wiring

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 08, 2024, 06:22:01 pm
content: Tried today again making sure the wires were correct. Also used the battery ground even though the ground I was using was a direct connection to the battery. Used power from the pi and power from the tool and still couldn't detect the chip.I also hooked up my Oscilloscope and was able to see activity from the tool and the pi. I will add a pic of what the pi sent out during detection. I was expecting to see the line high at 3V and low at -3V, But the line stayed at 0 and was pulled down to -3. When starting the scan tool I did see both lines go high to probably around 3V for a second.I get my DS1307RTC for the pi tomorrow and will see if I can program that. If I can't program that then I know I'm doing something wrong. If I can then it must be something with the DS1371 chip that won't work. At that point I may just buy a new DS1371 to see if it will program off the PCB.

author: MrAl
author_rank: Super Contributor
timestamp: November 09, 2024, 08:45:46 am
content: Quote from: Agentfoot on November 08, 2024, 12:29:33 pmYeah these companies are nasty sometimes. Maybe you can claim the "right to repair" law. Would have to contact a lawyer.

author: darkspr1te
author_rank: Frequent Contributor
timestamp: November 09, 2024, 10:15:02 am
content: things you could try,wait a little while before trying to detect the chip. plug in usb side as tthis may put the cpu into a different mode and bus contention wont be a issue. i think you cant detect it because the cpu is talking to it maybe.darkspr1te

author: u666sa
author_rank: Frequent Contributor
timestamp: November 09, 2024, 10:57:27 am
content: I wonder if this is possible? Lift the two pins sor SCL and SDL. Program the RTC. Then solder those pins back?

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 09, 2024, 05:53:23 pm
content: Quote from: u666sa on November 09, 2024, 10:57:27 amSomething like this may need to be done. I did order a new 1371 to try to program off the PCB. I figured that should prove if something on the PCB is preventing programing. Will have the new 1371 to try in a few days.

author: u666sa
author_rank: Frequent Contributor
timestamp: November 09, 2024, 06:30:21 pm
content: You can't try it off PCB. Because it needs PCB to work.When you do this, microscope, smallest tip you have, smallest T12 will be fine. You can't short things on PCB with your tip, keep in mind. Nor can you short things with your tweezers. Opt for ceramic teezers, or really careful work under microscope.

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 09, 2024, 07:11:49 pm
content: Quote from: u666sa on November 09, 2024, 06:30:21 pmI was confused to why you said off PCB would not work, so I checked the data sheet. I then saw the typical operating circuit does include a crystal between X1 and X2 and a resistor Between Vcc and SQW/INT.So If I add the crystal and resistor and The raspberry pi provides the 3.3V, ground, SDA, SCL, and pull-up resistors, it should work off the PCB correct?Edit I also now see there is a connection to the WDS pin also. Can anyone explain what this watchdog timer is or does?

author: u666sa
author_rank: Frequent Contributor
timestamp: November 09, 2024, 08:06:11 pm
content: Quote from: Agentfoot on November 09, 2024, 07:11:49 pmWhat happens when you disconnect the battery? RTC gets reset, correct?So..You would have to program it in board, with device off, then solder data lines back and turn on your device.

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 09, 2024, 08:26:43 pm
content: Quote from: u666sa on November 09, 2024, 08:06:11 pmI think you misunderstood my thought process. I figured if I could order a new chip and program it off the PCB then it will prove something on the PCB is preventing the onboard chip from being programed. Then I know I may have to lift a pin or do something else for the onboard chip to be programed. I unfortunately do not have a microscope for soldering so lifting a pin for me is not exactly easy. Programming the chip and then soldering it to the PCB was never in my thought process because like you said it won't work.

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 09, 2024, 09:41:29 pm
content: I found when I remove the micro SD card and boot the tool with no operating system the Raspberry pi does seem to find the chip.Unfortunately the links darkspr1te mentioned in post #9 seem to be outdated. First link results in "hwclock: cannot access the hardware clock via any known method. The second link used an outdated driver.Ill see if I can find more current information to get the programming done.Edit- sorry for the big picture still figuring out how to use the forum.

author: u666sa
author_rank: Frequent Contributor
timestamp: November 09, 2024, 09:47:12 pm
content: Now you just have to modify it to current date and time, insert SD and reboot.

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 10, 2024, 03:00:15 am
content: Some progress was made. I received my DS1307RTC for the pi and was able to get it programmed and running with these instructionshttps://pimylifeup.com/raspberry-pi-rtc/.So with my new knowledge and confidence I connected my scan tool with the DS1371RTC back up to the pi. Im able to write the date, then read the date. But when the scan tool is restarted I can no longer read the date. It says "hwclock: ioctl9RTC_RD_TIME) to /dev/rtc0 to read the time failed: Invalid argument". Then if I write the date again it reads just fine. I tried writing the date then rebooting into the operating system but the date was still invalid.So it seems I can temporarily write the date to the DS1371 on the tool but something prevents it from saving after a reboot. The coin cell battery is installed when this happens.

author: u666sa
author_rank: Frequent Contributor
timestamp: November 10, 2024, 08:18:57 am
content: On leg 8 there is 3 volts when scan tool is off and nothing connected to it?

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 10, 2024, 01:12:59 pm
content: Quote from: u666sa on November 10, 2024, 08:18:57 amLeg 8, Vcc is always powered. It receives power from the battery when the scan tool is off. The tool provides 3.3V when it is on.

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 10, 2024, 02:09:41 pm
content: It seems the ds1307 and ds1371 count and store time differently. Below is the descriptions. This must explain why I can not program the ds1371 on my tool.TheDS1371is a real-time clock (RTC) with a I2C serial interface that provides elapsed seconds from auser-defined starting point in a 32-bit counter (Figure 2). A 24-bit counter can be configured as either awatchdog counter or as an alarm counter.The time-of-day counter is a 32-bit up counter. The contents can be read or written by accessing theaddress range 00h–03h. When the counter is read, the current time of day is latched into a register, whichis output on the serial data line while the counter continues to increment. Writing to the counter resets thecountdown chain for the time-of-day counter (Figure 2). The watchdog countdown chain is unaffected. Ifthe square-wave output is enabled and is set to 1Hz, the output resets when the countdown chain is reset.Because the other square-wave frequencies are derived before the section of the countdown chain that isreset, the other frequencies are unaffected by a write to the time-of-day counter.TheDS1307is a low-power clock/calendar with 56 bytes of battery-backed SRAM. The clock/calendar providesseconds, minutes, hours, day, date, month, and year information. The date at the end of the month is automaticallyadjusted for months with fewer than 31 days, including corrections for leap year.The time and calendar information is obtained by reading the appropriate register bytes. Table 2 shows the RTCregisters. The time and calendar are set or initialized by writing the appropriate register bytes. The contents of thetime and calendar registers are in the BCD format. The day-of-week register increments at midnight. Values thatcorrespond to the day of week are user-defined but must be sequential (i.e., if 1 equals Sunday, then 2 equalsMonday, and so on.) Illogical time and date entries result in undefined operation. Bit 7 of Register 0 is the clock halt(CH) bit. When this bit is set to 1, the oscillator is disabled. When cleared to 0, the oscillator is enabled. On firstapplication of power to the device the time and date registers are typically reset to 01/01/00 01 00:00:00(MM/DD/YY DOW HH:MM:SS). The CH bit in the seconds register will be set to a 1. The clock can be haltedwhenever the timekeeping functions are not required, which minimizes current (IBATDR).The DS1307 can be run in either 12-hour or 24-hour mode. Bit 6 of the hours register is defined as the 12-hour or24-hour mode-select bit. When high, the 12-hour mode is selected. In the 12-hour mode, bit 5 is the AM/PM bit withlogic high being PM. In the 24-hour mode, bit 5 is the second 10-hour bit (20 to 23 hours). The hours value must bere-entered whenever the 12/24-hour mode bit is changed.

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 15, 2024, 03:35:30 pm
content: I was able to set the time on the DS1371 chip and get my scan tool working again. It took loading a custom driver to the raspberry pi to communicate with the DS1371.Thank you all for your help in learning how to do this!

author: darkspr1te
author_rank: Frequent Contributor
timestamp: November 17, 2024, 01:24:06 pm
content: Well Done matey!.You should also paste/post here the custom driver and guide to assist others in achieving this.I know the elation you can feel when you have a situation like this and win.darkspr1te

author: Agentfoot
author_rank: Regular Contributor
timestamp: November 24, 2024, 12:17:06 am
content: Just found out a custom driver is not needed for this on the raspberry pi. Just load and use the DS1374 driver. The time setting part is the same as the DS1371. There is some differences with the more advanced features though.

author: tazarian
author_rank: Newbie
timestamp: January 25, 2025, 11:05:59 pm
content: how were you able to add that driver im getting an error that i cant use hwclock but got it to read 68 when detecting with i2cthanks

author: tazarian
author_rank: Newbie
timestamp: January 25, 2025, 11:10:11 pm
content: hwclock: Cannot access the Hardware Clock via any known method.hwclock: Use the --verbose option to see the details of our search for an access method.

author: Agentfoot
author_rank: Regular Contributor
timestamp: January 26, 2025, 01:24:52 am
content: Quote from: tazarian on January 25, 2025, 11:10:11 pmThis will load the driver and set the driver the the correct i2c address. Then you should be able to set time.Code:sudo modprobe rtc-ds1374echo ds1374 0x68 |sudo tee /sys/class/i2c-adapter/i2c-?/new_device/code]

author: tazarian
author_rank: Newbie
timestamp: January 26, 2025, 04:29:20 am
content: so that installs the driver without getting it off of github?

author: tazarian
author_rank: Newbie
timestamp: January 26, 2025, 08:00:31 am
content: echo ds1374 0x68 |sudo tee /sys/class/i2c-adapter/i2c-?/new_deviceds1374 0x68tee: /sys/class/i2c-adapter/i2c-1/new_device: Device or resource busytee: /sys/class/i2c-adapter/i2c-2/new_device: Device or resource busy

author: Agentfoot
author_rank: Regular Contributor
timestamp: January 26, 2025, 01:36:09 pm
content: The driver is already included in linux. The first line loads the driver. The second line sets it to the correct i2c address.I never saw that error. My guess is the chip is communicating with another chip with is blocking you from communicating. Are you doing this to a solus ultra? If so take out the micro SD card and turn on the scanner. When the scanner shows the insert memory card screen you should be able to communicate with the chip.

author: tazarian
author_rank: Newbie
timestamp: January 26, 2025, 02:13:05 pm
content: yes i have solus ultra thanks

author: tazarian
author_rank: Newbie
timestamp: January 26, 2025, 05:11:56 pm
content: got it to finally work i had to just add that to the raspberry pi instead of all the other stuff and then it worked using that driver. thanks again for all your help this thing has been a thorn in my side for years. finally someone got it to work lol. i accidentally pulled battery a long time ago thinking that is what was wrong with it and nope it was just the date the whole time. there was someone on mhh auto that was able to tell me that at least. i was trying to change date with ttl usb adapter and it wouldnt do anything.

author: jd1985
author_rank: Newbie
timestamp: July 10, 2025, 04:47:56 am
content: i must start off saying great work i my self have the same problem but on a modis ultra clock battery dead date set to 1970 i have a pi but not really sure how to set this up can you all maybe walk me through the steps i can run i2cdetect and see 68 but i am lost on drivers and code windows guy sorry pi is new to me but i would like to learn more thanks

author: Agentfoot
author_rank: Regular Contributor
timestamp: July 10, 2025, 01:00:59 pm
content: I am unfamiliar with the modis ultra. Does it have the same 1371 Clock IC?If so use this code to load the driver and set it to the correct i2c address.sudo modprobe rtc-ds1374echo ds1374 0x68 |sudo tee /sys/class/i2c-adapter/i2c-?/new_device/code]Then use HWclock to set the time.

author: jd1985
author_rank: Newbie
timestamp: July 11, 2025, 04:49:40 am
content: It in fact has the same chipset and the pads marked I am using pi os desktop new build on a pi zero 2w but did like it so ordered a pi 4b-4g just learning but I do a lot of console repairs SMD / reflow/reball work feel the pi can help someways trying to understand the drive part is it pre installed? I come from windows where in that had find drivers download install with this I see scripts thanks for getting back so soon will update I don't think there's a way to screw it up...much

author: jd1985
author_rank: Newbie
timestamp: July 14, 2025, 02:39:51 pm
content: Update got it to set date .only problem left is the scope when trying to enable from main home screen it hangs and don't load froce reset and Wi-Fi not showing version can't tell if it's flash memory or sd have backup of card may be corrupted.thanks every for taking your time to figure out the clock fix

author: Agentfoot
author_rank: Regular Contributor
timestamp: July 14, 2025, 03:12:41 pm
content: Congratulations on getting the date set. Im glad another tool can be fixed.I believe all that is stored in the flash memory is the security information that prevents unauthorized updates. I am not 100% sure on that though.Your problem is either a corrupted SD card or a hardware issue in the scope portion.

author: jd1985
author_rank: Newbie
timestamp: July 24, 2025, 02:26:15 am
content: Progressive has been made I found a 18.2 card dump and put it on a SD and now the scope works not the scanner side but I can live with sd swapping if need be or find a 20.2 dump and fix got a inside guy looking for me now ....thanks again for all the information and help it's been it frustrating but fun learning curve

author: RJSV
author_rank: Super Contributor
timestamp: July 27, 2025, 03:27:03 am
content: Yeah, I worked there (Balco in San Jose, Santa Clara). Snap-on had purchased BALCO, and started supporting the scan tools, each according to manufacturers like Ford, Mitsubishi, that each has a line of cartridge for the auto repair tech.What I don't know, is any of the recent corporate stuff, who sold what division, etc.BALCO was originally a private company, producing microprocessor based automotive wheel balancing machines...a repair house situation where the computer indicates where to attach the balancing weights.One exceptional feature, at Snap-On BALCO, was that the management had invitations (around town) for expert mechanics to contribute to the tips and difficult areas, of any particular specialty, brakes, suspension, all those sub-systems. So, it wasn't solely just software Engineers, doing the assembly language coding, but Included experts directly employed, in surrounding dealerships, etc.(Sorry I don't have any contacts there, now, though).Rick