Commit Graph

108 Commits

Author SHA1 Message Date
finga 0b96fa3e2c docs: Update to latest firmware changes [CI SKIP]
As the C firmware was removed update the readme to reflect those
changes.
2023-06-09 09:38:05 +02:00
finga c26ba3549a firmware: Streamline writing to display
ci/woodpecker/push/woodpecker Pipeline was successful Details
Move if condition inside the SPI call to reduce duplicate code.
2023-06-09 09:32:04 +02:00
finga 59ff782d52 firmware: Use `const`s for LCD limits
ci/woodpecker/push/woodpecker Pipeline was successful Details
Set the given dimensional limits of the LCD in `const`s and use them
accordingly.
2023-06-09 09:30:29 +02:00
finga f971da5496 ci: Use `cargo-checkmate` for CI checks
ci/woodpecker/push/woodpecker Pipeline was successful Details
2023-06-07 22:18:49 +02:00
finga 698965fcf7 firmware: Remove the c attempt of the firmware
ci/woodpecker/push/woodpecker Pipeline was successful Details
2023-06-07 22:17:01 +02:00
finga b9fea56014 firmware: Move `mod.rs` to `screen.rs`
ci/woodpecker/push/woodpecker Pipeline was successful Details
Move `src/screen/mod.rs` to `src/screen.rs` to reduce ambiguity.
2023-06-07 21:08:56 +02:00
finga ec45734f6b build: Refactor build flags
ci/woodpecker/push/woodpecker Pipeline was successful Details
Remove `-as-needed` linker flag. Fix formatting and add `-Os`,
`-mrelax` and `flto`.
2023-06-07 21:08:23 +02:00
finga 164c9f0087 toolchain: Remove `rust-src` component
ci/woodpecker/push/woodpecker Pipeline was successful Details
2023-06-07 20:45:27 +02:00
finga 46bd28b46c firmware: Refactor dealing with EEPROM
ci/woodpecker/push/woodpecker Pipeline was successful Details
Use the API that was added to the AVR crate for EEPROM access.
2023-06-07 20:45:27 +02:00
finga d1faf584c5 Bump edition, dependencies and fix clippy
ci/woodpecker/push/woodpecker Pipeline was successful Details
Bump all edition to 2021, run `cargo update` and manually bump the
following dependencies:
- `nb`
- `avr-device`

Fix several and meanwhile unnecessary uses of unsave blocks and a
unneeded cast.
2023-05-27 16:35:16 +02:00
finga 63b76aa3ef Update CI, nightly, cargo
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-10-15 02:03:28 +02:00
finga dbf5733488 board: Add vias and raise KiCAD version
ci/woodpecker/push/woodpecker Pipeline was successful Details
Add vias and raise KiCAD version.
2022-04-19 15:39:07 +02:00
finga f48955974d knob: Improve haptic of knob
ci/woodpecker/push/woodpecker Pipeline was successful Details
Let the knobs outside be a decagon.
2022-04-16 02:36:44 +02:00
finga 343b95dc78 fw-rust: Refactor printing to the LCD
ci/woodpecker/push/woodpecker Pipeline failed Details
Pass iterators for control and display data to the printing function
instead of just printing it.
2022-04-10 18:18:37 +02:00
finga d73d5126dd fw-rust: Add missing stabilization comments
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-04-09 23:11:37 +02:00
finga 027a3b3444 fw-rust: Remove module prefix if already used.
ci/woodpecker/push/woodpecker Pipeline was successful Details
Now, use everywhere `block!` instead of `nb::block!`, except when only
used once.
2022-04-08 01:26:30 +02:00
finga afc4edab59 ci: Add release profile to CI pipeline
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-04-08 01:15:32 +02:00
finga 3f19ad6ee9 make: Set up release profile and update the readme
ci/woodpecker/push/woodpecker Pipeline was successful Details
Due to limiting the codegen units to 1 the size of the program memory
can be reduced roughly by 10% and the data memory by a bit more than
20%.
2022-04-08 01:03:16 +02:00
finga 882e79f9b8 fw-rust: Update build dependencies
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-04-08 00:24:44 +02:00
finga eb87f77d0a fw-rust: Remove wrap around of values in setup
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-04-08 00:19:15 +02:00
finga 2fe25e584f fw-rust: Configure display temperature curve
ci/woodpecker/push/woodpecker Pipeline was successful Details
Set the temperature compensation curve to -0.11%/°C.
2022-04-08 00:18:06 +02:00
finga 262d49921e readme: Rewrite and extend the readme [CI SKIP]
Explain how things are.
2022-04-08 00:02:47 +02:00
finga e6bf3e780e fw-rust: Improve control/display toggle times
ci/woodpecker/push/woodpecker Pipeline was successful Details
Optimize the control data/display data slope timing. This closes #1.
2022-04-07 12:13:34 +02:00
finga 58d903c9e6 readme: Add firmware infos [CI SKIP] 2022-04-06 17:45:57 +02:00
finga 9b7bfb0562 fw-rust: Improve readability
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-04-03 01:40:18 +02:00
finga 791a0a0245 fw-rust: Use `DefaultClock` type alias everywhere
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-04-03 01:40:18 +02:00
finga b51511dbab fw-rust: Improve setup screen
ci/woodpecker/push/woodpecker Pipeline was successful Details
Remove redundant match arms when handling inputs and code when drawing
the setup screen.
2022-04-03 01:40:18 +02:00
finga c36581e703 fw-rust: Make Si5351 useable
ci/woodpecker/push/woodpecker Pipeline was successful Details
In order to make the Si5351 configurable add some needed assets,
create the ability to print the frequency with selected digits and add
a channel screen.
2022-04-03 01:40:15 +02:00
finga 7f14974146 fw-rust: Remove unnecessary `Draw` trait
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-04-03 01:23:06 +02:00
finga 9994b1fc40 fw-rust: Improve debouncing when going back
ci/woodpecker/push/woodpecker Pipeline was successful Details
When pressing the button until the timer1 creates an interrupt in
order to create a "back" event, there were some debouncing problems.
2022-04-02 18:24:31 +02:00
finga 4a03c7045f knob: Improve the design of the knob [CI SKIP] 2022-04-02 00:42:40 +02:00
finga 52bf0e6eec fw-rust: Prepare to implement Si5351 commands
ci/woodpecker/push/woodpecker Pipeline was successful Details
Show settings of Si5351 channels on home screen. Initialize I2c and
Si5351.
2022-04-01 01:55:07 +02:00
finga 134db298f6 fw-rust: Move PWM handling into screen module
ci/woodpecker/push/woodpecker Pipeline was successful Details
Move the handling of the PWM signal which generates the dimmable
backlight signal into the screen module.
2022-03-30 23:01:45 +02:00
finga fdd1f4636d fw-rust: Refactor everything
ci/woodpecker/push/woodpecker Pipeline was successful Details
Remove avr-eeprom dependency for now and introduce events.
2022-03-30 22:59:24 +02:00
finga 6cd8df515d readme: Improve wording [CI SKIP] 2022-03-29 17:29:13 +02:00
finga 800d3ff8c3 fw-rust: Create "all" build task [CI SKIP]
The "all" task configures a new mcu. It burns the fuses, configures
the eeprom and flashs the firmware.
2022-03-28 17:11:10 +02:00
finga 34d1623abb knob: Add the encoder knob model [CI SKIP] 2022-03-24 21:52:39 +01:00
finga 63cc1c9d0f fw-rust: Remove `clear()` function for LCD
ci/woodpecker/push/woodpecker Pipeline was successful Details
Use `fill_area()` instead of `clear()` to clear the the display.
2022-03-22 17:36:09 +01:00
finga 08a371062d fw-rust: Refactor init function of the LCD
ci/woodpecker/push/woodpecker Pipeline was successful Details
Use an array for the init sequence commands and iterate over it.
2022-03-21 12:46:18 +01:00
finga 7d8f5f6870 fw-rust: Create a print `u8` function for setup
ci/woodpecker/push/woodpecker Pipeline was successful Details
Create `print_u8()` helper function to print `u8` primitives to
lcd. Refactor contrast and backlight variables to also keep them in a
global `AtomicU8`.
2022-03-21 12:46:18 +01:00
finga c2920ea334 fw-rust: Break everything down in multiple files
ci/woodpecker/push/woodpecker Pipeline was successful Details
To reduce length of `main.rs` and therefor improve readability create
source files for:

- Assets (`assets.rs`): Contains all graphical assets such as the
  splash screen assets, symbols and the symbol table.
- LCD (`lcd.rs`): Contains all lower level things regarding the LCD
  such as the `Lcd` struct and its implementations.
- Screen (`screen/mod.rs`):
    - Splash (`screen/splash.rs`)
    - Home (`screen/home.rs`)
    - Setup (`screen/setup.rs`)

In the future it would probably make sense to move the LCD module into
the screen module.
2022-03-18 11:19:36 +01:00
finga 91e120b258 fw-rust: Add setup screen and handle button input
ci/woodpecker/push/woodpecker Pipeline was successful Details
To create a setup screen more symbols are created and added to the
symbol table. Helper functions are added to draw homogenous areas onto
the display. Add two new fields `Click` and `Back` to the `Input`
enum. Adapt functions already handling input to those new kinds of
input. Add the setup screen construct. Add global atomics to handle
the button and the timer for handling the back input when the button
is pressed until the timer one overflows. Button press and the timer
are handled via interrupts.
2022-03-16 22:25:18 +01:00
finga 0003717408 fw-rust: Refactor home screen
ci/woodpecker/push/woodpecker Pipeline was successful Details
Add new function for easier instantiation and refactor the input
function.
2022-03-15 19:03:36 +01:00
finga 2ec8d1aeb9 fw-rust: Handle screens differently, use encoder
ci/woodpecker/push/woodpecker Pipeline was successful Details
Handle the screens differently and implement rotary encoder support.
2022-03-15 00:17:54 +01:00
finga 4a33986e8d fw-rust: Improve URL asset
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-03-14 22:54:07 +01:00
finga 1688bb868e fw-rust: Add symbols and screens
ci/woodpecker/push/woodpecker Pipeline was successful Details
Add several symbols and a symbol table in an ascii order. Add the
`print()` and `print_inverted()` functions to be able to draw strings,
"black on white" as well as "white on black" onto the display. Add a
`HomeScreen` which also saves the state of which selection is
active. To save the screen state and also make it accessible globally
use a `RefCell` contained in a `Mutex`.

Also update the build dependencies.
2022-03-14 22:54:07 +01:00
finga de8f789e63 fw-rust: Create `Lcd` struct to handle the screen
ci/woodpecker/push/woodpecker Pipeline was successful Details
To improve screen handling create the `Lcd` struct and implement some
first helper functions.
2022-03-12 19:20:28 +01:00
finga 518f113cc0 fw-rust: Use avr-eeprom create to read from EEPROM
ci/woodpecker/push/woodpecker Pipeline was successful Details
Use the `avr-eeprom` crate when reading from EEPROM.
2022-03-12 17:20:53 +01:00
finga 9425093391 fw-rust: Draw the splash screen via function
ci/woodpecker/push/woodpecker Pipeline was successful Details
Make the splash screen assets `const` and draw the splash screen with
the new `draw_splash()` function.
2022-03-11 02:35:57 +01:00
finga 36be6d27bc fw-rust: Create a function to clear the screen
ci/woodpecker/push/woodpecker Pipeline was successful Details
Create a utility function to clear the complete screen.
2022-03-09 19:42:10 +01:00