157 lines
3.2 KiB
Markdown
157 lines
3.2 KiB
Markdown
# jebbatime
|
|
<img src="res/jebbatime.png"/>
|
|
|
|
jebbatime is an operating system and application suite for the PineTime watch.
|
|
|
|
# Build
|
|
To build.
|
|
|
|
* Debian Buster (10).
|
|
|
|
## Dependenices
|
|
### Debian Packages
|
|
Install dependencies from Debian repos.
|
|
|
|
```
|
|
sudo apt install \
|
|
wget git build-essential libsdl2-2.0-0 python3-click python3-gi \
|
|
python3-numpy python3-pexpect python3-pil python3-pip python3-pydbus \
|
|
python3-serial unzip \
|
|
graphviz python3-recommonmark \
|
|
python3-sphinx \
|
|
python3-cairo \
|
|
python3-ecdsa \
|
|
pkg-config \
|
|
bluez \
|
|
ntpdate \
|
|
sudo \
|
|
gcc-arm-none-eabi ccache \
|
|
fonts-lobstertwo
|
|
```
|
|
### ccache
|
|
Add to `~/.bashrc`:
|
|
|
|
```
|
|
PATH=~/.local/bin:/usr/lib/ccache:$PATH
|
|
```
|
|
|
|
### Source
|
|
Source sauce.
|
|
|
|
```
|
|
git clone git@spacecruft.org:jebbatime/jebbatime.git
|
|
# Or
|
|
git clone https://spacecruft.org/jebbatime/jebbatime.git
|
|
cd jebbatime
|
|
./scripts/jebbatime-install-deb-deps
|
|
./scripts/jebbatime-install-py-deps
|
|
```
|
|
|
|
### Python
|
|
Manually, install Python dependencies with `pip`.
|
|
|
|
```
|
|
pip3 install --user -r wasp/requirements.txt
|
|
pip3 install --user freetype-py
|
|
```
|
|
|
|
## Bullseye
|
|
Debian Bullseye (11) on ppc64le wants `rustc` to build/install `pip`
|
|
package `cryptography`.
|
|
|
|
```
|
|
./scripts/jebbatime-install-deb-deps
|
|
sudo apt -y install rustc
|
|
./scripts/jebbatime-install-py-deps
|
|
```
|
|
|
|
### Submodules
|
|
Some submodules are mirrored.
|
|
|
|
```
|
|
make submodules
|
|
# XXX grabs some source zips
|
|
make softdevice
|
|
```
|
|
|
|
### Compile
|
|
Build thang.
|
|
|
|
```
|
|
# Blow out, rinse, repeat. Should take less than a minute or so.
|
|
make mrproper
|
|
make clean BOARD=pinetime
|
|
make submodules
|
|
make all BOARD=pinetime
|
|
|
|
```
|
|
### Fonts
|
|
HOWTO add font.
|
|
|
|
```
|
|
cd tools/micropython-font-to-py
|
|
|
|
./font_to_py.py \
|
|
/usr/share/fonts/opentype/lobstertwo/LobsterTwo-Bold.otf \
|
|
--xmap 64 \
|
|
--errchar 58 \
|
|
--smallest 48 \
|
|
--largest 58 \
|
|
lobstertwobold64.py
|
|
|
|
mv lobstertwobold64.py ../../wasp/fonts/
|
|
```
|
|
|
|
# Setup
|
|
This assumes two devices, the sealed watch and the open developers watch.
|
|
|
|
```
|
|
mkdir ~/.config/
|
|
cp -p config/jebbatime.conf ~/.config/
|
|
# Adjust as needed.
|
|
vim ~/.config/jebbatime.conf
|
|
```
|
|
|
|
# Use
|
|
Basic scripts are in `scripts/`.
|
|
|
|
# Upstream
|
|
## Fork
|
|
jebbatime is a lesser fork of Daniel Thompson's Wasp-os.
|
|
|
|
* Same licenses.
|
|
* Renamed.
|
|
* Removed more than added.
|
|
* Removing bits not used on Pinetime.
|
|
* Removing bits not used by me.
|
|
* No step counter.
|
|
* No heart rate monitor.
|
|
* Etc.
|
|
* Not much useful added.
|
|
* Nice digital face font. Battery and BLE icon removed from main app.
|
|
|
|
## Source
|
|
Upstream source code:
|
|
|
|
* https://github.com/daniel-thompson/wasp-os
|
|
|
|
# Non-free bits
|
|
XXX Appears to include non-free "5-Clause Nordic License". `:|`
|
|
|
|
* https://wasp-os.readthedocs.io/en/latest/five-clause-nordic.html
|
|
|
|
|
|
* https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf52%2Fstruct%2Fnrf52_softdevices.html
|
|
"A SoftDevice is a precompiled and linked binary software implementing a wireless protocol developed by Nordic Semiconductor."
|
|
|
|
* Non-free code gets pulled in via this build script:
|
|
`micropython/ports/nrf/drivers/bluetooth/download_ble_stack.sh`
|
|
|
|
* In `micropython/ports/nrf/drivers/bluetooth/`
|
|
|
|
```
|
|
4. This software, with or without modification, must only be used with a
|
|
Nordic Semiconductor ASA integrated circuit.
|
|
```
|
|
|