Fixing a broken APEX Classic main unit

Discussion in 'Do It Yourself (DIY)' started by theatrus, Mar 8, 2018.

  1. theatrus

    theatrus Member R2R Supporter

    Joined:
    Mar 26, 2016
    Messages:
    77
    Likes Received:
    65
    Location:
    Almost Nevada
    A few weeks ago my APEX Classic (it wasn't classic when I bought it!) had failed, in a disastrous way: the system had effectively locked up and did not respond to inputs or control any outputs. Upon further debugging, it was even latching up after rebooting, usually a short while into the boot process.

    I swapped it with a spare "Lite" unit I had kicking around from a planted tank (really, how much control do those need anyway?) and at least was back in business for the most part.

    If you have ever opened up the unit, you'll know there isn't much there:

    - LPC2368 main CPU
    - NatSemi Ethernet PHY
    - An ATTiny for each of the isolated sensor channels (it uses an optoisolator to communicate unidirectionally)
    - Maxim CAN transceiver (AquaBus) (MAX3059)
    - Various power supply bits (MC34063 DC/DC)
    - Atmel "DataFlash" AT45DB161D SPI flash unit

    After dumping the unit in the ultrasonic bath (flux everywhere, also some years of salt splash took out one of the VDM connectors), and probing voltages there wasn't much really going on. The unit would reliably hang after about 30s at boot, and now to the point it wasn't even displaying anything sensible on the remote display unit.

    This roughly left two options:
    - Main MCU had bit the dust. I don't think Neptune ships the bootloader used for this with their firmware update files, so recovering this part would be a hard.
    - The data flash had developed a fault due to years of data logging to it.

    I went for option 2: DataFlash was dead in some way. Thankfully replacements are easy to source:

    https://www.digikey.com/product-det...gies/AT45DB161E-SSHD-T/1265-1034-1-ND/3847271

    I pulled the old DataFlash off the board - a mere 10s with hot air, even easier as Neptune did not use lead-free solder here. I attempted to read-back the unit with a handy TL866A universal programmer, and ended up with valid data for many portions, and was able to successfully blank the chip (erase to FF), however programming in one area of the flash back to 00 was failing. Bingo.

    Swap the new part in (which is _smaller_ than the original in width - the wider one is no longer readily available), and... it lives! The smaller width requires some careful alignment to cover the existing old pins.

    Location of the DataFlash for those interested:

    [​IMG]

    Old flash above the board, new one installed. Back to the races.

    Notes:

    - I removed the battery for this picture (it won't wash well :))
    - You need to use the firmware update utility to reload the "web pages" (which are stored here as well)
    - Doing this will obviously wipe all settings out.
    - I haven't tested Apex Fusion functionality since doing this.
     
    Last edited: Mar 8, 2018
    Tags:

  2. Maggie321

    Maggie321 Well-Known Member R2R Supporter R2R Excellence Award

    Joined:
    Mar 15, 2017
    Messages:
    828
    Likes Received:
    964
    Was it luck you had the universal programmer? Fate? Or proper planning... I don't think I would have one of those laying around.
     
  3. theatrus

    theatrus Member R2R Supporter

    Joined:
    Mar 26, 2016
    Messages:
    77
    Likes Received:
    65
    Location:
    Almost Nevada
    If you dabble in random electronics bits they are extremely handy. You could also use an Arduino, Bus pirate, etc.

    In this case there was no need to preload the external flash with any data - the APEX firmware self bootstraps.
     
Draft saved Draft deleted

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice
Loading...