# Alpha-1v4 Manual

# ALPHA-1 v4 Technical Overview

# <span style="text-decoration: underline;">System Description for Version 4</span>

A typical coin acceptor sends a signal to a machine through a pulse. The number of pulses will indicate the value of the coin inserted. The pulse signal has two properties:

1. Pulse Width - The length of the pulse
2. Pulse Interval - The length between pulses

Coin rate is the number of pulses for RM1.

Eg.

- RM0.5 produces 5 pulses - Coin rate = 10
- RM0.5 produces 1 pulse - Coin rate = 2
- RM1 or 1 token produces 1 pulse - Coin rate = 1

**![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdGSVhXzz5G89zXae1v1u_HcgrVg7cJfPpwTX7eIdSg_Z44tYpcpmX6VQ5NjmelioYpxsMsayn2f8r-BgRVmlZsrxh7V-f2cmr1fgr7W3tD1oG2yt8bjY-3mGFomLT80uhp-2lbjZQvSQbmLt4ip8W31TM?key=ZwId3kLhK08sTgnEgZhPQw)**

Our Alpha1 device is placed in between the coin acceptor and machine. The Alpha1 device has 3 main functions:

1. It allows the signal to pass through from the input to the output.
2. It reads the pulse based on the pulse width. (Coin Read)
3. It outputs pulses from the cloud based on the pulse interval. (Cloud Pay)

**![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXf007HATjxnmJeHIWLYJuM2cg3hJ4hy6R1tRZ9z73bh7P7uqCk9weLNnLyx3NIB-CEfGR5vMycDUQId8PBtUFLKTnPCFB9xdN_BX59DUbWr5y9IIqhfVLbZ22s1XoZ3idCsbLDPBA0vu0Mosl2JoKcoVek?key=ZwId3kLhK08sTgnEgZhPQw)**

Alpha-1 version 4.3 is an upgrade which aims to ease the installation process. The diagram below shows an overview of what its wire connection looks like. There’s primarily 2 major update in this version:

1. Device is connected directly to cloud
2. Smaller in size to allow easier handling

[![image43.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/nKVam6ucdPM6Yjt4-image43.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/nKVam6ucdPM6Yjt4-image43.png)

**[Figure 1](https://docs.google.com/document/d/1lXxwfb300VIpSEg3vMq8Jl30lL8Oh2aedAv9ELpfBFM/edit?pli=1#figur_alpha1-v4.3): Alpha-1 version 4.3 Connection Overview**

**\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_**

## Equipment and Material Required

1\. 4 cores cables

2\. 2 cores power cable

- 23/0.15 x 2 cores (~2.0A)
- 42/0.15 x 2 cores (~6.0A)

3\. Test Pen ( 5mm Standard Tip)

4\. Self-adjusting Wire stripper

5\. Hexagon Socket screwdriver bit, 8 mm

- Dexter
- Speed Queen

6\. Hexagon Socket screwdriver bit, 7 mm

- Lavamac

7\. Hexagon Socket screwdriver bit, 10 mm

- IPSO

8\. Torx Screwdriver Bit, T30

- Electrolux

9\. Torx Screwdriver Bit, T20 With Hole

- LG
- Dexter

10\. Torx Screwdriver Bit, T10

- Dexter

# Dexter - Installation

## Alpha-1 Placement on Machine

#### **Example**: Dexter Stacked Washer Dryer

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfMv9e4-XSgeMxpHbCEGjXZ0qRp2ryFRYxJC0w-PaJmGRT7dp4DS9zMdii_cP925K3dHRqnQPRqdjjx2ZutDoxNE_TdwvJ1e1cOOmPGIjpoOC3K0hKGySqoMuocYbarI10Z-QFwQ6iSD7Kn91WpLCbwYB8d?key=ZwId3kLhK08sTgnEgZhPQw)![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXe_i0ArIuRAWM8FTjt-Eh5HKKmet6seze3X_PbjaX11IpnPprnVGQ1uV2Y3eFZ8_KdSIP-mRajmnnvCSgTuSDO50Rb-RP0xMmn7LUn8eLj2pkZEOkQGxdqV-ouQi9sYvcUjj9Bze8F8m1Rl0Ho05k_GIGZB?key=ZwId3kLhK08sTgnEgZhPQw)![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcczGrZ_09iwJ3PpuHZUbQKdufgY8xkA4dG_8_09AP5KnPHbsMJI-9XrCJW_sr6UunMQp1kPARiqLNyBE_-Y9A0yWDB0-QVJTrBdbn5xwnoOWNli09F5-W4AOfKxubVyC_C7Zv0rvJ9meNK19ZaAGY6FTLc?key=ZwId3kLhK08sTgnEgZhPQw)

#### **Example:** Dexter Stacked Dryer

**![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXey2Qc_ui8t4ou-C9dMgbHZ8dnTm4fb1s4dEo2kVRgkTk0KB2ifUoO2qXiJTHbR8s4oiWet_6X3_PYRsOVLOnLm1qiJGH6n4igD6bfy30ZfSyrERwRHbu2A6KUzMBAXZOfb6GBRFNBfhlgyqnInxpsSEb-h?key=ZwId3kLhK08sTgnEgZhPQw)**

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

### Connection from Harnnes to ALPHA-1 

(A) **Alpha-1 connection ''Input'' ''Output''**

**![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdILgIgokGTy_XcgLc7hdAHmowBUXZlk3tEkPG_kWLKQv9wq2Zh9p3GF0Ka6mpx79BN3Iwn-TbgLzlR51KgVl3l3CqNkO4KVVG79QfHH7iTSxD1XNBZScRHmJOR0LscG4qDV3fKN8I8OHQCAzLWuTHB73gi?key=ZwId3kLhK08sTgnEgZhPQw)**

1\. device has input and output connections labeled (IN: +, –) and (OUT: +, –). Use a 4-core cable to connect the input (+/–) and output (+/–) terminals.

(B) **Harness connection on machine ''Dexter''**

[![8 channel harness.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/hpoV6Kl0jZ4wEgpg-8-channel-harness.jpg)](https://docs.antlysis.com/uploads/images/gallery/2025-08/hpoV6Kl0jZ4wEgpg-8-channel-harness.jpg)

2\. This harness cable is connected to the machine’s coin acceptor. It has two channels: the first channel uses yellow and white wires, and the second channel uses red and black wires.

3\. Try using the first channel **(yellow/white)** to connect the input and output on the harness using a 4-core cable from the device."

4\. Begin testing. If there is no response, check the input and output connections and the device. If all connections are correct but the issue remains, try switch to the second channel.

# LG - Installation

### **Alpha-1 Placement on Machine**


#### <span style="text-decoration: underline;">**Example: LG Stacked Washer Dryer**</span>

[![image.png](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/SCYoepSlwyHf5Gzm-image.png)STACK DRYER/WASHER](https://docs.antlysis.com/uploads/images/gallery/2025-11/SCYoepSlwyHf5Gzm-image.png)

#### <span style="color: rgb(241, 196, 15);">Be cautious before installation ⚠️ </span>

1. ##### **No pinch and wire for the main board while installing.**
2. ##### **Turn off the machine electricity while during installation.**

#### <span style="text-decoration: underline;">**Device Placement**</span>

**![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcl4xdjZXomFVxRtEY06QhELzz6_V-QBfrCKLBvtrVzMwXi9Z3eM8WuPQI6F5wGonGIN41gzkdJhLKTtO7w6kNYCouY4wKiyDnrVSB5SBnXqDP-TcLeLgJR8r0XF4OHCPqIisTljc57aTY5VT8EWxSOKUVf?key=ZwId3kLhK08sTgnEgZhPQw)![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfdmDUQvAwWGiqDDxr54EKGCoKb6KTVd6QKomz0o0KiSWCSLd4NuLALcYZcvKphrPBlF8KQg_8V5JUFDMG1ZIZpqmLjwNAkIiZvSluBsOuMIki3_R5iswKC6S1S9Q7HIWGBYcFE-ppDPcpx3hjCJW2X-mvX?key=ZwId3kLhK08sTgnEgZhPQw)**

 **Washer Placement Dryer Placement**

**\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_**

### Connection from Harness to ALPHA-1 

##### (**A**) **Alpha-1 connection ''Input'' ''Output''**

**![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdILgIgokGTy_XcgLc7hdAHmowBUXZlk3tEkPG_kWLKQv9wq2Zh9p3GF0Ka6mpx79BN3Iwn-TbgLzlR51KgVl3l3CqNkO4KVVG79QfHH7iTSxD1XNBZScRHmJOR0LscG4qDV3fKN8I8OHQCAzLWuTHB73gi?key=ZwId3kLhK08sTgnEgZhPQw)**

1\) device has input and output connections labelled (IN: +, –) and (OUT: +, –). Use a 4-core cable to connect the input (+/–) and output (+/–) terminals.

##### (**B**) **Harness connection on machine ''LG MACHINE''**

[![8channel.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/mFrIJI3hUc0UdaCm-8channel.jpg)](https://docs.antlysis.com/uploads/images/gallery/2025-11/mFrIJI3hUc0UdaCm-8channel.jpg)

[8 CHANNEL HARNESS CABLE](https://docs.antlysis.com/uploads/images/gallery/2025-11/mFrIJI3hUc0UdaCm-8channel.jpg)

2\) This harness cable is connected to the machine’s coin acceptor. It has two channels: the first channel uses yellow and white wires, and the second channel uses red and black wires.

3\) Try using the first channel **(yellow/white)** to connect the input and output on the harness using a 4-core cable from the device."

4\) Begin testing. If there is no response, check the input and output connections and the device. If all connections are correct but the issue remains, try switch to the second channel.

**\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_**

#### <span style="text-decoration: underline;">**LG** **Cashless Machine** </span>

<p class="callout warning"><span style="color: rgb(0, 0, 0);">**Be cautious before installation**</span></p>

1. ##### **No pinch and wire for the main board while installing.**
2. ##### **Turn off the machine electricity while during installation.**

1\) Remove the screw at the marked position shown in the picture.

[![lg unscrew.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/0LQzl196JYNfxkPn-lg-unscrew.jpg)T20 SCREW](https://docs.antlysis.com/uploads/images/gallery/2025-11/0LQzl196JYNfxkPn-lg-unscrew.jpg)

2\) After opening the board casing, the board connections will be visible. Remove the connectors and store the board casing safely.

[![BOARD CON.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/Y6m4pFzsAoXMSJLt-board-con.jpg)ORIGINAL LG CONNECTION](https://docs.antlysis.com/uploads/images/gallery/2025-11/Y6m4pFzsAoXMSJLt-board-con.jpg)

3\) LG Cashless system uses a specific harness cable.

##### <span style="text-decoration: underline;">**LG CASHLESS HARNESS CABLE**</span>

<span style="text-decoration: underline;">**[![lg harness.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/aMAh2FkTIwAgHCHF-lg-harness.jpg)](https://docs.antlysis.com/uploads/images/gallery/2025-11/aMAh2FkTIwAgHCHF-lg-harness.jpg)**</span><span style="text-decoration: underline;">**[LG HARNESS CABLE ](https://docs.antlysis.com/uploads/images/gallery/2025-11/aMAh2FkTIwAgHCHF-lg-harness.jpg)**</span>

4\) The machine connection has a 12-pin connector. Remove it and connect it to the 12-pin harness cable connector.

5\) Use a 4-core alarm cable from device, but only the red and black wires are required. Connect these two wires to the harness cable.

#### <span style="text-decoration: underline;">**Device Connection**</span>

<span style="text-decoration: underline;">[![device.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/bGgkSkJtVgkU5uDq-device.jpg)](https://docs.antlysis.com/uploads/images/gallery/2025-11/bGgkSkJtVgkU5uDq-device.jpg)</span>

<span style="text-decoration: underline;">[Device OUTPUT Connection](https://docs.antlysis.com/uploads/images/gallery/2025-11/bGgkSkJtVgkU5uDq-device.jpg)</span>

6\) Using a 4-core cable, connect it to the device OUTPUT terminals **E (–)** and **C (+)**.

##### <span style="text-decoration: underline;">**Connection from device to harness cable**</span>

- ##### **From device E ( - ) &lt;&gt; Harness cable ''BLACK''**
- ##### **From device C (+) &lt;&gt; Harness cable ''RED''**

# Speed Queen v1- Installation

### Speed Queen Single Washer &amp; Stack washer / Dryer

##### <span style="text-decoration: underline;">Type off Speed Queen Machine</span>

[![image.png](https://docs.antlysis.com/uploads/images/gallery/2026-05/scaled-1680-/9tCiI3Oxxa5Xuvfj-image.png)](https://docs.antlysis.com/uploads/images/gallery/2026-05/9tCiI3Oxxa5Xuvfj-image.png)[![image.png](https://docs.antlysis.com/uploads/images/gallery/2026-05/scaled-1680-/EoIvJvSrwHC68xyP-image.png)](https://docs.antlysis.com/uploads/images/gallery/2026-05/EoIvJvSrwHC68xyP-image.png)

---

####   


#### “Types of installation for <span class="hover:entity-accent entity-underline inline cursor-pointer align-baseline"><span class="whitespace-normal">Speed Queen</span></span> machines”

####  **Cashless Installation-** Speed Queen Stack Washer/Dryer STGNCASP116TW01

**☞ Cashless connection for E-payment transactions only, suitable for machines without a coin acceptor or machines with a coin acceptor where token capture is not required.**

**1)** Open the motherboard casing using the specific machine key provided.

[![image.png](https://docs.antlysis.com/uploads/images/gallery/2026-05/scaled-1680-/GsfqgH55R7YfAB11-image.png)](https://docs.antlysis.com/uploads/images/gallery/2026-05/GsfqgH55R7YfAB11-image.png)

**2)** Pull the wires from the front to the back of the machine, where you will be placing the Alpha-1 device.

👉 **For the <span class="hover:entity-accent entity-underline inline cursor-pointer align-baseline"><span class="whitespace-normal">Speed Queen</span></span> machine, it is recommended to use 1.5 mm thick cables for the OUTPUT (-/+) connection.**

**3)** On the machine, you will see two identical male connectors — one yellow and one red.

👉 **It is recommended to use the red male connector.**

[![image11.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/SWqPUwyisG5KR2fv-image11.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/SWqPUwyisG5KR2fv-image11.png)

**4)** We provide a specific female harness connector to connect to the machine’s male connector.

**5)** Connect the Output Harness to the cable from the device, ensuring that the output negative (–) and positive (+) are correctly connected.

[![image101.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/RJY9xzvbNpbEVxBg-image101.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/RJY9xzvbNpbEVxBg-image101.png)

---


##### **Coin Acceptor Installation**

<div class="" data-is-intersecting="true" data-turn-id-container="request-WEB:b40706a5-4321-4d1a-9f90-a5e751dd5376-7" id="bkmrk-%E2%98%9E-for-coin-acceptor-"><section class="text-token-text-primary w-full focus:outline-none has-data-writing-block:pointer-events-none [&:has([data-writing-block])>*]:pointer-events-auto R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="false" data-testid="conversation-turn-16" data-turn="assistant" data-turn-id="request-WEB:b40706a5-4321-4d1a-9f90-a5e751dd5376-7" data-turn-id-container="request-WEB:b40706a5-4321-4d1a-9f90-a5e751dd5376-7" dir="auto">☞ **For coin acceptor installation, it will capture token records as well as E-payment transactions.**

</section></div>**1)** For coin acceptor machines, use the yellow connector as shown in the picture below.

[![image.png](https://docs.antlysis.com/uploads/images/gallery/2026-05/scaled-1680-/wewwK6VXJced7FWc-image.png)](https://docs.antlysis.com/uploads/images/gallery/2026-05/wewwK6VXJced7FWc-image.png)

**2)** Connect the wire pulled from the back of the machine to the male and female connectors according to the INPUT and OUTPUT connections.

 👉 **For the <span class="hover:entity-accent entity-underline inline cursor-pointer align-baseline"><span class="whitespace-normal">Speed Queen</span></span> machine, it is recommended to use 1.5 mm thick cables for the OUTPUT (-/+) connection.**

**3)** Connect it to the machine’s male and female connectors, ensuring the INPUT and OUTPUT connections are correctly matched.

[![image.png](https://docs.antlysis.com/uploads/images/gallery/2026-05/scaled-1680-/v9yQSlonlHePLOOB-image.png)](https://docs.antlysis.com/uploads/images/gallery/2026-05/v9yQSlonlHePLOOB-image.png)

---

#### **Device Installation -** Speed Queen Stack Washer/Dryer &amp; Single Washer

#### **Cashless Device Installation**

**1)** Place the device at the back of the machine or in a safe location where it will not be damaged.

[![image.png](https://docs.antlysis.com/uploads/images/gallery/2026-05/scaled-1680-/ncqhtQbLjUcxftkS-image.png)](https://docs.antlysis.com/uploads/images/gallery/2026-05/ncqhtQbLjUcxftkS-image.png)

**2)** Connect the wires to the output negative (–) and positive (+) , then loop them back to the input negative (–) and positive (+).

[![image99.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/2CzQK00qPMrsqBMq-image99.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/2CzQK00qPMrsqBMq-image99.png)

<p class="callout info">Quality Note - To Do Looping Input (-) to (+)</p>

---

<span style="color: rgb(187, 187, 187); font-family: var(--font-heading, var(--font-body)); font-size: 1.666em; font-weight: 400;">''Speed Queen Stack Dryer Connection''</span>

**1)** For this machine model, the same harness connector will be used as other Speed Queen models. However, the wire connection from the Alpha-1/Device is slightly different.

 👉 **For the <span class="hover:entity-accent entity-underline inline cursor-pointer align-baseline"><span class="whitespace-normal">Speed Queen</span></span> machine, it is recommended to use 1.5 mm thick cables for the OUTPUT (-/+) connection.**

**2)** Open both the upper and lower coin acceptor casings.

[![image.png](https://docs.antlysis.com/uploads/images/gallery/2026-05/scaled-1680-/o0MIJCfx2IzTzkG3-image.png)](https://docs.antlysis.com/uploads/images/gallery/2026-05/o0MIJCfx2IzTzkG3-image.png)

**3)** After opening the casing, you will see 4 screws at the end. Remove all 4 screws to access the inside of the machine.

[![image.png](https://docs.antlysis.com/uploads/images/gallery/2026-05/scaled-1680-/hTWeacIco4wlOgef-image.png)](https://docs.antlysis.com/uploads/images/gallery/2026-05/hTWeacIco4wlOgef-image.png)

**4)** To pull the wire, start from the upper side of the casing.

**5)** The diagram below shows how the wire should be pulled in side the machine from the front to the back, where the device will be placed.

[![image.png](https://docs.antlysis.com/uploads/images/gallery/2026-05/scaled-1680-/cW9zsVvmdzEYhqa6-image.png)](https://docs.antlysis.com/uploads/images/gallery/2026-05/cW9zsVvmdzEYhqa6-image.png)

**6)** Cable Routing Steps for **Left/UP** <span style="color: rgb(224, 62, 45);">(1)</span> (Refer to Picture)

**1.** Route the cable from the top side (1) to the bottom side (2).

**2.** Pull the cable to the back of the machine.

**3.** Locate the small hole (3).

[![image.png](https://docs.antlysis.com/uploads/images/gallery/2026-05/scaled-1680-/uXpqxvvnR5jiLuA1-image.png)](https://docs.antlysis.com/uploads/images/gallery/2026-05/uXpqxvvnR5jiLuA1-image.png)

**7)** Cable Routing Steps for **Right/Down** <span style="color: rgb(45, 194, 107);">(2) </span> (Refer to Picture)

**1.** From the (2) bottom side, pull the wire straight to the (3) rear section.

<p class="callout danger">**There are other hoses passing near this hole, so pull carefully.**</p>

**7)** Feed/push the cable through the small hole (3) until you can see the cable coming out at the back of the machine.

[![image.png](https://docs.antlysis.com/uploads/images/gallery/2026-05/scaled-1680-/Fx4Za5KW38apAxI2-image.png)](https://docs.antlysis.com/uploads/images/gallery/2026-05/Fx4Za5KW38apAxI2-image.png)

**8)** Pull the cable through hole (3) until it reaches the device installation location.

---

##### Click this link to next step: 

# IPSO - Installation

IPSO Washer/Dryer

**Example: Dryer**

[![image44.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/if2VVd55xOyH1Cfi-image44.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/if2VVd55xOyH1Cfi-image44.png)

**Example: Washer**

**[![image26.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/3FaJswbgi5RpJYYg-image26.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/3FaJswbgi5RpJYYg-image26.png)**

##### **Harness Installation**

1. The IPSO machine has input and output connectors. Unplug them and connect them to the harness connector.

[![image62.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/pPLkiLgemoNVhYVG-image62.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/pPLkiLgemoNVhYVG-image62.png)

**![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXeDb5_kSWl1WqctJWXoPmaE7cnvz2O2qCSJAuc0GbgaOen6pRuVKpEFyB2oQZys21p_dmBCcuyRp-auG5-cLB6jU7XGiFQZcR1U0BSODnSRdCL_AG7gOk33ncDydxWvJPH1obAQdrSAMWlTcyr6p0PFZ9hK?key=ZwId3kLhK08sTgnEgZhPQw)Use thick wire 1mm or 1.5mm to connect Output (No3)**

2\. From the harness connector, connect the output and input to the 4-core wire from the device, following the input and output terminals. Ensure that the input and output negative (–) and positive (+) connections are correct.

3\. For this machine, use a 1 mm or 1.5 mm thick cable for the output to ensure a better pulse signal.

[![image72.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/o8wiSUJ6MehxcaPw-image72.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/o8wiSUJ6MehxcaPw-image72.png)

# Go World - Installation

(A) From Chinese brands such as **Go World**, **Octopus**, and **Oasis.**

**Example: Go World Stack Washer/Dryer**

**[![image97.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/oedSYUXGjTMdU9KD-image97.jpg)](https://docs.antlysis.com/uploads/images/gallery/2025-08/oedSYUXGjTMdU9KD-image97.jpg)**

##### **Washer/Dryer Harness connection**

1\. These models are equipped with a specific harness connector designed to connect to the machine’s board.

2\. Connect the wire harness according to the input and output shown in the picture below from the Alpha-1 device .

[![image94.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/e2FrAVJNZ8XfnelC-image94.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/e2FrAVJNZ8XfnelC-image94.png)

(B) **Go world dryer**

3\. As shown in the picture below, remove the connector from the board, connect the output to the board, and connect the input to the removed connector.

[![image42.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/BD3yP1fDh4Ij3r0V-image42.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/BD3yP1fDh4Ij3r0V-image42.png)[![image47.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/YjqnCWTcvjggoHap-image47.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/YjqnCWTcvjggoHap-image47.png)

(C) **Go World Washer**

4\. As shown in the picture below, remove the connector from the board, connect the output to the board, and connect the input to the removed connector.

[![image40.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/jBUKHF5AbXxrDBaX-image40.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/jBUKHF5AbXxrDBaX-image40.png)

5\. Connect the input and output harness cables to the 4-core wire from the Alpha-1 device.

[![image15.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/VjJ3KMF5epJkQmVS-image15.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/VjJ3KMF5epJkQmVS-image15.png)

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

(D) **Looping in Alpha-1 for both Washer/Dryer**

6\. Loop the input negative( - ) and output negative( - ) to a common ground connection.

[![image18.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/QJhqQ65dZ5q9lhiu-image18.jpg)](https://docs.antlysis.com/uploads/images/gallery/2025-08/QJhqQ65dZ5q9lhiu-image18.jpg)

# Fargo - Installation

**Example: Fargo Wire Harness**

**[![image82.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/e7QFlYToxmMyMwmN-image82.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/e7QFlYToxmMyMwmN-image82.png)**

##### **Fargo Harness connection Washer/Dryer**

**[![image24.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/Zd6hyaG4ihABmB1Q-image24.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/Zd6hyaG4ihABmB1Q-image24.png)**

**1. The Fargo machine comes with a specific connector. The coin acceptor cable from the machine also has a connector—remove it, then connect it to the provided wire harness, matching the male and female ends or the input and output connectors accordingly.**

**2. Connect the wire harness’s input and output lines to the 4-core wiring from the Alpha-1 device.**

**Example: Input &amp; Output Connections**

**[![image3.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/M0Eod6NDAb95Rk3D-image3.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/M0Eod6NDAb95Rk3D-image3.png)**

# Blue Whale - Installation

##### **Example: Blue Whale Stack Dryer &amp; Washer**

**[![image74.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/tawvm8p1C3Pq6KvP-image74.jpg)](https://docs.antlysis.com/uploads/images/gallery/2025-08/tawvm8p1C3Pq6KvP-image74.jpg)**

##### **(A) Connection Washer/Dryer** 

**1.** Blue Whale machine, the connection is direct and simple. You will see three wires running from the board to the coin acceptor (Black, White, and Red).”

[![image33.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/DmucGGMP4JMo8Oit-image33.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/DmucGGMP4JMo8Oit-image33.png)[![image65.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/u7MPJ0CJRO1Ul9WS-image65.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/u7MPJ0CJRO1Ul9WS-image65.png)

2\. As shown in the picture above, cut the Black and White wires between the board and the coin acceptor. Then, connect the input and output using the 4-core wire from the device.

3\. Leave Red wire

- **Do not cut Red** (it’s power). It should remain continuous from board.

4\. Cut the Black &amp; White wires

- Cut both **Black** and **White** roughly in the middle of their run.

5\. Two sides after the cut

- The ends **coming from the board** = **OUTPUT** (to the machine board).
    
    
    - Board-White → **OUT+**
    - Board-Black → **OUT−**
- The ends **going to the coin acceptor** = **INPUT** (from the coin acceptor).
    
    
    - Acceptor-White → **IN+**
    - Acceptor-Black → **IN−**

**6. Power ON and test**

- Insert a coin/token, If the Coin Read in Node Cloud app shows pulses and the machine credit—done.

****7. If it shows **“No Pulse Detected”**:****

- Confirm **IN/OUT are not swapped**.
- Verify **+ and −** on both input and output pairs.
- Ensure the coin is actually **accepted** (a rejected coin won’t pulse).

##### **(B) Device Connection - ALPHA-1**

[![image59.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/qKizKBaZV0NbzO22-image59.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/qKizKBaZV0NbzO22-image59.png)[![image18.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/h9vnDFBWihX20CTD-image18.jpg)](https://docs.antlysis.com/uploads/images/gallery/2025-08/h9vnDFBWihX20CTD-image18.jpg)

1**.** Devices will be placed behind the machine by screwing it using a specific screw**.**

2\. Connecting the 4-Core Wire to the Device

1. Connect the **4-core wire** to the device according to the terminal markings:
    
    
    - **Input (IN−, IN+)**
    - **Output (OUT−, OUT+)**
2. After wiring, make a **loop connection** between:
    
    
    - **IN− (Input negative)**
    - **OUT**− **(Output negative)**
3. Ensure all connections are secured and insulated before powering ON.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

### Blue Whale Cashless Machine (Non-Coin Acceptor)

##### (A) Wire connection Dryer

[![blue wahle dryer.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/CQRLcFRPfnjyYPnA-blue-wahle-dryer.png)Dryer Connector](https://docs.antlysis.com/uploads/images/gallery/2025-08/CQRLcFRPfnjyYPnA-blue-wahle-dryer.png)

***1.* Locate the cashless connector**

- Identify the two output wires shown in your picture:
    
    
    - **<span style="color: rgb(0, 0, 0); background-color: rgb(236, 240, 241);">White </span> = Output (−)**
    - **<span style="background-color: rgb(45, 194, 107); color: rgb(0, 0, 0);">Green </span> = Output (+)**

**2.** Dryer cashless machines with a connector as shown in the picture above, use the output connection only. Tap into the two wires: White (Output Negative −) and Green (Output Positive +), using a 2-core cable from the device.

##### (B) Wire Connection Washer

[![blue whale washer.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/R50Sr5W2lRsKzYwt-blue-whale-washer.png)Washer connector](https://docs.antlysis.com/uploads/images/gallery/2025-08/R50Sr5W2lRsKzYwt-blue-whale-washer.png)

***1.* Locate the cashless connector**

- Identify the two output wires shown in your picture:
    
    
    - **<span style="background-color: rgb(241, 7, 195); color: rgb(0, 0, 0);">Pink</span> = Output (−)**
    - **<span style="background-color: rgb(224, 62, 45); color: rgb(0, 0, 0);">Red </span> = Output (+)**

**2.** Washer cashless machines with a connector as shown in the picture above, use the output connection only. Tap into the two wires: Pink (Output Negative −) and Red (Output Positive +), using a 2-core cable from the device.

##### **(B) Device Connection - ALPHA-1**

**[![image57.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/W9wbj347kN20uvdS-image57.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/W9wbj347kN20uvdS-image57.png)[![ngqN3DgWxmeCvVKX-image22.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/DB9NMeDHqpgtJibo-ngqn3dgwxmecvvkx-image22.png)Quality Note: Looping From Input (-) To (+)](https://docs.antlysis.com/uploads/images/gallery/2025-08/DB9NMeDHqpgtJibo-ngqn3dgwxmecvvkx-image22.png)**

1**.** Devices will be placed behind the machine by screwing it using a specific screw**.**

2\. Connecting the 2-Core Wire to the Device.

1. Connect the 2**-core wire** to the device according to the markings:
    
    
    - **Output (OUT−, OUT+)**
2. After wiring, make a **loop connection** between:
    
    
    - **INPUT− (Input negative)**
    - **INPUT**− **(Input positive)**
3. Ensure all connections are secured and insulated before powering ON.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

### Power Supply Connection for Blue Whale Machine

[![image66.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/MI4Vgw6I1VVyIXwT-image66.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/MI4Vgw6I1VVyIXwT-image66.png)[![image2.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/gqkmLYpjf7cghDOV-image2.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/gqkmLYpjf7cghDOV-image2.png)

[![ngqN3DgWxmeCvVKX-image22.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/DB9NMeDHqpgtJibo-ngqn3dgwxmecvvkx-image22.png)Quality Note: 5v Power Supply Required](https://docs.antlysis.com/uploads/images/gallery/2025-08/DB9NMeDHqpgtJibo-ngqn3dgwxmecvvkx-image22.png)

1\. For the Blue Whale machine, each device must have its own dedicated power supply. For example, one device requires one power supply. If there are five devices, you must use five separate power supply connections, as shown in the image above.

<span style="color: rgb(0, 0, 0);">[⚠️ **Safety Notice**  
“Before switching on the power, always ensure that all wires from the main supply to the power supply are properly connected and securely fastened to prevent short circuits, sparks, or damage to the device.”](https://docs.antlysis.com/uploads/images/gallery/2025-08/7QBhrwxQUMDn97OZ-image19.png)</span>

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

#### **Blue Whale New Version** 

[![dryerstack.avif](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/gtaLG1RgqqeSn1th-dryerstack.avif)](https://docs.antlysis.com/uploads/images/gallery/2025-11/gtaLG1RgqqeSn1th-dryerstack.avif)

[STACK DRYER](https://docs.antlysis.com/uploads/images/gallery/2025-11/gtaLG1RgqqeSn1th-dryerstack.avif)

**1)** The new version will use a specific harness cable, and the deice power can take from machine .

**[![pic4.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/7CGudkRrHSimStcD-pic4.jpg)HARNESS CABLE](https://docs.antlysis.com/uploads/images/gallery/2025-11/7CGudkRrHSimStcD-pic4.jpg)**

**2)** Before we start install device, prepare both a 4-core and a 2-core cable for connecting the device.

[![drawing0.png](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/d29jHuXal44UY6fX-drawing0.png)INPUT/OUTPUT &amp; GND-/VCC+](https://docs.antlysis.com/uploads/images/gallery/2025-11/d29jHuXal44UY6fX-drawing0.png)

**3)** Step by step connection return below.

1. Use a 4-core cable to connect the device’s **INPUT E(-)/C(+)** and **OUTPUT E(-)/C(+)** points.

- From the device, take **INPUT E(-)**, **OUTPUT E(-)**, and **GND (-)**, join them together, and connect to the 'harness cable' **INPUT** and **OUTPUT** connections (<span style="color: rgb(0, 0, 0); background-color: rgb(91, 47, 8);">CHOCLATE </span>).
- From the device, take the **INPUT C(+)** and connect it to the 'harness cable' INPUT (<span style="background-color: rgb(241, 196, 15); color: rgb(0, 0, 0);">YELLOW </span>).
- From the device, take the **OUTPUT C(+)** and connect it to the 'harness cable' OUTPUT(<span style="background-color: rgb(241, 196, 15); color: rgb(0, 0, 0);">YELLOW </span>).
- From the device, take the **VCC (+)** and connect it to the red wire on 'the harness cable' (<span style="background-color: rgb(224, 62, 45); color: rgb(0, 0, 0);">RED </span>)

**4)** Follow the step-by-step connection procedure and connect it to the machine board.

[![blue whale board ori.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/qG1efhHhBJHVnI2M-blue-whale-board-ori.jpg)](https://docs.antlysis.com/uploads/images/gallery/2025-11/qG1efhHhBJHVnI2M-blue-whale-board-ori.jpg)[![BLUE WHALE HARNESS.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/XRRezwX5KX9bRG5Y-blue-whale-harness.jpg)](https://docs.antlysis.com/uploads/images/gallery/2025-11/XRRezwX5KX9bRG5Y-blue-whale-harness.jpg)

[BLUE WHALE MACHINE BOARD](https://docs.antlysis.com/uploads/images/gallery/2025-11/qG1efhHhBJHVnI2M-blue-whale-board-ori.jpg)

- If you are not sure which connector to use, refer to the <span style="background-color: rgb(224, 62, 45); color: rgb(255, 255, 255);">red-circled</span> label on the cable in the picture. The coin acceptor cable has the same label, so you can match the labels to identify the correct connector on the board.
- Find the correct connector by pulling out the cable. Connect it to the harness cable INPUT, then connect the harness cable OUTPUT to the board.

#### <span style="text-decoration: underline;">**WASHER**</span>

<span style="text-decoration: underline;">**[![MACHINE1.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/lcJmOfoMJ0b8pqSP-machine1.jpg)](https://docs.antlysis.com/uploads/images/gallery/2025-11/lcJmOfoMJ0b8pqSP-machine1.jpg)**</span>

<span style="text-decoration: underline;">**[BLUE WHALE WASHER](https://docs.antlysis.com/uploads/images/gallery/2025-11/lcJmOfoMJ0b8pqSP-machine1.jpg)**</span>

**1)** The new version will use a specific harness cable, and the deice power can take from machine .

**[![pic4.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/7CGudkRrHSimStcD-pic4.jpg)HARNESS CABLE](https://docs.antlysis.com/uploads/images/gallery/2025-11/7CGudkRrHSimStcD-pic4.jpg)**

**2)** Before we start install device, prepare both a 4-core and a 2-core cable for connecting the device.

[![CONNECTION.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/MaA0je0IhqM7CAyh-connection.jpg)Device To Harness Cable Connection](https://docs.antlysis.com/uploads/images/gallery/2025-11/MaA0je0IhqM7CAyh-connection.jpg)

**3)** Step by step connection return below.

- Connect the device INPUT E(-) (White wire) to the harness cable INPUT (Brown wire).
- Connect the device INPUT C(+) (Green wire) to the harness cable INPUT (Yellow wire).
- Connect the device OUPUT E(-) (Black wire) to the harness cable OUTPUT (Brown wire).
- Connect the device OUTPUT C(+) (Red wire) to the harness cable OUTPUT (Yellow wire).

**4)** Follow the step-by-step connection procedure and connect it to the machine board.

[![WASHER 1.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/guLKpivxDMStRgTD-washer-1.jpg)](https://docs.antlysis.com/uploads/images/gallery/2025-11/guLKpivxDMStRgTD-washer-1.jpg)

[WASHER BOARD ORIGINAL CONECCTION](https://docs.antlysis.com/uploads/images/gallery/2025-11/guLKpivxDMStRgTD-washer-1.jpg)

[![WASHER 2.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/7gmux4N03tijb5b3-washer-2.jpg)WASHER BOARD HARNESS CABLE CONNECTION](https://docs.antlysis.com/uploads/images/gallery/2025-11/7gmux4N03tijb5b3-washer-2.jpg)

**5**) Find the correct connector by pulling out the cable. Connect it to the harness cable INPUT, then connect the harness cable OUTPUT to the board.

**6**) The device will receive power from the machine’s existing power supply. Since there are two power supplies present, use the one that provides 12V.

[![POWER 12V.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/4A7qQ7vjW1sMjwTx-power-12v.jpg)Machine Power Supply](https://docs.antlysis.com/uploads/images/gallery/2025-11/4A7qQ7vjW1sMjwTx-power-12v.jpg)

**7**) After completing all the connections, power on the machine. The device’s blue indicator light will begin blinking.

[![CURENNT SENSOR.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-11/scaled-1680-/CZgBSaxcK0TVUdWN-curennt-sensor.jpg)CURRENT SENSOR &amp; DEVICE PLACING](https://docs.antlysis.com/uploads/images/gallery/2025-11/CZgBSaxcK0TVUdWN-curennt-sensor.jpg)

**8**) You may place the device in the position shown in the picture, or any safer location where it will not be damaged.

**9**) Clamp the current sensor onto the machine’s positive power wire, and connect the AUX plug to the device.

# WIFI Configuration (ALPHA-1)

##### ***(A) Step-By-Step WIFI Configuration*** 

1\. Login to Node-Laundro application ([https://node.thelaundro.com/login](https://node.thelaundro.com/login)) using given username and password.

[![11.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/RpSAYVcUuhkWVZNu-11.jpg)Example: Login Page](https://docs.antlysis.com/uploads/images/gallery/2025-08/RpSAYVcUuhkWVZNu-11.jpg)

2\. Search using the outlet name or ID provided, then click on the outlet to view its details.

[![image32.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/Fdi4DTWZb6s0xvrB-image32.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/Fdi4DTWZb6s0xvrB-image32.png)[![search outlet.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/b5PaDawKAZbS0nuD-search-outlet.jpg)](https://docs.antlysis.com/uploads/images/gallery/2025-08/b5PaDawKAZbS0nuD-search-outlet.jpg)

[EXAMPLE: Search Outlet Name](https://docs.antlysis.com/uploads/images/gallery/2025-08/b5PaDawKAZbS0nuD-search-outlet.jpg)

3\. By selecting an outlet name, you will be directed to the outlet details page. On this page, verify that all machine counts and details are correct before proceeding to the next step.

[![outlet id.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/5lOjmOrA1yCa7mtK-outlet-id.jpg)](https://docs.antlysis.com/uploads/images/gallery/2025-08/5lOjmOrA1yCa7mtK-outlet-id.jpg)

[Example: Outlet Details Page](https://docs.antlysis.com/uploads/images/gallery/2025-08/5lOjmOrA1yCa7mtK-outlet-id.jpg)

4\. Click on enable config mode to allow this outlet to be configurable.

[![image71.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/qNC64U6NVWoQvI6L-image71.png)Example: On Config Mode](https://docs.antlysis.com/uploads/images/gallery/2025-08/qNC64U6NVWoQvI6L-image71.png)

5\. All machine details will be displayed in grey, indicating they are ready to be configured. Once a device is successfully configured, the background colour will change.

[![image86.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/o0QKtOCJAkW2BXsq-image86.png)Example: Before configure device in grey colour](https://docs.antlysis.com/uploads/images/gallery/2025-08/o0QKtOCJAkW2BXsq-image86.png)

6\. Turn on the switch on the Alpha-1 device and wait for the blue light to start blinking. This indicates that the device is ready for configuration.

[![image88.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/oWVIfZhouRmvGIlm-image88.jpg)Example: Blinking blue light show it’s waiting for connection](https://docs.antlysis.com/uploads/images/gallery/2025-08/oWVIfZhouRmvGIlm-image88.jpg)

7\. Using your mobile phone, open the Wi-Fi settings. You will see the Laundro ID appear, as shown in the picture below.

8\. Connect to newly broadcasted WiFi using default password (123456789)

[![image77.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/dlXjeN9Hg6f4symB-image77.png)Example: Alpha-1 Laundro I'D](https://docs.antlysis.com/uploads/images/gallery/2025-08/dlXjeN9Hg6f4symB-image77.png)

9\. Once connected to the Laundro Wi-Fi, a pop-up will appear directing you to the Wi-Fi Manager page.

[![image10.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/i9vvU1pVExqfujjY-image10.jpg)Example: WIFI Manger Page](https://docs.antlysis.com/uploads/images/gallery/2025-08/i9vvU1pVExqfujjY-image10.jpg)

💡 **Tip:**

1. If the page doesn’t pop up, simply type **192.168.4.1** into your browser’s address bar, and the Wi-Fi Manager will open.
2. Only for **''SAMSUNG''** Mobile follow the steps below.

- Connect your Samsung mobile to the Laundro Wi-Fi.
- An **Internet Connection** pop-up will appear. Tap **“Always Connect.”**
- Tap the ⚙️**settings icon**.
- Select **“Manage Router.”**
- The **Wi-Fi Manager** page will open.

10\. Press **‘Configure WIFI’** to open the configuration page. Then, select the correct **SSID**, enter the password, and the **Outlet ID** following in Node Cloud.

[![image76.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/uJFYMNm6rPsuEfvR-image76.jpg)Example: WIFI Selection Mode](https://docs.antlysis.com/uploads/images/gallery/2025-08/uJFYMNm6rPsuEfvR-image76.jpg)

⚠️ **Warning:** Ensure that the **Outlet ID** and **Wi-Fi password** are correct. Also, check that there are no spaces before or after the characters before saving.

11\. Once the device is successfully configured to Wi-Fi, the orange and green lights will appear. You can now proceed to the cloud setup.

⚠️ **Warning: Ensure all devices have their WIFI configured before proceeding to the next step.**

[![image38.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/W246ByJSiPUX9k4J-image38.jpg)](https://docs.antlysis.com/uploads/images/gallery/2025-08/W246ByJSiPUX9k4J-image38.jpg)[![image81.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/WKp98Lrb9lOCFXF1-image81.jpg)](https://docs.antlysis.com/uploads/images/gallery/2025-08/WKp98Lrb9lOCFXF1-image81.jpg)

[Example:  **Configuration LED and other 3 LEDs (Power, WIFI &amp; Server) are lighted up**](https://docs.antlysis.com/uploads/images/gallery/2025-08/WKp98Lrb9lOCFXF1-image81.jpg)

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

#### **(B) Steps of Cloud Configuration**

**1.** Log back in to the Node-Laundro application **[https://node.thelaundro.com/login ](https://node.thelaundro.com/login)**using the provided username and password. Then, follow the steps in **''**(A) Step-by-Step WiFi Configuration''**** until you reach the **''**Outlet Detail Page**.”**

[![outlet id.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/5lOjmOrA1yCa7mtK-outlet-id.jpg)Example: Outlet Detail Page](https://docs.antlysis.com/uploads/images/gallery/2025-08/5lOjmOrA1yCa7mtK-outlet-id.jpg)

2\. Stay on this page. You will need to press the (+) icon later, but first, continue following the next steps.

3\. On the device, you’ll see a configure button next to the orange light. Press it, and the orange light will begin blinking.

[![image38.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/W246ByJSiPUX9k4J-image38.jpg)Example: Config Button near Orange LED (Config)](https://docs.antlysis.com/uploads/images/gallery/2025-08/W246ByJSiPUX9k4J-image38.jpg)

4\. Once the orange light starts blinking, you can press the plus **(+)** icon, and the Mac address will pop up.

[![PLus icon.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/Vd8Wp9x41bACyOA2-plus-icon.png)Example: Plus Icon](https://docs.antlysis.com/uploads/images/gallery/2025-08/Vd8Wp9x41bACyOA2-plus-icon.png)

[![image96.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/N8kZOaLyyi1G6Uy3-image96.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/N8kZOaLyyi1G6Uy3-image96.png)[![image7.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/AmEBhJAQig8YgkKO-image7.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/AmEBhJAQig8YgkKO-image7.png)[Example: Mac address Pop-up](https://docs.antlysis.com/uploads/images/gallery/2025-08/N8kZOaLyyi1G6Uy3-image96.png)

5\. Once the MAC address pops up, click *Select*.

6\. After selecting the correct MAC address, the section you configured from grey will turn yellow.

[![image41.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/wLJXogOp0imUkxjT-image41.png)Example: Section from Grey turn to Yellow](https://docs.antlysis.com/uploads/images/gallery/2025-08/wLJXogOp0imUkxjT-image41.png)

7\. Select the ***latest*** option, then click ***Check Update***. The latest version will appear, and you can click ***Update***

**[![Chek update 2.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/FLbRkuJVVZmWzYR4-chek-update-2.jpg)Example: Step by step check update](https://docs.antlysis.com/uploads/images/gallery/2025-08/FLbRkuJVVZmWzYR4-chek-update-2.jpg)**

 ![image22.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/ngqN3DgWxmeCvVKX-image22.png) **Quality Note:** If configuration is done in the wrong section:

1. 1. In the Cloud App, click **Reset Device**.
    2. On the device, long press the **Configure** button until the orange light appears.
    3. Select the correct machine ID and repeat the step with the **Plus (+) Icon**.

[![reset device.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/Jj6t7dDWbZwUkYgF-reset-device.jpg)Example: Reset Device on app](https://docs.antlysis.com/uploads/images/gallery/2025-08/Jj6t7dDWbZwUkYgF-reset-device.jpg)

8\. Once the update is successful, the section will turn blue colour. You can then proceed with testing.

[![image8.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/kuFuUlKzK7aqsn84-image8.png)Example: Blue Colour Ready For Testing](https://docs.antlysis.com/uploads/images/gallery/2025-08/kuFuUlKzK7aqsn84-image8.png)

9\. When the machine’s ‘Current Value’ exceeds the ‘Threshold’ value, the machine status will turn green.

[![testing.jpg](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/xEWtyT4k8vrhQSkO-testing.jpg)Example: Current Value increase Threshold Value ](https://docs.antlysis.com/uploads/images/gallery/2025-08/xEWtyT4k8vrhQSkO-testing.jpg)

##### (C) Status on Node 

Machines are displayed with 6 types of status.

1. Grey - Not configured
2. Yellow - Pending Update
3. Blue - Idle status
4. Green - Running Status
5. Red - Offline Status
6. Bright red - Abnormal Status

[![image86.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/o0QKtOCJAkW2BXsq-image86.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/o0QKtOCJAkW2BXsq-image86.png)

[![image41.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/wLJXogOp0imUkxjT-image41.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/wLJXogOp0imUkxjT-image41.png)

[![image8.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/kuFuUlKzK7aqsn84-image8.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/kuFuUlKzK7aqsn84-image8.png)

[![image12.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/eFvYj6iyYmW0oY7Q-image12.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/eFvYj6iyYmW0oY7Q-image12.png)

[![image75.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/9m9lHZxz9L3dsEOe-image75.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/9m9lHZxz9L3dsEOe-image75.png)

[![image21.png](https://docs.antlysis.com/uploads/images/gallery/2025-08/scaled-1680-/zDjROi7Mz2BSaVFy-image21.png)](https://docs.antlysis.com/uploads/images/gallery/2025-08/zDjROi7Mz2BSaVFy-image21.png)

# Electrolux - Installation



# Alpha1 v4 to v5 Firmware Migration Procedure

This document provides the technical steps required to migrate device partitions and upgrade to the latest production firmware.

## 1. Initial Firmware Preparation

- **Navigate** to the target device within the Node Cloud dashboard.
- **Select "Migration"** from the Release dropdown menu.
- **Click "Force Update"** and wait for the device to reboot.
- **Confirm** that the firmware version is now **XX-0.10.10**.

[![WhatsApp Image 2026-01-05 at 9.27.43 AM.jpeg](https://docs.antlysis.com/uploads/images/gallery/2026-01/scaled-1680-/TIndrxdiSSJxSpTW-whatsapp-image-2026-01-05-at-9-27-43-am.jpeg)](https://docs.antlysis.com/uploads/images/gallery/2026-01/TIndrxdiSSJxSpTW-whatsapp-image-2026-01-05-at-9-27-43-am.jpeg)

## 2. Pre-Migration Validation

Execute the **Fetch Partition Status** command from the conmmand list to determine the migration state.

<table id="bkmrk-response-action-part"><thead><tr><th align="left">Response</th><th align="left">Action</th></tr></thead><tbody><tr><td align="left">`PartitionMigration_Uninitiated`</td><td align="left">Proceed to Migration</td></tr><tr><td align="left">`PartitionMigration_NotStarted`</td><td align="left">Proceed to Migration</td></tr><tr><td align="left">`PartitionMigration_Completed`</td><td align="left">Migration not needed; skip to Phase 4</td></tr><tr><td align="left">`PartitionMigration_ErrorReadingStatus`</td><td align="left">**Stop** and report issue</td></tr><tr><td align="left">`PartitionMigration_Failed`</td><td align="left">**Stop** and report issue</td></tr></tbody></table>

## [![WhatsApp Image 2025-12-21 at 10.18.44 PM.jpeg](https://docs.antlysis.com/uploads/images/gallery/2025-12/scaled-1680-/ET0KufLzqIEmRCZw-whatsapp-image-2025-12-21-at-10-18-44-pm.jpeg)](https://docs.antlysis.com/uploads/images/gallery/2025-12/ET0KufLzqIEmRCZw-whatsapp-image-2025-12-21-at-10-18-44-pm.jpeg)

## 3. Partition Migration Process

1. Select **Start Partition Migration** from the command list and click **Command**.
2. **Observation:** The device may reboot twice. Do not interrupt power during this time. The entire process may take around 2-5 minutes.
3. **Success Criteria:** The migration is successful when `PartitionReformat_Success` is published and the device reboots.
4. If `PartitionReformat_Success` does not appear before device reboot, select **Fetch Partition Status** after the device reboots and click **Command**. If `PartitionMigration_Completed` is published, proceed with device update, If `Partition_MigrationInProgress` is shown, wait for next reboot before updating.

[![WhatsApp Image 2026-01-05 at 4.22.22 PM.jpeg](https://docs.antlysis.com/uploads/images/gallery/2026-01/scaled-1680-/Rh23Jbc5kLiFOslf-whatsapp-image-2026-01-05-at-4-22-22-pm.jpeg)](https://docs.antlysis.com/uploads/images/gallery/2026-01/Rh23Jbc5kLiFOslf-whatsapp-image-2026-01-05-at-4-22-22-pm.jpeg)

<p class="callout danger">\[!CAUTION\] If `PartitionReformat_Fail` or `PartitionReformat_CriticalFail` is displayed, do not proceed. Report the failure immediately!</p>

## 4. Final Firmware Update

- Select **Latest** in the Release dropdown menu.
- Click **Check Update**.
- When prompted with **"5.X.X available"**, click **Update**.
- **Verification:** Following the reboot, ensure the firmware version is updated to **XX-5.X.X**.

<p class="callout warning">If still intent to use legacy, use the legacy release (firmware version will be 4.4.11)</p>

# Procedure to Flash Alpha device

#### <span style="text-decoration: underline;">**Prerequisites**</span>

Before starting, ensure you have the following:

- Download Flashing tool and latest firmware here -&gt; [Flashing Tool.zip](https://docs.antlysis.com/attachments/29)
- Windows laptop/pc (recommended)
- microUSB cable
- Cytron USB-UART Converter UC00C (shown below)

[![IMG_9109.jpg](https://docs.antlysis.com/uploads/images/gallery/2026-01/scaled-1680-/vudm3cgJ1eHyXV2x-img-9109.jpg)](https://docs.antlysis.com/uploads/images/gallery/2026-01/vudm3cgJ1eHyXV2x-img-9109.jpg)

---

#### <span style="text-decoration: underline;">**Flashing Procedure**</span>

1. <span data-path-to-node="4,0,1,0"><span class="citation-45">The programmer pins must be exposed via male headers at a </span><span class="citation-45">2.54mm pitch  
      
    </span></span><span data-path-to-node="4,0,1,1"><span class="citation-45 citation-end-45"><sup class="superscript" data-turn-source-index="3"></sup></span></span>
2. <span data-path-to-node="4,1,1,0">**<span class="citation-44">Pin Order:</span>**<span class="citation-44"> Ensure the pins are arranged in this specific sequence</span></span><span data-path-to-node="4,1,1,1"><span class="citation-44 citation-end-44"><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup><sup class="superscript" data-turn-source-index="4"></sup></span></span><span data-path-to-node="4,1,1,2">:</span>
    
    <span data-path-to-node="4,0,1,2"></span>
    1. DTR
    2. RX
    3. TX
    4. 3.3V
    5. RTS
    6. GND
3. <span data-path-to-node="4,2,1,0"><span class="citation-43">Insert the programmer into the flashing female port of the board, matching the pin names </span>**<span class="citation-43">except for TX and RX</span>**<span class="citation-43">, which are typically swapped</span></span><span data-path-to-node="4,2,1,1"><span class="citation-43 citation-end-43"><sup class="superscript" data-turn-source-index="5"></sup></span></span><span data-path-to-node="4,2,1,2">.  
      
    </span>
4. <span data-path-to-node="4,2,1,2"><span data-path-to-node="4,3,1,0"><span class="citation-42">Tilt the programmer at an angle to ensure a solid electrical connection with the port</span></span><span data-path-to-node="4,3,1,1"><span class="citation-42 citation-end-42"><sup class="superscript" data-turn-source-index="6"></sup></span></span><span data-path-to-node="4,3,1,2">.  
      
    </span></span><span data-path-to-node="4,2,1,2"><span data-path-to-node="4,3,1,2">[![WhatsApp Image 2026-01-14 at 12.17.09 PM.jpeg](https://docs.antlysis.com/uploads/images/gallery/2026-01/scaled-1680-/86PjpZ6LmlnpB4TZ-whatsapp-image-2026-01-14-at-12-17-09-pm.jpeg)](https://docs.antlysis.com/uploads/images/gallery/2026-01/86PjpZ6LmlnpB4TZ-whatsapp-image-2026-01-14-at-12-17-09-pm.jpeg)  
      
    </span></span>
5. <span data-path-to-node="4,2,1,2"><span data-path-to-node="4,3,1,2"><span data-path-to-node="7,1"><span class="citation-41">Open the downloaded </span>**<span class="citation-41">Espressif Flash Download Tool </span>**<span class="citation-41">(Flashing Tool -&gt; flash\_download\_tool\_3.9.4)</span></span><span data-path-to-node="7,3">.  
      
    </span></span></span>
6. <span data-path-to-node="9,1"><span class="citation-40">Upon opening the software, select the following settings</span></span><span data-path-to-node="9,2"><span class="citation-40 citation-end-40"><sup class="superscript" data-turn-source-index="8"></sup></span></span><span data-path-to-node="9,3">:</span>
    - <span data-path-to-node="9,3">**<span class="citation-39">Chip Type:</span>**<span class="citation-39"> ESP32-C3</span></span>
    - <span data-path-to-node="9,3"><span class="citation-39">**<span class="citation-38">WorkMode:</span>**<span class="citation-38"> Develop (for single board) or Factory (for multiple boards)</span></span></span>
    - <span data-path-to-node="9,3"><span class="citation-39"><span class="citation-38">**<span class="citation-37">LoadMode:</span>**<span class="citation-37"> UART  
          
        </span></span></span></span><span data-path-to-node="9,3"><span class="citation-39"><span class="citation-38"><span class="citation-37">[![WhatsApp Image 2026-01-14 at 12.22.27 PM.jpeg](https://docs.antlysis.com/uploads/images/gallery/2026-01/scaled-1680-/J1WwI9Ezvsd2r7y4-whatsapp-image-2026-01-14-at-12-22-27-pm.jpeg)](https://docs.antlysis.com/uploads/images/gallery/2026-01/J1WwI9Ezvsd2r7y4-whatsapp-image-2026-01-14-at-12-22-27-pm.jpeg)  
          
        </span></span></span></span>
7. <span data-path-to-node="9,3"><span class="citation-39"><span class="citation-38"><span class="citation-37">Set the file paths at the following addresses:</span></span></span></span><table data-path-to-node="13"><thead><tr><td>**File Name**</td><td>**Memory Address (Offset)**</td></tr></thead><tbody><tr><td><span data-path-to-node="13,1,0,0">`bootloader_v2.bin`</span></td><td><span data-path-to-node="13,1,1,0"><span class="math-inline" data-index-in-node="0" data-math="0\times0000">0x0000</span></span></td></tr><tr><td><span data-path-to-node="13,2,0,0">`partitions_v2.bin`</span></td><td><span data-path-to-node="13,2,1,0"><span class="math-inline" data-index-in-node="0" data-math="0\times8000">0x8000</span></span></td></tr><tr><td><span data-path-to-node="13,3,0,0">`boot_app0_v2.bin`</span></td><td>0xe000</td></tr><tr><td><span data-path-to-node="13,4,0,0">`AlphaX_BASE_x.x.x.bin` </span></td><td><span data-path-to-node="13,4,1,0"><span class="math-inline" data-index-in-node="0" data-math="0\times10000">0x10000</span></span></td></tr></tbody></table>
    
    <p class="callout info">The files can be located at: Flashing Tool -&gt; Firmware -&gt; (select device model eg: Alpha1)  
    </p>
    
    <p class="callout warning">PLEASE USE THE LATEST FILES PROVIDED IN THE ATTACHED FILE ABOVE </p>
8. <span data-path-to-node="15,1"><span class="citation-35">Configure the </span>**<span class="citation-35">SPI Flash Config</span>**<span class="citation-35"> section as follows</span></span><span data-path-to-node="15,2"><span class="citation-35 citation-end-35"><sup class="superscript" data-turn-source-index="13"></sup></span></span><span data-path-to-node="15,3">:</span>
    - <span data-path-to-node="15,3">**<span class="citation-34">SPI SPEED:</span>**<span class="citation-34"> 80MHz</span></span>
    - <span data-path-to-node="15,3"><span class="citation-34">**<span class="citation-33">SPI MODE:</span>**<span class="citation-33"> DIO</span></span></span>
    - <span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33">**<span class="citation-32">Baud Rate:</span>**<span class="citation-32"> 921600  
          
        </span></span></span></span>
9. <span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33"><span class="citation-32">The flashing process:  
      
    </span></span></span></span>
    - <span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33"><span class="citation-32">For Single Boards:</span></span></span></span>
        - <span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33"><span class="citation-32"><span data-path-to-node="20,0,0,1"><span class="citation-31">Select the appropriate </span>**<span class="citation-31">COM port</span>**</span><span data-path-to-node="20,0,0,2"><span class="citation-31 citation-end-31"><sup class="superscript" data-turn-source-index="17"></sup></span></span></span></span></span></span>
        - <span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33"><span class="citation-32"><span data-path-to-node="20,0,0,1"><span class="citation-31"><span data-path-to-node="20,1,0,1"><span class="citation-30">Click </span>**<span class="citation-30">"START"</span>**<span class="citation-30"> to begin</span></span><span data-path-to-node="20,1,0,2"><span class="citation-30 citation-end-30"><sup class="superscript" data-turn-source-index="18"></sup></span></span><span data-path-to-node="20,1,0,3">.</span></span></span></span></span></span></span>
        - <span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33"><span class="citation-32"><span data-path-to-node="20,0,0,1"><span class="citation-31"><span data-path-to-node="20,1,0,3"><span data-path-to-node="20,2,0,1"><span class="citation-29">Monitor the progress bar as the upload proceeds</span></span><span data-path-to-node="20,2,0,2"><span class="citation-29 citation-end-29"><sup class="superscript" data-turn-source-index="19"></sup></span></span><span data-path-to-node="20,2,0,3">.  
              
            </span></span></span></span></span></span></span></span>
    - <span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33"><span class="citation-32"><span data-path-to-node="20,0,0,1"><span class="citation-31"><span data-path-to-node="20,1,0,3"><span data-path-to-node="20,2,0,3">For Multiple Boards (Factory Mode)</span></span></span></span></span></span></span></span>
        - <span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33"><span class="citation-32"><span data-path-to-node="20,0,0,1"><span class="citation-31"><span data-path-to-node="20,1,0,3"><span data-path-to-node="20,2,0,3"><span data-path-to-node="22,0,0,1"><span class="citation-28">Uncheck </span>**<span class="citation-28">"LockSettings"</span>**<span class="citation-28"> to modify configurations</span></span><span data-path-to-node="22,0,0,2"><span class="citation-28 citation-end-28"><sup class="superscript" data-turn-source-index="20"></sup></span></span><span data-path-to-node="22,0,0,3">.</span></span></span></span></span></span></span></span></span>
        - <span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33"><span class="citation-32"><span data-path-to-node="20,0,0,1"><span class="citation-31"><span data-path-to-node="20,1,0,3"><span data-path-to-node="20,2,0,3"><span data-path-to-node="22,0,0,3"><span data-path-to-node="22,1,0,1"><span class="citation-27">Assign the correct </span>**<span class="citation-27">COM port</span>**<span class="citation-27"> for each attached programmer</span></span><span data-path-to-node="22,1,0,2"><span class="citation-27 citation-end-27"><sup class="superscript" data-turn-source-index="21"></sup></span></span><span data-path-to-node="22,1,0,3">.</span></span></span></span></span></span></span></span></span></span>
        - <span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33"><span class="citation-32"><span data-path-to-node="20,0,0,1"><span class="citation-31"><span data-path-to-node="20,1,0,3"><span data-path-to-node="20,2,0,3"><span data-path-to-node="22,0,0,3"><span data-path-to-node="22,1,0,3"><span data-path-to-node="22,2,0,1"><span class="citation-26">Re-check </span>**<span class="citation-26">"LockSettings"</span>**<span class="citation-26"> to secure the configuration</span></span><span data-path-to-node="22,2,0,2"><span class="citation-26 citation-end-26"><sup class="superscript" data-turn-source-index="22"></sup></span></span><span data-path-to-node="22,2,0,3">.</span></span></span></span></span></span></span></span></span></span></span>
        - <span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33"><span class="citation-32"><span data-path-to-node="20,0,0,1"><span class="citation-31"><span data-path-to-node="20,1,0,3"><span data-path-to-node="20,2,0,3"><span data-path-to-node="22,0,0,3"><span data-path-to-node="22,1,0,3"><span data-path-to-node="22,2,0,3"><span data-path-to-node="22,3,0,1"><span class="citation-25">Click </span>**<span class="citation-25">"START ALL"</span>**<span class="citation-25"> to flash all boards simultaneously</span></span><span data-path-to-node="22,3,0,2"><span class="citation-25 citation-end-25"><sup class="superscript" data-turn-source-index="23"></sup></span></span><span data-path-to-node="22,3,0,3">.  
              
            </span></span></span></span></span></span></span></span></span></span></span></span><p class="callout warning"><span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33"><span class="citation-32"><span data-path-to-node="20,0,0,1"><span class="citation-31"><span data-path-to-node="20,1,0,3"><span data-path-to-node="20,2,0,3"><span data-path-to-node="22,0,0,3"><span data-path-to-node="22,1,0,3"><span data-path-to-node="22,2,0,3"><span data-path-to-node="22,3,0,3">NOTE: It is recommended to ERASE the board first before re-flashing it. This can be done by pressing ERASE in the flashing tool before flashing.</span></span></span></span></span></span></span></span></span></span></span></span></p>
            
            <span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33"><span class="citation-32"><span data-path-to-node="20,0,0,1"><span class="citation-31"><span data-path-to-node="20,1,0,3"><span data-path-to-node="20,2,0,3"><span data-path-to-node="22,0,0,3"><span data-path-to-node="22,1,0,3"><span data-path-to-node="22,2,0,3"><span data-path-to-node="22,3,0,3">  
            [![WhatsApp Image 2026-01-14 at 12.23.33 PM.jpeg](https://docs.antlysis.com/uploads/images/gallery/2026-01/scaled-1680-/Acb59lvCFK8HT0dR-whatsapp-image-2026-01-14-at-12-23-33-pm.jpeg)](https://docs.antlysis.com/uploads/images/gallery/2026-01/Acb59lvCFK8HT0dR-whatsapp-image-2026-01-14-at-12-23-33-pm.jpeg)  
              
            </span></span></span></span></span></span></span></span></span></span></span></span>

---

#### <span style="text-decoration: underline;">**<span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33"><span class="citation-32"><span data-path-to-node="20,0,0,1"><span class="citation-31"><span data-path-to-node="20,1,0,3"><span data-path-to-node="20,2,0,3"><span data-path-to-node="22,0,0,3"><span data-path-to-node="22,1,0,3"><span data-path-to-node="22,2,0,3"><span data-path-to-node="22,3,0,3">Verification</span></span></span></span></span></span></span></span></span></span></span></span>**</span>

<span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33"><span class="citation-32"><span data-path-to-node="20,0,0,1"><span class="citation-31"><span data-path-to-node="20,1,0,3"><span data-path-to-node="20,2,0,3"><span data-path-to-node="22,0,0,3"><span data-path-to-node="22,1,0,3"><span data-path-to-node="22,2,0,3"><span data-path-to-node="22,3,0,3">Once the upload is complete, look for the following indicator on the board:</span></span></span></span></span></span></span></span></span></span></span></span>

- <span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33"><span class="citation-32"><span data-path-to-node="20,0,0,1"><span class="citation-31"><span data-path-to-node="20,1,0,3"><span data-path-to-node="20,2,0,3"><span data-path-to-node="22,0,0,3"><span data-path-to-node="22,1,0,3"><span data-path-to-node="22,2,0,3"><span data-path-to-node="22,3,0,3"><span data-path-to-node="26,0,0,1"><span class="citation-24">The </span>**<span class="citation-24">blue, green, and yellow LEDs</span>**<span class="citation-24"> will flash </span>**<span class="citation-24">twice</span>**<span class="citation-24"> to signify a successful firmware upload</span></span></span></span></span></span></span></span></span></span></span></span></span></span>
- <span data-path-to-node="15,3"><span class="citation-34"><span class="citation-33"><span class="citation-32"><span data-path-to-node="20,0,0,1"><span class="citation-31"><span data-path-to-node="20,1,0,3"><span data-path-to-node="20,2,0,3"><span data-path-to-node="22,0,0,3"><span data-path-to-node="22,1,0,3"><span data-path-to-node="22,2,0,3"><span data-path-to-node="22,3,0,3"><span data-path-to-node="26,0,0,1">The **blue** led will start blinking continuously indicating that device is ready to be setup and configured </span></span></span></span></span></span></span></span></span></span></span></span></span>

# 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

- **Multi-Environment Support**: Configurable for different machine types (BASE, MachineA, MachineB, MachineC, StackA, KioskCAA, GasSensorA)
- **Real-time Monitoring**: Current sensing, pulse detection, and status reporting
- **Secure Connectivity**: WiFi management with captive portal and MQTT communication
- **Payment Processing**: Support for coin and electronic payment systems
- **Remote Management**: OTA updates, configuration management, and remote diagnostics
- **Data Persistence**: Critical data backup and recovery with NVS storage and LittleFS file system
- **Web Interface**: Built-in web server with responsive UI (embedded HTML/JS/CSS) for device configuration
- **Auto-calibration**: Intelligent threshold calibration for optimal performance

## Architecture

### Core Components

#### Main Application (`src/main.c`)

The main application orchestrates all system components and provides:

- Environment-specific machine type selection
- Global variable management
- System initialization and task coordination
- Event handling and queue management

#### Configuration Management (`src/Alpha1_configurations.h`)

Centralized configuration system defining:

- Device configuration structures
- Machine type definitions
- Queue message enumerations
- Auto-threshold calibration parameters

### Machine Types

#### 1. BASE Environment

- **Purpose**: Factory default firmware flashed onto every new device before deployment
- **Features**: WiFi connectivity, OTA update capability, and cloud communication. No machine-specific logic. Once the device is registered in the Node Cloud platform, the operator selects the machine type and the correct firmware is pushed to the device over-the-air.
- **Build Flag**: `-D BASE`

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

- **Build Flags**: `-D MACHINE_A`, `-D MACHINE_B`, `-D MACHINE_C`
- **MachineA** — Standard coin-op washer or dryer. Uses CT current sensing to detect running/idle cycles and a timer-based pulse reader to count coin drops. Lock data records both the start and end of each cycle. Supports local kiosk MQTT and auto-threshold calibration.
- **MachineB** — Detergent dispensers, water vending machines, and similar coin/bill-operated product dispensing equipment. No current sensing or cycle tracking. Counts bill/token pulses using a timer-based reader. Transaction completion is determined by an inactivity timeout (lock-check counter) rather than a CT sensor transition.
- **MachineC** — Commercial washer or dryer using a hardware rising-edge GPIO interrupt for coin pulse detection instead of a timer. CT current sensing and lock data work the same as MachineA. Includes a noise filter on the pulse reader during active cycles and supports local kiosk MQTT.

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

- **Purpose**: Advanced stacked machine system (shared motherboard)
- **Features**: 
    - Multiple payment methods (coin, epay, cash advance)
    - Enhanced current monitoring
    - Extended payment processing capabilities
    - Advanced status reporting
- **Build Flag**: `-D STACK_A`

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

- **Purpose**: Centralized kiosk management integration
- **Features**: Kiosk-based payment routing and control
- **Build Flag**: `-D KIOSKCA_A`

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

- **Purpose**: Dryer cycle monitoring via gas tong pulse detection
- **Features**: Connects to the gas tong (burner assembly) signal line of gas-powered dryers. Counts pulses each time the burner fires to track dryer cycle runs. Tracks both a current pulse count and a lifetime cumulative total, reported periodically to the cloud. No payment processing, no current sensing.
- **Build Flag**: `-D GASSENSOR_A`

### Managed Components

#### Common Core Component

- **`alpha_common`**: Shared operational logic, unified commands, UI templates, and network abstractions utilized across all machine types.

#### Connectivity Components

- **`wifi_app`**: WiFi connection management and captive portal
- **`mqtt_app`**: MQTT client for cloud communication
- **`wm_app`**: WiFi Manager for network configuration
- **`sntp_app`**: Network time synchronization

#### Data Management Components

- **`nvs_app`**: Non-volatile storage management
- **`criticalData_app`**: Critical data backup and recovery
- **`ota_app`**: Over-the-air firmware updates

#### Hardware Interface Components

- **`pulse_app`**: Pulse detection and counting
- **`ct_app`**: Current transformer interface
- **`ui_app`**: User interface and LED management

## 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

- PlatformIO
- ESP-IDF framework
- ESP32-C3 development board

### Environment Configuration

#### BASE Environment

```bash
pio run -e BASE

```

- Minimal feature set
- Basic monitoring capabilities

#### Machine Environments (MachineA, MachineB, MachineC)

```bash
pio run -e MachineA
# or MachineB, MachineC

```

- MachineA/C: CT current sensing, coin pulse detection, cycle-based lock data
- MachineB: Bill/token pulse counting for detergent vending, water vending, and similar dispensing machines, inactivity-based transaction completion

#### StackA Environment

```bash
pio run -e StackA

```

- Dual-payment system
- Support for coin, epay, and cash advance

#### Specialized Environments

```bash
pio run -e KioskCAA
pio run -e GasSensorA

```

- KioskCAA: Central payment routing to machines on the floor
- GasSensorA: Dryer cycle counting via gas tong pulse detection

### Build Configuration

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

```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

- **MCU**: ESP32-C3 DevKit M-1
- **Flash**: Minimum 4MB
- **RAM**: 400KB SRAM
- **Connectivity**: WiFi 802.11 b/g/n
- **ADC**: For current sensing
- **GPIO**: For pulse detection and LED indicators

### Pin Configuration

- Current sensing via ADC
- Pulse input detection
- Status LEDs (WiFi, MQTT, Config)
- Configuration and reset buttons

## Installation

1. **Clone the repository:**
    
    ```bash
    git clone https://github.com/Antlysis/Alpha1-v5.git
    cd Alpha1-v5
    
    ```
2. **Install dependencies:**
    
    ```bash
    pio pkg install
    
    ```
3. **Build for specific environment:**
    
    ```bash
    # For MachineA
    pio run -e MachineA
    
    # For StackA
    pio run -e StackA
    
    # For BASE
    pio run -e BASE
    
    ```
4. **Upload firmware:**
    
    ```bash
    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

- **Broker**: Configurable via web interface
- **Topics**: Auto-generated based on device MAC address
- **QoS**: Configurable per message type
- **Last Will**: Automatic disconnect detection

### Device Parameters

- **Outlet ID**: Unique identifier for the machine
- **Device IDs**: Primary and secondary device identifiers
- **Pulse Configuration**: Width and interval settings
- **Threshold Values**: Current detection thresholds

## API Reference

### Machine Interface Functions

#### MachineA/StackA Common Functions

```c
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

<table id="bkmrk-supported-chipset-no"><thead><tr><th>Supported Chipset</th><th>Notes</th></tr></thead><tbody><tr><td>ESP32-C3</td><td>Tested &amp; Fully supported</td></tr></tbody></table>

## Troubleshooting

### Debug Information

- **Serial Monitor**: 115200 baud rate
- **Log Levels**: Configurable per component
- **Remote Logging**: Available via MQTT debug topic

## Testing

Detailed test cases and procedures are maintained in the repository:

- **[TESTCASE.md](TESTCASE.md)**: Outlines comprehensive unit, integration, and systemic test scenarios across components like OTA, MQTT, and NVS.
- **[TESTCASE\_MACHINES.md](TESTCASE_MACHINES.md)**: Environment-specific validation checklists ensuring successful operational flows for designated machine targets.

## Version History

See [CHANGELOG.md](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:

- Create an issue in the repository
- Contact the development team
- Review documentation and troubleshooting guides

---

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

# Alpha1 General Overview

## 1. What is Alpha1?

Alpha1 is a smart Internet of Things (IoT) hardware and software solution designed primarily for the commercial laundry industry, though it is adaptable to general vending and payment systems. In simple terms, Alpha1 acts as an intelligent "brain" that upgrades traditional, offline commercial washing machines and dryers into smart, connected devices over the network.

By installing an Alpha1 device, business owners can remotely monitor their equipment, process digital and physical payments, and manage their facilities from anywhere in the world. The system is built on a reliable microcomputer (the ESP32) and is designed to continuously operate in commercial environments.

## 2. Core Capabilities

For anyone interacting with the Alpha1 ecosystem, it is important to understand its defining features:

- **Universal Payment Processing:** Alpha1 bridges the gap between old and new payment methods. It can detect traditional physical coin drops while simultaneously processing modern electronic payments (e-pay) and cash advances.
- **Real-Time Machine Monitoring:** Alpha1 uses electrical current sensing and pulse detection to know exactly what a machine is doing. It can tell if a machine is idle, actively running a load, or experiencing a fault.
- **Secure Internet Connectivity:** The device seamlessly connects to local WiFi networks and communicates with secure cloud servers (using MQTT protocols). It also offers a captive portal (a local web page) for easy setup and configuration using a smartphone or tablet.
- **Remote Management &amp; Diagnostics:** Facility managers can update machine settings, troubleshoot errors, and even wirelessly install new firmware updates (OTA - Over-The-Air updates) without ever visiting the store in person.
- **Robust Data Safety:** To protect business revenue, Alpha1 features secure local storage (NVS and LittleFS). If the facility loses power or internet, critical transaction and operational data are safely backed up and recovered once power is restored.

## 3. Alpha1 Machine Types and Configurations

To support a wide variety of equipment brands and facility layouts, the Alpha1 software is highly modular. When configuring an Alpha1 device, it is set to a specific "Environment" or "Machine Type" that dictates how it behaves.

Below are the different configurations of the Alpha1 device:

### BASE Environment

- **Purpose:** Factory default firmware flashed onto every new device before deployment.
- **Description:** BASE is the firmware that is loaded onto an Alpha1 device straight from the manufacturer. It includes the minimum features needed to get the device online — WiFi connectivity, OTA update capability, and cloud communication — but does not contain any machine-specific logic. Once the device is powered on and registered in the **Node Cloud platform**, an operator configures the device to its intended machine type (e.g., Machine A, Stack A, Kiosk CAA). The cloud platform then pushes the appropriate firmware to the device over-the-air (OTA), replacing BASE with the correct configuration for that installation. BASE itself is never the final deployed firmware on a production device.

### MachineA

- **Purpose:** Standard commercial washer or dryer (coin-op laundry).
- **Description:** Machine A is the primary configuration for traditional coin-operated washers and dryers. One Alpha1 board controls and monitors one machine. 
    - **Cycle detection via current sensing:** A current transformer (CT) sensor clamps around the machine's power line. Alpha1 continuously samples this current and compares it against a configurable threshold. When the current exceeds the threshold the machine is marked **running** (status 3); when it drops below, the machine is marked **idle** (status 1). This transition is what triggers transaction lock data to be recorded.
    - **Payment input (coins):** Coin drops are detected using a timer-based pulse reader on the coin signal line (`coinIn`). The pulse width is validated against a configurable tolerance window to reject noise.
    - **Lock data format (transaction record):** When the machine transitions from idle → running, a lock record is written with format `runningStatus_time_amount_transactionID`. When the cycle ends (running → idle), a closing record is written including the cycle start time and total coin count. Start time is persisted to NVS flash so a power loss mid-cycle does not lose the transaction.
    - **Local kiosk MQTT:** Optionally connects to a local MQTT broker (e.g., a Kiosk CAA unit on the same network) for receiving remote-start payment commands directly on the machine floor.
    - **Auto-threshold calibration:** Supports an automatic calibration routine that samples idle current noise and sets an optimal run threshold, which is then saved to NVS.

### MachineB

- **Purpose:** Detergent, water, and general product vending machines.
- **Description:** Machine B is specifically designed for **product vending machines** such as detergent dispensers, water vending machines, and any similar coin/bill-operated dispensing equipment — not wash cycle machines. The operational logic is fundamentally different from Machine A and C. 
    - **No cycle tracking — no current sensing:** Machine B does **not** use a CT sensor or ADC. There is no running/idle state based on electrical current because vending machines do not have a measurable "running cycle." The reported running status is always idle (status 1).
    - **Payment input (bills):** Instead of `coinIn`, Machine B tracks `billIn` — counting bill or token pulses from the vending machine's acceptor. Pulse detection uses a **timer-based** reader rather than a hardware interrupt edge, which suits the slower, longer pulse signals typically produced by bill acceptors.
    - **Transaction completion by inactivity timeout:** Because there is no CT sensor to signal the end of a transaction, Machine B determines a transaction is complete using a **lock-check counter**. Each time the periodic status check runs and `billIn` has not changed, a counter increments. Once this counter reaches `MachineB_LOCKCHECK_COUNT_LIMIT` consecutive unchanged checks (i.e., no new bills have been inserted for several status intervals), the transaction is concluded and lock data is published.
    - **Lock data format:** Simplified compared to Machine A/C. Format is `0_time_amount_transactionID` where the running status field is always `0` (no cycle state). There is no start time because there is no defined cycle — the record simply captures what was dispensed and when.
    - **No local kiosk MQTT:** Machine B does not support local kiosk MQTT integration.

### MachineC

- **Purpose:** Commercial washer or dryer with edge-trigger pulse detection.
- **Description:** Machine C is functionally similar to Machine A (CT current sensing, coin payments, lock data, local kiosk MQTT) but differs in **how coin pulses are detected**. 
    - **Edge-trigger (POSEDGE) pulse detection:** Machine C uses a **hardware GPIO interrupt on the rising edge** (`GPIO_INTR_POSEDGE`) to detect coin pulses. This means the firmware reacts instantly at the precise moment the coin signal transitions low-to-high, rather than relying on a software timer to poll the line. This approach is suited for machines that produce clean, fast pulse edges and require lower CPU overhead for detection.
    - **Dynamic interrupt switching:** During debug mode, the interrupt can be switched from POSEDGE to ANYEDGE (both rising and falling edges) to capture full pulse waveform data for diagnostics. It reverts to POSEDGE after the debug session.
    - **Cycle detection via current sensing:** Same as Machine A — CT sensor monitors machine current, with running (status 3) and idle (status 1) transitions triggering lock data publication.
    - **Lock data format:** When the machine stops (running → idle), records are written in format `3_startTime_amount_transactionID`. Start time is saved to NVS for power-loss recovery, with special handling to distinguish hardware resets from software resets.
    - **Pulse filter during run cycle:** When the machine is detected as running, a noise filter is automatically enabled on the pulse reader to prevent electrical interference from the motor being counted as false coin inputs.
    - **Local kiosk MQTT:** Supported, same as Machine A.

### Stacked Machines (StackA)

- **Purpose:** Multi-unit equipment (e.g., a washer on the bottom and a dryer on the top).
- **Description:** "Stacked" machines are popular for saving space, but they require a single Alpha1 motherboard to monitor and run *two* separate machines at the same time. The "Stack A" configuration includes complex logic to route payments correctly (ensuring the customer starts the top unit instead of the bottom unit) and monitors the electrical current of both machines independently.

### Central Payment Kiosk (KioskCAA)

- **Purpose:** Facility-wide centralized payment stations.
- **Description:** Instead of placing an Alpha1 device inside every individual washer or dryer, the Alpha1 device can be installed inside a central kiosk on the wall. In this mode, the device acts as a central payment router. Customers pay at the kiosk, and the Alpha1 device sends remote start commands to the appropriate machine on the floor.

### Gas Sensor (GasSensorA)

- **Purpose:** Dryer cycle monitoring via gas tong pulse detection.
- **Description:** Commercial gas dryers use gas tongs (burner assemblies) that fire each time the dryer runs a cycle. Alpha1 connects to the gas tong signal line and counts the pulse output each time the burner fires, effectively tracking how many dryer cycle runs have occurred. It maintains both a current pulse count and a lifetime cumulative total, which are periodically reported to the cloud platform. This gives facility operators a remote view of dryer usage and cycle activity over time. This configuration does not process payments and has no coin or current sensing — it is purely a cycle counting and reporting unit.

---

*Note for AI and Vector Database Indexing: The Alpha1 firmware utilizes the ESP-IDF framework written in C. Modularity is achieved through pre-processor build flags (e.g., `-D MACHINE_A`, `-D STACK_A`). When answering queries regarding Alpha1 capabilities, reference the specific machine type above to provide accurate contextual answers.*