How to perform firmware upgrade on Pentair* controllers

A Chinese USBDM. $12 shipped.

Freelance's HCS12 family of processors is fully supported with any modern operating system.

It detects the chip fine, and can power the easytouch remote directly with its built in 5V. I can read and write my current firmware and EEPROM. I haven't messed with the outdoor controller yet, just playing with the wireless remote.

And I can't try a new firmware unless I can get the .s19 file.

;)
 
Last edited:
The PE Micro s19 files are different then the USBDM s19 files, something about the offset. There is some software to convert one to the other. I never could figure it out.

Check your PM

Reach out to me if you would like me to perform the firmware update for you, I use the PE Micro programmer, and I do it all the time.
 
The PE Micro s19 files are different then the USBDM s19 files, something about the offset. There is some software to convert one to the other. I never could figure it out.

Check your PM

Reach out to me if you would like me to perform the firmware update for you, I use the PE Micro programmer, and I do it all the time.
Hi thanks!

USBDM software loaded the .s19 file and detected the chip correctly on board the wireless remote (have to hold down the power button while detecting).

I won't erase and flash until I can research what conversion is necessary.
 
Sure.

USBDM is a very well documented, open source programmer for Freescale micro controllers. Much can be learned here:


The Pentair Easytouch uses a Freelance MC9S12A128 chip after 2008 (before then it was a smaller MC9S12A64).

See this for reference: What's the deal with Easytouch versions 1 and 2?

This microcontroller is part of the "HCS12" family of Freescale microcontrollers.

My particular USBDM from Ali express came with a link to all of the drivers needed to install a base version of Codewarrior (coding IDE) which is installed first, followed by the drivers to install. If you are only interested in flashing a chip, I don't think Codewarrior is needed.

In my setup I am using Windows 7. I'm confident windows 10 or any modern Linux would work equally well.

P&E Micro tools accept addresses in 64kB memory map (16bit) and linear (global) format (24bit).

USBDM tools accepts only addresses in 64kB memory map (16bit) and banked (logical) format (24bit, PPAGE + address in 0x8000~0xBFFF memory window).

As documented here: Re: USBDM vs Pemicro

A simple program developed by NXP will convert the file formats from one to another.

A. Make your programming cable
-This has been well documented in the OP and elsewhere in this thread. The VCC, RST, GND and BKGND pins are all clearly labeled on the PCB of the USBDM device, and correspond to the appropriate pins on the micro JST connector.
20210513_234523.jpg

B: Convert Pentair firmware from linear to banked format

1. The Pentair firmware intallation file (if you can find it on Pentair's website!) puts the .s19 hex files in the following location:


location.JPG
2. Install the NXP converter program which can be found here: https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/16-bit/15138/1/SRecCvt_v1.0.31.zip

3. Open the converter program. Choose "Linear" for the input file, and "banked" for the output file. For "Input File 1" choose the firmware for your device from the location in step 1. Choose the correct device. Choose an output file location that is convenient for you to find later. No other options need to be selected. Hit the "Convert" button.

Converter.JPG

C: Programming Pentair Easytouch firmware with USBDM (Verified to work under Windows 7 with MC9S12A128 processor

1) Install Codewarrior software and drivers for USBDM as documented here: USBDM: Software Installation

2) Reset computer, and plug in USBDM device. Once the drivers are recognized, update the firmware on the USBDM. Here is a great video to walk you through installation of the drivers:

3) Open up the HCS12 standalone programmer
HCS12 Programmer.jpg

4) -Select "Load Hex File" and choose the file that was saved in B. 3.
-Click on "Detect Chip." This should show the MC9S12A128 chip. Of note, the wireless unit will have to have the Menu/Power on button held to power the device during detection. Bus Frequency should be around 8000khz.
-Don't change the security options.
-Under "Programming Erase Mode" there are a few options: "EraseMass" will erase the entire memory, including the EEPROM. This is ok if you have another unit that you can pull the settings from (ie: Wireless unit will pull settings from Outdoor Unit) or if you want to start from scratch with your programming. You will also have to readdress the wireless address if you have a wireless unit. Choosing "EraseSelective" will just flash the memory and leave the EEPROM intact. I used "EraseMass" for my wireless unit, and then pulled the settings from the outdoor unit. For the outdoor unit, I will "EraseSelective."
-Click "Program Flash." It will take a few seconds and verify the programming. Of note, the wireless unit will have to have the Menu/Power on button held down during the entire process to power the device during detection.

Flash Programmer.JPG

5) Enjoy your updated firmware, using a $12 programmer and free software.

20210514_075407.jpg
 
Last edited:
This is all your brain child my friend. Knowing that you could bail me out if I bricked the system gave me the courage to move forward lol.

I'm not sure that this would work with Intellicenter/Intellitouch as they might use a different processor.
 
Last edited:
Hey great writeup!

The intellicenter is an altogether different beast but your method should work with the Intellitouch... it uses an MC912DG128ACPVE vs the MC9S12A128ACPVE, slightly different variant but the same architecture and memory organization.

After I wrote that "what's the deal with Easytouch" article you linked to, I planned to swap a 64k Easytouch 1 chip with the 128k Easytouch 2 version, but I haven't gotten around to it. I was going to pull a chip from another easytouch because I'm not sure if the bootloader code is part of the s19 file... if it isn't I probably won't be able to use a new blank chip.
 
Last edited:
Ha... didn't know I was quoting your blog. It was useful, thanks!

I think if there is no "S" it is an HC12 chip. Similar architecture but programmed differently. Not sure if USBDM supports it. Their forum is active and the developer very responsive, though.

There is at least one person here who swapped out the chips on his board. He didn't mention what he did about the bootloader, though.
 
Last edited:

Enjoying this content?

Support TFP with a donation.

Give Support
yep you're absolutely right!

And I didn't realize the flash arrangement is also different... the older one has 4 x 32k blocks vs 2 x 64k blocks on the 9s. So I'll have to retract my previous statement! (oh, and I listed the wrong part number for the ET above, it should be MC9S12A128CPVE, not MC9S12A128ACPVE)
 
Jeez. I knew I'd gone down this road with the Intellitouch chips before... 6 years ago on post 61 in this thread!!


I apparently came to the conclusion that the USBDM doesn't support the Intellitouch chip ;)

Also, I did reach out to xuulan after his/her mention of the chip swap but I never got any response... but theirs was a 9s as well.
 
Jeez. I knew I'd gone down this road with the Intellitouch chips before... 6 years ago on post 61 in this thread!!


I apparently came to the conclusion that the USBDM doesn't support the Intellitouch chip ;)

Also, I did reach out to xuulan after his/her mention of the chip swap but I never got any response... but theirs was a 9s as well.
You warned a future me to attempt at my own risk.

It was your idea, I just executed it.

I think it is fair to say that the USBDM route is an easy, cheap, off the shelf option for Easytouch panels post 2008. Other than that, P&E tools are a must.
 
  • Like
Reactions: ogdento
Haha, sounds like Terminator ;)

In any case, you executed well! And to your point about the programming difference with the newer MC9S... in addition to the Easytouch units it looks like your USBDM can do the Suntouch and Mobiletouch 2 (both 2 and 2a) because they also use MC9Sxxx chips.

The Intellitouch (indoor and outdoor), Mobiletouch 1, and iLink controllers use the older non-S chips that the USBDM can't program (yet maybe?). I'm actually surprised Pentair didn't switch to the 9S version on later intellitouch boards - it's a cheaper part and they'd already made any required 9S firmware changes on the Mobiltouch 2X version (basically an intellitouch indoor controller combined with a linx or laird radio chipset, depending on if it's a Mobiletouch 2 or 2a). But maybe it's not the same pinout.
 
Ahh, the pinouts are different for the two chips... so Pentair would have to rework the intellitouch boards to use the 9s version. Not worth it!
 
Looks like HC12 support for USBDM can be added pretty easily:

 
Is there any big reason to upgrade the board's firmware? I'm running 2.10 and considering an upgrade if I order a USBDM. I don't have a wireless controller or indoor remote/screen logic. Planning to use nodejs-poolController for my control away from the pad. Does 2.18 add and big changes vs 2.10? Tried to download the firmware and pull the release notes but Pentair pulled the download it seems. If not much changes I will avoid the hassle and stay on 2.10. Thanks
 
Version 2.100 7/12/11

Fixes:
Changed Spa side IntelliFlo control system. Prior it required the Spa circuit was on much like the temperature change it was dynamic,
and forgotten/reset when Spa turned off. Since the customer may want control when Spa is not running, now we only require the assigned pump is on.
Fixed issue with solar valve and service mode. The valve was not being activated in Service Mode if the circuit was solar.
Revision of IntelliChem Menus to Allow Saturation Index Adjustment during No/Flow Delay, negative sign correction, and LCD character corrections
Fixed clock setting issue
Revised Main Menu in code to refresh two custom characters on entry (will be done often unfortunately)
Revised IntelliFlo-Menu, VF type Pump Filter Circuit, NONE is no Longer an Option (Pump Type would otherwise be ignored if no
background circuit is selected)
Fixed issue, when user is in Spa and the Cleaner turns on. Now it remains in background. Prior it tried to exit Spa mode. This was
confusing and users didn't want it out of Spa mode anyway.
Changed C/F Option to English/Metric, And GPM Readings (IntelliFlo Menu's and Spa-side pump controls). Now support LPM (liters per minute).
Changed 'VSF+SVRS' Text to 'VSF'


Version 2.130 7/15/13

Fixes:
Supports new (Mobi II) style radio. Firmware IS backward compatible with all EasyTouch II Wireless units.
Added exception to Indoor code which ignores “Set heat” packets while it is itself in the midst of changing those packets (bug found
with screen logic EZT support).
Changed range value to allow user to set ORP as low as 400
Changed response times on Fast Keep Alive to sync with radio chipset
Fixed temp control issues that allowed the Pool to heat till the 'next' degree, rather than stopping at desired temp + 0.4 degrees.
Also implemented C scale to act about the same
Fixed the valve assignment packet. It was getting incorrectly set by ScreenLogic trying to set valves for expansion units 2, 3, and 4
which are for IntelliTouch only
Added support for new radio in Wireless including driver, handler, timing, issues/differences, etc.
Fixed issue of not sending out Chlorinator Name.
Put in solution for 'cooling temperature' getting set to zero by unknown issue. Found hardcoded pointer to nowhere in the Cooling
menu system, this may likely explain the resetting to 0.
Added code to the heat pump cooling. It was switching on an edge, so cycling was occurring
Fixed issue with an IntelliFlo being used as the master Cleaner pump. It was not being held off if Spa was on.

Version 2.140 10/10/14

Fixes:
Cleaned up a few internal issues in the software that was creating issues.

Version 2.150 12/15/16
Fixed issue with self test screen over writing some characters.
Fixed issue with some boards misidentifying as PL4 units.
Fixed Fixed issue with Spa/Cleaner. Now if Cleaner turns on while Spa is running it turn the Spa Off and visa versa.
Fixed Issue with Heat source not changing until Spa or Pool was turned off and back on
Fixed issue with units set for degrees C being stuck at 40.
Added support for New IntelliFLo II VSF and Alarm tables.
Fixed issue on EasyTouch 4 Indoor panel showing a phantom LED.
Removed PSI from VSF setup Screen.

Version 2.160 2/20/17

Fixed issue created in 2.150 which required erasing the UOC EEPROM after firmware update.




Version 2.180 4/01/19

Support Hybrid Heater
Fixed several issues with the VSF pump
Fixed a number of minor issues
Fix long standing bug with Pool-Spa-Cleaner interlock
 
Thanks for the release notes Jerry. Strange that you cannot download the 2.18 FW right now.

Looks like there has been quite a lot of changes since my FW version.. Considering doing the update just for degrees C changes seeing I'm in Canada. My only fear is that I will brick the board and then be really screwed. Aliexpress takes about a month anyway so I would have some time to research it more but it looks like a good idea to get updated from 2.10. Thanks again.
 
njs-pC didn't read by VD pump correctly on 2.06. It does now on 2.18.

My USBDM came from aliexpress in less that 1 week!

As for the extra relays, you will get those with the firmware you are on. If I didn't already order the USBDM (thinking upgrading would be needed to unlock the extra relays) I probably wouldn't have done it.
 

Enjoying this content?

Support TFP with a donation.

Give Support