← Crafts
Peso preview

Peso

Embedded research Engineering collaborator

Physical coin-tracker firmware with PlatformIO and embedded data logging — ESP32 coin-slot ISR counting with session totals and on-device UI assets.

Problem

Community savings circles and sari-sari ledgers still rely on handwritten coin tallies that drift at shift changes. Peso (coin-tracker) firmware listens to coin-slot pulses, accumulates session value, and serves compressed web assets for local balance checks.

What it covers

  • GPIO ISR trampoline for coin-slot pulse edges on ESP32
  • Session accepted monetary value with invalid sequence tracking
  • On-device gzipped HTML/JS dashboard assets
  • PlatformIO workspace with deployment checklist docs
pulse edge debounce + count update session total refresh display Coin slot GPIO ISR CoinSlot module On-device UI
Coin pulse to session total
bool CoinSlot::begin() {
  pinMode(COIN_SLOT_PIN, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(COIN_SLOT_PIN), coinSlotIsrTrampoline, CHANGE);
  return true;
}

void IRAM_ATTR CoinSlot::coinSlotIsrTrampoline() {
  if (s_instance_ptr_for_isr) {
    s_instance_ptr_for_isr->handleEdge();
  }
}
Peso coin tracker UI placeholder
Screenshot placeholder — swap for the on-device balance dashboard.