Module 1: Bill Validation, Transport & Neutralization Architecture
| Document ID | Revision | Date | Owner | Status |
|---|
| MR-ENG-M1-001 | A | 2026-09-13 | Hardware Engineering — Bill Handling | Released for review |
1.1 Purpose and Scope
This document specifies the design of Money Roll Module 1: the banknote acceptance, counterfeit detection, mechanical transport, cassette storage, anti-tamper sensing, and dye-pack neutralization subsystems. It covers component selection, wiring, timing budgets, mechanical tolerances, and verification procedures. It interfaces with Module 3 (enclosure), Module 4 (electrical), and Module 5 (firmware/Stellar) which are documented separately.
1.2 COTS Bill Validator Trade Study
Four commercial-off-the-shelf (COTS) validators were evaluated against counterfeit detection depth, throughput, host interface flexibility, reliability, and unit price at qualification-lot volumes (250 units).
| Candidate | Optical | IR | Magnetic | UV | Throughput | Interfaces | Stacker | MTBF (notes) | Unit Price (250-lot) |
|---|
| Pyramid Technologies Apex 7000 | Yes, full-note CIS array | Yes | Yes | Yes | ~1 s/note accept decision | ID-003 (RS-232/TTL), pulse, MDB | 1,000-note internal stacker option | 1,000,000+ | $410 |
| MEI/CPI Cashflow SC Advance | Yes | Yes | Yes | Yes | ~1.2 s/note | ccTalk, MDB, RS-232 | 800-note (external) | 900,000 | $520 |
| ICT XBA-13 | Yes | Yes | No (optional module) | Yes | ~1.5 s/note | ID-003, pulse | 600-note (external) | 600,000 | $340 |
| JCM iVIZION | Yes, high-res multi-CIS | Yes | Yes | Yes | ~0.9 s/note | ID-003, USB, pulse | 1,000-note | 1,200,000 | $690 |
1.2.1 Selection Rationale
The Pyramid Apex 7000 is selected as the primary validator.
- It supports 4-way (any orientation, any face) note insertion, which reduces customer friction and repeat-insertion jams versus the ICT XBA-13's 2-way requirement.
- It offers a factory 1,000-note internal stacker option that mates directly to the Money Roll steel cassette without an intermediate transfer stage, eliminating a jam-prone hand-off present in the MEI SC Advance's external-stacker configuration.
- Native ID-003 serial interface with documented pulse and MDB fallback gives Module 5 firmware a stable, well-documented protocol without a ccTalk bus master.
- Price/performance is materially better than the JCM iVIZION for equivalent detection channel coverage (optical CIS, IR transmissive/reflective, magnetic ink sensing, UV fluorescence).
- MTBF and field support history are acceptable for unattended kiosk duty cycles (estimated 15,000 notes/month per unit).
The MEI Cashflow SC Advance is retained as the qualified second source; ICT XBA-13 is disqualified for lacking native magnetic detection; JCM iVIZION is reserved for high-fraud-risk deployment zones where the incremental cost is justified.
1.2.2 Apex 7000 Reference Specifications
| Parameter | Value |
|---|
| Model | Pyramid Technologies Apex 7000 |
| Note insertion | 4-way |
| Acceptance decision time | approx. 1 s |
| Stacker capacity | 1,000 notes (internal, optional) |
| Host interfaces | ID-003 serial (TTL, 9600 8E1), pulse, MDB Level 3 |
| Power | 12 V DC nominal, 1.5 A peak (motor stall/stack cycle), 250 mA idle |
| Dimensions (W x H x D) | 88.5 mm x 108 mm x 216 mm |
| Bezel opening | 156 mm x 4 mm slot, per manufacturer bezel kit |
| Operating temperature | 0 C to 50 C |
1.3 Host Interface Decision
Decision: ID-003 serial protocol, TTL levels, 9600 baud, 8 data bits, even parity, 1 stop bit (8E1), optoisolated at the carrier board boundary.
ccTalk is retained as a firmware-configurable alternative (Module 5 exposes a validator.protocol config key of id003 or cctalk) in case a second-source validator ships only with a ccTalk stack, but ID-003 is the shipped default because it maps cleanly to a UART peripheral on the STM32F407 without a bus-arbitration layer.
1.3.1 Wiring Table — Validator Connector to Carrier Board
| Validator Connector Pin (Apex 7000 J1, 6-pin) | Signal | Carrier Board J-Connector Pin | Notes |
|---|
| 1 | +12 V DC | J4-1 | Fused 2 A, from Module 4 12 V rail |
| 2 | GND (power) | J4-2 | Common return, star-grounded |
| 3 | ID-003 TXD (validator to host) | J4-3 | Through optoisolator U12 (Sharp PC817) to STM32 USART3_RX |
| 4 | ID-003 RXD (host to validator) | J4-4 | Through optoisolator U13 to STM32 USART3_TX via open-collector driver |
| 5 | Signal GND | J4-5 | Isolated ground reference for opto stage, not tied to chassis |
| 6 | Inhibit / enable (pulled low to inhibit accept) | J4-6 | Driven by STM32 GPIO through opto U14, active-low |
WARNING: Do not bond validator signal ground (pin 5) to chassis ground. The optoisolation boundary exists to prevent a dye-pack discharge transient or cassette-bay tamper event from coupling into the validator UART. Verify isolation resistance greater than 10 MOhm between signal GND and chassis GND at incoming inspection.
1.3.2 Escrow / Stack / Return Sequence
HOST (STM32) VALIDATOR (Apex 7000)
|--- Poll status (every 100 ms) ----->|
|<-------- IDLE -----------------------|
| | [Note inserted by customer]
|<---- ESCROW: note present, denom -----| (decision <= 1 s from insertion)
|---- Evaluate denom, session limits -->|
|---- STACK command ------------------->|
| | [Transport to cassette, <= 2 s]
|<---- STACKED (ack) -------------------|
|---- Credit ledger, trigger Module 5 ->|
| |
| (alternate path) |
|<---- ESCROW: reject / suspect --------|
|---- RETURN command ------------------>|
| | [Note returned to bezel]
|<---- RETURNED (ack) ------------------|
1.3.3 Timing Budget
| Event | Budget |
|---|
| Status poll interval | 100 ms |
| Escrow decision (insert to accept/reject) | <= 1 s |
| Stack cycle (escrow to cassette-stacked ack) | <= 2 s |
| Return cycle (escrow to bezel-returned ack) | <= 1.5 s |
| Total worst-case accepted-note cycle | <= 3.5 s |
| Watchdog timeout on stalled note | 5 s, triggers jam-clear routine |
1.4 Denomination Table
All US Federal Reserve Notes share the 156 x 66.3 mm note dimension across all series validated by the Apex 7000.
| Denomination | Series Range Supported | Dimensions | Security Features Checked | Detection Channel | Common Reject Reasons |
|---|
| $1 | 2009-2021 | 156 x 66.3 mm | Optical portrait/microprint pattern | Optical (CIS) | Excessive wear, torn corner, folded/creased beyond threshold |
| $5 | 2006-2020 (large-portrait) | 156 x 66.3 mm | Watermark, security thread position | IR transmissive | Watermark absent or misregistered |
| $10 | 2006-2017 | 156 x 66.3 mm | Color-shifting ink numeral, UV thread glow (orange) | UV fluorescence | No UV thread response, counterfeit paper stock |
| $20 | 2004-2017 | 156 x 66.3 mm | Color-shifting ink, watermark, IR-dark ink pattern | IR + Optical | Photocopy (uniform IR reflectance), missing color-shift |
| $50 | 2004-2017 | 156 x 66.3 mm | Watermark, security thread (yellow UV), magnetic ink on seal/serial | Magnetic + UV | Magnetic signature absent (bleached-and-reprinted note) |
| $100 | 2009-2013 series (motion thread) | 156 x 66.3 mm | 3D security ribbon, color-shifting bell/inkwell, magnetic ink | Optical + Magnetic + IR | Ribbon not detected optically, magnetic ink mismatch, most-counterfeited denomination — flagged for enhanced scrutiny threshold |
1.5 Mechanical Transport
1.5.1 Bezel Alignment
| Parameter | Tolerance |
|---|
| Lateral alignment, bezel slot centerline to Apex 7000 insertion path | +/- 0.5 mm |
| Angular alignment, bezel slot to insertion path | +/- 1 deg |
| Bezel-to-validator standoff gap | 2 mm +/- 0.3 mm, foam gasket seal against dust ingress |
Bezel alignment is fixtured at assembly using a go/no-go alignment gauge (Module 3 fixture MR-FIX-014) prior to fastening the validator bracket with four M4 x 12 mm screws, thread-locked (Loctite 243).
1.5.2 Motorized Roll Transport to Cassette
| Component | Specification |
|---|
| Drive motor | NEMA 17 stepper, 1.8 deg/step, 0.4 N.m holding torque (e.g., StepperOnline 17HS4401) |
| Driver | TMC2209, UART mode, 1/16 microstepping, StallGuard for jam detection |
| Roller material | Silicone, 60 Shore A, 20 mm diameter |
| Note path | Dual-guide rail, 156 mm width channel, anti-static coated polycarbonate |
| Transport speed | 200 mm/s nominal |
| Jam detection | StallGuard load threshold plus optical note-present sensor at cassette throat |
1.5.3 Cassette
| Parameter | Specification |
|---|
| Material | 1.5 mm cold-rolled steel, powder-coated |
| Lock | Abloy Protec2 CLIQ-compatible cam lock |
| Capacity | 1,000 notes |
| Removal mechanism | Sliding rail (100 mm travel), spring-loaded detent |
| Presence detection | Micro-switch on rail end-of-travel (Omron D2F-01L) |
| Identity | Passive RFID tag (NXP NTAG213), read by carrier-board RFID reader at seating, bound to cassette serial number in fleet database |
1.6 Anti-Tamper Subsystem
1.6.1 Sensor List
| Sensor | Location | Function | Key Parameters |
|---|
| Omron D2F-01L micro-switch | Front door | Door-open detection | SPDT, 0.1 A contact rating |
| Omron D2F-01L micro-switch | Rear service door | Door-open detection | SPDT, 0.1 A contact rating |
| Omron D2F-01L micro-switch | Cassette bay | Cassette-seated detection | SPDT, 0.1 A contact rating |
| Omron EE-SX671 photomicrosensor (beam-break) | Across cassette bay opening | Physical intrusion / forced-extraction detection | Slot width 5 mm, transmissive type |
| STMicroelectronics LSM6DSO IMU | Mounted to main chassis frame near cassette bay | Tilt / removal-in-progress detection | Accelerometer + gyroscope, I2C to STM32F407 |
1.6.2 IMU Thresholds
| Parameter | Threshold |
|---|
| Acceleration trigger | 250 mg sustained |
| Tilt angle trigger | 15 deg from installed reference orientation |
| Persistence required before alert | 5 s continuous exceedance |
1.6.3 Fault Tree (Simplified)
[ ALERT CONDITION ]
|
-----------------------------------------------------------
| | | |
Front door open Rear door open Cassette bay IMU exceeds
while ARMED while ARMED beam broken tilt/accel
OR cassette thresholds for
removed w/o >= 5 s while
2FA disarm ARMED
| | | |
-----------------------------------------------------------
|
[ Any single condition TRUE ]
|
Fire dye-pack trigger (Module 4)
Log event with timestamp, sensor ID
Transition state machine to FIRED
1.6.4 Arming State Machine
+-----------+ technician arms +---------+
| DISARMED | --------------------> | ARMED |
+-----------+ (after service) +---------+
^ |
| 2FA disarm | any tamper condition
| (technician + fleet auth) v
| +---------+
+----------------------------- | ALERT |
+---------+
| |
confirmed genuine | | condition persists
(false trigger) | | past grace period
v v
+------+ +-------+
| SAFE | | FIRED |
+------+ +-------+
| State | Description |
|---|
| DISARMED | Service access permitted, no tamper monitoring, dye trigger inhibited at Module 4 relay |
| ARMED | Normal customer-facing operation, all sensors active |
| ALERT | Condition detected, 3 s grace timer running to allow false-trigger cancellation |
| FIRED | Dye-pack triggered, cassette permanently marked, requires factory reset/replacement |
| SAFE | Alert cancelled by verified technician action within grace period, returns to ARMED |
1.6.5 False-Trigger Mitigations
- Armored-transit mode: before scheduled cash pickup, the technician places the unit in armored-transit mode via the on-screen service menu (Module 6, Part C) which extends the ALERT grace period to 30 s and requires simultaneous door-open plus beam-break to fire, accommodating expected door and cassette motion during a supervised swap.
- Technician disarm with 2FA: disarming requires (a) a physical service key in the rear door lock cylinder and (b) a time-limited PIN issued by the fleet management backend and entered on the service menu, confirmed against a server-side one-time token.
- Debounce of 250 ms on all micro-switch inputs to reject mechanical contact bounce.
- IMU 5-second persistence requirement filters transient shocks from nearby construction, foot traffic, or vehicle impact against the enclosure.
1.6.6 Event Logging
All state transitions, sensor triggers, and disarm actions are logged locally to an append-only SQLite journal on the encrypted data partition and forwarded over the fleet MQTT channel (see Module 6, Part C) with monotonic sequence numbers to detect log tampering. Each log entry contains: UTC timestamp, sensor ID, state transition, operator ID (if applicable), and cassette RFID identity.
1.7 Dye-Pack Neutralization
1.7.1 Canister Options
| Option | Description | Regulatory Posture |
|---|
| Solenoid-actuated pressurized ink canister (default) | 60 ml sealed cartridge, 3M-type permanent dye ink, released by 12 V solenoid valve puncturing a foil seal under spring/gas pressure | Legal for cash-in-transit use in most US states; verify state-specific statutes before deployment |
| Pyrotechnic squib (alternative, not default) | Small pyrotechnic charge disperses dye and colored smoke, as used in bank dye-pack systems | Subject to ATF explosives regulations and DOT hazmat shipping classification; requires separate compliance program, not selected for baseline product |
Default selection: solenoid-actuated pressurized ink canister. This avoids explosives regulatory burden while still rendering stolen cash commercially unusable.
1.7.2 Ink Specification
| Parameter | Specification |
|---|
| Type | Permanent dye, red/violet (1-methylaminoanthraquinone-based, consistent with commercial bait-money dye systems) |
| Substrate bonding | Bonds permanently to cotton-linen currency paper fibers, resists solvent removal |
| Coverage requirement | Stains >= 10% of note surface area on >= 95% of notes in the cassette upon trigger |
| Cure time | Visible stain within 3 s, permanent bond within 60 s |
| Secondary marker | UV-fluorescent tracer co-dispersed for post-incident forensic verification |
1.7.3 Trigger Circuit Summary
The dye canister solenoid is driven from the Module 4 tamper-relay board, which receives an active-high FIRE signal from the STM32F407 GPIO only when the arming state machine (Section 1.6.4) reaches FIRED. The relay board includes a mechanical safety interlock (Section 1.7.4) and a capacitor-backed fire circuit so the trigger remains armed for 2 s after a mains power loss, preventing a thief from defeating the system by cutting power. Full driver schematic and component list are documented in Module 4.
1.7.4 Safety Interlocks
- WARNING: The dye-pack fire circuit is capable of discharge even with mains power disconnected due to the capacitor-backed reserve. Technicians must confirm DISARMED state on the service menu and observe the physical arm indicator LED (off) before opening the cassette bay.
- Mechanical safety pin interlock: a manual physical safety pin must be inserted into the canister carriage during any servicing, physically blocking solenoid plunger travel, independent of the electrical DISARMED state.
- Dual-condition fire logic: the FIRE signal requires both the state machine FIRED transition and a hardware AND-gate confirmation from the cassette-bay beam-break sensor, preventing a single-point electrical fault from firing the canister.
- Fire event is non-resettable in the field; a fired cassette must be returned for factory service and dye canister replacement.
1.7.5 Regulatory Notes
Use of ink-staining dye-pack currency protection during cash-in-transit and unattended cash handling is legal in most US states, consistent with long-standing bank dye-pack practice; however, operators must verify state-specific statutes (some states regulate placement of chemical deterrent devices in retail-accessible equipment) before deployment. Pyrotechnic dye-pack variants are explicitly out of scope for the baseline Money Roll product due to ATF explosives licensing and DOT hazmat transport classification; the solenoid ink canister is the shipped default for all markets.
1.8 Verification Test Matrix
| Test | Procedure | Pass Criterion |
|---|
| Counterfeit reject rate | Present 500 known-counterfeit test notes (Federal Reserve training note set, all denominations) across 4 orientations | >= 99.5% reject rate |
| Genuine-note false-reject rate | Present 2,000 genuine circulated notes across all denominations and 4 orientations | <= 1.0% false reject |
| Jam rate | Run 10,000-note continuous feed test at rated throughput | <= 0.05% jam rate |
| Dye coverage test | Load 50 test notes into cassette, trigger dye system in test fixture, measure stained area with calibrated imaging rig | >= 10% surface coverage on >= 95% of notes (47 of 50) |
| Drop test | Drop loaded cassette from 1 m onto concrete, 6 orientations | No unintended dye discharge, lock remains functional |
| Tilt test | Tilt full enclosure to 20 deg for 10 s while ARMED | Tamper event correctly triggers per Section 1.6.2 thresholds |
| Isolation test | Measure resistance across validator UART optoisolation boundary | >= 10 MOhm |
| Long-duration soak | 30-day continuous operation at 500 notes/day cycle | No firmware hangs, jam rate within spec, no false tamper triggers |