OpenSprinkler Forums OpenSprinkler Unified Firmware Compiling Firmware 2.1.7

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #85389

    StephenOz
    Participant

    Is there any instructions/help available on how to compile firmware 2.1.7?

    Reason is I’d like to change the /su weather to accept IP:Port and not try do a DNS lookup on ‘IP:Port’. While I was at it I asked ‘AI’ about the network lockups that require a power reset:

    Issue 1 is the prime suspect — there’s a well-known silicon errata in the ENC28J60 chip where the ERXRDPT receive buffer pointer register must always be set to an odd value. The code in packetReceive() doesn’t enforce this. When the pointer lands on an even address, the chip’s internal receive logic silently jams — it stays powered up and the AVR keeps running perfectly, but the ethernet hardware stops accepting any new packets. A power cycle resets the chip and clears it, which matches your symptoms exactly.
    Issue 2 makes it worse — there’s no code anywhere that checks or clears the RXERIF receive overflow error flag. So if the buffer fills up (which Issue 3’s blocking DNS/HTTP calls make likely), the chip halts receive and there’s nothing to bring it back short of a reset.

    Any help compiling would be appreciated.

    Regards,
    Stephen

    #85390

    Ray
    Keymaster

    Compiling firmware 2.1.7 for which OpenSprinkler hardware?

    #85395

    StephenOz
    Participant

    Hi Ray. Sorry, dumb to leave that out.

    OpenSprinkler HW2.2 (16MHz, Serial).

    #85705

    StephenOz
    Participant

    Well this is embarrassing when you take a different approach. For anyone else who may be looking to compile for older (OS 2.2) hardware:

    • Disregard what you may have read from archives etc about compiling old firmware.
    • Follow instructions for latest firmware, download and compile latest firmware to confirm things are ok.
    • Download old firmware and unzip in suitable folder for vscode.
    • Copy platformio.ini from new firmware to old firmware and add suitable environment, in my case [env:os22_atmega644p].
    • Open ‘old’ firmware in VSCode and build.
    • Once you can build start your mods.
Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.

OpenSprinkler Forums OpenSprinkler Unified Firmware Compiling Firmware 2.1.7