avatar_MRN76

Звуки Ninebot One Z (Z6, Z8, Z10), Nineboot mini Plus

Автор MRN76, 19 Май 2019 в 20:54

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

MRN76

Всем привет. Со звуками мы начали разбираться уже давно, но особо огласке мы это не выдавали. Всё описанное подходит как к колесу Z серии, так и к минисигвею плюс. (На момент написание поста моя программа еще не умеет работать с минисигвеем).
Всё, что вы делаете - на свой страх и риск!
Звуки находятся в отдельной микросхеме W25Q32BV,  с этой микросхемой можно работать программатором CH341A и софтом AsProgrammer_1.4.0.
На всякий случай выложу дамп "голого" колеса, без загруженных звуковых пакетов (Дамп снят с колеса из коробки).
Если что запорите, можете им восстановить все звуки. Работает ли с прищепкой я не знаю, сам я выпивал микросхему (раз 30 точно, пока были опыты).
Но тут более хорошие новости, я сделал блютуз программу на андроид, которая умеет заливать звуковые файлы. (Ссылка на программу, и лучше использовать новую бета версию).
Теперь немного о звуках, они расположены очень странно, и место под звук имеет либо 32 либо 64 кб. Возможно можно объединить 2 звука в один (Если после звука неиспользуемое место), колеса у меня нет. я не проверял.
Маппинг звуков находиться в прошивке и имеет такую структуру (Скорее всего я сделаю мод прошивку с другим маппингом, чтобы звуки были от 64кб)
Маппинг
Процесс выглядит так:

1) Выбираем место, куда лить файл (В мапgинге указанно DEC)
2) Выбираем нужный файл
3) Нажимаем кнопку Sound
4) Ждём сообщение об успешной заливке (Если при этом анимация не уберется, то программу нужно перезагрузить)
PS. и вообще, если уведите, что в процессе программа зависла, то её необходимо перезагрузить, бета версия пока не знает, что она зависла и не может прервать процесс, работаю над этим.
На ошибки "invalid floating point operation", "Duplicates not allowed." внимание не обращаем, они связаны с отрисовкой анимации.
Программа принимает *.wnb файлы, эти файлы необходимо класть в такую папку "память телефона\android\data\com.mrn76.NineToolBeta(или без бета, если версия 1.7)\files"
Теперь о *.wnb файлах, и где их брать. Есть 2 пакета от Ninebot, это Harmonic sound и Loomo Robot sound. Выложу их сюда.
Имеют файлы такую структуру:
Сперва идут 2 байта, в моей программе они не используются и во флеш они не заливаются, далее идёт такой заголовок:
0C 00 00 00 09 65 00 00 80 3E 10 01, жирным выделены 2 байта, отвечающих за длину звука. именно такая длина будет проигрываться после этой строки.
В примере 09 65, это 6509 в hex и переведём в dec, это 25865 байт.
80 3E частота сэмплирования (которая ни на что не влияет)
далее после этой строки идет звук в raw pcm, 16 знаковых бит на семпл, 16 кгц дискредитация.
Ну и чтобы моя программа могла залить файл, его размер должен быть кратен 256 байт + 2 байта (Которые не используются, хотел сделать без них, но тогда пришлось переделать все родные звуки найнбота)
Допустим у нас размер 11864. (11864-2)\256=получается 46 с небольшим. (Чтобы сделать верную длину, берем следующую цифру за нашей, в данном случае будет 47)  умножаем 47 на 256 и прибавляем, получаем 12034, и в хекс редакторе нужно от 11864 до 12034 забить FF.
PS. На неделе допилю версию, чтобы пофиг было на размер файла и прога всё делала сама.
Спасибо Алексею Полякову, что он разобрался с форматом звука.
Так же Алексей помог разделить все звуки пакета Harmonic sound и разбить их в raw и wav по их адресам.
На этом пожалуй всё.
Тут бываю крайне редко, лучше найти меня в телеге, только в конце ника дописать двоечку)
ninetool Программа для работы с прошивками моноколёс ninebot

CrazyDaizy

кто смог уже вернуть звуки из коробки?

MRN76

Поляков Александр описал процесс, как делать свои звуки. И сделал прогу, чтоб преобразовать это в звуки колеса. https://github.com/berghauz/wnb-slicer
Тут бываю крайне редко, лучше найти меня в телеге, только в конце ника дописать двоечку)
ninetool Программа для работы с прошивками моноколёс ninebot

Spolog

Цитата: MRN76 от 25 Май 2019 в 21:21И сделал прогу, чтоб преобразовать это в звуки колеса.
Для ламера как я там всё понятно до последнего скрина на чёрном фоне который. Как конвертировать в wav это понятно, но как из wav сделать wnb я не понял. Подскажите пожалуйста те кто понял.

Spolog

Цитата: MRN76 от 19 Май 2019 в 20:541) Выбираем место, куда лить файл (В мапgинге указанно DEC)
2) Выбираем нужный файл
3) Нажимаем кнопку Sound
4) Ждём сообщение об успешной заливке
Как только нажимаю SOUND колесо блокируется, но при этом процесс заливки звука в проге доходит до 99% и на этом всё...

MEFISTO818

В родном приложении "Segway-Ninebote" не получается поставить кастомный звук подключения и отключения телефона к колесу z10, при этом ставиться свободно изначальный звук включения и выключения моноколеса...что делать в данной ситуации ума не приложу... :facepalm: