Difference between revisions of "PineTime FAQ"

From PINE64
Jump to navigation Jump to search
(Added PineTime Community support)
(Clean up)
Line 22: Line 22:


The nRF Connect mobile app may also be used to update the firmware on your PineTime. See [https://lupyuen.github.io/pinetime-rust-mynewt/articles/cloud#download-and-test-our-pinetime-firmware "Download and Test Our PineTime Firmware"]
The nRF Connect mobile app may also be used to update the firmware on your PineTime. See [https://lupyuen.github.io/pinetime-rust-mynewt/articles/cloud#download-and-test-our-pinetime-firmware "Download and Test Our PineTime Firmware"]
=== How do I connect the PineTime to a programmer? ===
Here's how: [[PineTime devkit wiring]]


=== What's the OS that's preinstalled on the PineTime by default? ===
=== What's the OS that's preinstalled on the PineTime by default? ===
Line 35: Line 31:
=== Can we use this OS or its source code? ===
=== Can we use this OS or its source code? ===


While it's not what the dev kit is for, you are of course free to use the watch with its preinstalled software as is. The preinstalled OS is proprietary, and its owner will not release the source code, so we cannot use this OS as a starting point.
Yes, [https://github.com/JF002/Pinetime InfiniTime] and the [https://lupyuen.github.io/pinetime-rust-mynewt/articles/mcuboot MCUBoot Bootloader] are open source.


=== Why is the back exposed? Is it supposed to snap on? ===
=== Why is the back exposed? Is it supposed to snap on? ===
Line 44: Line 40:


There are several ways you can do this, check out [[Reprogramming the PineTime]]
There are several ways you can do this, check out [[Reprogramming the PineTime]]
=== How do I connect the PineTime to a programmer? ===
Here's how: [[PineTime devkit wiring]]


=== I have experience developing on Arduino. How does the PineTime compare? ===
=== I have experience developing on Arduino. How does the PineTime compare? ===
Line 52: Line 52:


You can use either nRF Connect, custom GadgetBridge build or the proprietary Da Fit app. See [https://lupyuen.github.io/pinetime-rust-mynewt/articles/cloud#set-pinetime-date-and-time-with-nrf-connect "Set PineTime Date and Time with nRF Connect"]
You can use either nRF Connect, custom GadgetBridge build or the proprietary Da Fit app. See [https://lupyuen.github.io/pinetime-rust-mynewt/articles/cloud#set-pinetime-date-and-time-with-nrf-connect "Set PineTime Date and Time with nRF Connect"]
=== Is there a standard agreed method of pushing OTA updates so that one could seal the PineTime dev kit nicely? ===
InfiniTime supports firmware updates over Bluetooth LE with the nRF Connect mobile app. See [https://lupyuen.github.io/pinetime-rust-mynewt/articles/cloud#download-and-test-our-pinetime-firmware "Download and Test Our PineTime Firmware"]


=== My PineTime's screen shows garbage, how do I fix it? ===
=== My PineTime's screen shows garbage, how do I fix it? ===
Line 57: Line 61:
This is usually caused by unplugging the device after it has booted, it needs to be reinitialised. To do so just restart the watch by removing power to it.
This is usually caused by unplugging the device after it has booted, it needs to be reinitialised. To do so just restart the watch by removing power to it.


=== Is there a 3D model of PineTime available somewhere? ===
=== Can I use Pinebook Pro for developing PineTime? ===
 
Yes, use the [https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads Arm Embedded Toolchain arm-none-eabi-gcc]
 
=== Can I code firmware for PineTime without an actual PineTime? ===
 
You may code PineTime Watch Faces and preview them in a web browser (thanks to WebAssembly)...


Not yet. Someone did design a cover you can snap on to keep the back shut: https://www.thingiverse.com/thing:4172849
[https://lupyuen.github.io/pinetime-rust-mynewt/articles/simulator PineTime Simulator]


=== Is there a standard agreed method of pushing OTA updates so that one could seal the PineTime dev kit nicely? ===
Then flash your firmware remotely to a real PineTime via Telegram, and watch your firmware running in a live video stream...


InfiniTime supports firmware updates over Bluetooth LE with the nRF Connect mobile app. See [https://lupyuen.github.io/pinetime-rust-mynewt/articles/cloud#download-and-test-our-pinetime-firmware "Download and Test Our PineTime Firmware"]
[https://github.com/lupyuen/remote-pinetime-bot/blob/master/README.md Remote PineTime]


=== What is ARM Semihosting? ===
=== What is ARM Semihosting? ===
Line 76: Line 86:


Use [https://xpack.github.io/openocd xPack OpenOCD] with PineTime. Other versions of OpenOCD seem to have problems with PineTime.
Use [https://xpack.github.io/openocd xPack OpenOCD] with PineTime. Other versions of OpenOCD seem to have problems with PineTime.
=== Can I use Pinebook Pro for developing PineTime? ===
Yes, use the [https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads Arm Embedded Toolchain arm-none-eabi-gcc]
=== Are there any alternatives to the wrist band provided with the PineTime? ===
No, but PineTime accepts standard 20mm wrist band that is widely available by a third party.
Note that some sellers have a different point of view on what standard is. So you should always check the fitting to make sure it looks like the one used by PineTime.
=== Can I code firmware for PineTime without an actual PineTime? ===
You may code PineTime Watch Faces and preview them in a web browser (thanks to WebAssembly)...
[https://lupyuen.github.io/pinetime-rust-mynewt/articles/simulator PineTime Simulator]
Then flash your firmware remotely to a real PineTime via Telegram, and watch your firmware running in a live video stream...
[https://github.com/lupyuen/remote-pinetime-bot/blob/master/README.md Remote PineTime]


=== How do I remove flash protection? ===
=== How do I remove flash protection? ===
Line 103: Line 93:
The flash protection can be removed using multiple different methods. If you don't have anything except the PineTime, not even a Raspberry Pi, then you have to order a programmer online: you can use a J-Link, CMSIS-DAP dongle and various other programmers. See [[Reprogramming_the_PineTime|this page to see various methods of reprogramming the PineTime]].
The flash protection can be removed using multiple different methods. If you don't have anything except the PineTime, not even a Raspberry Pi, then you have to order a programmer online: you can use a J-Link, CMSIS-DAP dongle and various other programmers. See [[Reprogramming_the_PineTime|this page to see various methods of reprogramming the PineTime]].


If your PineTime was shipped after 20 Sep 2020, you don't need to remove flash protection. They are shipped with flash protection disabled.
If your PineTime was shipped after 20 Sep 2020, you don't need to remove flash protection. They are shipped with flash protection disabled. You can flash and debug PineTime right away with ST-Link, JLink and Raspberry Pi.


=== Why can't you use ST-Link to remove nRF52 Flash Protection? ===
=== Why can't you use ST-Link to remove nRF52 Flash Protection? ===
Line 112: Line 102:


Current progress with Pi and PineTime is here https://medium.com/@ly.lee/debug-rust-mynewt-firmware-for-pinetime-on-raspberry-pi-4b9ac2d093a9?source=friends_link&sk=edb508c31e43d3ec40ecd8554f3405f6
Current progress with Pi and PineTime is here https://medium.com/@ly.lee/debug-rust-mynewt-firmware-for-pinetime-on-raspberry-pi-4b9ac2d093a9?source=friends_link&sk=edb508c31e43d3ec40ecd8554f3405f6
=== Is there a 3D model of PineTime available somewhere? ===
Not yet. Someone did design a cover you can snap on to keep the back shut: https://www.thingiverse.com/thing:4172849
=== Are there any alternatives to the wrist band provided with the PineTime? ===
No, but PineTime accepts standard 20mm wrist band that is widely available by a third party.
Note that some sellers have a different point of view on what standard is. So you should always check the fitting to make sure it looks like the one used by PineTime.


=== I'm stuck. How can I get help? ===
=== I'm stuck. How can I get help? ===


Chat with the PineTime Community on [[PineTime#Community|Matrix / Discord / Telegram / IRC]] (They are bridged into a single chatroom)
Chat with the PineTime Community on [[PineTime#Community|Matrix / Discord / Telegram / IRC]] (They are bridged into a single chatroom)

Revision as of 17:13, 22 September 2020

How do I install new software on it?

The nRF Connect mobile app may also be used to update the firmware on your PineTime. See "Download and Test Our PineTime Firmware"

Also see this page to see various methods of reprogramming the devkit PineTime the wired way.

Does the PineTime run Linux?

No. Please read this forum article for information about Linux on PineTime: https://forum.pine64.org/showthread.php?tid=8112

How long does it take to ship my PineTime?

That depends on whether you chose for Standard or Express shipping. Standard shipping for the dev kit may take up to a few weeks.

My PineTime arrived, now what?

You should start by testing out all the features of the watch, to make sure everything works. Power it on, check the screen.

PineTime is shipped with the InfiniTime firmware. Press the watch button to show the the clock, then swipe up on the touchscreen to reveal the menu.

On your Android phone, install the nRF Connect mobile app to sync the date and time with PineTime. See "Set PineTime Date and Time with nRF Connect"

The nRF Connect mobile app may also be used to update the firmware on your PineTime. See "Download and Test Our PineTime Firmware"

What's the OS that's preinstalled on the PineTime by default?

PineTime ships with the open source InfiniTime firmware.

To support firmware update and rollback, PineTime includes the open source MCUBoot Bootloader.

Can we use this OS or its source code?

Yes, InfiniTime and the MCUBoot Bootloader are open source.

Why is the back exposed? Is it supposed to snap on?

The back cover of the PineTime dev kit is exposed so that you can flash and debug the device with the SWD pins. The main unit and cover does not snap (lock) together. If you want to attach the back cover anyway, you can use glue or tape.

What hardware should I use to flash code to the PineTime?

There are several ways you can do this, check out Reprogramming the PineTime

How do I connect the PineTime to a programmer?

Here's how: PineTime devkit wiring

I have experience developing on Arduino. How does the PineTime compare?

Arduino provides the Arduino IDE (or you use the avr-gcc and avrdude command-line tools) which you can use to compile and upload code to an Arduino board. The PineTime and its ARM processor doesn't have this, so you'll have to familiarize yourself with tools like GCC for AVR, and OpenOCD. Some experience with Arduino does translate over to the PineTime, especially if you've worked with LCD's, or SPI. The PineTime is at least four times faster than an Arduino Uno (even faster at certain specific workloads due to hardware acceleration), and it has 32 times more RAM and 16 times more flash storage.

How do I set the time on PineTime?

You can use either nRF Connect, custom GadgetBridge build or the proprietary Da Fit app. See "Set PineTime Date and Time with nRF Connect"

Is there a standard agreed method of pushing OTA updates so that one could seal the PineTime dev kit nicely?

InfiniTime supports firmware updates over Bluetooth LE with the nRF Connect mobile app. See "Download and Test Our PineTime Firmware"

My PineTime's screen shows garbage, how do I fix it?

This is usually caused by unplugging the device after it has booted, it needs to be reinitialised. To do so just restart the watch by removing power to it.

Can I use Pinebook Pro for developing PineTime?

Yes, use the Arm Embedded Toolchain arm-none-eabi-gcc

Can I code firmware for PineTime without an actual PineTime?

You may code PineTime Watch Faces and preview them in a web browser (thanks to WebAssembly)...

PineTime Simulator

Then flash your firmware remotely to a real PineTime via Telegram, and watch your firmware running in a live video stream...

Remote PineTime

What is ARM Semihosting?

So we know that we use the SWD (Single Wire Debug) protocol created by Arm for flashing and debugging Arm embedded CPUs. SWD being derived from standard JTAG, but with fewer wires With Arm CPUs you can trigger an software interrupt, and allow the debugger (OpenOCD) to do something really nifty Display a message, read console input, dump out a file, even read a file! That's called ARM Semihosting http://www.keil.com/support/man/docs/armcc/armcc_pge1358787046598.htm

What is OpenOCD?

OpenOCD is Open On-Chip Debugger. It's the software that drives your microcontroller debugger/flasher. We need it for running any kind of flashing and debugging with Pi or ST-Link. gdb talks to OpenOCD for debugging firmware. And VSCode talks to gdb for debugging firmware visually. http://openocd.org/doc-release/html/About.html#What-is-OpenOCD_003f

Use xPack OpenOCD with PineTime. Other versions of OpenOCD seem to have problems with PineTime.

How do I remove flash protection?

PineTime watches shipped before 20 Sep 2020 have flash protection enabled.

The flash protection can be removed using multiple different methods. If you don't have anything except the PineTime, not even a Raspberry Pi, then you have to order a programmer online: you can use a J-Link, CMSIS-DAP dongle and various other programmers. See this page to see various methods of reprogramming the PineTime.

If your PineTime was shipped after 20 Sep 2020, you don't need to remove flash protection. They are shipped with flash protection disabled. You can flash and debug PineTime right away with ST-Link, JLink and Raspberry Pi.

Why can't you use ST-Link to remove nRF52 Flash Protection?

Because ST-Link is a High Level Adapter. It doesn't really implement all SWD functions, just a subset. For performance I think. More details in the section "Why Visual Studio Code with ST-Link (instead of nRFgo Studio with J-LINK)" in the article "Coding nRF52 with Rust and Apache Mynewt on Visual Studio Code" here: https://medium.com/@ly.lee/coding-nrf52-with-rust-and-apache-mynewt-on-visual-studio-code-9521bcba6004?source=friends_link&sk=bb4e2523b922d0870259ab3fa696c7da

Since we need a low level SWD adapter like Raspberry Pi anyway, can we do everything on a Pi instead of ST-Link + Windows?

Current progress with Pi and PineTime is here https://medium.com/@ly.lee/debug-rust-mynewt-firmware-for-pinetime-on-raspberry-pi-4b9ac2d093a9?source=friends_link&sk=edb508c31e43d3ec40ecd8554f3405f6

Is there a 3D model of PineTime available somewhere?

Not yet. Someone did design a cover you can snap on to keep the back shut: https://www.thingiverse.com/thing:4172849

Are there any alternatives to the wrist band provided with the PineTime?

No, but PineTime accepts standard 20mm wrist band that is widely available by a third party.

Note that some sellers have a different point of view on what standard is. So you should always check the fitting to make sure it looks like the one used by PineTime.

I'm stuck. How can I get help?

Chat with the PineTime Community on Matrix / Discord / Telegram / IRC (They are bridged into a single chatroom)