The Smartwatch had lasted just for 3 days until something magical has happened. Fortunately, the battery realised that it has capacity of 100mAh and I am draining around 200uA so it should last longer. I know that it doesn’t have capacity exact capacity as listed. I got 380 hours (~16 days) of use. That was surprise for me. I knew that LiPo batteries has to be discharged to the 0 and charged over few times, but that didn’t helped me.
- Notifications ✓*
- Custom header ✓
- Cheatsheet ✓
- 2 weeks of use ✓
- Better Android App ☐
* The app has some bugs, I know about them so I have to find time to fix that.
I found out that smartwatch has been stucking because of BLE and Ticker. These 2 events are interfacing with the display where the while loops and delays are used. So I added a boolean variable for drawing state. If the ticker wants to refresh time after 60 seconds it first set drawing = true then it begins to draw, so if it got BLE event, it can wait while the ticker is drawing with while(drawing); loop. This solution works also vice versa. Another problem was that I had to use custom shiftOut function instead of hardware SPI, it doesn’t work for me ?.
The next issue was the battery life. Smartwatch lasted only few hours. I found out that the sleep function in library wasn’t complete. Sending data after command was missing, so I added it. Smartwatch could survive for 1 day then. But, that wasn’t surprising. I expected one week! I have been using my smartwatch few days and discharging the battery to the 3.35V. This time, as I am writing this article the display shows 4.03V after 8 hours of use. This sounds much better. Besides that, I am running LiPo discharge logger which writes voltage of 100mAh LiPo battery to the file in SD card. It’s simple. I use 10kOhm resistor as drain. By the Ohm’s law 3.7V / 10kOhm = 370uA which is average power consumption of the smartwatch. I will write an article about How to determine battery percentage from voltage.
If You want to know about something another, please feel free and leave me a commen. I can write tutorial or anything for you which may help you.
It’s finished! Somehow…
You can check some photos on my Instagram @kovacdottop.
First of all, I was using millis() function to get the current time but the millis() resets after 68 minutes. So I was looking for another option. I am using Ticker object now. I execute void every seconds which increments seconds variable storing unix time in seconds. I use another variable to count up to 60 and then I refresh time, date day name, battery voltage if changed. This is better solution than looking for overflowing millis because if you want to run BLE you have to waitForEvent in the loop void, so you can’t refresh time.
Next, I added onReceive(String msg) void for BLE. I wait for any ble event and if I receive any data I show example logo.
But there is a problem, it gets stucked sometimes when there is some ble event. The time isn’t refreshed anymore. So this is on my current queue.
After long time of problem solving I can finally run E-ink display on my RedBearLab BLE v2. I got some problems to run it with hardware SPI, so I had to use different pins and custom shiftOut function for data proper transfer. The final design doesn’t look like an Apple Watch or nice Samsung Watch but I hope it will be functional.
The every part which will be used:
- 3D printed case in black PLA
- RedBearLab Nano v2
- Vibrator motor
- Pushbutton 6×6 mm
- LiPo 301530 100mAh battery
- TP4056 LiPo charger
- uUSB connector (i hope there will be enough space for this)
- Some hot glue, wires and resistors for voltage division and measuring
Stand By mode should refresh time every 10th minute, not every 10 minutes! When I will receive some message, it will display a logo of the app, sender or title and the content. I will play with this when it will be finished hardwarely.
I expect one week of usage.
I consider to make custom pcb with all the parts soldered on the only one board, so there will be more space for battery and it will be thinner and nicer.
I made some progress last nights while staying awake until 3-4 AM. I have tried NRF24L01 modules but without success. I have to order new ones, I have’t got any spares. They were working fine last year, I don’t know what happened. So, I decided to add Bluetooth Module (HC-06).
First of all, I was looking for Android App which will be the best for my purpose. Simple app which will be sending data to the car continuously! I didn’t find such an app for controlling car. I found some, but they were horrible, but good for testing. The app I downloaded has joystick and buttons like gamepad. The problem was in joystick. It was just like 8 buttons and the direction you moved with joystick the specific button was sent to the car ONCE. When I released the joystick some another character was sent to the car but also ONCE. That was problem. Why? Because when I lost connection between smartphone and HC-06 the car will still going in the last known direction and car easily run away and be damaged. And so it happened. It fell off the broke rear bumper. Glue, easy fix.
When the car was finished and working I started programming custom Android application. I wanted keep it simple. I added status bar with connect switch, voltage and device name and coefficients. Below the status bar were placed custom made „Analog Sticks“, one vertical, one horizontal giving me a range of -1.0 to +1.0 for better calculations. I will talk about the app itself in the part #3.
Besides Smartwatch Journey and Quadruped Project there are several projects waiting to be finished.
I built FPV (First Person View) RC car controlled by Arduino last summer. It was easy to build but the main chassis wasn’t looking so good. So, I decided to rebuild it.
- The main parts of the car was: chassis with steering and motor included from construction kit rc truck, 2 x 18650 old batteries, Arduino Pro Micro/Mini, nRF24L01 with attachable antena, TB6612FNG as motor driver. I added 1000TVL FPV camera and transmitter Eachine TS832 later. The controlls was just 4 buttons (FWD / REV, LEFT / RIGHT) and FPV receiver RC832 from Eachine as well. There was also some regulator which will be mentioned later. Voltage divider to measure voltage with Arduino.
- Reasons why I wanted to rebuild it:
- There wasn’t any space to put batteries inside chassis, the only way was to use 4xAA batteries insertable to the bottom part, but that’s too weak and slow for me cuz 4xAA can provide olny 4.8V – 6V due to type. The batteries was placed on the top of chassis making bad behavior of the car.
- Power management wasn’t solved very good. As I accelerated the car the FPV transmitter shuted down and didn’t have enought power. I had to use another 600mA battery but it was drained in 15 minutes.
- What I made new or added:
- 3D-printed chassis
- Old steering was replaced by servo motor steering with L7806CV voltage regulator to make suitable 6 volts.
- Front suspension is wider by 5 mm. (80 mm front and rear now)
- New main-board including NRF24L01 with L1117 3.3V regulator, Arduino Pro Micro 5V, TB6612FNG, big 1000uF capacitor for voltage spikes, buzzer for signalization low voltage or debug, 10k/4k7 voltage regulator was the same as before.
- burned finfer by soldering iron :/, it survived (weird smell of human meat)
- What I will make or add later
- FPV camera on Yaw or Pitch servo
- Spoiler on servo. Rly? Useless…. Maybe.
- Better controller! with display or buzzer to know battery voltage of the car or the controller itselft.
- Any ideas? firstname.lastname@example.org / IG: kovacdottop
I decided to use other E-ink display without third color
The display I wanted to use has 3 color – black, white and red, that sounds great, but it doesn’t support partial update and the fullscreen update is slow – 8 seconds. The new display I will use is the same but without red color, only black and white. It can be refreshed in just 2 seconds and the partial update is fast enough.
I searched for shops to buy that display. I found 2 versions of the same display. The first one from smart-prototyping looks thin. I don’t think so it’s thinner than the display from RLX. It has smaller bezels, but the RLX shop is located in my country, it’s cheaper and I can cut the borders of the PCB by myself with micro saw.
I am looking forward fastest updates, partial updates and RedBear board too.
There are several types of displays on the market: OLED, TFT, LCD and e-Paper displays. The biggest OLED display is 1.3″ 128×64, TFT touch screens are on the other side too big for my smartwatch project and they drain a lot of energy. LCD Nokia 5110 display is
great. I like it. The power consumption is below 1mA but the resolution is 84×48 and I’ve found that pixels aren’t squares but rectangles and a circle looks like an ellipse. LOL. I want to try these new type of display available now. So I choosed this E-paper display which I’ve mentioned about in the previous part. I measured the power consumtion, the thing what depends on, and the result is awesome. Just 0.02 mA when sleeping and 5mA when updating.