STM32L0 Cortex-M0/M0+ STM32L011 access line 2K RAM 2x Timer STM32L031 access line 8K RAM 3x Timer STM32L0x1 access line STM32L0x1K access line, 32 Pins (LQFP) STM32L0x1F access line, 20 Pins (TSSOP20) STM32L0x1F3 8KB Flash STM32L0x1F4 16KB Flash STM32L011F4P6 STM32L0x1F6 32KB Flash STM32L0x2 USB+DAC STM32L1 Cortex-M3 STM32L4 Cortex-M4 http://www.st.com/en/microcontrollers/stm32l031f6.html ========= http://www.st.com/en/embedded-software/stm32cube-embedded-software.html zip file: ~/Downloads/en.stm32cubel0.zip this contains the lib, STM32Cube_FW_L0_V1.8.0/Drivers/STM32L0xx_HAL_Driver however the lib requires a config file. example is here: STM32Cube_FW_L0_V1.8.0/Projects/STM32L011K4-Nucleo/Examples/GPIO/GPIO_IOToggle/Inc startup code (.s files) STM32Cube_FW_L0_V1.8.0/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/gcc register definitions: STM32Cube_FW_L0_V1.8.0/Drivers/CMSIS/Device/ST/STM32L0xx/Include STM32L031xNyM 3: RAM size? 8KB x: K=32 pins, F=20 pins N: 4=16KB, 6=32KB y: T=LQFP? M: temperature range STM32L031F6P6 TSSOP20, 32K Flash --> available STM32L052K8T6 LQFP32, 64K Flash, USB --> available --> ld file for example here: ./STM32Cube_FW_L0_V1.8.0/Projects/STM32L031K6-Nucleo/Templates_LL/SW4STM32/STM32L031K6_NUCLEO/STM32L031K6Tx_FLASH.ld however newly created and derived from nokeep.ld script library/hal/CMSIS kchmviewer STM32Cube_FW_L0_V1.8.0/Drivers/STM32L0xx_HAL_Driver/STM32L073xx_User_Manual.chm doxygen seiten der hal treiber.... leider wie üblich nicht besonders übersichtlich Code Source startup_stm32l031xx.s STM32Cube_FW_L0_V1.8.0/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/gcc startup code, which will also call SystemInit and main() system_stm32l0xx.c STM32Cube_FW_L0_V1.8.0/Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates Contains the SystemInit() and SystemCoreClockUpdate() function. system_stm32l0xx.h STM32Cube_FW_L0_V1.8.0/Drivers/CMSIS/Device/ST/STM32L0xx/Include Contains the global defs for system_stm32l0xx.c. It is placed in the common/inc stm32l0xx/inc various include files copied from STM32Cube_FW_L0_V1.8.0/Drivers/CMSIS/Device/ST/STM32L0xx/Include/ STM32Cube_FW_L0_V1.8.0/Drivers/CMSIS/Include/ Documentation PM0223 STM32L0 Series Cortex ® -M0+ programming manual DM01004451.pdf 110 pages RM0377 STM32L0x1 Reference manual DM01008282.pdf 882 pages - Section 3.3.2: BOOT0 Pin (0=user, 1=bootloader) STM32L031x4 STM32L031x6 Datasheet DM00140359.pdf 118 pages AN2606 Bootloader description CD00167594.pdf USART2 configuration is: 8-bits, even parity and 1 Stop bit, RX/TX on PA9/PA10 or PA2/PA3 Die doku ist da nicht ganz eindeutig. PA10 und PA3 sind die UART2_RX pins, PA9 und PA2 die TX AN3155 USART protocol used in the STM32â„¢ bootloader External tools (Ubuntu Linux) arm-none-eabi-gcc sudo apt install gcc-arm-none-eabi stm32flash sudo apt install stm32flash stm32flash: There seems to be a problem with ch340/ch341 devices https://sourceforge.net/p/stm32flash/tickets/81/?limit=25&page=1#7106 also mentioned here: https://sourceforge.net/p/stm32flash/wiki/Hints/ I think this got solved in the kernel by a commit on Oct 24, 2016: https://github.com/torvalds/linux/commit/ba781bdf86621b71aa79a1ac0ad584f1e8aac307#diff-27cbcff3aa65aa3cda4aef10b416dd24 modinfo ch341 --> 4.4.0-62-generic https://github.com/torvalds/linux/blob/v4.4/drivers/usb/serial/ch341.c --> Tag 4.4 looks like this moved to the kernel with the 4.10 tag Ubuntu kernel version ermitteln: cat /proc/version Ubuntu 17.04 may use 4.10 and might be there at 13 Apr 2017 ok, i will be using a cp21xx driver here... Conclution: Support of CH340 usb-serial converter for ubuntu linux will be there with Ubunutz 17.04 =========== steampunk http://www.rattlebrained.org/articles/diy-pvc-train-whistle Kupferrohre: https://www.bengs-modellbau.de/zubehoerteile/flasche-und-fittings/ 90 grad fitting Auch nicht schlecht: https://knupfer.info/shop/index.php/deutsch/profile-rohre/kupferrohr.html kupferrohrflöte, obertonflöte http://www.spiritsoundart.de/shop/obertonfloeten-aus-kupfer/ http://www.maxbrumbergflutes.eu/floeten/obertonfloeten/ englisch https://en.wikipedia.org/wiki/Overtone_flute Didgeridoo =========== TODO, 17 Apr 2017 - Pullups an die buttons und die tamper pullups deaktivieren. Grund: Ansonsten kann man nicht mehr per reset booten und flashen --> DONE (es gibt einen menü eintrag) - Es wird ja ständig das power interface sowie RTC activiert und deaktiviert. Das sollte man vermutlich dauerhaft aktiviert lassen. --> DONE 9. Mai 17 Irgendwie funktioniert das warm startup nicht. Der uC stürzt ab, wenn man das u8x8_InitDisplay() nicht ausführt, aber warum? Was habe ich vergessen? --> pointer fehler todo - load/save values to backup register --> DONE - configuration of the standby delay value --> DONE - display off option for standby --> DONE - if the alarm is confirmed within the same minute, then the alarm will apear again. --> Fixed (checked for the is_equal flag) - Auto detect für den externen oszillator oder quarz ============ Holzbearbeitung redwood 15x60x60 (dictum.com) Linse 35,5mm (astromedia.de, OM7a) 32mm Holzbohrer Fach für 2xAAA Halterung: Von unten mit 32mm Holzbohrer aufbohren: Achtung nicht durchbohren Dann mit 4x 14mm Holzbohrer weiterbohren (an den Rändern des vorherigen Lochs). Achtung nicht durchbohren Bedienknöpfe: Löcher mit dem Durchmesser der Knöpfe bohren (Rote Buttons hatten 12mm) Display und uC Gehäuse: Von unten mit 32mm Holzbohrer aufbohren: Achtung nicht durchbohren Dann mit einem kleineren Bohrer (6mm?) entlang der Front mehrere Löcher Bohren Auch hier: Nicht durchbohren Mit der Stichsäge Die Bohrungen weiter aufsägen. Display Front: Löcher bohren, mit der Stichsäge aufbohren, dann mit der Feile quadratisch machen. Display Abdeckung M30: Aussendurchmesser 56mm, Innen31 Derzeit: Aussen 52, Innen 32 https://www.befestigungsfuchs.de/Befestigungstechnik/Unterlegscheiben/DIN-125/Form-A/50-Unterlegscheiben-DIN-125-Form-A-Kunststoff-Polyamid-fuer-M30?action_ms=1 50 Stück, 13€ + 5€ Versand Buchescheiben 50mm, aber ca. 15€ Versand und Mindermengenzuschlag http://www.rundstab.de/product_info.php?info=p2934_buchenscheiben-50-mm.html&no_boost=1 10 Stück 5€ + 15€ Versand Buchescheiben 50mm, aber sortiert im set mit 35 anderen http://www.rakuten.de/produkt/holzscheiben-35-stueck-15-5-cm-349163036.html 2 Stück für 2,60 +5€ Versand Im Englischen heisst das wohl "flat washer" --> Bei E-Bay bestellt Innen 33mm aussen 42mm... naja mal sehen wie das mit der Linse wird. =============== steampunk t-shirts --> https://www.redbubble.com https://www.redbubble.com/people/grimdork/works/14821398-steampunk-gears?grid_pos=88&p=t-shirt&rbs=8ebda8e5-4144-46a9-ac4a-844d84359fa5&ref=products_grid&style=mens https://www.redbubble.com/people/melaniem68/works/8073180-steampunk-play?grid_pos=207&p=t-shirt&rbs=562932c0-5414-48ae-a967-336e2ea35256&ref=products_grid&style=mens https://www.redbubble.com/people/amadeus-ch/works/11341440-mechanical-heart-steampunk?grid_pos=244&p=t-shirt&rbs=562932c0-5414-48ae-a967-336e2ea35256&ref=products_grid&style=mens https://www.redbubble.com/people/interarte/works/7300455-steampunk?p=t-shirt&style=mens&body_color=black&print_location=front https://www.redbubble.com/people/reubsaet/works/23847501-steampunk-art?grid_pos=384&p=mens-graphic-t-shirt&rbs=d5842963-a112-4003-a60e-06ecd20a4e42&ref=products_grid FITTI20 --------------- todo - uptime counter --> done - bessere voltanzeige --> nicht umgesetzt, aber optional - winterzeit: Muss direkt auf der hardware gemacht werden, alles andere ist zu kompliziert --------------- extras obertonflöte: schwierig, vor allem wegen der luft fliehkraftregler (governor): kann man wohl praktisch nicht kaufen http://www.hilltop-cottage.info/blogs/adam/model-watt-governor-cad-plans-and-construction-notes/ http://www.stuartmodels.com/products/fittings--tools---accessories/governor---spring-belt ... teuer Alles zu teuer. Glocke mit servo dran... --------------- A) short description of the STM32L0 RTC - date/time register - CR register with special DST features (BKP, SUB1H and ADD1H flags) - two step write protection: PWR->CR |= PWR_CR_DBP; RTC->WPR = 0x0ca; /* disable RTC write protection */ RTC->WPR = 0x053; B) algorithm - basic idea - special case for winter time change (double hour) C) Date calculation D) Code --------------- Bauteile Steampunk Clock mit MKR Zero Gold-Sprühlack Kupferrohre 3x Durchmesser 12mm, Länge 40mm, Meterware Baumarkt Kupferrohre 2x L-Stück, 12mm, Baumarkt Steckernetzteil 5V, 2.1mm Hohlstecker (z.B. Reichelt SNT 1000 5V) Einbaukupplung, 2.0mm Stift (z.B. Reichelt LUM NEBJ 21C) Buzzer, Durchmesser 10mm --> Achtung: Den CAD Plan noch ändern. --------------- Bugs Man scheint die zeit nicht immer vorzeitig ausschalten zu können. Warum? Erneutes eingeben der alarmzeit behebt das problem. Manchmal erscheit die nächste zeit gar nicht im display. Auch hier behebt das erneute eingeben der alarmzeit das problem. Es sieht so aus: man schaltet die zeit vorzeitig ab, dann erscheint das menü für den übernächsten tag nicht (für den folgenden tag hatte man es ja abgeschaltet). 17. Sep 2017: einen bug in uint32_t get_u32_by_alarm_data(gui_alarm_t *alarm) behoben --------------- MKR Zero Processor: SAMD21G18 --------------- Ausgabe, ob gerade winter oder sommerzeit aktiv ist. ========================0 https://stackoverflow.com/questions/50151897/arm-gcc-conflicting-cpu-architectures ARM GCC: Conflicting CPU architectures So you should remove gcc-arm-none-eabi and binutils-arm-none-eabi: sudo apt-get remove binutils-arm-none-eabi sudo apt-get remove gcc-arm-none-eabi Now install from the PPA: sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa sudo apt-get update sudo apt-get install gcc-arm-embedded