Skip to content

Commit b7c4a3b

Browse files
authored
Merge pull request solosky#154 from solosky/develop
2.9.0
2 parents acf2f6e + 496fa82 commit b7c4a3b

File tree

102 files changed

+8315
-5143
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+8315
-5143
lines changed

.clang-format

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
Language: Cpp,
3+
BasedOnStyle: LLVM,
4+
5+
AllowShortIfStatementsOnASingleLine: true,
6+
BreakBeforeBraces: Attach,
7+
ColumnLimit: 120,
8+
IndentCaseLabels: false,
9+
IndentWidth: 4,
10+
TabWidth: 4,
11+
UseTab: Never,
12+
}

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,6 @@
1313
[submodule "fw/components/littlefs"]
1414
path = fw/components/littlefs
1515
url = https://github.com/littlefs-project/littlefs
16+
[submodule "fw/components/chameleon-ultra"]
17+
path = fw/components/chameleon-ultra
18+
url = [email protected]:solosky/ChameleonUltra.git

.vscode/c_cpp_properties.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"configurations": [
3+
{
4+
"name": "Pixl.js Debug",
5+
"includePath": [
6+
"${workspaceFolder}/src/**",
7+
"${workspaceFolder}/../components/**",
8+
"D:/dev/SDKs/nRF5_SDK_17.1.0_ddde560/**"
9+
],
10+
"forcedInclude": [
11+
"${workspaceFolder}/config/sdk_config.h"
12+
],
13+
"defines": [
14+
"BOARD_PCA10056",
15+
"FLOAT_ABI_HARD",
16+
"NRF52",
17+
"NRF52832_XXAA",
18+
"NRF52_PAN_74",
19+
"NRF_SD_BLE_API_VERSION=6",
20+
"S132",
21+
"SOFTDEVICE_PRESENT",
22+
"SWI_DISABLE0",
23+
"DEBUG",
24+
"DEBUG_NRF",
25+
"M_USE_THREAD_BACKEND=0"
26+
],
27+
"compilerPath": "D:/dev/SDKs/gcc-arm-none-eabi-10-2020-q4-major/bin/arm-none-eabi-gcc.exe",
28+
"cStandard": "c11",
29+
"cppStandard": "c++17",
30+
"intelliSenseMode": "windows-gcc-arm"
31+
}
32+
],
33+
"version": 4
34+
}

.vscode/launch.json

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
{
2+
// Use IntelliSense to learn about possible attributes.
3+
// Hover to view descriptions of existing attributes.
4+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
8+
{
9+
"name": "Pixl.js JLink Debug",
10+
"cwd": "${workspaceRoot}",
11+
"executable": "fw/_build/pixljs.out",
12+
"armToolchainPath": "D:/dev/SDKs/gcc-arm-none-eabi-10-2020-q4-major/bin",
13+
"request": "launch",
14+
"type": "cortex-debug",
15+
"servertype": "jlink",
16+
"device": "nrf52",
17+
"interface": "swd",
18+
"ipAddress": null,
19+
"serialNumber": null,
20+
},
21+
{
22+
"name": "Pixl.js Pyocd Debug",
23+
"cwd": "${workspaceRoot}",
24+
"executable": "fw/_build/pixljs.out",
25+
"armToolchainPath": "D:/dev/SDKs/gcc-arm-none-eabi-10-2020-q4-major/bin",
26+
"request": "launch",
27+
"type": "cortex-debug",
28+
"servertype": "pyocd",
29+
"device": "nrf52",
30+
"interface": "swd",
31+
"ipAddress": null,
32+
"serialNumber": null,
33+
},
34+
{
35+
"name": "Pixl.js Openocd Debug",
36+
"cwd": "${workspaceRoot}",
37+
"executable": "fw/_build/pixljs.out",
38+
"armToolchainPath": "D:/dev/SDKs/gcc-arm-none-eabi-10-2020-q4-major/bin",
39+
"request": "launch",
40+
"type": "cortex-debug",
41+
"servertype": "openocd",
42+
"device": "nrf52",
43+
"interface": "swd",
44+
"ipAddress": null,
45+
"serialNumber": null,
46+
"configFiles": [
47+
"${workspaceRoot}/fw/application/openocd/debug.cfg"
48+
]
49+
}
50+
]
51+
}

.vscode/settings.json

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,19 @@
77
"u8x8.h": "c",
88
"mui_u8g2.h": "c",
99
"mui_defines.h": "c",
10-
"u8g2.h": "c"
10+
"u8g2.h": "c",
11+
"rgb_marquee.h": "c",
12+
"utils.h": "c",
13+
"array": "c",
14+
"deque": "c",
15+
"forward_list": "c",
16+
"list": "c",
17+
"string": "c",
18+
"unordered_map": "c",
19+
"unordered_set": "c",
20+
"vector": "c",
21+
"string_view": "c",
22+
"initializer_list": "c",
23+
"ranges": "c"
1124
}
1225
}

.vscode/tasks.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
// See https://go.microsoft.com/fwlink/?LinkId=733558
3+
// for the documentation about the tasks.json format
4+
"version": "2.0.0",
5+
"tasks": [
6+
{
7+
"label": "make flash openocd",
8+
"type": "shell",
9+
"options": {
10+
"cwd": "${workspaceFolder}"
11+
},
12+
"command": "make all flash_openocd -j8",
13+
"group": "build"
14+
}
15+
]
16+
}

README.md

Lines changed: 5 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -9,91 +9,10 @@
99

1010
![image](https://github.com/solosky/pixl.js/blob/main/assets/pixljs-5.jpg)
1111

12+
## 文档
1213

13-
## 演示
14-
15-
[新版Amiibo模拟器,目前可以做到无限刷!](https://www.bilibili.com/video/BV1TD4y1t76A/)
16-
17-
## 外壳
18-
19-
项目由 白橙 大佬制作的外壳,可以在[这里下载](https://www.thingiverse.com/thing:5877482)
20-
![image](https://github.com/solosky/pixl.js/blob/main/assets/pixjs-case1.png)
21-
22-
## PCB
23-
24-
hw/RevC为最新PCB版本,使用[Kicad 6](https://www.kicad.org/download/)打开编辑。
25-
26-
![image](https://github.com/solosky/pixl.js/blob/main/assets/pixljs-pcb-revc.png)
27-
28-
## BOM
29-
30-
* [RevC InteractiveHtmlBom](docs/RevC-ibom.html)
31-
* [RevC 物料清单购买指南](docs/RevC-bom.md)
32-
33-
## OLED版本
34-
35-
OLED版本由网友 @xiaohail 贡献,可以点[这里](https://gitlab.com/xiaohai/pixl.js)下载PCB。
36-
37-
![image](https://github.com/solosky/pixl.js/blob/main/assets/pixljs-oled1.png)
38-
39-
40-
## 编译
41-
42-
项目设置了CI,可以在[Actions](https://github.com/solosky/pixl.js/actions/workflows/pixl.js-fw.yml)里面下载Nightly构建版本的,无需自行构建。
43-
44-
如需自行编译,这里推荐使用提供的docker镜像构建。
45-
```
46-
docker run -it --rm solosky/nrf52-sdk:latest
47-
root@b10d54636088:/builds# git clone https://github.com/solosky/pixl.js
48-
root@b10d54636088:/builds# cd pixl.js
49-
root@b10d54636088:/builds/pixl.js# git submodule update --init --recursive
50-
root@b10d54636088:/builds/pixl.js# cd fw && make all
51-
root@b10d54636088:/builds/pixl.js/fw# cd application && make full ota
52-
```
53-
构建出来的固件在 fw/_build/pixjs_all.hex,ota(无线更新包)在fw/_build/pixjs_ota_vXXXX.zip
54-
55-
## 固件烧写
56-
57-
下载最新版本的固件zip包,使用JLink或者DAPLink烧写pixjs_all.hex即可。
58-
烧写完毕后,后续固件更新可以使用OTA的方式更新。
59-
也可以用OpenOCD烧录。
60-
```
61-
openocd -f interface/cmsis-dap.cfg -c "transport select swd" -f target/nrf52.cfg -d2 -c init -c "reset init" -c halt -c "nrf5 mass_erase" -c "program pixjs_all.hex verify" -c "program nrf52832_xxaa.hex verify" -c exit
62-
```
63-
64-
## OTA更新
65-
下载最新版本固件zip包,解压到一个目录。
66-
在设置界面进入DFU模式后,进入 [固件更新页面](https://thegecko.github.io/web-bluetooth-dfu/examples/web.html),连接Pixl.js后,选择压缩包里面的 pixljs_ota_xxx.zip 进行OTA固件更新。
67-
68-
69-
## 文件上传
70-
71-
目前支持网页传输和APP传输。 <br />
72-
网页传输可以点开下面的网页进行上传。
73-
74-
* 主站 [https://pixl.amiibo.xyz/](https://pixl.amiibo.xyz/)
75-
* 镜像 [https://solosky.github.io/pixl.js/](https://solosky.github.io/pixl.js/)
76-
77-
App Store上第三方作者开发的iOS应用 iNFC。
78-
可以在App Store搜索 iNFC 下载应用。或直接扫描下方二维码跳转App Store下载:
79-
80-
![image](https://github.com/solosky/pixl.js/blob/main/assets/iNFC.jpg)
81-
82-
同时,Mac版iNFC、安卓版iNFC正在开发中,敬请期待!
83-
84-
[使用iNFC上传Amiibo至Pixl.js的视频教程](https://www.bilibili.com/video/BV1RV4y1f7bn/)
85-
86-
感谢iNFC应用作者对Pixl.js的支持!
87-
88-
89-
## 蓝牙协议
90-
91-
[fw/docs/ble_protocol.md](fw/docs/ble_protocol.md)
92-
93-
## 动画制作
94-
95-
[fw/docs/video_player.md](fw/docs/video_player.md)
96-
14+
* [中文文档](docs/zh/README.md)
15+
* [English Documentation](docs/en/README.md)
9716

9817
## Credits
9918

@@ -102,11 +21,13 @@ App Store上第三方作者开发的iOS应用 iNFC。
10221
* [TLSF](https://github.com/mattconte/tlsf)
10322
* [cwalk](https://github.com/likle/cwalk)
10423
* [SPIFFS](https://github.com/pellepl/spiffs)
24+
* [ChameleonUltra](https://github.com/RfidResearchGroup/ChameleonUltra)
10525

10626
## Contribution
10727

10828
* 特别感谢 @Caleeeeeeeeeeeee 完善的Bootloader。
10929
* 特别感谢 @白橙 制作的外壳。
30+
* 特别感谢 @impeeza 提供的文档翻译 。
11031

11132
## 讨论群
11233

docs/en/01+1-RevC-bom.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
| **Id** | **Designator** | **Package** | **Quantity** | **Designation** | **BuyLink** |
2+
|---|---|---|---|---|---|
3+
| 1 | R5,R3 | R_0402_1005Metric | 2 | 10K | |
4+
| 2 | C6,C3,C16,C2,C10,C5,C7 | C_0402_1005Metric | 7 | 0.1uF | |
5+
| 3 | U1 | QFN-48-1EP_6x6mm_P0.4mm_EP4.6x4.6mm | 1 | nRF52832-QFxx | [Purchase option #1 NRF52832-QFAA](https://item.taobao.com/item.htm?spm=a1z09.2.0.0.2c202e8dYacXja&id=559637973772&_u=r3umvhn0387)|
6+
| 4 | L3 | L_0402_1005Metric | 1 | 3.9nH | |
7+
| 5 | BT1 | BAT-SMD_CR2032-3V | 1 | Battery_Cell |[Purchase Option: CR2032-3 Select battery shrapnel cell holder](https://detail.tmall.com/item.htm?_u=i3umvhn3c4d&id=623218634490&spm=a1z09.2.0.0.40c52e8dLMoPVe) |
8+
| 6 | C11,C23,C8,C26 | C_0402_1005Metric | 4 | 12pF | |
9+
| 7 | U4 | MSW | 1 | MSW | [Purchase Option #1](https://item.szlcsc.com/157238.html) \| [Purchase Option #2 The button is longer on both sides and need to be shortened slightly](https://item.szlcsc.com/586962.html) |
10+
| 8 | Y2 | Crystal_SMD_2016-4Pin_2.0x1.6mm | 1 | 32MHz | |
11+
| 9 | R6 | R_0402_1005Metric | 1 | 1K | |
12+
| 10 | Y1 | Crystal_SMD_2012-2Pin_2.0x1.2mm | 1 | 32.768K | |
13+
| 11 | J2 | JST_GH_SM04B-GHS-TB_1x04-1MP_P1.25mm_Horizontal | 1 | Conn_01x04 | [Purchase Option #1 buy 4 units](https://item.taobao.com/item.htm?spm=a1z09.2.0.0.2c202e8dYacXja&id=44160307488&_u=r3umvhn75b1) |
14+
| 12 | C4 | C_0402_1005Metric | 1 | 4.7uF | |
15+
| 13 | C13 | C_0402_1005Metric | 1 | 1uF/16V | |
16+
| 14 | C20,C15 | C_0402_1005Metric | 2 | 180pF | |
17+
| 15 | R8,R7 | R_0402_1005Metric | 2 | 4.7K | |
18+
| 16 | U3 | USON-8_3x2mm_0.5pich | 1 | GD25Q16C/ZD25WQ16BUIGR| [Purchase Option #1 Low voltage version, recommended](https://item.taobao.com/item.htm?spm=a1z09.2.0.0.2c202e8dYacXja&id=649864805980&_u=r3umvhn2e64) \| [Purchase Option #2 Non-low voltage version](https://item.taobao.com/item.htm?spm=a1z09.2.0.0.2c202e8dYacXja&id=673834706188&_u=r3umvhn2527) |
19+
| 17 | C9 | C_0402_1005Metric | 1 | 10uF | |
20+
| 18 | AE1 | AN2051 | 1 | Antenna | [Purchase Option #1](https://item.taobao.com/item.htm?spm=a1z09.2.0.0.2c202e8dYacXja&id=558699169012&_u=r3umvhndb66) |
21+
| 19 | C18 | C_0402_1005Metric | 1 | 0.8pF | |
22+
| 20 | C1 | C_0402_1005Metric | 1 | 1uF | |
23+
| 21 | C12 | C_0402_1005Metric | 1 | 1uF/25V | |
24+
| 22 | Q1 | SOT-23 | 1 | AO3400A | |
25+
| 23 | D1 | LED_0402_1005Metric | 1 | LED_Small | |
26+
| 24 | J1 | FPC_12 0.8mm | 1 | Conn_01x12 | [Screen purchase option](https://item.taobao.com/item.htm?spm=a1z09.2.0.0.2c202e8dYacXja&id=660349996995&_u=r3umvhn775a) |
27+
| 25 | AE2 | 40x22MM_NFC_ANTENA | 1 | Antenna_Loop | |

docs/en/01+2-Boards-Thirdparty.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# pixl lite - 89g
2+
3+
Here is a list of third-party alternative versions provided by netizens, and only supported boards are listed.
4+
5+
| Name | Author | Screenshot | Link | Description | Firmware Support |
6+
| --- | --- | --- | --- | --- | --- |
7+
| pixl-lite | 89g | ![image](https://image.lceda.cn/pullimage/lstj6b9NpZi5WPDkvLECDwyaDeXJkB4xLoX1SCp6.jpeg) | https://oshwhub.com/89_g/pixl-lite | The resistors and capacitors are changed to 0805 version, for easy to solder | Support |

docs/en/01-Hardware.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# PCB
2+
The pixl.js hardware is developed and maintained on the repository, you can access the latest version of the hardware on [Hardware section of the GitHub repo.](https://github.com/solosky/pixl.js/tree/main/hw "Hardware section of the GitHub repo.")
3+
4+
hw/RevC is the latest PCB version, its recommended to use it.
5+
You can use [Kicad 6](https://www.kicad.org/download/) to open and edit the PCB and Schematic files.
6+
7+
![pixl.js PCB](https://github.com/solosky/pixl.js/blob/main/assets/pixljs-pcb-revc.png)
8+
9+
# BOM
10+
* The BoM is summaried on the doc: [RevC Bill of Materials Buying Guide](01+1-RevC-bom)
11+
* The Bill of Materials in interactive format are also available, you can download it from: [RevC InteractiveHtmlBom](docs/RevC-ibom.html)
12+
13+
14+
# Pictures
15+
Some pictures of current devices are:
16+
17+
![pixl.js 1](https://github.com/solosky/pixl.js/blob/main/assets/pixljs-3.jpg)
18+
![pixl.js 2](https://github.com/solosky/pixl.js/blob/main/assets/pixljs-4.jpg)
19+
![pixl.js 3](https://github.com/solosky/pixl.js/blob/main/assets/pixljs-5.jpg)
20+
21+
# Demo
22+
23+
[The latest version of the Amiibo Emulator APP can generate random UUIDs allowing unlimited amiibo readings on game! This video is a example](https://www.bilibili.com/video/BV1TD4y1t76A/)
24+
25+
# Shell
26+
27+
A shell for this project, made by Mr. Baicheng can be downloaded [here](https://www.thingiverse.com/thing:5877482)
28+
![SHELL](https://github.com/solosky/pixl.js/blob/main/assets/pixjs-case1.png)
29+
30+
# OLED version
31+
32+
The OLED version was contributed by netizen @xiaohail. You can click [here](https://gitlab.com/xiaohai/pixl.js) to download the PCB.
33+
34+
![OLED](https://github.com/solosky/pixl.js/blob/main/assets/pixljs-oled1.png)
35+
36+
37+
# [Alternative Boards](01+2-Boards-Thirdparty)
38+
39+
There are alternative versions of the board, you can checkout on the [Boards-Thirdparty](01+2-Boards-Thirdparty) page.
40+

0 commit comments

Comments
 (0)