Commit Graph

55 Commits

Author SHA1 Message Date
Ben V. Brown
a0a779faba Custom tip type selection (#1977)
* Minor doc updates

* pydoc

* Draft tip selection menu

* Start linking in manual tip resistance

* Enable on Pinecilv1 / TS10x

* Fixup drawing tip type

* Update Settings.cpp

* Rename JBC type

* Add translations

* Handle one tip type

* Refactor header includes

* Fixup translation_IT.json

* Fixing up includes

* Format

* Apply suggestions from code review

Co-authored-by: discip <53649486+discip@users.noreply.github.com>

* Update Documentation/Hardware.md

Co-authored-by: discip <53649486+discip@users.noreply.github.com>

---------

Co-authored-by: = <=>
Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2024-11-01 12:20:33 +11:00
ave
02b21a620b Add a sleep timeout setting for hall sensor (#1969)
* Add a sleep timeout setting for hall sensor

* Update Settings.h to reorder HallEffectSleepTime to the end

* Update Settings.cpp to reorder HallEffectSleepTime to the end

* add HallEffSleepTimeout to rest of translations

* mix misaligned number in Settings.cpp

* fix clang-format issue in getHallEffectSleepTimeout
2024-08-21 15:23:34 +10:00
Ivan Zorin
95eb154c44 Add enum for modes of locking buttons (#1955)
* Add enum for modes of locking buttons

* Update description for FULL value
2024-07-24 22:14:06 +10:00
Ben V. Brown
48649908a7 WIP: Split Render for multiple screen resolutions (#1888)
* Create README.md

* Move to new folder

* Migrating

* Migrate Remainder

* format fix (all but one) (#1889)

* Update USBPDDebug_FS2711.cpp

* Delete PrintVoltage.cpp

* Copy in 128x32 template

* Mask drawing for 96x16

* Import #1819

* Update Font.h

* Homescreen

* Update draw_homescreen_detailed.cpp

* Fix oled normal draw for variable height

* Update OLED.cpp

* Draw settings icons

* Update draw_homescreen_simplified.cpp

* Update draw_power_source_icon.cpp

* Fixup oled drawing for fill area

* Update the region fill for mixed heights

* Fix newline height

* FIXUP! Draw icons in settings menu at correct size

* Fix scrollbar

* Update settingsGUI.cpp

* S60(P) Disable auto display rotation

* On tall oled, scroll in 2 line increments

* Bugfix transition L<->R

@discip I take it back, there was a bug :)

* Draw every other one on transitions

* .

* cleanup

* Bootup logo: Draw in centre

* Update OLED.hpp

---------

Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2024-07-12 08:27:05 +10:00
Ivan Zorin
18e936ae6d Implement OLED::drawUnavailableIcon() to simplify duplicated calls (#1947) 2024-07-12 00:34:12 +10:00
Ivan Zorin
c19e882338 Add enum for USB PD modes (#1943)
* Add enum for USB PD modes

* Update comments for clarification according to code review
2024-07-09 19:20:02 +10:00
Ben V. Brown
442dbd982e Expand USB-PD mode option (#1917)
* Use PDMode to decide if we do resistance pad

* Rename PDVpdo to USBPDMode

* Add options for PD Mode

* OLED: Allow soft line-wrap x position

* Add new translation option for menu settings values

* Use new setting value for PD Mode

* Update translations for new menu setting

* Fixup! S60

* black python
2024-06-01 16:36:34 +10:00
Ben V. Brown
baf2f26e59 Big overhaul of the UI framework (#1749)
* Starting GUI render refactor to be more immediate mode

Update TemperatureAdjust.cpp

.

Cleanup Soldering

Sleep

SolderingProfiles

Soldering Rework

Rough pass GUI

Temp Adjust

Cleanup old OperatingMode

Debug Menu

* Update TemperatureAdjust.cpp

* Roughing some transition work

* Fixup! Hook in the init starter helper

* Better home screen button handler

* FIXUP! Fix typo's

.

* Update SettingsMenu.cpp

* More settings rework

* More settings rendering

* Fixup

* Transitions

Update SolderingProfile.cpp

Hook in transistions

* Update TemperatureAdjust.cpp

* Update push.yml

* Add auto-repeat to settings menu

* Miniware: Use IT for I2C writes

* Update USBPDDebug_HUSB238.cpp

* Force write screen on side animation cancel

.

* Refactor moving down the settings list

* Update settingsGUI.cpp

* Update I2C_Wrapper.cpp

* Update OLED.cpp

* Rework button handling

* Fix PD debug at boot

* Fixup not showing right menu options

* silence some warnings

* Style cleanup

* Fkit use bit-bang I2C for Miniware

* Update GUIRendering.md

* Fixup transition on enter soldering mode

* Save Settings

* Fixes for some animations not running

Dont bail on animations if keypress is still held

* Fixup settings acceleration

* OLED Up animation

* Link up/down on debug meny

* Make all accelerometers I2C bus aware

Update accelerometers_common.h

* Make I2C mag optional

* Miniware -> Only Bit-Bang I2C

* Fixup for scrollbar

FIXUP! Debug menu returns to home screen

FIXUP! Up oled animation

Fix temp exit

* Settings menu -> Both buttons return a menu layer

* Merge fixup

* Update BMA223.cpp

* Re-Enable OLED sleep

* Save Setting on temp adjust exit

* WiP on startup mode

* Some autostart working

* Add hibernation mode & more autostart fixes

* If cant CJC; go to startup

* Hibernate in sleep

* Cleanup scroll indicator

* FIXUP! Ensure startup warnings are linked in

* FIXUP! Ensure we render out temp change before timing out

* Ensure 100ms delay between CJC samples

* Fix not re-calculating menu length on entering menu

* Implement NegotiationinProgress for USB-PD

* Mask heating until PD finishes negotiation

* Fixup staying in hibernate correctly

* Warning timeout

* Show reset settings warning

* Correctly compensate help text start time

* Update GUIThread.cpp

* Update USBPD.cpp

* .

* Fixup sleep time

* Update printSleepCountdown.cpp

* replacing countdown with big plus while in boost mode

* bringing back the + 1 since it was missing when not in boost mode

* Bail on USB-PD check after 3 seconds incase of DC source

* Fix hibernate

* Update PIDThread.cpp

* did center plus symbol (boost mode)

* Big refactor to not make settings increment handler handle the "is last item" return

* Fixup boot logo

* Fix flashing

* Fixup recalculate the menu length on long hold

* Fixup missing menu entries

* Fix junk left on screen after user confirmation

* Re-order button handler to use custom, then default order to allow setting associated setting

* Attach setting for settings using custom handler

* Fix swap +/- keys

* Fix boost temp

* Implement last menu option for Language selector

* Wait for init before CJC runs

* Check last setting via increment value

* Update BSP.cpp

* removed = from >=

Otherwise incrementing would stop and the scroll bar would already flash at the second to last value.

* (Hacky) Fix for Settings reset

---------

Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2024-02-18 09:42:08 +11:00
discip
813722367d Off=>icon (#1678)
replacing Off by an Icon
2024-01-16 06:54:08 +11:00
discip
00c3d150dd Update settingsGUI.cpp 2023-11-22 09:21:24 +01:00
discip
faf2c6733e Update settingsGUI.cpp 2023-11-22 00:07:10 +01:00
discip
4f5bbcf370 Update settingsGUI.cpp 2023-11-21 17:11:21 +01:00
Ivan Zorin
7338a68652 Use half of infinity logo as icon for one-time loop animation setting in the menu 2023-11-21 18:22:27 +03:00
Ivan Zorin
a02f8c8ae3 Implement optional looping for animated boot logo [#1839] 2023-11-21 01:38:10 +03:00
discip
118fa09ce7 Enhanced V calibration (#1758) 2023-07-24 18:23:04 +10:00
Ben V. Brown
65dd3e879c Fixup for temp in F bug 2023-07-21 21:16:11 +10:00
Ivan Zorin
c7574c4d0c Implement printSymbolDeg() helper function as method for OLED class (#1743)
* implement printSymbolDeg() helper function as method for OLED class

* Remove extra line added by mistake

* OLED::printSymbolDeg - add drawSymbol calls

* OLED: make comments more clear for implemented method

* OLED::printSymbolDeg(): attempt to improve read-ability replacing if/else by switch/case

* OLED::printSymbolDeg() - add comment for drawSymbol to clarify its underhood

* get tipTemp using ?/: instead of if/else

* Implement getTipTemp() helper

* Add missing header

---------

Co-authored-by: Ben V. Brown <5425387+Ralim@users.noreply.github.com>
2023-07-18 20:38:14 +10:00
Ivan Zorin
d95af7d1a0 clang-format implementation (#1740)
* Testing clang-format style check using github CI

* github/push: implement check-style for clang-format as a separate build step

* github/push: add missing packages for check-style/clang-format build step

* source/Makefile: check-style - reduce files of interest; update .clang-format to keep enums init

* source/Makefile: empty lines, spaces & tabs refactoring to unify style - part 1 out of N

* source/Makefile: fix formatting for multi-line variables

* source/Makefile: update formatting for multi-line variables

* source/Makefile: remove spaces on vars assignments to unify style

* source/Makefile: remove unused target style

* source/Makefile: implement exclude vars for clang-format related files

* source/Makefile: exclude configuration.h from clang-format check

* Dockerfile: add diffutils in a container to make check-style target using advanced version of diff to get more advanced output to parse & navigate log more easily

* source/Makefile: implement parser for clang-format inside check-style target to make output compatible with gcc-like error compilation format for compatibility with IDEs/editors for easy navigation over files to fix style errors

* source/Makefile: probably final touches on unifying style

* source/Makefile: implement check-style-list target to only list affected file names with wrong code style for debug purposes

* source/Makefile: fix missed spaces

* deploy.sh: add helper routine to deal with clang-format error output logging from makefile

* gitignore: add clang-format log explicitly

* Refactoring for clang-format compiance

* Dockerfile: add sed

* Dockerfile: false alarm - remove sed since busybox-sed seems fine

* source/Makefile: reduce calls of clang-format & make error log more clean, clear, and tidy

* deploy.sh:check_style() - add removal of DOS EOLs for generated log

* source/Makefile:check-style: add more empty lines between blocks with errors for readability when suggestion is too long & heavy

* source/Makefile: add STOP var to check-style for exit on first failed file

* source/Makefile: check-style: make log looks more like traditional diff/patch output

* source/Core/BSP/Pinecilv2/MemMang/heap_5.c: clang-format refactoring using reasonable advises ... and then disable it in Makefile from scanning by clang-format

* Return headers include order

* clang-format config: disable warnings about non-alphabetic include order

* clang-format refactoring

* clang-format refactoring, part 2

* clang-format refactoring, part 3

* settingsGUI.cpp: refactoring, part 1

* settingsGUI.cpp: refactoring, part 2

* settingsGUI.cpp: refactoring, part 3

* settingsGUI.cpp: refactoring, part 4

* clang-format should be happy now

* workflows/push: put readme check into separate build step & update style

* clang-format: giving SortIncludes option second chance by tweaking a couple of headers a bit

* source/Makefile: check-style: add homebrew parser to check for { } in conditional blocks

* homebrew-format: add { } for if/else, while, and for & unify some comments style; left two errors intentionally to debug & improve parser

* source/Makefile: homebrew-format: fix false negative trigger for multi-line condition in if-s

* Sleep.cpp: unify style & comments

* source/Makefile: remove unused debug target
2023-07-16 15:25:30 +10:00
Ivan Zorin
cbde61edb4 Cosmetic code style refactoring: add enum for screen orientation & define for OLED state (#1732)
* saveSettings: add comment for #endif, update var name to reflect its purpose regardless its one-time & temporal

* Settings.h: add enum for orientation mode

* settingsGUI.cpp: add markings for #endifs, add/remove extra new lines to propose better code read-ability in my humble vision from the side, didnt touch any functionality only cosmetic syntax

* settingsGUI.cpp: remove added-by-accident new line in the end of the file

* OLED.hpp: unify ifdef section, add markings for #endifs, add readable macros for ON/OFF OLED state instead of magic numbers

* OLED.cpp: add markings for #endifs, add readable macros for ON/OFF OLED state instead of magic numbers, trying unify common style for the whole file for better read-ability

* Settings.cpp: unify code style

* settingsGUI.cpp: revert true/false for setDisplayRotation

* OLED.cpp: unify comments style
2023-07-05 12:41:16 +10:00
Ben V. Brown
c6918093fb Larger OLED Support (#1713)
* Update header to declare full buffer size

* Strip refactoring

* Refactor the OLED scrolldown part 1

* High res capable scroll down

* Allow button press to skip scroll

* Bunch of Misc Fixups
2023-06-18 22:50:31 +10:00
Ivan Zorin
c55a640d7f AutoStartMode refactoring (#1712)
* OperatingModes/Sleep: extend current mode with idle status

* OperatingModes/Sleep: tipTemp section refactoring

* source/Core - settings: tiny refactoring of AutoStartMode management

* OperatingModes/Sleep: rollback OperatingMode update
2023-06-17 17:07:26 +10:00
Ben V. Brown
286afad919 S60 Support (#1692)
* Mock S60

* cleanup

* Start refactor of OLED init

* Setup timers roughly

* Set Vector table offset correctly

Update system_stm32f1xx.c

* Update OLED.cpp

* Update stm32f1xx_hal_msp.c

* Update configuration.h

* I2C init before GPIO

From Errata

Update stm32f1xx_hal_msp.c

Update Software_I2C.h

Allow no hardware I2C

* I2C BB run bus unlock at init

* cleanups

* Software I2C for now

* Mildly more graceful Interpolate

* Handle is powered by DC

Update Power.cpp

Update drawPowerSourceIcon.cpp

Update configuration.h

Update Setup.cpp

* Cleanup HomeScreen

* Segment remap oled at init

* Cleanup

* Update MOVThread.cpp

* Fix PWM Init

* Fix adc2 trigger

* Update configs

* Fixup warning

* Saner default config

* Update ThermoModel.cpp

* Util for current@voltage

* Hub238 warning

* Add hub238 handling in power mode

* Update USBPDDebug_FUSB.cpp

* HUSB238 debug

* Hook PSU Limit

* Use wrapping section of GRAM for scroll

Update OLED.hpp

* Update NTC table

* Fix HUB voltage picker

* Cleanup

* Larger tip filter

* Calibrate in a bunch closer

Update ThermoModel.cpp

* Update configuration.h

* Update HUB238.cpp

* Update configuration.h

* Movement Pin

* Update BSP.cpp

* tim2 irq

* Rough timer conversion (adc broken) but movement working

* Fix tim2 start

* Faster base PWM

* Ensure utils grabs config

* Add wattage limiter tolerance for device

* Speed up PWM and enable PWM current limiting

* tune for 12v

* Prevent start until PD done

* Update configuration.h

* Add HUB238 check for have re-negotiated

* Adjust timer to avoid noise when its possible
2023-06-03 20:05:31 +10:00
discip
72030fa3e8 Merge pull request #1676 from Ralim/discip-patch-2
removing extra entries
2023-04-27 01:22:57 +02:00
discip
e64416413c corrected character count 2023-04-27 00:32:48 +02:00
discip
9ce042cd08 removing extra entries
@codingcatgirl
Please have a look, I may have missed something here.
2023-04-27 00:27:41 +02:00
Laura Klünder
252287c4dd fix soldering menu on devices without soldering profiles 2023-04-25 11:56:57 +02:00
Laura Klünder
366cfbd794 add missing comment and exclude sleep code if sleep is disabled 2023-04-25 11:56:52 +02:00
Laura Klünder
c783fb545a fix build on TS100 2023-04-24 00:20:31 +02:00
Laura Klünder
cb2e8af700 full profile support 2023-04-23 23:48:24 +02:00
Laura Klünder
448e5c8ad1 profile mode is optional 2023-04-23 18:36:07 +02:00
Laura Klünder
5c69458f1a refactor fahrenheit conversion to save some space 2023-04-23 18:35:34 +02:00
Laura Klünder
dbdc0d1ef1 add settings for soldering profile 2023-04-23 17:50:43 +02:00
discip
422b5b7563 unifying (#1657) 2023-04-07 23:42:14 +00:00
discip
a6926519d1 Update settingsGUI.cpp 2023-04-02 01:14:46 +02:00
discip
9c8abbdfc2 Readjusting brightness (Pinecil v2) (#1622) 2023-03-26 11:43:56 +11:00
Samuel Hedrick
9892dd0423 Added VPDO option for disabling PPS/EPR PDOs. 2023-02-19 14:13:50 -06:00
Ben V. Brown
26f71b2c2f Add BLE Enabled to advanced menu 2023-01-23 18:05:59 +11:00
Ben V. Brown
05628daba2 Merge branch 'dev' into new-translations-format 2023-01-22 22:05:13 +11:00
Purdea Andrei
e9f63cdfd8 Fix the calibrate voltage screen, when it exits, it used to overlay t… (#1530)
Fix the calibrate voltage screen, when it exits, it used to overlay the calibrated divider over the previous displayed image, causing confusion. Now it clears the screen before printing the calibrated value
2023-01-16 13:54:34 +11:00
discip
7f43562a4f Reboot after reset (#1513) 2023-01-06 15:06:03 +11:00
discip
8a6b00fa58 reverting (go to home screen did not work) 2022-12-10 23:30:26 +01:00
discip
74339a997c after reset go to home screen_VI 2022-12-10 23:24:10 +01:00
discip
b934cacdfa after reset go to home screen_V 2022-12-10 23:17:24 +01:00
discip
c08b06bb16 after reset go to home screen_IV 2022-12-10 23:07:09 +01:00
discip
863f091ffd after reset go to home screen_III 2022-12-10 22:54:08 +01:00
discip
110af42e3e after reset go to home screen_II 2022-12-10 22:47:49 +01:00
discip
ff088965d6 after reset go to home screen 2022-12-10 22:45:32 +01:00
discip
9966274a3d show correct message after factory reset_I 2022-12-10 11:34:37 +01:00
Ben V. Brown
fdc31467aa Use size encoded symbols
Update make_translation.py
2022-12-05 22:26:03 +11:00
discip
c89db78b45 Calibrate CJC at next boot (#1398)
Changes Cold Junction Compensation (Tip Offset / CJC) to be performed during bootup time. (After starting in settings)
2022-09-10 20:52:57 +10:00