ESP32 Commander Life Counter Firmware
Budget: $250 – $750 USD
I need a clean, well-commented program for an ESP32-P4 that turns the board into a dedicated life counter for a four-player game of Magic: The Gathering – Commander format. The hardware on my bench is an ESP32-P4 module paired with a basic character/graphic LCD screen, and that will be the sole display. No OLEDs, LED matrices, or other output devices are in the mix.
https://www.amazon.com/dp/B0FBRHYH2G?ref=fed_asin_title is the board being used
Core behaviour
• On boot the LCD should present four life totals, each starting at 40.
• Only the life totals themselves need to appear—no player names, mana counters, or extra data.
• Each player’s total must be clearly separated on the screen so a quick glance tells everyone where they stand.
Touchscreen interface to reset and or add or subtract totals from the players health count.
Interaction
I have buttons available on the ESP32’s GPIOs, so the sketch should expose simple increment / decrement controls (one pair per player is fine, though I’m open to smarter multiplexing or a rotary/encoder suggestion if it cuts down on pin count). Debouncing in software is preferred.
Persistence & resets
A full game reset to 40-40-40-40 should be available by holding a designated button for a few seconds. The latest totals don’t need to survive power loss, so EEPROM or flash storage is optional unless you think it adds value.
Deliverables
• Arduino-compatible source code (or ESP-IDF if you feel it’s cleaner) with clear pin mappings and inline comments.
• A concise wiring diagram showing the LCD and buttons connected to the ESP32-P4.
• Brief README explaining build steps, required libraries, and how to alter pin assignments.
Acceptance
I’ll flash the sketch on my side; the job is complete when the display shows four independent life totals, all buttons react instantly without bounce issues, and the reset behaviour works exactly as described.
Here is a similiar project https://www.etsy.com/listing/4317226169/mtg-life-counter-tutorial-digital?ls=s&ga_order=most_relevant&ga_search_type=all&ga_view_type=gallery&ga_search_query=mtg+life+counter&ref=sr_gallery-1-3&sr_prefetch=1&pf_from=search&pop=1&dd=1&content_source=c1d8bea2-b809-400c-9e78-b2dafd52e06f%253ALT66fb7c27e7195cfd052f72bbef7e4d238c72d906&organic_search_click=1&logging_key=c1d8bea2-b809-400c-9e78-b2dafd52e06f%3ALT66fb7c27e7195cfd052f72bbef7e4d238c72d906
however, this one only loads 1 persons life we are trying to build a bigger screen and accomodate 4 players life totals on the screen at the same time.
https://www.amazon.com/dp/B0FBRHYH2G?ref=fed_asin_title is the board being used
Core behaviour
• On boot the LCD should present four life totals, each starting at 40.
• Only the life totals themselves need to appear—no player names, mana counters, or extra data.
• Each player’s total must be clearly separated on the screen so a quick glance tells everyone where they stand.
Touchscreen interface to reset and or add or subtract totals from the players health count.
Interaction
I have buttons available on the ESP32’s GPIOs, so the sketch should expose simple increment / decrement controls (one pair per player is fine, though I’m open to smarter multiplexing or a rotary/encoder suggestion if it cuts down on pin count). Debouncing in software is preferred.
Persistence & resets
A full game reset to 40-40-40-40 should be available by holding a designated button for a few seconds. The latest totals don’t need to survive power loss, so EEPROM or flash storage is optional unless you think it adds value.
Deliverables
• Arduino-compatible source code (or ESP-IDF if you feel it’s cleaner) with clear pin mappings and inline comments.
• A concise wiring diagram showing the LCD and buttons connected to the ESP32-P4.
• Brief README explaining build steps, required libraries, and how to alter pin assignments.
Acceptance
I’ll flash the sketch on my side; the job is complete when the display shows four independent life totals, all buttons react instantly without bounce issues, and the reset behaviour works exactly as described.
Here is a similiar project https://www.etsy.com/listing/4317226169/mtg-life-counter-tutorial-digital?ls=s&ga_order=most_relevant&ga_search_type=all&ga_view_type=gallery&ga_search_query=mtg+life+counter&ref=sr_gallery-1-3&sr_prefetch=1&pf_from=search&pop=1&dd=1&content_source=c1d8bea2-b809-400c-9e78-b2dafd52e06f%253ALT66fb7c27e7195cfd052f72bbef7e4d238c72d906&organic_search_click=1&logging_key=c1d8bea2-b809-400c-9e78-b2dafd52e06f%3ALT66fb7c27e7195cfd052f72bbef7e4d238c72d906
however, this one only loads 1 persons life we are trying to build a bigger screen and accomodate 4 players life totals on the screen at the same time.