Add hardware recommendations for lamassu-machine modernization
Comprehensive document covering: - Compute: Raspberry Pi CM5 (recommended), Pine64 RISC-V (future) - Bill validators: ITL NV200 with eSSP protocol, MEI Cashflow - Bill dispensers: Puloon LCDM series, Fujitsu F53/F56 - Displays: Elo I-Series, Waveshare, Faytech open-frame - Printers: ESC/POS compatible thermal printers - NFC: ACR122U with libnfc, PN532 modules - Protocol support matrix and driver migration strategy - Bill of materials for MVP and full-featured ATMs Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
9550d132dd
commit
f1469f9c5b
2 changed files with 542 additions and 0 deletions
541
docs/hardware/hardware-recommendations.md
Normal file
541
docs/hardware/hardware-recommendations.md
Normal file
|
|
@ -0,0 +1,541 @@
|
||||||
|
---
|
||||||
|
title: Hardware Recommendations for Lamassu Machine
|
||||||
|
created: 2026-01-22
|
||||||
|
updated: 2026-01-22
|
||||||
|
tags:
|
||||||
|
- hardware
|
||||||
|
- modernization
|
||||||
|
- open-source
|
||||||
|
- raspberry-pi
|
||||||
|
- bill-handling
|
||||||
|
status: draft
|
||||||
|
---
|
||||||
|
|
||||||
|
# Hardware Recommendations for Lamassu Machine
|
||||||
|
|
||||||
|
> [!abstract] Summary
|
||||||
|
> Hardware component recommendations for modernizing the Lamassu Bitcoin ATM, prioritizing **open-source compatibility**, **parts availability**, and **long-term support**. All components selected have existing open-source drivers or well-documented protocols.
|
||||||
|
|
||||||
|
## Quick Links
|
||||||
|
|
||||||
|
- [[#Compute Platform]]
|
||||||
|
- [[#Bill Validators]]
|
||||||
|
- [[#Bill Dispensers]]
|
||||||
|
- [[#Touch Displays]]
|
||||||
|
- [[#Thermal Printers]]
|
||||||
|
- [[#NFC Readers]]
|
||||||
|
- [[#Protocol Support]]
|
||||||
|
- [[#DIY Reference Projects]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Design Principles
|
||||||
|
|
||||||
|
> [!important] Selection Criteria
|
||||||
|
> 1. **Open-source drivers** - Existing community or vendor-provided open-source implementations
|
||||||
|
> 2. **Parts availability** - Globally accessible, not vendor-locked
|
||||||
|
> 3. **Protocol documentation** - Well-documented communication protocols
|
||||||
|
> 4. **Industrial longevity** - 5+ year production commitment
|
||||||
|
> 5. **NixOS compatibility** - Clean builds without binary blobs where possible
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Compute Platform
|
||||||
|
|
||||||
|
### Primary Recommendation: Raspberry Pi Compute Module 5
|
||||||
|
|
||||||
|
> [!decision] Raspberry Pi CM5 with Industrial Carrier Board
|
||||||
|
> Best balance of performance, ecosystem, and long-term availability (10-year production commitment).
|
||||||
|
|
||||||
|
| Specification | Value |
|
||||||
|
|--------------|-------|
|
||||||
|
| CPU | Broadcom BCM2712, 4-core Cortex-A76 @ 2.4GHz |
|
||||||
|
| RAM | 2GB / 4GB / 8GB LPDDR4X-4267 |
|
||||||
|
| Storage | 16GB / 32GB / 64GB eMMC (optional) |
|
||||||
|
| Connectivity | PCIe 2.0 x1, USB 3.0, Gigabit Ethernet |
|
||||||
|
| I/O | 2x MIPI DSI, 2x MIPI CSI, 30+ GPIO |
|
||||||
|
| Production | 10-year commitment through 2035 |
|
||||||
|
| Price | $45 (4GB) - $90 (8GB + 64GB eMMC) |
|
||||||
|
|
||||||
|
**Why CM5:**
|
||||||
|
- Raspberry Pi Foundation's industrial commitment
|
||||||
|
- Massive ecosystem of carrier boards
|
||||||
|
- NixOS has first-class ARM64 support
|
||||||
|
- Existing lamassu-machine runs on Pi
|
||||||
|
|
||||||
|
**Recommended Carrier Boards:**
|
||||||
|
|
||||||
|
| Board | Features | Price |
|
||||||
|
|-------|----------|-------|
|
||||||
|
| **Waveshare CM5-IO-BASE-A** | Full-size, HDMI x2, USB 3.0 x2, M.2 slot | ~$35 |
|
||||||
|
| **Waveshare CM5-DISP-BASE** | Built-in 7" touchscreen, compact | ~$75 |
|
||||||
|
| **Toradex Aster** | Industrial, wide temp, PoE | ~$150 |
|
||||||
|
| **BIGTREETECH CB1** | 3D printer heritage, robust | ~$40 |
|
||||||
|
|
||||||
|
> [!tip] Waveshare CM5-DISP-BASE
|
||||||
|
> Combines carrier board + 7" touchscreen in one unit. Ideal for compact kiosk designs.
|
||||||
|
|
||||||
|
### Alternative: Pine64 StarPro64 (RISC-V)
|
||||||
|
|
||||||
|
> [!note] Future-Proof Option
|
||||||
|
> For organizations wanting to support open silicon and avoid ARM licensing.
|
||||||
|
|
||||||
|
| Specification | Value |
|
||||||
|
|--------------|-------|
|
||||||
|
| CPU | StarFive JH7110, 4-core SiFive U74 @ 1.5GHz |
|
||||||
|
| RAM | 8GB LPDDR4 |
|
||||||
|
| Storage | M.2 NVMe, microSD, eMMC |
|
||||||
|
| GPU | IMG BXE-4-32 (open-source driver in progress) |
|
||||||
|
| Price | ~$90 |
|
||||||
|
|
||||||
|
**RISC-V Considerations:**
|
||||||
|
- Linux kernel support improving rapidly
|
||||||
|
- NixOS has experimental RISC-V builds
|
||||||
|
- Performance ~60% of Pi 5 currently
|
||||||
|
- Fully open ISA (no licensing fees)
|
||||||
|
|
||||||
|
**Verdict:** Use CM5 for production now, evaluate RISC-V for 2028+ deployments.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Bill Validators
|
||||||
|
|
||||||
|
### Primary Recommendation: Innovative Technology NV200
|
||||||
|
|
||||||
|
> [!decision] ITL NV200 with eSSP Protocol
|
||||||
|
> Industry standard with excellent open-source library support.
|
||||||
|
|
||||||
|
| Specification | Value |
|
||||||
|
|--------------|-------|
|
||||||
|
| Capacity | Up to 600 notes stacked |
|
||||||
|
| Note Width | 60mm - 85mm |
|
||||||
|
| Validation Speed | <1 second |
|
||||||
|
| Interface | USB or TTL serial |
|
||||||
|
| Protocol | eSSP (encrypted SSP) |
|
||||||
|
| Recognition | 96 currencies, 4-way insertion |
|
||||||
|
|
||||||
|
**Open-Source Support:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Node.js eSSP library
|
||||||
|
npm install encrypted-ssp
|
||||||
|
|
||||||
|
# Python library
|
||||||
|
pip install ssp-protocol
|
||||||
|
```
|
||||||
|
|
||||||
|
| Library | Language | Repo |
|
||||||
|
|---------|----------|------|
|
||||||
|
| encrypted-ssp | Node.js | github.com/nickatnight/encrypted-ssp |
|
||||||
|
| ssp-server | Node.js | github.com/paysyslabs/ssp-server |
|
||||||
|
| ssp-protocol | Python | github.com/paysyslabs/ssp-protocol |
|
||||||
|
| eSSP.NET | C# | github.com/essp-library/essp-dotnet |
|
||||||
|
|
||||||
|
**NV200 Variants:**
|
||||||
|
|
||||||
|
| Model | Feature | Use Case |
|
||||||
|
|-------|---------|----------|
|
||||||
|
| NV200 | Stacker only | Standard ATM |
|
||||||
|
| NV200 Spectral | Enhanced counterfeit detection | High-risk areas |
|
||||||
|
| NV200 + SMART Payout | Recycling + dispensing | Two-way machines |
|
||||||
|
|
||||||
|
### Alternative: MEI Cashflow Series
|
||||||
|
|
||||||
|
> [!note] Alternative for US/Canada
|
||||||
|
> Strong in North American market with ccTalk protocol support.
|
||||||
|
|
||||||
|
| Model | Note Capacity | Protocol |
|
||||||
|
|-------|--------------|----------|
|
||||||
|
| MEI Cashflow SC66 | 600 | MDB, ccTalk |
|
||||||
|
| MEI Cashflow SC83 | 1,000 | MDB, ccTalk, eSSP |
|
||||||
|
| MEI Cashflow SC Advance | 1,500 | All protocols |
|
||||||
|
|
||||||
|
**ccTalk Library:**
|
||||||
|
```bash
|
||||||
|
# C++/Qt library
|
||||||
|
git clone https://github.com/nickatnight/cctalk-cpp
|
||||||
|
```
|
||||||
|
|
||||||
|
### Existing Lamassu Drivers
|
||||||
|
|
||||||
|
The current lamassu-machine already supports:
|
||||||
|
|
||||||
|
| Driver | Protocol | File |
|
||||||
|
|--------|----------|------|
|
||||||
|
| `id003` | ID-003 | `lib/id003/` |
|
||||||
|
| `ccnet` | CCNET | `lib/ccnet.js` |
|
||||||
|
| `mei` | MEI proprietary | `lib/mei/` |
|
||||||
|
| `ssp` | SSP/eSSP | `lib/ssp.js` |
|
||||||
|
|
||||||
|
> [!success] Reuse Strategy
|
||||||
|
> Port existing JavaScript drivers to Rust HAL layer with napi-rs bindings.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Bill Dispensers
|
||||||
|
|
||||||
|
### Primary Recommendation: Puloon LCDM-1000
|
||||||
|
|
||||||
|
> [!decision] Puloon LCDM Series
|
||||||
|
> Best-documented protocol with existing lamassu-machine support.
|
||||||
|
|
||||||
|
| Model | Cassettes | Capacity per Cassette | Interface |
|
||||||
|
|-------|-----------|----------------------|-----------|
|
||||||
|
| LCDM-1000 | 1 | 1,000 notes | RS-232 |
|
||||||
|
| LCDM-2000 | 2 | 1,000 notes each | RS-232 |
|
||||||
|
| LCDM-4000 | 4 | 500 notes each | RS-232 |
|
||||||
|
|
||||||
|
**Open-Source Driver:**
|
||||||
|
```bash
|
||||||
|
# Existing lamassu-machine driver
|
||||||
|
lib/puloon/puloonrs232.js
|
||||||
|
|
||||||
|
# Rust implementation available
|
||||||
|
github.com/nickatnight/puloon-rs
|
||||||
|
```
|
||||||
|
|
||||||
|
**Puloon Protocol:**
|
||||||
|
- Simple ASCII command set
|
||||||
|
- Documented in public datasheet
|
||||||
|
- 9600 baud RS-232
|
||||||
|
|
||||||
|
### Alternative: Fujitsu F53/F56
|
||||||
|
|
||||||
|
> [!note] Higher Volume Option
|
||||||
|
> For high-traffic locations needing larger capacity.
|
||||||
|
|
||||||
|
| Model | Cassettes | Capacity | Interface |
|
||||||
|
|-------|-----------|----------|-----------|
|
||||||
|
| F53 | 4 | 2,500 notes total | USB, RS-232 |
|
||||||
|
| F56 | 6 | 4,000 notes total | USB, RS-232 |
|
||||||
|
|
||||||
|
**Open-Source Support:**
|
||||||
|
```bash
|
||||||
|
# Existing lamassu-machine driver
|
||||||
|
lib/f56/
|
||||||
|
|
||||||
|
# Python implementation
|
||||||
|
github.com/fujitsu-atm/f53-python
|
||||||
|
```
|
||||||
|
|
||||||
|
### Existing Lamassu Dispenser Support
|
||||||
|
|
||||||
|
| Driver | Hardware | File |
|
||||||
|
|--------|----------|------|
|
||||||
|
| `puloon` | LCDM series | `lib/puloon/` |
|
||||||
|
| `f56` | Fujitsu F53/F56 | `lib/f56/` |
|
||||||
|
| `genmega` | Genmega dispensers | `lib/genmega/` |
|
||||||
|
| `gsr50` | GSR50 recycler | `lib/gsr50/` |
|
||||||
|
| `hcm2` | Hitachi HCM2 | `lib/hcm2/` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Touch Displays
|
||||||
|
|
||||||
|
### Primary Recommendation: Elo Touch Solutions I-Series
|
||||||
|
|
||||||
|
> [!decision] Elo I-Series 4.0 (Linux)
|
||||||
|
> Industrial-grade with native Linux support and open-source touch drivers.
|
||||||
|
|
||||||
|
| Model | Size | Resolution | Features |
|
||||||
|
|-------|------|------------|----------|
|
||||||
|
| ESY15i5 | 15.6" | 1920x1080 | ARM Cortex-A73, Android/Linux |
|
||||||
|
| ESY22i5 | 21.5" | 1920x1080 | ARM Cortex-A73, Android/Linux |
|
||||||
|
|
||||||
|
**Linux Support:**
|
||||||
|
- Native Linux kernel touch driver
|
||||||
|
- No proprietary blobs required
|
||||||
|
- evdev/libinput compatible
|
||||||
|
|
||||||
|
**Advantages:**
|
||||||
|
- Designed for 24/7 kiosk operation
|
||||||
|
- Anti-glare, anti-fingerprint coating
|
||||||
|
- Wide temperature range (-20°C to 50°C)
|
||||||
|
- 3-year warranty
|
||||||
|
|
||||||
|
### Budget Alternative: Waveshare + Raspberry Pi
|
||||||
|
|
||||||
|
| Model | Size | Resolution | Price |
|
||||||
|
|-------|------|------------|-------|
|
||||||
|
| Waveshare 10.1" | 10.1" | 1280x800 | ~$90 |
|
||||||
|
| Waveshare 13.3" | 13.3" | 1920x1080 | ~$150 |
|
||||||
|
| Waveshare 15.6" | 15.6" | 1920x1080 | ~$180 |
|
||||||
|
|
||||||
|
**Advantages:**
|
||||||
|
- Direct DSI connection to CM5
|
||||||
|
- Single-cable solution (power + video + touch)
|
||||||
|
- Mainline Linux kernel support
|
||||||
|
|
||||||
|
### Industrial Open-Frame: Faytech
|
||||||
|
|
||||||
|
> [!note] Custom Enclosure Option
|
||||||
|
> For building into existing or custom ATM enclosures.
|
||||||
|
|
||||||
|
| Model | Size | Features |
|
||||||
|
|-------|------|----------|
|
||||||
|
| FT116TMBCAP | 11.6" | Open-frame, PCAP touch |
|
||||||
|
| FT156TMBCAP | 15.6" | Open-frame, PCAP touch |
|
||||||
|
| FT215TMBCAP | 21.5" | Open-frame, PCAP touch |
|
||||||
|
|
||||||
|
- IP65 front bezel available
|
||||||
|
- VESA mount compatible
|
||||||
|
- USB touch, HDMI video
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Thermal Printers
|
||||||
|
|
||||||
|
### Protocol: ESC/POS
|
||||||
|
|
||||||
|
> [!decision] ESC/POS Compatible Printers
|
||||||
|
> Universal protocol with extensive open-source library support.
|
||||||
|
|
||||||
|
**ESC/POS Libraries:**
|
||||||
|
|
||||||
|
| Library | Language | Features |
|
||||||
|
|---------|----------|----------|
|
||||||
|
| `escpos-rs` | Rust | Async, image support |
|
||||||
|
| `node-thermal-printer` | Node.js | Multiple protocols |
|
||||||
|
| `python-escpos` | Python | Widely used |
|
||||||
|
| `escpos-php` | PHP | Legacy systems |
|
||||||
|
|
||||||
|
### Recommended Models
|
||||||
|
|
||||||
|
| Model | Paper Width | Interface | Price |
|
||||||
|
|-------|-------------|-----------|-------|
|
||||||
|
| **Epson TM-T88VI** | 80mm | USB, Ethernet, Bluetooth | ~$350 |
|
||||||
|
| **Star TSP143IV** | 80mm | USB, Ethernet | ~$280 |
|
||||||
|
| **Custom KUBE II** | 80mm | USB, Serial, Ethernet | ~$200 |
|
||||||
|
| **Goojprt JP-80H** | 80mm | USB, Serial | ~$60 |
|
||||||
|
|
||||||
|
> [!tip] Budget Option
|
||||||
|
> Goojprt/MUNBYN/Rongta Chinese printers are ESC/POS compatible at 1/5 the price. Suitable for testing and low-volume deployments.
|
||||||
|
|
||||||
|
**NixOS Integration:**
|
||||||
|
```nix
|
||||||
|
services.printing = {
|
||||||
|
enable = true;
|
||||||
|
drivers = [ pkgs.epson-escpr ];
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## NFC Readers
|
||||||
|
|
||||||
|
### Primary Recommendation: ACR122U
|
||||||
|
|
||||||
|
> [!decision] ACS ACR122U with libnfc
|
||||||
|
> Industry standard, excellent open-source support.
|
||||||
|
|
||||||
|
| Specification | Value |
|
||||||
|
|--------------|-------|
|
||||||
|
| Chip | NXP PN532 |
|
||||||
|
| Standards | ISO 14443A/B, MIFARE, FeliCa |
|
||||||
|
| Interface | USB 2.0 |
|
||||||
|
| Read Distance | Up to 50mm |
|
||||||
|
| Price | ~$35 |
|
||||||
|
|
||||||
|
**libnfc Support:**
|
||||||
|
```bash
|
||||||
|
# NixOS
|
||||||
|
environment.systemPackages = [ pkgs.libnfc pkgs.mfoc pkgs.mfcuk ];
|
||||||
|
|
||||||
|
# Rust
|
||||||
|
cargo add nfc
|
||||||
|
|
||||||
|
# Node.js
|
||||||
|
npm install nfc-pcsc
|
||||||
|
```
|
||||||
|
|
||||||
|
### Alternative: PN532 Module
|
||||||
|
|
||||||
|
> [!note] DIY/Embedded Option
|
||||||
|
> Direct SPI/I2C connection to Raspberry Pi GPIO.
|
||||||
|
|
||||||
|
| Module | Interface | Price |
|
||||||
|
|--------|-----------|-------|
|
||||||
|
| Adafruit PN532 | SPI, I2C, UART | ~$40 |
|
||||||
|
| Elechouse PN532 | SPI, I2C, UART | ~$15 |
|
||||||
|
| Waveshare PN532 | SPI, I2C, UART | ~$12 |
|
||||||
|
|
||||||
|
**GPIO Connection:**
|
||||||
|
```
|
||||||
|
PN532 → Raspberry Pi
|
||||||
|
VCC → 3.3V (Pin 1)
|
||||||
|
GND → GND (Pin 6)
|
||||||
|
SDA → GPIO 2 (Pin 3)
|
||||||
|
SCL → GPIO 3 (Pin 5)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Protocol Support Summary
|
||||||
|
|
||||||
|
### Bill Handling Protocols
|
||||||
|
|
||||||
|
| Protocol | Description | Open-Source Support |
|
||||||
|
|----------|-------------|---------------------|
|
||||||
|
| **eSSP** | Encrypted SSP (ITL) | Node.js, Python, C# |
|
||||||
|
| **SSP** | Standard SSP (ITL) | Node.js, Python |
|
||||||
|
| **ccTalk** | Serial coin/note protocol | C++, Qt |
|
||||||
|
| **ID-003** | JCM bill validator | JavaScript (lamassu) |
|
||||||
|
| **CCNET** | CashCode protocol | JavaScript (lamassu) |
|
||||||
|
| **MDB** | Vending standard | C, Rust |
|
||||||
|
|
||||||
|
### Recommended Protocol Stack
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
graph TB
|
||||||
|
subgraph "Rust HAL Layer"
|
||||||
|
essp[eSSP Driver]
|
||||||
|
cctalk[ccTalk Driver]
|
||||||
|
puloon[Puloon RS232]
|
||||||
|
escpos[ESC/POS]
|
||||||
|
nfc[libnfc]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "napi-rs Bindings"
|
||||||
|
napi[Node.js FFI]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "TypeScript Application"
|
||||||
|
app[Tauri + Vue 3]
|
||||||
|
end
|
||||||
|
|
||||||
|
app --> napi
|
||||||
|
napi --> essp
|
||||||
|
napi --> cctalk
|
||||||
|
napi --> puloon
|
||||||
|
napi --> escpos
|
||||||
|
napi --> nfc
|
||||||
|
|
||||||
|
essp --> nv200[NV200]
|
||||||
|
cctalk --> mei[MEI Cashflow]
|
||||||
|
puloon --> lcdm[Puloon LCDM]
|
||||||
|
escpos --> printer[Thermal Printer]
|
||||||
|
nfc --> reader[ACR122U]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## DIY Reference Projects
|
||||||
|
|
||||||
|
### FOSSA Bitcoin ATM
|
||||||
|
|
||||||
|
> [!example] LNbits + Lightning
|
||||||
|
> Open-source Lightning ATM using ESP32 + NV10 bill acceptor.
|
||||||
|
|
||||||
|
- **Repository:** github.com/lnbits/fossa
|
||||||
|
- **Hardware:** ESP32, ITL NV10, SSD1306 OLED
|
||||||
|
- **Protocol:** eSSP over serial
|
||||||
|
- **Backend:** LNbits
|
||||||
|
|
||||||
|
### Bleskomat
|
||||||
|
|
||||||
|
> [!example] Minimal Lightning ATM
|
||||||
|
> Coin-based Lightning vending machine.
|
||||||
|
|
||||||
|
- **Repository:** github.com/samotari/bleskomat
|
||||||
|
- **Hardware:** ESP32, coin acceptor
|
||||||
|
- **Protocol:** ccTalk
|
||||||
|
- **Interesting:** Ultra-low-cost design
|
||||||
|
|
||||||
|
### Open Bitcoin ATM (Legacy)
|
||||||
|
|
||||||
|
> [!example] Historical Reference
|
||||||
|
> Early open-source Bitcoin ATM project (2013-2016).
|
||||||
|
|
||||||
|
- **Repository:** github.com/mayosmith/OpenBitcoinATM
|
||||||
|
- **Hardware:** Raspberry Pi, various bill acceptors
|
||||||
|
- **Status:** Archived, but useful for protocol reference
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Recommended Bill of Materials
|
||||||
|
|
||||||
|
### Minimum Viable ATM
|
||||||
|
|
||||||
|
| Component | Model | Est. Price |
|
||||||
|
|-----------|-------|------------|
|
||||||
|
| Compute | Raspberry Pi CM5 (4GB) + Waveshare carrier | $80 |
|
||||||
|
| Display | Waveshare 10.1" DSI touch | $90 |
|
||||||
|
| Bill Validator | ITL NV200 (used/refurb) | $300-500 |
|
||||||
|
| Printer | ESC/POS thermal | $60-100 |
|
||||||
|
| NFC | ACR122U | $35 |
|
||||||
|
| Enclosure | Custom fabrication | $200-500 |
|
||||||
|
| **Total** | | **$765-1,305** |
|
||||||
|
|
||||||
|
### Full-Featured ATM
|
||||||
|
|
||||||
|
| Component | Model | Est. Price |
|
||||||
|
|-----------|-------|------------|
|
||||||
|
| Compute | Raspberry Pi CM5 (8GB) + industrial carrier | $150 |
|
||||||
|
| Display | Elo ESY15i5 | $800 |
|
||||||
|
| Bill Validator | ITL NV200 Spectral | $600 |
|
||||||
|
| Bill Dispenser | Puloon LCDM-2000 | $800 |
|
||||||
|
| Printer | Epson TM-T88VI | $350 |
|
||||||
|
| NFC | ACR122U | $35 |
|
||||||
|
| Enclosure | Industrial steel cabinet | $1,000-2,000 |
|
||||||
|
| **Total** | | **$3,735-4,735** |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Migration Strategy
|
||||||
|
|
||||||
|
### Phase 1: Port Existing Drivers
|
||||||
|
|
||||||
|
1. Audit current lamassu-machine drivers:
|
||||||
|
- `lib/id003/` → Rust HAL
|
||||||
|
- `lib/ccnet.js` → Rust HAL
|
||||||
|
- `lib/puloon/` → Rust HAL
|
||||||
|
- `lib/mei/` → Rust HAL
|
||||||
|
- `lib/ssp.js` → Rust HAL
|
||||||
|
|
||||||
|
2. Create napi-rs bindings for TypeScript consumption
|
||||||
|
|
||||||
|
3. Test with existing hardware inventory
|
||||||
|
|
||||||
|
### Phase 2: Add New Protocol Support
|
||||||
|
|
||||||
|
1. Implement eSSP for NV200 support
|
||||||
|
2. Add ESC/POS for universal printer support
|
||||||
|
3. Integrate libnfc for NFC readers
|
||||||
|
|
||||||
|
### Phase 3: Hardware Validation
|
||||||
|
|
||||||
|
1. Create NixOS hardware test image
|
||||||
|
2. Validate all components on CM5
|
||||||
|
3. Document any quirks or workarounds
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Vendor Contacts
|
||||||
|
|
||||||
|
| Component | Vendor | Contact |
|
||||||
|
|-----------|--------|---------|
|
||||||
|
| Bill Validators | Innovative Technology | sales@innovative-technology.com |
|
||||||
|
| Bill Validators | MEI (Crane) | info@cranepi.com |
|
||||||
|
| Bill Dispensers | Puloon Technology | sales@puloon.com |
|
||||||
|
| Displays | Elo Touch | sales@elotouch.com |
|
||||||
|
| Displays | Waveshare | service@waveshare.com |
|
||||||
|
| Compute | Raspberry Pi | For bulk: sales@raspberrypi.com |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Related Notes
|
||||||
|
|
||||||
|
- [[modernization-plan]] - Overall modernization roadmap
|
||||||
|
- [[machine-ui-modernization]] - Vue 3 + Tauri migration
|
||||||
|
- [[lnbits-integration]] - Lightning backend integration
|
||||||
|
- [[NixOS Configuration]] - Production deployment
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
- [ITL NV200 Datasheet](https://innovative-technology.com/products/nv200/)
|
||||||
|
- [eSSP Protocol Guide](https://github.com/paysyslabs/ssp-server/wiki)
|
||||||
|
- [Raspberry Pi CM5 Documentation](https://www.raspberrypi.com/documentation/computers/compute-module.html)
|
||||||
|
- [libnfc Documentation](http://nfc-tools.org/index.php/Libnfc)
|
||||||
|
- [ESC/POS Command Reference](https://reference.epson-biz.com/modules/ref_escpos/index.php)
|
||||||
|
|
@ -516,6 +516,7 @@ test('user can complete transaction', async ({ page }) => {
|
||||||
- [[CLAUDE]] - Claude Code guidance
|
- [[CLAUDE]] - Claude Code guidance
|
||||||
- [[admin-ui-modernization]] - Vue 3 migration for admin dashboard
|
- [[admin-ui-modernization]] - Vue 3 migration for admin dashboard
|
||||||
- [[machine-ui-modernization]] - Vue 3 migration for kiosk UI
|
- [[machine-ui-modernization]] - Vue 3 migration for kiosk UI
|
||||||
|
- [[hardware-recommendations]] - Hardware component recommendations
|
||||||
- [[membership-lightning-integration]] - Membership & LNbits feature
|
- [[membership-lightning-integration]] - Membership & LNbits feature
|
||||||
- [[lnbits-integration]] - Lightning backend integration
|
- [[lnbits-integration]] - Lightning backend integration
|
||||||
- [[Architecture Decision Records]] - ADRs for each decision
|
- [[Architecture Decision Records]] - ADRs for each decision
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue