update README to template project
This commit is contained in:
parent
8002255525
commit
51330747e2
65
README.md
65
README.md
|
@ -1,13 +1,4 @@
|
|||
The LED clock is an add-on for round wall clocks.
|
||||
The purpose is to have LEDs on the circumference of the clock to show the progress of the time using coloured light.
|
||||
|
||||
For that you will need:
|
||||
|
||||
- a WS2812B RGB LEDs strip (long enough to go around the clock)
|
||||
- a development board with a STM32F103 micro-controller equipped with a 32.768 kHz oscillator for the Real Time Clock (such as the [blue pill](https://wiki.cuvoodoo.info/doku.php?id=stm32f1xx#blue_pill)), or using a external [Maxim DS1307](https://www.maximintegrated.com/en/products/digital/real-time-clocks/DS1307.html) RTC module
|
||||
- a coin cell battery to keep the RTC running (optional)
|
||||
- a GL5528 photo-resistor to adjust the LED brightness (optional)
|
||||
- a DCF77 module to set and update the time automatically (salvaged from a radio controlled digital clock)
|
||||
this firmware template is designed for development boards based around [STM32 F1 series micro-controller](http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1031).
|
||||
|
||||
project
|
||||
=======
|
||||
|
@ -15,51 +6,12 @@ project
|
|||
summary
|
||||
-------
|
||||
|
||||
The time will be shown as arc progress bars, in addition to the original hands of the clock pointing at the current time.
|
||||
The hours passed since the beginning of the midday are shown using blue LEDs.
|
||||
The minutes passed sine the beginning of the hour are shown using green LEDs.
|
||||
Whichever progress is higher will be shown on top of the other.
|
||||
For example if it's 6:45, the first half of the circle will be blue, and an additional quarter will be green.
|
||||
The seconds passed since the beginning of the minute are shown using a running red LED, similar to the seconds hand.
|
||||
The red colour might be added on top of the blue, or green colour, then showing as violet or orange.
|
||||
The (gamma corrected) brightness of the last LED shows how much of the hour, minute, or second has passed.
|
||||
|
||||
*describe project purpose*
|
||||
|
||||
technology
|
||||
----------
|
||||
|
||||
The brain of this add-on is a [STM32 F1 series micro-controller](http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1031) (based on an ARM Cortex-M3 32-bit processor).
|
||||
|
||||
To keep track of the time a Real Time Clock (RTC) is used.
|
||||
If the board includes a 32.768 kHz oscillator (such as a [blue pill](https://wiki.cuvoodoo.info/doku.php?id=stm32f1xx#blue_pill)) the micro-controller will use the internal RTC.
|
||||
Otherwise connect an external [Maxim DS1307](https://www.maximintegrated.com/en/products/digital/real-time-clocks/DS1307.html) RTC module to the I2C port and set `EXTERNAL_RTC` in `main.c` to `true`.
|
||||
Also connect the external RTC square wave output in order to have a sub-second time precision.
|
||||
|
||||
Connect a DCF77 module (e.g. salvaged from a radio controlled clock) to the micro-controller.
|
||||
This will allow to automatically get precise time (at least in Europe) when booting.
|
||||
Since the RTC is drifting, the time will get updated using DCF77 every hour to keep <0.5 s time precision.
|
||||
Alternatively set the time using serial over the USB port (providing the CDC ACM profile) or USART port and enter "time HH:MM:SS".
|
||||
|
||||
Power the board using an external 5 V power supply (e.g. through the USB port).
|
||||
This will power the micro-controller, and the LEDs (a single LED consumes more energy than the micro-controller).
|
||||
To keep the correct time in case the main power supply gets disconnected optionally connect a 3 V coin battery on the VBAT pin for the internal RTC, or in the module for the external RTC.
|
||||
|
||||
For the LEDs use a 1 meter LED strip with 60 red-green-blue WS2812B LEDs.
|
||||
Tape the LED strip along the border/edge of the clock.
|
||||
Ideally the wall clock has a diameter of 32 cm for a 1 m LED strip to completely fit.
|
||||
Otherwise change the number of actually used LEDs in the source files.
|
||||
Connect the 5 V power rail of the LED strip to the 5 V pin of the board.
|
||||
Connect the DIN signal line of the LED strip to the MISO pin of the micro-controller on PA6.
|
||||
SPI is used to efficiently shift out the LED colour values to the WS2812B LEDs.
|
||||
A custom clock is provided for this operation using channel 3 of timer 3 on pin PB0.
|
||||
Simply connect this clock to the SPI CLK input on pin PA5.
|
||||
|
||||
The brightness of the LEDs is dependant on the ambient luminance.
|
||||
To measure the ambient luminance a GL5528 photo-resistor is used.
|
||||
Connect one leg of the photo-resistor to ADC channel 1 and the other to ground.
|
||||
Connect one leg of a 1 kOhm resistor to ADC channel 1 and the other to a 3.3 V pin.
|
||||
This voltage divider allows to measure the photo-sensor's resistance and determine the luminance.
|
||||
If you don't want to use this feature, connect PA1 to ground for the highest brightness or Vcc for the lowest brightness.
|
||||
*described electronic details*
|
||||
|
||||
board
|
||||
=====
|
||||
|
@ -83,16 +35,7 @@ connections
|
|||
|
||||
Connect the peripherals the following way (STM32F10X signal; STM32F10X pin; peripheral pin; peripheral signal; comment):
|
||||
|
||||
- USART1_TX; PA9; RX; UART RX; optional, same as over USB ACM
|
||||
- USART1_RX; PA10; TX; UART TX; optional, same as over USB ACM
|
||||
- I2C1_SDA; PB7; DS1307 SDA; SDA; optional, when using external RTC
|
||||
- I2C1_SCL; PB6; DS1307 SCL; SCL; optional, when using external RTC
|
||||
- TIM2_CH1_ETR; PA0; DS1307 SQ; square wave output; optional, when using external RTC
|
||||
- ADC12_IN1; PA1; GL5528; photo-resistor + 1 kOhm to 3.3 V; without GL5528 photo-resistor connect to ground for highest brightness or Vcc for lowest brightness
|
||||
- TIM3_CH3; PB0; PA5; SPI1_SCK; generated clock for WS2812B transmission
|
||||
- SPI1_MISO; PA6; WS2812B DIN; DIN; WS2812B LED strip data stream
|
||||
- GPIO; PA2; DCF77 PO; \#EN; DCF77 enable on low
|
||||
- GPIO; PA3; DCF77 TN; DCF77; DCF77 high bit pulses
|
||||
- *list board to preipheral pin connections*
|
||||
|
||||
All pins are configured using `define`s in the corresponding source code.
|
||||
|
||||
|
|
Loading…
Reference in New Issue