Hardware
PETLIBRO Granary PLAF103
The 5 L Granary feeder is the model Wellfed is built on. Every Wellfed feature is developed and tested on one PLAF103 on our bench. This page says how to recognize one, what is inside, and what works.
Sold as#
PETLIBRO Granary automatic feeder, 5 L, model PLAF103, with FCC ID 2A3DEPLAF103S. It shipped with stock firmware 1.1.15 on our unit.
How to identify it#
- Model and FCC ID: PLAF103 and 2A3DEPLAF103S, on the label.
- Board: the FCC internal photos show a board marked
PLAF103 MB V1.0. Our unit's PCB revision has not been established, so compare the markings on your own board. - Flash ID: over UART the flash reports
C8 40 17.
SoC and flash#
| Part | What it is |
|---|---|
| SoC | Realtek RTL8721DM (AmebaD) |
| Flash | GigaDevice GD25Q64ESIG, 64 Mbit (8 MiB) SPI NOR (datasheet) |
| Motor driver | TC118AH single-channel H-bridge, U7, beside CON3 (motor driver) |
| Console | Three-hole CON5 header: RX, TX, GND (UART) |
The board page maps every SoC pin the feeder uses.
UART access#
The console is a 3.3 V UART at 115200 baud, 8N1, on CON5. To enter the ROM's download mode, you hold the feeder's TX line low through a 4.7 kΩ resistor while you power it on. The UART page has the wiring and steps, and the relay bench automates them.
Recovery#
You can read the whole 8 MiB flash over UART, and repeated reads match. A pinned writer has restored stock 1.1.15 to bank 1 and booted it. It only accepts our unit's exact images, so it is not a general installer. Full-bank restores and recovery from a power cut mid-write are unverified. See recovery and the flash layout.
Most owners never need UART. Wellfed installs over stock's own updater and can go back to stock over the air; see consumer installation.
Status#
What works on the PLAF103 by hardware block. The Stock column summarizes stock 1.1.15's behavior. The project-wide view is the roadmap.
| Block | Stock 1.1.15 | Wellfed | Notes |
|---|---|---|---|
| Console, loader and backups | ROM loader over UART | Works | |
| Startup and build identity | — | Works | Starts with the motor stopped and reports its build. |
| Flash, journal and settings | Factory loader picks the bank | Works | See flash layout. |
| Stop timer and watchdog | — | Works | |
| Clock and time zones | Synced by the cloud | Partial | Needs a time source after each power-up. Offline time is experimental. |
| Wi-Fi | Cloud MQTT | Works | DHCP-server loss and lease expiry are untested. |
| Local device API | None | Works | See device API. |
| Bluetooth LE | Wi-Fi and broker setup | Works | Setup and pairing. |
| Updates and boot recovery | Own updater, no rollback (requirements) | Works | Signed updates with rollback, and both ways between stock and Wellfed. |
| Motor and feeding | Yes | Works | Supervised, and a power cut never repeats a feed. Calibration and jam handling are experimental. |
| Food, outlet and feedback sensors | Yes | Works | Read on hardware. The food-level feature is not built. |
| Power and battery | Yes | Partial | Power source and battery voltage read. Battery transitions and brownout are experimental. |
| Buttons and child lock | Yes (stock) | Works | The reset button forgets paired clients but keeps settings for now. |
| Indicators | Yes | Partial | Each LED lights. The service that drives them waits for a bench check. |
| Speaker | Yes | Works | Which sounds play when is not settled. |
| Schedules | Yes (stock) | Not started | |
| Home Assistant | Through the vendor cloud | Not started | Paused. |
A Works entry holds for our unit and the builds we tested. It is not a general reliability claim; see evidence levels.
Notes#
- Every finding comes from one research unit. Compare your own board before trusting a pin or an offset.
- There is no schematic and no complete connector pinout. The routes from the SoC to the motor driver are not traced.
- Unknown flash ranges are not free space.
Pages#
| Topic | Page |
|---|---|
| Signal map and connectors | Board, chip pin table |
| Motor driver and electrical checks | Motor driver |
| Console and loader entry | UART |
| Flash layout and boot | Flash layout |
| Backup and recovery | Recovery |
| Relay bench automation | Bench |
| Stock 1.1.15 behavior and protocol | Stock firmware, stock OTA requirements |
Machine-readable device data lives in src/firmware/devices/plaf103/.
Evidence#
- Observed: board photographs of the research unit identify the RTL8721DM and the GD25Q64ESIG. UART reports flash ID
C8 40 17, which matches the GD25Q64E's nominal 8 MiB. Two separately acquired 8 MiB reads matched. - External: the FCC internal-photo exhibit is a comparison reference only. The research unit's own PCB revision is not established.
- Status table: each Works and Partial entry was accepted on the research unit for the exact images tested, October 2026. The roadmap carries the current summary.