From fcafec7cc66fae1268962a54b0f2c6a88c103a1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Sun, 11 Oct 2020 12:46:53 +0200 Subject: [PATCH] document project --- README.md | 101 +++++++++++++++++++++++++++++------------------------- 1 file changed, 55 insertions(+), 46 deletions(-) diff --git a/README.md b/README.md index 177ef2f..eeedd60 100644 --- a/README.md +++ b/README.md @@ -1,64 +1,73 @@ -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). - -SK6812RGBW DIN, PB15, SPI2_MOSI -CATALEX RX, PA2, USART2_TX -CATALEX TX, PA3, USART3_RX - -SK6812RGBW LED string -orange: gnd -green: 5v -yellow: din +This is the firmware for the Dachboden Klo-Assistant. project ======= -summary -------- +This project's original purpose was to indicate the occupancy state of the toilet. +If the toilet was in use, a red light on a shield would indicate it is occupied. +Else a green light indicates it is free. -*describe project purpose* +Next, a display has been added to show the time spent in the water room. +This would put some pressure on the user to not spend too much time on the loo and hold up the queue. -technology ----------- - -*described electronic details* +Finally, it has been connected to the speakers. +A welcome message would greed the new comer, followed by a pleasant music. +After three minutes, a comical message would encourage the slow rider to hurry up. board ===== -The current implementation uses a [core board](https://wiki.cuvoodoo.info/doku.php?id=stm32f1xx#core_board). +The devices is comprised by following components: -The underlying template also supports following board: - -- [Maple Mini](http://leaflabs.com/docs/hardware/maple-mini.html), based on a STM32F103CBT6 -- [System Board](https://wiki.cuvoodoo.info/doku.php?id=stm32f1xx#system_board), based on a STM32F103C8T6 -- [blue pill](https://wiki.cuvoodoo.info/doku.php?id=stm32f1xx#blue_pill), based on a STM32F103C8T6 -- [black pill](https://wiki.cuvoodoo.info/doku.php?id=stm32f1xx#black_pill), based on a STM32F103C8T6 -- [core board](https://wiki.cuvoodoo.info/doku.php?id=stm32f1xx#core_board), based on a STM32F103C8T6 -- [ST-LINK V2 mini](https://wiki.cuvoodoo.info/doku.php?id=jtag#mini_st-link_v2), a ST-LINK/V2 clone based on a STM32F101C8T6 -- [USB-Blaster](https://wiki.cuvoodoo.info/doku.php?id=jtag#armjishu_usb-blaster), an Altera USB-Blaster clone based on a STM32F101C8T6 - -**Which board is used is defined in the Makefile**. -This is required to map the user LED and button provided on the board - -The ST-LINK V2 mini clone has SWD test points on the board. -Because read protection is enabled, you will first need to remove the protection to be able to flash the firmware. -To remove the read protection (and erase flash), run `rake remove_protection` while a SWD adapter is connected. - -The Altera USB-Blaster clone has a pin header for SWD and UART1 on the board. -SWD is disabled in the main firmware, and it has read protection. -To be able to flash using SWD (or the serial port), the BOOT0 pin must be set to 1 to boot the system memory install of the flash memory. -To set BOOT0 to 1, apply 3.3 V on R11, between the resistor and the reference designator, when powering the device. -The red LED should stay off while the green LED is on. -Now you can remove the read protection (and erase flash), run `rake remove_protection` while a SWD adapter is connected. +- a [blue pill](https://wiki.cuvoodoo.info/doku.php?id=stm32f1xx#blue_pill) development board, based on a STM32F103C8T6 micro-controller +- a GW1584 step down voltage converter module to lower the 12V input to 5V for all peripherals +- a switch to cut the power, allowing other devices to connect to the Bluetooth speakers +- a micro-switch in the door lock detects when a user closed the door to use the toilet in peace +- a SK6812 RGBW LED strip illuminates the shield to indicate if the toilet is free or occupied +- a Titan TM1637 4-digit 7-segment display shows the time is second passed since the door has been locked +- a Catalex YX5300 MP3 player reads the songs and announcements from a micro-SD card and outputs it to a 3.5 mm stereo jack +- a Taotronics TT-BA01 Bluetooth transmitter with input 3.5 mm stereo jack connects to the room speaker to send the audio connections =========== -Connect the peripherals the following way (STM32F10X signal; STM32F10X pin; peripheral pin; peripheral signal; comment): +GW1584 step down voltage converter module: -- *list board to peripheral pin connections* +- IN-: outer shell of 5.5/2.1 barrel connector +- IN+: inner pin of 5.5/2.1 barrel connector, after power switch (6-12V) +- OUT-: ground +- OUT+: 5V -All pins are configured using `define`s in the corresponding source code. +micro-switch in door lock: + +- COM: ground +- NO: PB8, use external pull-up resistor (10k to 5V) + +SK6812 RGBW LED strip: + +- 5V (green cable): 5V +- DIN (yellow cable): PB15 (SPI2_MOSI), through voltage shifter (to get clean 5V signal) +- GND (orange cable): GND + +Titan TM1637 4-digit 7-segment display: + +- GND: GND +- VCC: 5V +- DIO: PB7 +- CLK: PB6 + +Catalex YX5300 MP3 player: + +- GND: GND +- VCC: 5V +- TX: PA3 (UART2_RX) +- RX: PA2 (UART2_TX) + +Taotronics TT-BA01: + +- 3.5 mm stereo jack: to MP3 player +- cable soldered to button: PA0 (this allows to switch on/off the transmitter, and put it into pairing mode) +- cable soldered to blue: PA1 (this allow to know in which state the transmitter is) code ==== @@ -90,9 +99,9 @@ The `bootloader` is started first and immediately jumps to the `application` if The `application` image is the main application and is implemented in `application.c`. It is up to the application to advertise USB DFU support (i.e. as does the provided USB CDC ACM example). -The `bootlaoder` image will be flashed using SWD (Serial Wire Debug). +The `bootloader` image will be flashed using SWD (Serial Wire Debug). For that you need an SWD adapter. -The `Makefile` uses a Black Magic Probe (per default), or a ST-Link V2 along OpenOCD software. +The `Makefile` uses a ST-Link V2 along OpenOCD software. To flash the `booltoader` using SWD run `rake flash_booloader`. Once the `bootloader` is flashed it is possible to flash the `application` over USB using the DFU protocol by running `rake flash`.