stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

Candice

Hardware
  • 1 Devlogs
  • 4 Total hours

DIY Smartwatch

Open comments for this post

3h 48m 6s logged

Prototyping & Schematics

I started working on a prototype of the watch on a breadboard, and began designing the PCB for the watch in KiCAD.

Watch Schematic

I decided to use RP-series MCUs for the watch, so I began developing the schematic for the watch’s PCB with a 3.3V VCC in mind. So far, I’ve attached a USB-C receptacle with nets for data and power. I also added support for 1S LiPo batteries (1S means single-cell in series, which has an average voltage of 3.7V). The 5V power line from the USB and the positive rail from the battery go through a P-channel enhancement-mode MOSFET. The purpose of the MOSFET is to ensure that current doesn’t flow into the battery when the USB is plugged in (at least, not in this part of the PCB/schematic), and that only one power line is responsible for powering the board at a time. Naturally, a buck converter is on the other end to step the voltage down to a nice and friendly 3.3V for the MCU. I also added a safe charging circuit for the LiPo at the end of my session.

Breadboarding a Prototype

What better way to have an off-grid watch than to use LoRa, a technology that can transmit short segments of data (like text messages or maybe really low-res images) over a kilometer away! I used two regular Pi Picos and connected a Wio SX1262 module to each via SPI. I then created a Pico C project and added RadioLib in CMake. The issue with RadioLib is that it’s targeted for Arduino, using functions like digitalWrite() and all that. To ensure this works in the Pico C SDK, I had to add a hardware abstraction layer, also known as a HAL. Basically, a HAL just translates functions from a different platform into the vernacular (Pico C, in this case), like gpio_put(). I created two executables: one for sending data and another for receiving it. The issue is that only every third send makes it across. This is likely due to some internal blocking mechanisms in RadioLib’s methods, but it can be fixed if I find a way to use interrupts. The issue can be explored in depth here.

0
0
10

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…