Code Monkey home page Code Monkey logo

arduino-aime-reader's Introduction

Arduino-Aime-Reader

使用 Arduino + PN532 制作的 Aime 兼容读卡器。

  • 支持卡片类型: FeliCa(Amusement IC、Suica、八达通等)和 MIFARE(Aime,Banapassport)
  • 逻辑实现是通过对官方读卡器串口数据进行分析猜测出来的,并非逆向,不保证正确实现
  • 通信数据格式参考了 Segatools 和官方读卡器抓包数据,可在 Example.txtnfc.txt 查看
  • 定制使用例(主要的开发测试环境):ESP32-CardReader

使用方法:

  1. 按照 PN532Aime_Reader_PN532 的提示安装库
  2. 按照使用方式,在 Arduino 和 PN532 接好连接线(I2C 或 SPI 或 HSU),并调整 PN532 上的拨码开关
  3. 接上 WS2812B 灯条(可选,不会影响正常读卡功能)
  4. 上传 ReaderTest 测试硬件是否工作正常
  5. 若读卡正常,可按照游戏支持列表打开设备管理器设置 COM 端口号
  6. 按照游戏的波特率设置代码的high_baudrate选项,115200true38400false
  7. 如果有使用 Segatools,参考 segatools.ini 设置教程 关闭 Aime 模拟功能
  8. 上传程序打开游戏测试

如果需要自定义 Aime 卡,安装 MifareClassicTool 或其他同样效果的软件,修改 Aime 卡示例 后写入空白 MIFARE UID/CUID 卡,即可刷卡使用。
关于自定义 Aime 卡的写入和读取问题,请参考 SAK(88->08) 的讨论。

某些 Arduino 可能需要在游戏主程序连接前,给串口以正确的波特率发送 DTR/RTS;可以先打开一次 Arduino 串口监视器再启动游戏程序。

支持游戏列表:

代号 默认 COM 号 支持的卡 默认波特率
SDDT/SDEZ COM1 FeliCa,MIFARE 115200
SDEY COM2 MIFARE 38400
SDHD COM4 FeliCa,MIFARE cvt=38400,sp=115200
SBZV/SDDF COM10 FeliCa,MIFARE 38400
SDBT COM12 FeliCa,MIFARE 38400
  • 如果读卡器没有正常工作,可以切换波特率试下
  • 有使用 amdaemon 的,可以参考 config_common.json 内 aime > unit > port 确认端口号
    如果 "high_baudrate" : true 则波特率是115200,否则就是38400
  • 在游戏和服务器支持的情况下,本读卡器程序可正常使用 emoney 端末认证和刷卡支付功能

开发板适配情况:

开发板名 主控 备注
SparkFun Pro Micro ATmega32U4 需要发送 DTR/RTS
NodeMCU 1.0 ESP-12E + CH340
NodeMCU-32S ESP32-S + CH340 主要适配环境
Arduino Uno ATmega328P + CH340 未实际测试,据反馈不可用

已知问题:

  • 默认未启用 FeliCa 读写功能,仅在 CMD_CARD_DETECT 时读取 IDm 和 PMm,该设置可以通过 SKIP_FeliCa_THROUGH 控制
  • 如果启用 FeliCa 读写功能,某些游戏可能不支持所有 FeliCa 卡种类,和官方读卡器 837-15286 行为一致
  • 因为 PN532 库支持的问题,未实现多卡同时读取,只会读到最先识别的卡片;刷不正确的 MIFARE 卡片(如交通卡、模拟卡)会导致游戏状态异常
  • 对于未适配的命令,默认回复 STATUS_INVALID_COMMAND,可能会导致游戏认为读卡器不可用
  • 如果遇到问题可以回滚到稳定的 v1.0 版本

引用库:

arduino-aime-reader's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

arduino-aime-reader's Issues

SDDT aic闪退

请问我们这边有少量aic卡(蓝白aic和konami红白aic都有)打完一首歌后在SDDT中点击继续下一首时必定闪退可能是什么问题,如果只玩一首后直接结束则不会。经测试这些aic卡片在在线和本地aqua中刷卡都会有这种问题。附上日志

SET TIMEOUT :0 Port:1 Unit:-1 PL:2
22/03/06 17:19:37 AimeLog Result:0
22/03/06 17:19:37 startSendAimeLog result:0
s_pAiMeDB threadFlag :0000016DC39A7914
m_pTCPSock Adr:0000016DC376E290
AiMeDB: Thread Start
s_pAiMeDBClient Adr:0000016DC39CA590
resolving : aime.naominet.jp
22/03/06 17:19:37 getaddr start!!
resolved : 8.210.94.234
AimeLogSend ThreadFunc
AimeLogSend
WSA LastErr:10035
.WSA LastErr:10037
.WSA LastErr:10037
.WSA LastErr:10037
.WSA LastErr:10037
.WSA LastErr:10037
..........
AimeLogSend Result=0
22/03/06 17:19:37 ALIVE THREAD:1
22/03/06 17:19:37 AiMeDB: Thread Exit
22/03/06 17:19:37 3sec WAIT Before!!
NORMAL TERMINATE THREAD!!
F s_pAiMeDBClient Adr:0000016DC39CA590
F m_pTCPSock Adr:0000016DC376E290
22/03/06 17:19:37 AimeLog Result:0

Arduino Uno & Raspberry Pi Pico 无反应

使用硬件: Arduino Uno (ATMega328p) (国产, CH340) & Raspberry Pi Pico
SDBT测试菜单中 Aime 读卡器 在1.2秒后显示BAD, inject.exe 显示 "ERROR(3) #6507 NFC R/W Initialize Fault."

波特率38400, COM12
ReaderTest.ino 上传到 Uno 和 Pico 都可以正常读卡 (串口监视器有显示)
Uno RX灯有闪烁, TX看似沒有 (Pi Pico无TXRX灯)

发送DTR/RTS之后一样没反应

Pi Pico 是用这个Arduino核心(https://github.com/earlephilhower/arduino-pico)

同一個步骤在用Arduino Pro Micro完全正常, 可读卡

aimeReaderHost:Incompatible Card(#28)

使用Pro Micro在SDBT上尝试刷banapass的时候aimeReaderHost提示不兼容
已经使用ReaderTest测试可以读取
不清楚问题是如何产生的 曾经使用八达通和aime卡都可以读取
信息可能提供不全 麻烦您了

关于aime卡的读取问题

虽然有挖坟的嫌疑但是还是想请教一下

现在我手里的aime卡是Felica,而不是mifare。 在这种情况下,我仍然可以通过写入修改后的所提供的aime示例数据来实现正常登录吗?
同时也想问问如何可以读取我手里这张felica aime卡的数据?

About SDDT Felica

大佬您好,我们用Pro micro写入了固件(led变成黄色)SDDT游戏下aime正常读取,但是Felica(aic)读取失败,使用iPhone nfc suica卡(Felica规格),游戏读取到的卡号全部都是F。请问一下可能是哪里的问题

SDDT felica

SDDT刷suica时会弹窗显示C++报错,请问可能是什么问题
IMG_3714

SDHD游戏自检Aime项BAD

使用开发板为NodeMCU-32S,readertest可以正常读到卡片类型以及数据。
但是烧录主程序后进游戏无法过Aime自检 segatools已修改
想请教一下如何找出问题

DFRobot Uno下,使用ReaderTest测试通过,但使用Aime-Reader测试时不通过。

如题。
使用DFRobot Uno R3+PN532测试。使用ReaderTest时能正常读出卡号。
image

看过以往的issues发现Arduino Uno & Raspberry Pi Pico 无反应这个issue下有相关内容。但实际操作后发现似乎有异常(?)

测试了SDHD 1.20,cvt框体下使用38400波特率没有反应。切换到sp模式后依旧无反应。
测试了SDEZ 1.30,也是无反应。
在刷卡界面时,开发板上的TX/RX指示灯并未闪烁。

使用的代码是最新的,把不符合该单片机的配置代码删掉了。

Segatools "ERROR(3) #6507 NFC R/W Initialize Fault."

测试环境: 中二水晶, 换了chunihook.dll , segatools.ini 中 [aime] enable=0 , Arduino Micro在COM12, LED发蓝光

测试菜单中 Aime 读卡器 在1.3~1.5秒后显示BAD, inject.exe 显示 "ERROR(3) #6507 NFC R/W Initialize Fault."

PN532 SDA -> Arduino Micro Pin 2
PN532 SCL -> Arduino Micro Pin 3
PN532 VCC -> Arduino Micro VCC
PN532 GND -> Arduino Micro GND
APA106 LED -> Arduino Micro A3

Screenshot (5)

ESP32-S 使用 I2C 接线时 SDEZ Aime reader 测试BAD

可以正常读取硬件固件版本号

不插读卡器在测试时1.0s BAD
插读卡器会时间长一些 BAD
进游戏显示Aime不可用
使用ESP WROOM 32 CH340
使用I2C连接
使用Flipper Zero模拟Aime卡
ReaderTest正常,可识别模拟的Aime卡
image

SDDT SAMD21 MINI

我们目前使用的是SAMD21 MINI作为读卡器开发板,但目前每次开启游戏运行一段时间后就在标题界面显示aime读取错误的报错并一直循环反复(此时没有放置卡片读卡),重新插拔和进io后又无法识别读卡器,只有重启游戏才能暂时解决,但仍会在运行一段时间后报错。接线及固件上传没有问题,com口及波特率也设置正确(同时尝试了除115200以外的其他波特率,仍出现相同问题),刚开启游戏时也能正常读取aime及aic卡,想请问一下可能是哪些原因导致了反复报错。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.