I've forked the project, rewritten in pure C (so, eliminate dependency from libstdc++) and made a package. You can find my fork in the 'forks' section of original project, with all the improvements applied
This is great! Congratulations
When I scan NFC, the name of the old network (before installing OpenWrt) appears. How can I set it up?
ESMT F50L1G41LB, MediaTek MT7531AE INT RD23
Start with forum search
Mentioned hardware is irrelevant in scope of nfc.
Have you tried it?
Is it a problem if it is an rd23 model and not an rd03?
Hello, I have an RD23 Ax3000t. Does the NFC chip work?
ESMT F50L1G41LB , MediaTek MT7531AE
Or should I install wifi, set wifi name and password, and then install opwrt? Currently opwrt is installed on 24.10.2
What problem?
Scripts do work perfectly for WPS on RD23 earliest release. Please ask in theread in place of branching out pointless “it does not work” threads/
Could you please also share ready built packages on your github page?
Now I have installed opwrt. I want to configure the NFC chip so that people who come to my house can easily connect to my wifi. Can you explain how to do it step by step?
opkg update && opkg install i2c-tools
What steps do I take after installing it?
I haven't tried to make it work. I don't have a xiomi
As I suspect. If the Xiaomi bootloader is installed, the initialization data is written to it and transferred to this program, even if you've flashed OpenWrt and changed all that data. If you rewrite the bootloader to OpenWrt, things might be different, but I've never tried this program because I have an iPhone, and judging by the description, it doesn't work with them. And to be completely honest, there's no need.
Thanks, I fixed it thanks to you, but will it work 25.12 version ?
Prebuilt package for OpenWrt 25.12, plus an optional URI record for iOS
A couple of things came out of getting this running on an AX3000T (RD03, ubootmod) on 25.12.5.
Prebuilt package
Built from klirichek's C fork against the 25.12 filogic SDK, for anyone who'd rather skip setting up a build root:
https://github.com/gokutou/xinfc/releases
One packaging gotcha on 25.12: PKG_RELEASE:=$(AUTORELEASE) produces a version string that apk mkpkg rejects if the Makefile isn't sitting inside a git checkout. Swapping in a literal release number fixes it.
Optional URI record
xinfc-wsc now takes an optional sixth argument. Give it and an NFC Forum URI record gets appended after the WSC record; leave it out and nothing changes. PR is open against klirichek's fork.
The reason for adding it: iOS never acts on the WSC record. Apple hasn't wired application/vnd.wfa.wsc into the background tag handler, so an iPhone tapping a Wi-Fi-only tag just does nothing. It does act on URI records though, so pointing one at a small page that hands over the password gives iPhone guests something that actually works.
Usage looks like this:
xinfc-wsc 0 0x57 SSID 'Password' sae-mixed 'https://sample.site'
A minimal companion page
To have something to point that URI at, I put up a tiny static page:
https://gokutou.github.io/wifi/#s=SSIDUrlencoded&p=PasswordUrlencoded
SSID and password go in after the #, so they're read entirely client-side and never sent as a request — nothing to log on GitHub's end. Android users never see it, since tapping the tag brings up the native join prompt directly; it's there purely as the iOS fallback.
Findings that may save someone time
Record order matters: WSC first keeps Android's join prompt working, putting the URI first loses it. iOS reads the whole message regardless, so it still finds the URI in second position — both platforms end up working off the same tag.
Only http/https schemes actually do anything. Both WIFI:S:…;T:WPA;P:…;; and data:text/plain,… get read by the phone but produce "no usable data" — the background handler just doesn't act on those schemes.
Worth keeping in mind for space: the chip on the AX3000T holds 160 bytes of NDEF. A typical Wi-Fi record runs around 90 bytes, so there's room for a short URL alongside it, but not much more.