Skip to content

Add Kobo Nia N306 support - #45

Open
DrWhax wants to merge 4 commits into
BandarLabs:mainfrom
DrWhax:port/kobo-nia-n306
Open

Add Kobo Nia N306 support#45
DrWhax wants to merge 4 commits into
BandarLabs:mainfrom
DrWhax:port/kobo-nia-n306

Conversation

@DrWhax

@DrWhax DrWhax commented Aug 23, 2026

Copy link
Copy Markdown

I ported it to my Kobo Nia and I tested it on the device itself. It works well!

Let me know if any changes would need to be made.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@abhishek-anand

Copy link
Copy Markdown
Contributor

Hi @DrWhax thanks for contributing this! We do not own this device so it helps if you can attach a video/gif of the Nia running Cobalt while I review and send comments. Once the reviews are taken care of would be happy to merge it for the Nia audience. Thanks again for your help.

Here are examples of how other contributors have done so in their PRs #43 (comment) #26 (comment)

@abhishek-anand

Copy link
Copy Markdown
Contributor

In the meantime, the automated code review agent gave this feedback -

  1. Keep  write_ready: false  for now. Per  docs/PORTING.md , enabling writes requires a reviewed evidence block on the porting issue, linked from this PR: tested commit and exact identity, complete doctor output, all four attended display stages, physical touch plus an end-to-end tap, guardian restoration, clean return to Nickel, sandbox results, and known gaps. Please change the Nia profile test to expect  ReadOnlyMatched  with  WRITE_EVIDENCE_PENDING , and mark the  docs/DEVICES.md  row as pending. A short video helps with orientation and interaction, but it does not replace the command output.
  2. Please attach the sandbox evidence. The paragraph added to  docs/DEVICES.md  claims UID/GID 65534, a private  /tmp/kobo-app-*  root, nonzero  TracerPid , guardian restoration, and clean cleanup, but there is no reviewable log behind those claims. The Nia’s 4.1 kernel uses the ptrace path, so this evidence is required.
  3. Address the MXCFB completion wait. KOReader marks the Nia ( KoboLuna ) as having an unreliable MXCFB wait, and FBInk sets  unreliableWaitFor  for device
  4. Cobalt currently waits after every frame. The new  key_press_feedback: false  change only skips the two decorative keyboard refreshes; it does not address a stalled completion ioctl and adds a broader profile/UI change. Please either implement a Nia-safe wait strategy or attach sustained timing evidence from a few hundred refreshes showing no multi-second stalls. Keep or remove the keyboard workaround based on those measurements.
  5. Bound the hardware revision. The Nia has a BD71828 revision under the same device code. Please record the relevant hwconfig revision fields from this unit, including the PCB level as the tool names it,  PMIC , and  FL_PWM . Under known gaps, state whether the current serial-prefix, firmware, and kernel gate excludes the untested revision. If it does not, the profile must remain pending for that broader identity.
  6. Do not add a pending Nia to README, SDK, installation, or website lists that describe fully supported devices. While  write_ready  is false, only add a clearly marked pending row in  docs/DEVICES.md ; an optional read-only candidate probe in  docs/PORTING.md  is fine if labelled as such. Update all public supported-device lists only in the later commit that enables  write_ready  after evidence review.
  7. Make  hal_owned_smoke_regions_are_bounded_on_every_registered_panel  iterate  SUPPORTED_PROFILES , rather than extending another hardcoded array. In  kobo-tap , add an exact-identity Nia test proving synthetic touch is still rejected by  WRITE_EVIDENCE_PENDING . Change that to the positive Elipsa-style test only when the evidence is accepted and  write_ready  becomes true.

@DrWhax

DrWhax commented Aug 23, 2026

Copy link
Copy Markdown
Author

Video of Cobalt working: https://jurrevanbergen.nl/kobo.mp4

I'll look at the agent comments!

@DrWhax

DrWhax commented Aug 23, 2026

Copy link
Copy Markdown
Author

My Kobo Nia is:

PCB='E60U20'
PCB_REV=0x10
PCB_LVL='A'
PMIC='RC5T619'
FL_PWM='LM3630x1a'

@DrWhax

DrWhax commented Aug 23, 2026

Copy link
Copy Markdown
Author

OK, I've worked on some of the suggestions by your agent.

@abhishek-anand

abhishek-anand commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Thanks for this! The last commit in the PR might have over deleted docs. It removed the pending DEVICES.md matrix row and the paragraph disclosing that the identity gate does not exclude the untested BD71828 hardware revision.

We have recently merged another PR, can you please rebase to resolve conflicts. The Nia profile must be re-expressed in the new derived-geometry/ PanelPose  structure, and the wait bypass integrated with  refresh_timed.

We can merge after that. Thanks again for all your help.

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