Skip to content

Commit

Permalink
Merge pull request #248 from solosky/develop
Browse files Browse the repository at this point in the history
2.10.2
  • Loading branch information
solosky authored Apr 12, 2024
2 parents 223609b + dec79b4 commit 2409634
Show file tree
Hide file tree
Showing 72 changed files with 8,125 additions and 5,966 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/pixl.js-fw.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ on:
push:
branches: [ "develop"]
tags: ["*"]
pull_request:
types: ["opened"]
branches: ["develop"]
workflow_dispatch:

jobs:
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

* [中文文档](docs/zh/README.md)
* [English Documentation](docs/en/README.md)
* [Italian Documentation](docs/it/README.md)

## Credits

Expand Down
4 changes: 2 additions & 2 deletions docs/en/01-Hardware.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ You can use [Kicad 6](https://www.kicad.org/download/) to open and edit the PCB
![pixl.js PCB](https://github.com/solosky/pixl.js/blob/main/assets/pixljs-pcb-revc.png)

# BOM
* The BoM is summaried on the doc: [RevC Bill of Materials Buying Guide](01+1-RevC-bom)
* The Bill of Materials in interactive format are also available, you can download it from: [RevC InteractiveHtmlBom](docs/RevC-ibom.html)
* The BoM is summaried on the doc: [RevC Bill of Materials Buying Guide](01+1-RevC-bom.md)
* The Bill of Materials in interactive format are also available, you can download it from: [RevC InteractiveHtmlBom](https://github.com/solosky/pixl.js/blob/main/docs/RevC-ibom.html)


# Pictures
Expand Down
2 changes: 0 additions & 2 deletions docs/en/04-Using-Firmware.md
Original file line number Diff line number Diff line change
Expand Up @@ -238,8 +238,6 @@ The device use a "special" amiibo slot where only an amiibo can be used, the ami

Changing the mode preserve the current selected amiibo, with exception of «Read-write mode».

## Auto Random. []
When this option is turn ON a new random UUID for the current amiibo is generated after each time a game read it. Allowing to use the same amiibo multiple times on games with restrictions. You cannot change the active amiibo on this mode. Cannot be turned OFF for «Randomize (Auto)» mode, cannot be turned ON for «Randomize (Manual)»mode;
## Compati. Mode []
Shows the emulation firmware mode, the supported values are V1, V2 and AmiLoop, there are several APPs each one designed for a AmiiboLink firmware version or to the AmiLoop protocol. Using this setting you can match the emulation with the protocol needed by the APP you use on your phone.
## Tag Details
Expand Down
96 changes: 81 additions & 15 deletions docs/en/05+5-translation.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,92 @@
# Transalation
# Translation

## How to update exists translation
## Firmware

1. Edit fw/data/i18n.csv with your favorite text editor. For vscode, extension "Edit csv" is recommended.
2. Run `fw/scripts/i18n_gen.py` to generate new language files.
3. Optional: Run `fw/scripts/font_data_gen.sh` to generate new font data if you add new charaters in i18n.csv
4. Run `make full` rebuild firmware
## How to update existing translation

When editing CSV files with VSCode, the extension [Edit CSV](https://marketplace.visualstudio.com/items?itemName=janisdd.vscode-edit-csv) is recommended.

**Windows** requires you to have [Python](https://www.python.org/downloads/) and [Git](https://git-scm.com/download/windows) installed and within your `$PATH`
For **Linux**, most distributions come with `python` and `git` by default and **macOS** comes bundled with `python`, but to use `git` you either need to install the Command Line tools via `xcode-select –-install`, or download [Git](https://git-scm.com/download/mac) separately.

### Windows

note: <br />
The script `font_data_gen.sh` only can be run in Git Bash windows in Windows.
1. Clone this repository
`git clone https://github.com/solosky/pixl.js.git; cd pixl.js`
2. Edit `fw/data/i18n.csv`
3. Run `py.exe fw/scripts/i18n_gen.py` to generate new language files.
4. _Optional:_ Run `py.exe fw/scripts/font_data_gen.py` to generate new font data if you add new characters in `i18n.csv`
5. [Build the Firmware](03-Build-Firmware.md)

### Linux and macOS

1. Clone this repository
`git clone https://github.com/solosky/pixl.js.git; cd pixl.js`
2. Edit `fw/data/i18n.csv`
3. Run `python3 fw/scripts/i18n_gen.py` to generate new language files.
4. Optional: Run `python fw/scripts/font_data_gen.py` to generate new font data if you add new characters in `i18n.csv`
5. [Build the Firmware](03-Build-Firmware.md)

## How to add new language translation

1. Add new column in fw/data/i18n.csv, for example "ja_JP"
The process is similar to updating an existing translation, and has the same requirements depending on your Operating System.

1. Add new column in `fw/data/i18n.csv`, for example "ja_JP"
2. Run `fw/scripts/i18n_gen.py` to generate new language files.
3. Optional: Run `fw/scripts/font_data_gen.sh` to generate new font data if you add new charaters in i18n.csv
3. Optional: Run `fw/scripts/font_data_gen.py` to generate new font data if you add new characters in `i18n.csv`
4. Edit `fw/application/src/i18n/language.h` and `fw/application/src/i18n/language.c` to adopt new language
5. Edit Makefile to include `$(PROJ_DIR)/i18n/ja_JP.c` as C source files
6. Run `make full` rebuild firmware
6. [Build the Firmware](03-Build-Firmware.md)

## Font notes

For release builds (RELEASE=1), the firmware uses wenquanyi_9pt_u8g2.bdf to display unicode characters.
Please check if the new language character codepoint is included in wenquanyi_9pt_u8g2.bdf or not.
If not, it's not recommended supporting the new language due to the MCU internal flash restrictions.

## Web App

### How to update existing translation

The language file can be found under `web/src/i18n'

## How to add new language translation

In this example, we will add a Japanese (ja_JP) translation:

1. Copy the `en_US.js` file and name it `ja_JP.js`
2. Translate the string within `ja_JP.js` including the `changeok` message.

Don't translate the other language names.

Add your language at the bottom of the `lang {` section:

`ja: '日本語',`

3. Edit `web/src/i18n/index.js` while keeping its current structure, adding:

```js
import elementJaLocale from 'element-ui/lib/locale/lang/ja' // element-ui
lang import jaLocale from './ja_JP' elementJpLocale
```

And extending `messages`:

```js
ja_JP: {
...jaLocale,
...elementJaLocale,
},
```

4. Add your language to the other `.js` files (within the `lang: {` section):

`vueja: '日本語',`

## Font notes
5. Add your language to the `web/src/App.vue` file:

For release build (RELEASE=1), the firmware use wenquanyi_9pt_u8g2.bdf to display unicode characters. <br />
Please check new language charater codepoint is included in wenquanyi_9pt_u8g2.bdf or not.<br />
If not, I am not recommended to support the new language due to the MCU internal flash restrction.
```js
<el-dropdown-item Enabled="language==='ja'" command="ja" divided>
{{ $t('lang.ja') }}
</el-dropdown-item>
```
33 changes: 33 additions & 0 deletions docs/it/01-Hardware.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# PCB
L'hardware di pixl.js è sviluppato e mantenuto nel repository, puoi accedere alla versione più recente dell'hardware nella [sezione Hardware del repository GitHub.](https://github.com/solosky/pixl.js/tree/main/hw "Sezione Hardware del repository GitHub.")

hw/RevC è la versione più recente del PCB, si consiglia di utilizzarla.
Puoi usare [Kicad 6](https://www.kicad.org/download/) per aprire e modificare i file del PCB e dello schema.

![PCB pixl.js](https://github.com/solosky/pixl.js/blob/main/assets/pixljs-pcb-revc.png)

# BOM
* Il BOM è riassunto nel documento: [Guida all'acquisto dei materiali di RevC](01+1-RevC-bom)
* La lista dei materiali in formato interattivo sono disponibili, puoi scaricarli da: [RevC InteractiveHtmlBom](docs/RevC-ibom.html)

# Immagini
Alcune immagini dei dispositivi attuali sono:

![pixl.js 1](https://github.com/solosky/pixl.js/blob/main/assets/pixljs-3.jpg)
![pixl.js 2](https://github.com/solosky/pixl.js/blob/main/assets/pixljs-4.jpg)
![pixl.js 3](https://github.com/solosky/pixl.js/blob/main/assets/pixljs-5.jpg)

# Demo

[L'ultima versione dell'applicazione Emulatore Amiibo può generare UUID casuali permettendo letture illimitate di amiibo sul gioco! Questo video è un esempio](https://www.bilibili.com/video/BV1TD4y1t76A/)

# Custodia

Una custodia per questo progetto, realizzata dal signor Baicheng, può essere scaricata [qui](https://www.thingiverse.com/thing:5877482)
![CUSTODIA](https://github.com/solosky/pixl.js/blob/main/assets/pixjs-case1.png)

# Versione OLED

La versione OLED è stata contribuita dall'utente @xiaohail. Puoi cliccare [qui](https://gitlab.com/xiaohai/pixl.js) per scaricare il PCB.

![OLED](https://github.com/solosky/pixl.js/blob/main/assets/pixljs-oled1.png)
77 changes: 77 additions & 0 deletions docs/it/02-Flash-Firmware.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
Dopo aver costruito o acquistato l'hardware, devi flashare il firmware per la prima volta, che può essere ottenuto solo tramite il metodo cablato.

Il firmware può essere flashato o aggiornato utilizzando uno dei seguenti metodi:

## Metodo 1: Cablato
Questo metodo richiede un flasher compatibile con CMASS-DAP JLink o DAPLink. Raccomandiamo il programmatore STM32 PWLINK2 Lite Emulator, puoi comprarne uno per circa 9.9 yuan su [Taobao](https://item.taobao.com/item.htm?spm=a1z09.2.0.0.4b942e8deXyaQO&id=675067753017&_u=d2p75qfn774a "Taobao")

Scarica l'ultima versione del pacchetto zip del firmware. Dovrebbe contenere i seguenti file:
- fw_update.bat
- bootloader.hex
- pixljs.hex
- pixljs_all.hex
- fw_readme.txt
- pixjs_ota_v237.zip

Devi collegare i cavi da 3.3 Volt, GND, SWDIO e SWDCLK. Puoi utilizzare il file `fw_update.bat` per flashare il firmware `pixjs_all.hex`.

Puoi anche utilizzare OpenOCD per flashare il dispositivo, questo è un esempio del comando da eseguire:
```
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
```
Dopo che il primo flash è completato, gli aggiornamenti del firmware successivi possono essere effettuati tramite OTA.

## Metodo 2: Aggiornamento OTA
Questo metodo è applicabile solo ai dispositivi Pixl.js che sono stati programmati con successo tramite il metodo cablato.

### App nRF Connect
Installa l'applicazione nRF Connect (la puoi trovare sia su iOS che su Android app stores).

Nella lista dei dispositivi, seleziona pixl.js (o pixl dfu) e tocca il pulsante `CONNECT`

Metti il tuo dispositivo pixl.js in modalità "Aggiornamento Firmware", poi il dispositivo entrerà in modalità DFU. Per farlo, seleziona l'app `Settings` e seleziona la voce `Firmware Update`.

Apri l'app "nRF Connect" sul tuo telefono e connettiti al dispositivo chiamato `pixl dfu` per aggiornare il firmware.

Su iOS, il firmware è `pixjs_ota_vxxx.zip`

### Metodo della pagina web
Scarica l'ultima versione del pacchetto zip del firmware corrispondente alla versione del tuo dispositivo ed estrailo in una directory.

Il progetto fornisce due modi per ottenere un aggiornamento DFU:

#### Pagina web di trasferimento file.
Innanzitutto, puoi collegare il dispositivo alla [pagina web ufficiale](https://pixl.amiibo.xyz/ "pagina web ufficiale"), poi sulla pagina web, dopo che il dispositivo è connesso, premi il pulsante grigio `DFU`, il dispositivo entrerà in modalità DFU e la pagina ti chiederà "Vuoi aprire la pagina di aggiornamento DFU?" se accetti, la Pagina di Aggiornamento Firmware sarà aperta.

#### Direttamente alla Pagina di Aggiornamento Firmware.
Puoi anche andare direttamente alla Pagina di Aggiornamento Firmware.

Prima di tutto, devi mettere il tuo dispositivo pixl.js in modalità "Aggiornamento Firmware". Per farlo, seleziona l'app `Impostazioni` e seleziona la voce `Aggiornamento Firmware`.

Apri la [pagina di aggiornamento firmware](https://thegecko.github.io/web-bluetooth-dfu). Trascina e rilascia o seleziona il file `pixljs_ota_xxx.zip` dalla cartella dove hai estratto il pacchetto firmware.

Poi premi il pulsante `SELEZIONA DISPOSITIVO` sulla pagina dovresti vedere un dispositivo chiamato `pixl dfu` connetti per iniziare il processo di aggiornamento del firmware.


# Riparazione versione firmware errata.

Se per errore programmi la versione sbagliata (LCD/OLED) sul tuo dispositivo, il dispositivo funzionerà ma non mostrerà informazioni sullo schermo, la retroilluminazione della versione LCD potrebbe accendersi.

Puoi utilizzare i seguenti metodi per recuperare o flashare la versione firmware corretta.

## Opzione 1: Flasha il firmware tramite connessione cablata

Se hai a disposizione un programmatore JLink o DAPLink compatibile con CMASS-DAP, puoi utilizzare il [Metodo Cablato](Flash-Firmware#Method 1: Wired "Metodo Cablato") per flashare manualmente la versione firmware corretta.
Se per errore programmi la versione sbagliata (LCD/OLED) sul tuo dispositivo, il dispositivo funzionerà ma non mostrerà informazioni sullo schermo, la retroilluminazione della versione LCD potrebbe accendersi.

## Opzione 2: Segui le sequenze di tasti speciali per entrare nuovamente nella modalità DFU e installare la versione corretta del firmware.

Prima assicurati che il tuo dispositivo sia spento, poi premi le seguenti sequenze di tasti per entrare nella `Modalità DFU`

- Un qualsiasi tasto per risvegliare il dispositivo
- SINISTRA
- CENTRO
- SINISTRA X 4
- CENTRO

Ora il tuo dispositivo è in modalità DFU, usa l'app [nRF Connect APP](#nRF-Connect-APP) o [Direttamente dalla pagina di aggiornamento del firmware](#directly-to-the-firmware-update-page) per aggiornare il firmware.
30 changes: 30 additions & 0 deletions docs/it/03-Build-Firmware.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@

# Compilazione del firmware

## Compilazione con Github Actions

Puoi scaricare l'ultima build di sviluppo da Github Actions

https://github.com/solosky/pixl.js/actions

## Compilazione con immagine Docker personalizzata

Puoi compilare il firmware utilizzando un'immagine Docker personalizzata.

```bash
# creare i contenitori
docker run -it --rm solosky/nrf52-sdk:latest

# inizializzare il repository
root@b10d54636088:/builds# git clone https://github.com/solosky/pixl.js
root@b10d54636088:/builds# cd pixl.js
root@b10d54636088:/builds/pixl.js# git submodule update --init --recursive

# compilare la versione LCD
root@b10d54636088:/builds/pixl.js# cd fw && make all BOARD=LCD RELEASE=1

# compilare la versione OLED
root@b10d54636088:/builds/pixl.js# cd fw && make all BOARD=OLED RELEASE=1
```

Il firmware si trova in fw/_build/pixjs_all.hex, il pacchetto ota si trova in fw/_build/pixjs_ota_vXXXX.zip
Loading

0 comments on commit 2409634

Please sign in to comment.