Go to file
Ben V. Brown 1e0e9848ca Update README.md 2022-12-30 21:11:11 +11:00
apps TWS swap more reliable 2022-12-30 21:01:38 +11:00
config Redo the EQ, big improvement 2022-12-30 21:09:49 +11:00
include/rtos add first commit 2022-08-15 17:20:27 +08:00
platform Annotating input path meaning guesses 2022-12-29 20:29:12 +11:00
rtos add first commit 2022-08-15 17:20:27 +08:00
scripts add first commit 2022-08-15 17:20:27 +08:00
services TWS swap more reliable 2022-12-30 21:01:38 +11:00
tests/anc_usb add first commit 2022-08-15 17:20:27 +08:00
thirdparty Add missing .a files 2022-12-27 10:51:10 +11:00
utils Add missing .a files 2022-12-27 10:51:10 +11:00
.gitignore Build bestool first in docker chain 2022-12-27 10:47:35 +11:00
Dockerfile Working Docker build 2022-12-27 22:45:11 +11:00
Makefile add first commit 2022-08-15 17:20:27 +08:00
README.md Update README.md 2022-12-30 21:11:11 +11:00
build.sh Add docker 2022-09-25 18:17:03 +10:00
clear.sh Add docker 2022-09-25 18:17:03 +10:00
docker-compose.yml Use matching compiler to their blobs 2022-12-27 17:00:04 +11:00
download.sh upstream 2022-12-27 10:27:11 +11:00
notes.txt upstream 2022-12-27 10:27:11 +11:00
start_dev.sh Add docker build env 2022-09-25 17:55:03 +10:00
uart_log.sh Set execute bits 2022-09-25 17:23:47 +10:00

README.md

PineBuds Open Source SDK

This is just the SDK from the wiki (so far), with dockerfile setup to make building easier, and my reverse engineered bestool integrated. The docker image will build bestool for you first, then drop you into the dev container for building and flashing the buds.

Usage

To use this setup to build & flash your pine buds you will need a system with docker setup at the minimum. Docker is used to (1) make this all much more reprodicible and easier to debug and (2) so that we dont mess with your host system at all. In order to program the buds from inside of the docker container; privileged mode is used. So do be a tad more careful than usual.


./start_dev.sh # This will cause docker to start your working environment; this should take roughly 1-3 minutes depending on your network speed to the GCC hosting server

# Now you will be inside of the container, and your prompt will look akin to "root@ec5410d0a265:/usr/src#"

./build.sh # This will run make and build the output program. If you have weird build errors try running clean.sh or rm -rf'ing the out folder first

# Now that the firmware has finished building; if there are no errors you can load it to your buds
# Assuming that your serial ports are 0 and 1, run the following to commands to program each bud in series.
# You may need to take the buds out of the case, wait three seconds, place them back. This wakes them up.
bestool write-image out/open_source/open_source.bin --port /dev/ttyACM0
bestool write-image out/open_source/open_source.bin --port /dev/ttyACM1

Changelist from stock opeen source SDK

  • Long hold (5 ish seconds) the button on the back when buds are in the case to force a device reboot (so it can be programmed)
  • Use the resistor in the buds to pick Left/Right rather than TWS master/slave pairing
  • Pressing the button on the back while in the case no longer triggers DFU mode
  • Debugging baud rate raised to 200000 to match stock firmware
  • Fixed TWS operation such that putting either bud into the case correctly switches to the other bud
  • Working (mostly) audio controls using the touch button on the buds
  • Turned off showing up as a HID keyboard, as not sure why you would; but it stops android nagging me about a new keyboard