Skip to content

Support for observer-a#2493

Draft
evan-oxide wants to merge 14 commits intomasterfrom
observer-app
Draft

Support for observer-a#2493
evan-oxide wants to merge 14 commits intomasterfrom
observer-app

Conversation

@evan-oxide
Copy link
Copy Markdown
Contributor

@evan-oxide evan-oxide commented Apr 30, 2026

This creates a draft observer app in preparation for bringup. Issue: #2409

@evan-oxide evan-oxide requested a review from mkeeter April 30, 2026 14:27
@evan-oxide evan-oxide added the Observer PSC + 5.5 kW fun. label Apr 30, 2026
Comment thread app/observer/base.toml Outdated
description = "FRU ID EEPROM"
refdes = "U27"

# TODO is this the same part number as for the PSC?
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After checking with Ian, it isn't the same part number – Observer is using MWOCP67-5500-B-RM.

We should delete all of the PSU stuff from the manifest for now, and leave a comment to the effect of

# TODO add rectifiers (once we have their SMBus spec)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That breaks PSU_PMBUS_DEVS in psc-seq-server/src/main.rs and I don't see an obvious clean way to fix it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not exactly clean, but I ripped all the pmbus stuff out of the psc-seq-server so that it compiles without the rectifier config in base.toml. That commit breaks the original PSC and should obviously not be merged, but hopefully it will let us test other features of psc-seq-server without using pmbus.

Comment thread task/power/src/bsp/observer_a.rs
Comment thread task/sensor-polling/src/main.rs
Comment thread task/net/src/bsp/observer_a.rs Outdated
Co-authored-by: Matt Keeter <matt@oxide.computer>
Comment thread drv/psc-seq-server/src/main.rs Outdated
@mkeeter
Copy link
Copy Markdown
Collaborator

mkeeter commented Apr 30, 2026

@evan-oxide can you also add this to the set of boards built in CI?

Comment thread app/observer/src/main.rs Outdated
Comment on lines +48 to +53
// Enable the pullups.
#[rustfmt::skip]
p.GPIOG.pupdr.modify(|_, w| w
.pupdr0().pull_up()
.pupdr1().pull_up()
.pupdr2().pull_up());
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mkeeter do we still need to do this now that we have external pull ups/downs on the board as appropriate? For context Evan, I think this may be vestigial from early Gimlet revs where we had pull-downs in place, but no option for an external pull-up. So we would DNI the pull-down and allow the internal pull-ups to charge the pin.

Image

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I think we can skip this part of pin configuration. The "how long to wait" is copy-pasted from board to board, so it could also be revisited (but I'm also fine leaving it be).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we remove the wait entirely? It doesn't seem necessary if there are external pullups/downs. Maybe it could matter if the pin was previously configured as an output and driven in the opposite direction as the pullup...

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed the wait and the pullups.

Otherwise it doesn't compile now that we removed the rectifier pmbus config from
base.toml. The PR should definitely not be merged with this commit, it will
break the existing PSC.
Copy link
Copy Markdown
Collaborator

@labbott labbott left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the EEs are satisfied with initial bring up I vote to merge so we aren't carrying a branch

Comment thread app/observer/src/main.rs
Comment on lines +32 to +36
// board. On rev A, these pins are left floating; on later revisions, they
// are pulled either high or low.
//
// This code matches that in gimlet/src/main.rs; see detailed comments over
// there about how times were calculated.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Most of this comment is outdated now!

i2c_config::pmbus::v54_psu4,
i2c_config::pmbus::v54_psu5,
// The Observer numbers its notification bits starting at 0 instead of 1
#[cfg(target_board = "observer-a")]
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a bunch of changes in this file which would break the PSC, so we can't merge as-is. Since we're using a new rectifier, it will probably be different enough to warrant a new server – want to make an observer-seq-server to float these changes while waiting for the SMBus specs?

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

Labels

Observer PSC + 5.5 kW fun.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants