Code Monkey home page Code Monkey logo

l-ink_card's Introduction

[L-ink]电子墨水屏NFC智能卡片

这是为了解决个人使用IC卡时遇到的一些痛点设计的一个迷你NFC智能卡片,基于STM32L051和ST25DV。

想着既然要自制这玩意那就往炫酷了做,于是很自觉地把电子墨水屏也加上了,顺手也写了个配套APP用于显示内容定制。

总之是个比较有意思的小项目,方案不算复杂,第一版设计也存在一些值得改进的地方,后续有空会继续优化方案设计的。

演示视频

B站指路:https://www.bilibili.com/video/BV1Cf4y1y7KT/

项目文件说明

  • Hardware:source里面是电路原理图和PCB文件,使用Altium Designer打开;release里面是gerber文件可以直接发给厂家打样,也包含了元器件BOM表(部分IC不太常用可能要单独购买)。
  • Firmware:STM32L051的固件,我提供了Clion和Keil两个版本的工程文件,源码内容是一致的,分两个版本只是因为个人对Clion爱得深沉。
  • 3D Model:屏幕架和外壳的3D文件,step格式一般3D建模软件都能打开编辑,STL格式用于直接3D打印。
  • DAP-Link:自己设计的下载调试器的硬件和固件源码,也包括预编译的hex固件,如果你有J-Link或者ST-Link之类的下载器就不用这个了。
  • Android:配套的APP安装包。

固件编译说明

STM32因为使用了L0系列的MCU,所以如果你是第一次在你的电脑上开发STM32L0,那么需要先装一下L0的固件支持包,有两种方式:

  1. 使用STM32CubMX安装:

  2. 使用Keil的Package Installer安装:

然后就不会报头文件的错误了。

有几点注意的:

  • 如果想在Clion中编译工程的话可以参考我这篇教程:https://zhuanlan.zhihu.com/p/145801160
  • Clion中OpenOCD默认是使用ST-Link下载,其他下载器自己修改工程目录下的stlink.cfg文件

关于硬件方案

硬件方案比较简单,主要IC就两个--STM32和ST25DV,电子墨水屏是200x200的单色屏幕,我是买的微雪的(注意如果是买的几年前的库存,那驱动芯片会有点区别导致代码不通用,只要是新款的应该都没问题)。

ST25DV作为NFC的PHY通过I2C总线和STM32通信,主要作用有两个:能量采集以及NFC通信。注意,ST25DV只是负责和手机进行NFC通信,而不负责IC卡的读写功能,因为ST25DV只支持ISO 15693的RFID协议,而我们常用的IC卡(M1卡)是ISO 14443协议的,所以并不能直接使用这颗芯片进行IC卡模拟。

IC卡的模拟功能这一版中实现得比较简单,就是直接集成了多颗UID芯片(很便宜,1~2元一片),然后和ST25DV共用NFC天线,卡片的切换是通过拨轮换挡实现的。好处在于,你可以把L-ink当作多张独立卡片的合集处理,复制和刷卡都是很直接的(使用PM3或者PN532等模块读取原卡信息并写入L-link)。当然缺点就是添加的卡片一多,按键的数量就要增加(因为每一档对应一张卡)。

所以我也在改进方案,后面可能会使用支持ISO 14443协议的ST95或者ST25T系列的芯片来实现软件层面的IC卡模拟功能。

另外下一个版本的硬件方案我会把黑白的电子墨水屏换成彩色的

关于配套APP

Android APP目前只是实现了功能,这是基于我以前做的一个算法验证框架APP改的,UI还没有重新做设计,可以等后续更新。

工程文件的话我后面可以把其中的核心功能模块封装成Module,然后给个Sample Project供参考使用,工作太忙等我缓过这阵子先~

教程整理中...

有问题先看Issue(包括已经close的),另外

跟项目工程无关的问题不要发在Issues里面!跟项目工程无关的问题不要发在Issues里面!跟项目工程无关的问题不要发在Issues里面!

聊天内容可以给我发评论或者私信(B站、知乎),我看到的话基本都会回复,issue里面发的话所有watch项目的人都会收到邮件,会对大家产生困扰的!


以下是simonire修改的版本,适配新款的屏幕驱动,修改拨轮为五维按键,有需要的可以参考:

https://github.com/simonire/L-ink_Card

l-ink_card's People

Contributors

peng-zhihui avatar

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  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

l-ink_card's Issues

板子在线下单参数请教

image
麻烦问下,这些选项怎么选
板子尺寸: ?
厚度: ?
阻焊覆盖:?
焊盘喷镀: ?
铜厚度:?
金手指是否要斜边:?

pcb

请问在天线上末端颜色不一样的地方要不要开窗上锡还有左边一个地方也是。

关于S1的型号

bom和sch中都没有s1的准确型号,在某宝上搜了一下拨轮开关、滚轮开关之类的关键词,找到的都是编码器或者有定位柱的自复位开关,明显与footprint不符。
所以请问能否提供一下s1的型号或者更详细的描述,以便于正确的找到对应元件,谢谢。

对nfc有个疑问

任意复制卡片的话,不会冲突吗?
比如多个卡片信息都存在同一扇区

关于复制加密M1卡的问题

请问大佬,有些加密了的手机无法复制的那种M1卡要如何复制啊,手持PN532。家里小区门禁卡手机没法复制,fcuk也跑不动

关于导出Gerber

在立创上用UTF-8存的ASCII的pcb设计文件准备导出gerber去打样了,但是发现网络和DRC有一大堆报错,是直接忽略就行吗
SharedScreenshot
SharedScreenshot2

求助帖

谁那有购买过的商铺的吗?我是个纯小白,元件都没接触过,谁可以指导下我吗,我无从下手啊,目前外壳和屏幕购买了,板子制作,元件购买,遇到了重重阻碍,可以联系下我不,wx就是用户名,求加

墨水屏盖板

盖板是亚克力的吗?具体尺寸是多少,以及开孔的位置,谢谢大佬💪

大佬求教

大佬我是CS专业的,有编程方面的能力,但看你的项目还是一脸懵逼。想求教一下如果想从零基础开始到能设计出像这样的项目,大概需要怎么去点科技树。。。。

开槽位置请教

image
是在这个位置开槽吗? 看到下面有蓝色的条,可以直接在这里开槽吗?

UID硬件连接

如何把uid芯片集成在PCB上,是可以直接焊在ST25DV的引脚上面和NFC公用天线吗

up主有BOM清单么?

芯片的型号和拨片还能找到, 电子墨水屏将就找到, 但是很多电阻的阻值、二极管的大小并未提供, 想要复现有点困难. 😭 求大佬提供BOM清单

要不要加个北斗的定位模块,实现自动切换卡片

我没细看,想问下mcu有应该还有空闲的io口吧,打算搞个北斗的定位模块,实现靠近相应经纬度坐标之后自动切换到对应的卡片,这样逼格更加高也不需要主动去切换了,最近有空的时候我会做下,到时大家一起交流交流

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.