CECHITRAX / PROJECT
All projectsDocumentation PDF ↗

EDUCATIONAL WORKING PROTOTYPE ARDUINO · EMBEDDED SYSTEMS · 2026

Arduino Six-Party
EVM Prototype

A button-operated demonstration of voting interaction: choose one of six fictional parties, review the full name, confirm or cancel, persist the result, and return to ready.

made by Chitraksh AND Ansh did not make it

Controller
Arduino Uno R3
Interface
128×64 I2C OLED + Serial
Inputs
6 party + green + red
Status
OLED issue under investigation
01 / PROJECT OVERVIEW

A complete interaction flow on eight buttons.

The device demonstrates the flow of a six-party electronic voting machine using physical inputs, confirmation logic, persistent totals, protected operator access, and small-display feedback.

02 / KEY FEATURES

Clear choices. Intentional controls.

Every voter-facing selection includes the party number and full fictional party name, while operator actions require deliberate holds or a protected entry flow.

01

Six party inputs

Dedicated physical buttons with full-name confirmation before storage.

02

Confirm or cancel

Green records exactly one vote; red exits without changing totals.

03

EEPROM persistence

Six 32-bit totals survive reset or power loss.

04

Protected results

A four-digit code is entered with party buttons before results open.

05

Leader and tie logic

The interface reports one leader or every party sharing the highest total.

06

Deliberate reset

A three-second green-button hold clears all stored totals from results.

07

Dual feedback

The OLED interface is mirrored by a complete 9600-baud Serial Monitor fallback.

08

Responsive firmware

An explicit state machine avoids long blocking delays while scanning inputs.

1 · NATKHAT PARTY2 · AURORAEON JANTA PARTY3 · MACHHAR PARTY4 · AVENGERS PARTY5 · MADHUMAKHI PARTY6 · BUCCHU PARTY
03 / HOW IT WORKS

Two workflows share one state machine.

The sketch keeps button scanning responsive and changes each control’s meaning according to the active screen.

Voter flow

  1. Ready
  2. Select party
  3. Confirm / cancel
  4. Save vote
  5. Thank-you / credit
  6. Ready

Operator flow

  1. Hold green + red
  2. Enter passcode
  3. View results
  4. Return or reset
04 / HARDWARE & WIRING

One Uno, one OLED, eight buttons, shared ground.

The build uses a 0.96-inch 128×64 four-pin I2C OLED, six party buttons, green and red controls, jumper wires, and a breadboard or terminal strip. Every button is wired to ground and read through INPUT_PULLUP.

Device / controlModule pinArduino UnoConnection notes
OLEDGNDGNDCommon ground
OLEDVCC5VIdentified 3–5 V-compatible module
OLEDSCKA5I2C clock / SCL
OLEDSDAA4I2C data
Party 1ButtonD2Other terminal to GND
Party 2ButtonD3Other terminal to GND
Party 3ButtonD4Other terminal to GND
Party 4ButtonD5Other terminal to GND
Party 5ButtonD6Other terminal to GND
Party 6ButtonA0Digital input; other terminal to GND
GREENButtonA1Confirm / submit / reset; other terminal to GND
REDButtonA2Cancel / delete / return; other terminal to GND
05 / SOFTWARE DESIGN

Non-blocking states with persistent data.

An explicit state machine manages READY, CONFIRM, MESSAGE, CREDITS, PASSCODE, and RESULTS. Inputs use 30 ms software debouncing; the six vote counters are loaded from EEPROM at startup and written only after a confirmed vote or explicit reset.

STATE MACHINE

Responsive input

No long blocking delays while controls are active. Transitions define exactly what each button means.

OLED + SERIAL

Two complete interfaces

SSD1306 rendering at I2C address 0x3C is mirrored by Serial Monitor output at 9600 baud.

EEPROM

Deliberate writes

A magic marker validates storage. Totals are written only on confirmation or reset to limit EEPROM wear.

06 / DEVELOPMENT & TESTING

Serial first. OLED second. Evidence before assumptions.

The complete interaction was tested through Serial Monitor before the display was integrated. Testing covers all buttons, save and cancel paths, persistence, wrong and correct operator codes, ties, reset behavior, and the exact credit sentence.

07 / WHAT I LEARNED

The useful lessons live between code and hardware.

Building the prototype connected interface decisions with pin-level constraints and made hardware diagnosis part of the software process.

01Embedded state-machine design
02Hardware input debouncing
03I2C display integration
04EEPROM persistence and deliberate reset controls
05Separating voter and operator workflows
06Diagnosing 5 V versus 3.3 V interface constraints
08 / PROJECT ASSETS

Download the build.

Review the complete technical documentation, inspect the Arduino firmware, or print compact voter and operator references.

Documentation PDF ↗Arduino source ↓Voter guide ↗Operator guide ↗