Android app to write and read NFC tags that can be used on the TonUINO DIY music box.
The app is available for download on github, installable using the Google Play Store or the F-Droid Store.
The github releases are built on CircleCI .
Google Play releases are built using fastlane.
- Hide on-screen-keyboard when switching between edit fragments
- Add entry "unknown <#>" to mode spinner on EditSimple fragment
- Allow users to write a note or title to the NFC tag
- Add support for further NFC tag technologies
- Simulate NFC tag
- Use proper Material design theming instead of faking it
- MainActivity if NFC is not available
- Use data binding
# | name | range | description |
---|---|---|---|
0 | cookie | uint32 | Identifiziert Tonuino, erwartet 0x1337b347 |
4 | version | uint8 | immer 1 |
5 | folder | uint8 | Werte von 1 bis 99, siehe dfplayer doku |
6 | mode | uint8 | Werte von 1 bis 5, siehe nächste Tabelle |
7 | special | uint8 |
Verschiedene Modi
Basierend auf dem Wert von mode und was geschieht, wenn die vorwärts und zurück Tasten betätigt werden
# | Titel | Beschreibung | vorwärts | zurück |
---|---|---|---|---|
1 | Hörspiel | eine zufällige Datei aus dem Ordner | stop | Titel von vorne spielen |
2 | Album | kompletten Ordner spielen | nächster Titel | vorherigen Titel spielen |
3 | Party | Ordner in zufälliger Reihenfolge abspielen | zufälliger Titel | Titel von vorne spielen |
4 | Einzel | Eine Datei aus dem Ordner abspielen | stop | Titel von vorne spielen |
5 | Hörbuch | kompletten Ordner spielen und Fortschritt merken | nächster Titel | vorherigen Titel spielen |
6 | Admin | Noch ohne Funktion | - | - |
Special
Wird nur in bestimmten Modi benutzt für:
- mode 4: Titelnummer
- mode 6: Platzhalter, bisher ohne Funktion
# | name | range | description |
---|---|---|---|
0 | cookie | uint32 | Identifies a Tonuino tag, usually 0x1337b347 |
4 | version | uint8 | always 2 |
5 | folder | uint8 | Values from 1 to 99, see dfplayer docs |
6 | mode | uint8 | Values from 1 to 5, see next table |
7 | special | uint8 | |
8 | special2 | uint8 |
TODO normal tags table
All have a folder value of 0
Modifier | byte 6 | byte 7 | Description |
---|---|---|---|
SleepTimer | 1 | Play duration in minutes (255 max) | Pauses playback after timer |
FreezeDance | 2 | - | Randomly pauses the track after 5 to 30 seconds |
Locked | 3 | - | All buttons are locked and no new card will be read |
ToddlerMode | 4 | - | All buttons are locked |
KindergardenMode | 5 | - | Previous and back buttons are locked. Adding a new card will not stop the current track but will schedule it as next track |
RepeatSingleModifier | 6 | - | Repeat current track |
FeedbackModifier | 7 | - | Will e.g. tell volume before changing it |
How discovered NFC tags are dispatched to activities: https://developer.android.com/guide/topics/connectivity/nfc/nfc.html#dispatching
Currently only Mifare Classic, but I want to look into supporting generic NfcA in the future. Links: