逆天了!当电子烟带屏幕后老外们开始玩起了刷机,还开源!

近半年来,电子烟各种新奇的带屏设计层出不穷。于是,一不小心成为科技爱好者们的新“玩具”。


两个月前,加拿大博主Jason Gin在其博客发布了一篇完整的对配备显示屏的一次性电子烟 Kraze HD7K 进行逆向工程文章。他发现这款产品包含令人惊讶的复杂硬件,能够运行他编写的一系列类似Windows 95的动画,例如电池图标、经典动态壁纸,甚至他还把编译的过程详细记录并将软件工具、源码开源在Github平台上!今天就让我们一起来看看这逆天操作。

图片来源:Rip It Apart – Jason's electronics blog


理工男逆天魔法技术解码

在Rip It Apart网站上,Jason Gin分享了他如何逆向工程Kraze HD7K这款带彩色LCD屏幕的一次性电子烟,并成功在上面运行类似Windows 95的UI界面的全过程。这个过程充满了挑战和乐趣,让我们一起来看看他是如何做到的。


首先,Jason拆解了这款电子烟,发现其内部结构相对简单,但却包含了一块功能强大的彩色LCD屏幕和一个微控制器。通过仔细研究,他发现这款电子烟使用了一款常见的微控制器,并且LCD屏幕的驱动协议也并不复杂。

来源:Rip It Apart – Jason's electronics blog


接下来,他使用了一些常见的逆向工程工具,如DSView和 MiniPro等,对微控制器的固件进行了反编译和分析。经过一番努力,他成功找到了LCD屏幕的驱动代码,并编写了自己的驱动程序,使得这块屏幕可以显示任意图像。


最令人惊讶的是,Jason竟然成功在这款电子烟上运行了Windows 95类似界面!虽然这个过程并不容易,但他通过不断调试和优化,最终实现了这一看似不可能的目标。

图片来源:Rip It Apart – Jason's electronics blog


带屏电子烟的显示奥秘

带屏电子烟的显示技术原理对于理工极客男或许并不复杂。


Jason的逆向工程也为我们展示了Kraze HD7K的显示逻辑与原理。该产品的显示屏幕通过一种叫做SPI的通信协议与内部的微控制器进行连接。这个微控制器就像是电子烟的大脑,它控制着屏幕上显示的所有内容。微控制器从一个小型的Flash闪存芯片中读取图像和动画数据,然后通过SPI协议将这些数据发送到屏幕上。


为了让图像和动画显示得更加流畅,系统使用了一种叫做DMA的技术。这种技术可以让数据直接从闪存传输到屏幕,而不需要微控制器一直忙于处理这些数据,从而节省了处理资源。这种组合使得Kraze HD7K能够实现高效、低功耗的图像显示。



在Jason Gin的项目中,他详细介绍了该款产品的相关元器件信息。微控制器是Nations Tech N32G031K8Q7-1,包含一个48MHz的Arm Cortex-M0 CPU,64k的内部Flash和8k的SRAM;SPI NOR Flash是1MB的Giantech GT25Q80A-UZLI;LCD的制造商未知,但部件号是FXD096QQ08B-F,0.96 英寸,分辨率为80×160像素。

图片来源:Rip It Apart – Jason's electronics blog



同时,博主也介绍了如何通过SPI(串行外设接口)协议与LCD屏幕进行通信。SPI是一种常见的通信协议,广泛应用于各种嵌入式系统中。通过SPI协议,微控制器可以快速、高效地向LCD屏幕发送数据,从而实现图像的显示。

图片来源:Rip It Apart – Jason's electronics blog


此外,Jason Gin还介绍了如何使用DMA(直接内存访问)技术来提高数据传输的效率。

图片来源:Rip It Apart – Jason's electronics blog


通过DMA,微控制器可以在不占用CPU资源的情况下,将数据直接传输到LCD屏幕,从而大大提高了显示的速度和流畅度。


隐藏的小彩蛋

Jason在对Kraze HD7K电子烟进行逆向工程的过程中,甚至意外发现了一些隐藏的彩蛋。


第一个发现是口数统计是按照使用时间计数。Jason通过研究Kraze HD7K电子烟的内部固件,作者发现了一个隐藏的计数器,它能够以0.01秒的精度记录用户的使用时间。这个计数器存储在非易失性内存中,即使电子烟重启或断电,计数器也不会重置。这表明,虽然电子烟没有直接向用户显示剩余的"puffs"口数,但它实际上在内部以极高的精度追踪用户的使用情况。

图片来源:Rip It Apart – Jason's electronics blog


另外一个彩蛋是隐藏的版本号。Jason通过快速开关Kraze HD7K的USB-C电源,可以在屏幕上显示一个“秘密”的版本号。在两行文本中以红色显示文本 "GV-K23 0904V1"。这似乎是使用Windows系统中12号大小的等宽"System"字体渲染的。显示的文本暗示了该产品的内部名称可能是"GV-K",并且固件版本为修订版1,日期为2023年9月4日。

图片来源:Rip It Apart – Jason's electronics blog


开源共享搭建极客舞台

Jason Gin并不是唯一一个对带屏电子烟刷机感兴趣的科技爱好者。在GitHub开源项目平台上,还有许多类似的开源项目。例如,xbenkozx的RAZ-RE项目同样是一个逆向工程带屏电子烟(Raz TN9000)的项目。他们通过合作和分享,推动着这一逆天玩法。

这些开源项目不仅提供了详细的技术文档和代码,还鼓励其他科技爱好者参与进来,共同探索带屏电子烟的更多可能性。通过这些项目,大家可以学习到逆向工程、嵌入式系统开发等方面的知识,同时也可以为电子烟行业带来更多创新的想法和应用。


结语

电子烟带屏,背后是一系列硬件技术的创新突破。

在提供油量电量提醒、个性化界面、手机APP联动、数据存储管理等健康化、个性化的体验的同时,随着未来生态的逐渐开放和繁荣,或许也可能为电子烟开创了一个全新的玩机时代,成为成年人的第二块消遣屏幕。刷软件ROM、应用商店,OTA升级等,厂商不断突破创新,生态破圈,在服务好全球电子烟用户的同时,也让行业未来充满了科技的想象力。

版权说明