What is it?
- It is a atmega32u4 development watch with distance sensor, laser, buzzer, RGB LED and RTC inside.
- It is pre-flashed with a demo program that can display time, inside temperature (RTC3231's temperature), and distance.
- Push the switch upwards and the watch will detect distance between you and your target. If distance is less than 1m, buzzer will sound "B~" and RGB will turn RED at the same time. The distance sensor can only detect 0-1.2m range.
- Push the switch downwards and the laser will be enabled. Push down again and it will turn off the laser.
- You can look at the introduction video I made.
Why did you make it?
I just wanted to make a cool watch for Arduino beginners. Atmega32u4 could be recognized as a key board for computers. That is why a lot of people use it as a Bad USB. That is also the same reason I use it on this watch. I added a command that can show your computer wifi passwords, so when you connect this watch with a computer a window will jump up and shows all the passwords.
You can change the BadUSB code to do what you want with computer. Just for fun. Do not do bad things.
What makes it special?
- Bootloader is Arduino Leonardo
- Buzzer(Digital Pin 12)
- RGB LED(Digital Pin 6)
- Laser(Digital Pin 13)
- 1.3 OLED SH1106(IIC)
- SDA(Digital Pin 3)
- SCL(Digital Pin 2)
- Button Up(Digital Pin 10)
- Button Down(Digital Pin 8)
- Button Select(Digital Pin 9)
- Breakout GPIOs(5V,3V,BAT,GND,GPIO5,SDA,SCL,TXD,RXD,AD0)
- VL53L0 Distance Sensor(IIC)
- Extremely Accurate DS3231(IIC)
- 40-70mA power cost(work time depends on your code)
- 800mAh Li-battery
- Indicate charging LED (25%，50%，75%，100%)
- Power Switch (Click to turn on, double click to turn off, long click to open highlight LED)
How to program it
Open IDE and select "Arduino Leonardo" in the board option.
I will put all the design files and code on my github. When you try the example code you had better to download libraries into your Arduino IDE first
Bad USB code part can only be put at the setup() field. If you put it in the loop() you may have a problem where the computer cannot recognize the watch. You have to re-flash bootloader to fix this problem.
I use IP5306 to power this watch. When IP5306 detect current less than 45mA it will turn off power automatically. So I use a PowerKeep code to simulate every 10 seconds click power button. That will keep ip5306 output power all the time. If you do not add this code, this board may run about 30 seconds and then turn off power automatically.
After you figured out how to control each part of this watch you can develop your customized watch! I am sorry I am not very good at software part, if any problem you can inform me at anytime.