Skip to content

Add 1209:4665 ferros (Nick Spiker) - #1208

Open
nickspiker wants to merge 1 commit into
pidcodes:masterfrom
nickspiker:add-ferros-1209-4665
Open

Add 1209:4665 ferros (Nick Spiker)#1208
nickspiker wants to merge 1 commit into
pidcodes:masterfrom
nickspiker:add-ferros-1209-4665

Conversation

@nickspiker

Copy link
Copy Markdown

Adds:

  • org/nickspiker/ — organization page
  • 1209/4665/ — ferros (open-source mobile OS in Rust)

ferros is licensed under Apache-2.0, with the LICENSE file in the source repository.

PID 0x4665 is the ASCII encoding of "Fe" — the chemical symbol for iron, etymological root of the project name, and a human-readable identifier in USB descriptor hex dumps.

nickspiker added a commit to nickspiker/pipe that referenced this pull request Jun 17, 2026
pid.codes PR #1208 (pidcodes/pidcodes.github.com#1208)
assigns 1209:4665 to ferros. Bridge firmware now enumerates as that pair
instead of the 1209:000c generic test PID.

Confirmed on device:
  $ lsusb | grep 1209
  Bus 001 Device 010: ID 1209:4665 Generic pipe-bridge-rp2040

ferros_hal_m1 still spoofs 0x1838:0xFE01 (Samsung VID) for Pixel 8 / M1
fastboot compatibility — that's a separate question (whether to use a
ferros-owned PID once nothing relies on the Samsung-spoof anymore).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@cnlohr

cnlohr commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

I really don't quite understand what this is. For a project to be eligible for a PID code, it needs to have a embodiment. For instance schematic + board files, or if a commercial board custom firmware is loaded on an actual board.

@nickspiker

Copy link
Copy Markdown
Author

The embodiment is custom firmware on a real board. ferros is a bare-metal OS (Rust, no Android/Linux underneath) and it brings up the SoC's USB device controller itself and enumerates as a vendor-specific bulk device for its host tooling.

It's currently running on a Pixel 8 Pro (Tensor G3) today. lsusb -v from a machine it's plugged into right now:

Bus 003 Device 012: ID 1209:4665 Nick Spiker ferros
Negotiated speed: High Speed (480Mbps)
bDeviceClass 255 Vendor Specific idVendor 0x1209 idProduct 0x4665
iManufacturer "Nick Spiker" iProduct "ferros"
Interface: Vendor Specific, 2 bulk endpoints (0x01 OUT, 0x81 IN)

The USB device stack is open (Apache-2.0), in Rust — the descriptor definitions and DWC3 device-mode driver are in the repo; happy to link the exact files. So it's "commercial board + custom firmware that enumerates," per the eligibility note. Let me know if you'd like anything else like a full descriptor tree, the driver source, or a photo of the device enumerated.

@cnlohr

cnlohr commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator

To clarify I meant it needs to have a hardware embodiment. It sounds like your embodiment is a Pixel 8 Pro?

And your software is the kernel and stack for the phone?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants