How jeeva069/lifi_software_simulation works
Purpose and Scope
This repository documents a Li‑Fi software simulation: an Arduino Uno-based optical link that converts text to binary, sends it through LED blink timing, and reconstructs the data at a receiver. The runnable/demo environment is hosted externally at Wokwi.
Entry Points and Artifacts
• README.md is the primary project description and points to the live Wokwi simulation.
• diagram[1].json is likely the Wokwi circuit/simulation diagram artifact, defining the simulated hardware topology.
• LiFi_Software_Simulation_Report (1).docx contains the project’s detailed design/reporting material.
There is no source-code directory or Arduino sketch visible in the supplied tree; executable logic is therefore either embedded/referenced by the Wokwi project or absent from this repository snapshot.
Transmission Stage
The sender-side control flow is:
1. Accept or define a text payload.
2. Encode characters into binary.
3. Translate bits into timed LED on/off patterns.
4. Drive the transmitting LED from an Arduino Uno output pin.
The LED is the physical/virtual optical transport boundary. The architecture is described in README.md and likely represented electrically in diagram[1].json.
Optical Channel Boundary
The system uses visible-light signaling rather than RF networking. LED state and timing constitute the protocol carrier, so sender and receiver must agree on bit representation, timing intervals, framing, and synchronization. The circuit-level channel arrangement is expected in diagram[1].json.
Receiver and Decode Stage
The receiver observes the transmitted blink pattern through a light-sensing input, determines binary values from light presence/absence, groups bits into character data, and outputs decoded text. This closes the core flow:
text → binary encoding → LED modulation → optical signal → light detection → binary decoding → text.
The receiver behavior is described at a high level in README.md; implementation specifics may be captured in LiFi_Software_Simulation_Report (1).docx or the external Wokwi project.
Runtime and External Infrastructure
The material runtime is Arduino Uno firmware running in a Wokwi simulation. Wokwi is an external hosted service and is the apparent live execution entry point: https://wokwi.com/projects/470968108227772417. Repository artifacts provide documentation and simulation topology rather than a self-contained local build/runtime.
Main entry points: diagram[1].json Wokwi circuit diagram · README.md Project README · LiFi_Software_Simulation_Report (1).docx Li-Fi design report
Components 15
Repository artifacts
Documentation and simulation topology are stored locally.
- Project README · Primary description and link to the live simulation.
README.md - Wokwi circuit diagram · Defines the simulated hardware arrangement.
diagram[1].json - Li-Fi design report · Detailed design and reporting material.
LiFi_Software_Simulation_Report (1).docx
Transmit path
Conceptual Arduino-side Li-Fi transmission flow.
- Text payload
- Binary encoder · Converts characters to bits.
- LED timing modulator · Maps bits to timed on/off states.
- Transmitter Arduino Uno · Drives the transmitting output pin.
- Transmitting LED · Optical transport boundary.
Receive path
Conceptual optical detection and reconstruction flow.
- Light-sensing input · Observes transmitted light presence and absence.
- Receiver Arduino Uno · Samples and interprets the sensing input.
- Binary decoder · Groups recovered bits into characters.
- Decoded text
Other components
- Wokwi simulation · Hosted execution environment for Arduino Uno firmware.
- Visible-light channel · Carries light state and timing between endpoints.
- Timing and framing · Shared bit representation, intervals, framing, and synchronization.
Connections 19
- Project README → Wokwi simulation: links to live demo
- Project README → Wokwi circuit diagram: describes
- Li-Fi design report → Timing and framing: documents design
- Wokwi circuit diagram → Wokwi simulation: defines topology
- Wokwi simulation → Transmitter Arduino Uno: runs
- Wokwi simulation → Receiver Arduino Uno: runs
- Wokwi circuit diagram → Transmitting LED: models
- Wokwi circuit diagram → Light-sensing input: models
- Text payload → Binary encoder: encode
- Binary encoder → LED timing modulator: bits
- LED timing modulator → Transmitter Arduino Uno: output timing
- Transmitter Arduino Uno → Transmitting LED: drives
- Transmitting LED → Visible-light channel: emits
- Visible-light channel → Light-sensing input: light signal
- Light-sensing input → Receiver Arduino Uno: light state
- Receiver Arduino Uno → Binary decoder: recovered bits
- Binary decoder → Decoded text: characters
- Timing and framing → LED timing modulator: governs
- Timing and framing → Binary decoder: must match