1
0
forked from me/IronOS
Commit Graph

116 Commits

Author SHA1 Message Date
Ben V. Brown
a3082c389e Drop crit section on I2C 2025-01-11 10:00:50 +11:00
Ivan Zorin
0a63b6b5df Add macro to enable tip types for supported hardware only 2024-12-23 21:13:44 +03:00
Ben V. Brown
d313f62101 Fomatting and adjust setpoint 2024-12-22 12:32:21 +11:00
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
Ben V. Brown
db126831bd Pinecil 2 PID tune adjustments (#1925)
Lower P/I Terms

Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2024-07-12 08:28:10 +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
Ben V. Brown
14b92cde08 Pinecilv2 adc v2 (#1916)
* Updated NTC lookup

* remove float compute from adc (as we dont use it)

* Updated adc settings

* Updated ADC Init

* Custom max temp lookup

* Mask Timer around changing timer rate

* Use timer channels in sane order

* Update IRQ.cpp

* Remove ADC dummy wait on start/stop

* Dont use ADC IRQ

* Disable sampling delay

* Update Setup.cpp

* PinecilV2 disable ROM driver utils

Always use our source

* Force settings upgrade on PinecilV2

Fix forced settings upgrade on Pinecilv2

* Prevent ADC rollover

* Update Setup.cpp

* ADC cleanup

* Rollover prevention

* Measure tip temperature 2nd

* Rebase Buffalo SDK to 1.4.5 (#1923)

* Update bl702_adc.c

* Update board.c

* .

* Update bl702_adc.c

* Import updated hal_drv

* Remove accidental dupe of stack in linker

* First pass update BLE stack

* Update ReleaseNotes

* Update push.yml

* Drop BT Audio which we dont use

* .

* Reformat

* Update conn.c

* Update hog.c
2024-06-08 14:33:06 +10:00
Ben V. Brown
b5fc1b5891 4 ohm tip (#1868)
* Add 4 ohm PTS200 tip for PinecilV2

* Add PTS200 4 ohm tip to TS101

* Update BSP.cpp
2024-03-22 10:03:46 +11:00
slark-yuxj
e8a1c34733 fix: handle is uninitialized when BFLB_BLE_DISABLE_STATIC_ATTR defined (#1895)
Signed-off-by: yuxiaojun <yuxiaojun@uniontech.com>
2024-03-20 11:57:36 +00: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
Ben V. Brown
ec5f07ec0c Cleanup make includes and formatting rules (#1860)
* Draft cleanup of the folder definition mess

* Move old startup

* Fixup! broken hacky includes

* Update Makefile

* Update Makefile

* Update Makefile

* Bulk format

* Who knew, header guards are a wise idea

* Squash some sizing warnings

* Drop broken usb stack

* Fix BLE headers to be sensible

* Cleaning up proper c styling

* We have newer clang, it does bracketing now

* Run clang-format brackets

* We can drop the old messy bracket-checker with newer clang format

* WiP formatter

* Align grids of scripts by right side

Massively easier to read in nearly all cases

* Excempt the table for compression from formatter
2023-12-27 09:23:12 +11:00
Ben V. Brown
849d1f7d40 Update compilers (#1858)
* Update Alpine Image

* Update push.yml

* Style updates
2023-12-26 19:54:47 +11:00
Ben V. Brown
ea72aea47d Enforce no EPR polling for non >20V devices 2023-12-09 23:02:20 +11:00
Ben V. Brown
c308fe8cc2 Pinecil v2 tune via PID (#1827)
* Start PWM after adc irq fully done

* Filter len 4

* Use comparitor 2 on timer for wrap around

* Update IRQ.cpp

* Tip measurements are uint16_t

Update BSP.cpp

Update BSP.cpp

* WiP PID

move pid tuning to config

Update PIDThread.cpp

* Handle PWM Timer gitchy comparitor

* Tuning

* Dampen with Kd

* Cleaning up

* Use TemperatureType_t for getTipTemp()

* Add small rolling average to user GUI temp to reduce flicker

* Trigger PID when adc is skipped (will use old values)
2023-10-21 08:21:08 +11:00
Ben V. Brown
c0a5e244b9 Temperature code updates (#1814)
* Create a typedef for temperatures

* Quick parse replace temp types

* Fixup for fast/slow PWM on PinecilV2

* Update PIDThread.cpp

* Pinecil small tips need less smoothing

* Remove incorrect comment

* Remove unused function

* Update PinecilV2 Tune as well
2023-09-22 10:19:50 +10:00
Ben V. Brown
c120af398a Merge branch 'dev' into Short-Detection 2023-08-02 15:52:49 +10:00
Ben V. Brown
80c4b58976 Abstract out showing bootlogo
To improve support on PinecilV2
2023-08-01 21:18:27 +10:00
Ben V. Brown
a7df1cc5be Fixup for logo addresses + Set DFU address for PinecilV2 2023-08-01 21:10:15 +10:00
Ben V. Brown
344068d480 Add isTipShorted() to warnings 2023-07-28 19:59:54 +10:00
discip
78a4cfecfe Merge branch 'dev' into Short-Detection 2023-07-18 20:21:33 +02: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
discip
f72bc969ac Merge branch 'dev' into Short-Detection 2023-07-06 18:23:09 +02:00
Ben V. Brown
0be83598f1 Try side-port of different linker and ram for PinecilV2 (#1730)
Try side-port of different linker and ram
2023-07-06 07:35:01 +10:00
alextrical
f81257562d Tip short detection at boot
If tip is shorted at boot, prevent the FW from running, with the intent to prevent the MOSFET from being damaged
2023-06-30 15:57:11 +01:00
Ivan Zorin
0a3dfb34ec A bit of clean-up & update configuration.h files (#1717)
* BSP/configuration.h: update & clean-up macro defines

* BSP/MHP30/configuration.h: add lost-during-update macro
2023-06-20 15:01:27 +10:00
Ivan Zorin
155cf386b1 Zipping compiler warning about POW_PD_EXT / Two options (#1711)
* Zipping compiler warning about POW_PD_EXT / Option A

* Zipping compiler warning about POW_PD_EXT / Option B

* BSP/configuration.h: implement option A for POW_PD_EXT warning

---------

Co-authored-by: Ben V. Brown <5425387+Ralim@users.noreply.github.com>
2023-06-20 00:59:36 +00:00
Ben V. Brown
9b5d155d31 Handle devices where flash is not 1:1 memory mapped 2023-06-19 16:41:47 +10:00
Ivan Zorin
4d7e4f41e3 Save settings on change only / All builds OK (#1699) (#1704) 2023-06-18 04:31:05 +00:00
Ben V. Brown
e7bcf920ba Refactor PinecilV2 Tuning
Closes #1688
2023-06-04 12:13: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
Ben V. Brown
df693773f1 Adjust how heap and ram sections are allocated 2023-05-09 22:10:28 +10:00
Laura Klünder
f1879353b8 put soldering profile mode into its own file, put common functions in utils 2023-04-25 11:56:41 +02:00
Laura Klünder
cb2e8af700 full profile support 2023-04-23 23:48:24 +02:00
Vladimir K
2d824af836 Add validation ID to BLE 2023-04-15 15:01:44 -07:00
discip
422b5b7563 unifying (#1657) 2023-04-07 23:42:14 +00:00
discip
cc180f7d1a correcting MAX_POWER_LIMIT to 120 2023-04-08 01:19:07 +02:00
Ben V. Brown
f6975b0aa2 Update ble_handlers.cpp 2023-04-01 14:20:10 +11:00
discip
45c00dc767 Merge branch 'dev' into discip-patch-1 2023-03-31 22:59:31 +02:00
Ben V. Brown
e13f118788 Change to 128bit UUID's (#1608)
* Change to 128bit UUID's

* Make attrs const for BLE

* Forcefully set docker project name

* Cleaner UUIDS

* Cant use const attrs

* Adjust ram sections

* Update UUID decode

* Settings uuids

* Fix missed decoder for writing

---------

Co-authored-by: discip <53649486+discip@users.noreply.github.com>
2023-03-29 12:45:09 +11:00
discip
3a4638ef42 Merge branch 'dev' into discip-patch-1 2023-03-26 01:47:47 +01:00
discip
9c8abbdfc2 Readjusting brightness (Pinecil v2) (#1622) 2023-03-26 11:43:56 +11:00
discip
744dd6b898 Merge branch 'dev' into discip-patch-1 2023-03-26 00:48:41 +01:00
Vladimir
11bad84ce7 Add FW version to BLE characteristic (#1633)
Implements #1610
2023-03-24 19:15:05 +11:00
discip
c7bdbbb4b5 Merge branch 'dev' into discip-patch-1 2023-03-14 22:35:47 +01:00
River M
8ea8632bb9 Update configuration.h 2023-03-14 14:05:45 -07:00
discip
2319eebe65 Update ble_handlers.cpp 2023-03-13 18:38:16 +01:00
discip
e12903ec28 Update ble_handlers.cpp 2023-03-11 13:56:47 +01:00
discip
6174d80586 Update ble_handlers.cpp 2023-03-11 01:45:44 +01:00
discip
d88eed4e18 Update ble_handlers.cpp
Tried to implement #1594
2023-03-11 01:26:35 +01:00
Neil Hanlon
2a244df7b1 Fix typo in BLE settings mapping 2023-02-22 01:28:04 -05:00