Alpha1 Latest Firmware Overview

Latest Version: 5.1.4
Platform: ESP32-C3 Framework: ESP-IDF

Overview

Alpha1 v5 is an IoT firmware solution designed primarily for the intelligent management of commercial washers and dryers in laundromats, alongside general vending and payment system integration. Built on the ESP32 platform using the ESP-IDF framework, this firmware provides comprehensive connectivity, monitoring, and control capabilities tailored for various laundromat machine types and stacked configurations.

Features

Architecture

Core Components

Main Application (src/main.c)

The main application orchestrates all system components and provides:

Configuration Management (src/Alpha1_configurations.h)

Centralized configuration system defining:

Machine Types

1. BASE Environment

2. MachineA / MachineB / MachineC Environments (src/Machines/MachineX.h/.c)

3. StackA Environment (src/Machines/StackA.h/.c)

4. KioskCAA Environment (src/Machines/KioskCAA.h/.c)

5. GasSensorA Environment (src/Sensors/GasSensorA.h/.c)

Managed Components

Common Core Component

Connectivity Components

Data Management Components

Hardware Interface Components

File Structure

src/
├── main.c                      # Main application entry point
├── Alpha1_configurations.h     # Global configuration definitions
├── Machines/
│   ├── MachineA.h/.c          # MachineA implementation
│   └── StackA.h/.c            # StackA implementation
├── Sensors/
│   └── GasSensorA.h/.c        # Gas sensor interface
└── webpage/
    ├── index.html             # Web interface HTML
    ├── code.js               # Client-side JavaScript
    └── style.css             # Styling

Build Environments

Prerequisites

Environment Configuration

BASE Environment

pio run -e BASE

Machine Environments (MachineA, MachineB, MachineC)

pio run -e MachineA
# or MachineB, MachineC

StackA Environment

pio run -e StackA

Specialized Environments

pio run -e KioskCAA
pio run -e GasSensorA

Build Configuration

The firmware uses environment-specific build flags defined in platformio.ini:

[env:BASE]
build_flags = ... -D BASE

[env:MachineA]
build_flags = ... -D MACHINE_A

[env:StackA]
build_flags = ... -D STACK_A

Custom Firmware Extraction

A custom Python script (copyFirmware.py) is embedded in the build process via extra_scripts. It copies the resulting binaries into release folders automatically.

Partition Setup

The project defines custom board partitions using alphaX_partitions.csv, efficiently structuring the ESP32-C3 flash for Application, NVS, LittleFS, and OTA logic.

Hardware Requirements

Pin Configuration

Installation

  1. Clone the repository:

    git clone https://github.com/Antlysis/Alpha1-v5.git
    cd Alpha1-v5
    
  2. Install dependencies:

    pio pkg install
    
  3. Build for specific environment:

    # For MachineA
    pio run -e MachineA
    
    # For StackA
    pio run -e StackA
    
    # For BASE
    pio run -e BASE
    
  4. Upload firmware:

    pio run -e MachineA -t upload
    

Configuration

Initial Setup

  1. Power on the device
  2. Connect to the WiFi access point Laundro:XX:XX:XX
  3. Navigate to 192.168.4.1 in a web browser if configuration portal does not open automatically
  4. Configure WiFi credentials and outlet parameters

MQTT Configuration

Device Parameters

API Reference

Machine Interface Functions

MachineA/StackA Common Functions

void machine_begin(Alpha1_t *conf);           // Initialize machine
void machine_status(char *status, criticalData_t *lockData, char *time);  // Get status
int machine_pay(char* payload);              // Process payment
bool machine_command(char *payload, int length, char *response);  // Execute command
void machine_updateConfig(void);             // Update configuration

MQTT Topics Structure

<modelID>/<outletID>/<deviceID>/status    # Status updates
<modelID>/<outletID>/<deviceID>/config    # Configuration commands
<modelID>/<outletID>/<deviceID>/payment   # Payment notifications
<modelID>/<outletID>/<deviceID>/debug     # Debug messages

Supported Chipsets

Supported Chipset Notes
ESP32-C3 Tested & Fully supported

Troubleshooting

Debug Information

Testing

Detailed test cases and procedures are maintained in the repository:

Version History

See CHANGELOG.md for detailed version history and deployment information.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly on target hardware
  5. Submit a pull request

License

This project is proprietary software developed by Antlysis. All rights reserved.

Support

For technical support and issues:


For deeper understanding of the implementation, refer to the comprehensive comments and documentation within the program files in the src/ and managed_components/ directories.


Revision #9
Created 15 May 2026 06:42:09 by Rahul
Updated 15 May 2026 10:09:04 by Rahul