Open-Acidification / Open-Acidification/TankControllerPico

View Device Address - Additional Functionality

Open
#19 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
2
Forks
1
Avg merge
2h 22m
Merged PRs (30d)
2

Description

Review the new key-press handling implementation on the Pico platform and compare it against the previous C++ behavior. The original design included two Watchdog Timer (WDT) operations and a MAC-address reset action.

Goals

  • Verify whether watchdog timer operations (wdt_disable(), wdt_enable()) are required, supported, or should be replaced on the Pico.
  • Review the behavior of key-triggered actions (#, B, C) and update them for platform compatibility.
  • Confirm whether readMac() is needed in this UI context on the new architecture.
  • Ensure the UI/state controller does not cause unexpected resets or hangs on the Pico.

Reference: Original AVR Key Handling

case '#':  // Disable Watchdog Timer (is reboot from this?)
      wdt_disable();
      break;

    case 'B':  // Infinite loop to test Watchdog Timer
      wdt_disable();
      wdt_enable(WDTO_15MS);
      do {
      } while (true);
      break;

    case 'C':  // Reset MAC address
      Ethernet_TC::instance()->readMac(true);
      start();
      break;

readMac definition

void Ethernet_TC::readMac(bool forceReset) {
  uint8_t bytes[6];
  EEPROM_TC::instance()->getMac(bytes);
  if (forceReset || bytes[0] != '#') {
    randomSeed(analogRead(0) + millis());
    bytes[0] = '#';
    bytes[3] = random(256);
    bytes[4] = random(256);
    bytes[5] = random(256);
    EEPROM_TC::instance()->setMac(bytes);
  }
  mac[3] = bytes[3];
  mac[4] = bytes[4];
  mac[5] = bytes[5];
  serial(F("MAC address is %02x:%02x:%02x:%02x:%02x:%02x"), mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
}

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No Pico source file or test is named. Locate the Pico key-press handling and UI/state controller, then compare them with the referenced AVR cases and readMac implementation; done means the supported watchdog and MAC-reset behavior is settled and key actions cannot cause unexpected resets or hangs.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python
Domain
embedded-iot
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.