d73d5126dd
fw-rust: Add missing stabilization comments
ci/woodpecker/push/woodpecker Pipeline was successful
2022-04-09 23:11:37 +02:00
027a3b3444
fw-rust: Remove module prefix if already used.
...
ci/woodpecker/push/woodpecker Pipeline was successful
Now, use everywhere `block!` instead of `nb::block!`, except when only
used once.
2022-04-08 01:26:30 +02:00
afc4edab59
ci: Add release profile to CI pipeline
ci/woodpecker/push/woodpecker Pipeline was successful
2022-04-08 01:15:32 +02:00
3f19ad6ee9
make: Set up release profile and update the readme
...
ci/woodpecker/push/woodpecker Pipeline was successful
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
882e79f9b8
fw-rust: Update build dependencies
ci/woodpecker/push/woodpecker Pipeline was successful
2022-04-08 00:24:44 +02:00
eb87f77d0a
fw-rust: Remove wrap around of values in setup
ci/woodpecker/push/woodpecker Pipeline was successful
2022-04-08 00:19:15 +02:00
2fe25e584f
fw-rust: Configure display temperature curve
...
ci/woodpecker/push/woodpecker Pipeline was successful
Set the temperature compensation curve to -0.11%/°C.
2022-04-08 00:18:06 +02:00
262d49921e
readme: Rewrite and extend the readme [CI SKIP]
...
Explain how things are.
2022-04-08 00:02:47 +02:00
e6bf3e780e
fw-rust: Improve control/display toggle times
...
ci/woodpecker/push/woodpecker Pipeline was successful
Optimize the control data/display data slope timing. This closes #1 .
2022-04-07 12:13:34 +02:00
58d903c9e6
readme: Add firmware infos [CI SKIP]
2022-04-06 17:45:57 +02:00
9b7bfb0562
fw-rust: Improve readability
ci/woodpecker/push/woodpecker Pipeline was successful
2022-04-03 01:40:18 +02:00
791a0a0245
fw-rust: Use DefaultClock
type alias everywhere
ci/woodpecker/push/woodpecker Pipeline was successful
2022-04-03 01:40:18 +02:00
b51511dbab
fw-rust: Improve setup screen
...
ci/woodpecker/push/woodpecker Pipeline was successful
Remove redundant match arms when handling inputs and code when drawing
the setup screen.
2022-04-03 01:40:18 +02:00
c36581e703
fw-rust: Make Si5351 useable
...
ci/woodpecker/push/woodpecker Pipeline was successful
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
7f14974146
fw-rust: Remove unnecessary Draw
trait
ci/woodpecker/push/woodpecker Pipeline was successful
2022-04-03 01:23:06 +02:00
9994b1fc40
fw-rust: Improve debouncing when going back
...
ci/woodpecker/push/woodpecker Pipeline was successful
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
4a03c7045f
knob: Improve the design of the knob [CI SKIP]
2022-04-02 00:42:40 +02:00
52bf0e6eec
fw-rust: Prepare to implement Si5351 commands
...
ci/woodpecker/push/woodpecker Pipeline was successful
Show settings of Si5351 channels on home screen. Initialize I2c and
Si5351.
2022-04-01 01:55:07 +02:00
134db298f6
fw-rust: Move PWM handling into screen module
...
ci/woodpecker/push/woodpecker Pipeline was successful
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
fdd1f4636d
fw-rust: Refactor everything
...
ci/woodpecker/push/woodpecker Pipeline was successful
Remove avr-eeprom dependency for now and introduce events.
2022-03-30 22:59:24 +02:00
6cd8df515d
readme: Improve wording [CI SKIP]
2022-03-29 17:29:13 +02:00
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
34d1623abb
knob: Add the encoder knob model [CI SKIP]
2022-03-24 21:52:39 +01:00
63cc1c9d0f
fw-rust: Remove clear()
function for LCD
...
ci/woodpecker/push/woodpecker Pipeline was successful
Use `fill_area()` instead of `clear()` to clear the the display.
2022-03-22 17:36:09 +01:00
08a371062d
fw-rust: Refactor init function of the LCD
...
ci/woodpecker/push/woodpecker Pipeline was successful
Use an array for the init sequence commands and iterate over it.
2022-03-21 12:46:18 +01:00
7d8f5f6870
fw-rust: Create a print u8
function for setup
...
ci/woodpecker/push/woodpecker Pipeline was successful
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
c2920ea334
fw-rust: Break everything down in multiple files
...
ci/woodpecker/push/woodpecker Pipeline was successful
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
91e120b258
fw-rust: Add setup screen and handle button input
...
ci/woodpecker/push/woodpecker Pipeline was successful
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
0003717408
fw-rust: Refactor home screen
...
ci/woodpecker/push/woodpecker Pipeline was successful
Add new function for easier instantiation and refactor the input
function.
2022-03-15 19:03:36 +01:00
2ec8d1aeb9
fw-rust: Handle screens differently, use encoder
...
ci/woodpecker/push/woodpecker Pipeline was successful
Handle the screens differently and implement rotary encoder support.
2022-03-15 00:17:54 +01:00
4a33986e8d
fw-rust: Improve URL asset
ci/woodpecker/push/woodpecker Pipeline was successful
2022-03-14 22:54:07 +01:00
1688bb868e
fw-rust: Add symbols and screens
...
ci/woodpecker/push/woodpecker Pipeline was successful
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
de8f789e63
fw-rust: Create Lcd
struct to handle the screen
...
ci/woodpecker/push/woodpecker Pipeline was successful
To improve screen handling create the `Lcd` struct and implement some
first helper functions.
2022-03-12 19:20:28 +01:00
518f113cc0
fw-rust: Use avr-eeprom create to read from EEPROM
...
ci/woodpecker/push/woodpecker Pipeline was successful
Use the `avr-eeprom` crate when reading from EEPROM.
2022-03-12 17:20:53 +01:00
9425093391
fw-rust: Draw the splash screen via function
...
ci/woodpecker/push/woodpecker Pipeline was successful
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
36be6d27bc
fw-rust: Create a function to clear the screen
...
ci/woodpecker/push/woodpecker Pipeline was successful
Create a utility function to clear the complete screen.
2022-03-09 19:42:10 +01:00
8b9d21a012
fw-rust: Start to use the avr-eeprom crate
...
ci/woodpecker/push/woodpecker Pipeline was successful
Start to use the avr-eeprom crate to handle values residing inside the
EEPROM.
2022-03-08 19:05:40 +01:00
b34b2810db
fw-rust: Handle data residing in the EEPROM
ci/woodpecker/push/woodpecker Pipeline was successful
2022-03-08 14:42:04 +01:00
4bc3e84bdd
fw-rust, readme: Add CI config
ci/woodpecker/push/woodpecker Pipeline was successful
2022-03-07 18:35:54 +01:00
8315560daa
fw-rust: Use chip-generic interrupt utilities
...
Instead of manually enabling and disabling interrupts use the
chip-generic interrupt utilities.
2022-03-07 18:30:33 +01:00
a688d4c5ed
fw-rust: Show splash screen
...
Put assets for the splash screen into the data segment and print it.
2022-03-07 18:30:33 +01:00
c42b4595c7
fw-rust: Clear the screen
...
After initializing the LCD display, clear the screen.
2022-03-06 19:20:49 +01:00
817776d735
fw-rust: Initialize the LCD display
...
Send commands via SPI to the LCD display to initialize and configure
it.
2022-03-06 19:20:49 +01:00
643e5f1af4
fw-rust: Create a SPI interface for the display
...
In order to, later on, send data to the display create a SPI
interface.
2022-03-06 19:20:49 +01:00
aa59bc302d
fw-rust: Create a PWM signal for the backlight
...
To have a dimmable backlight, generate a variable duty-cycle PWM
signal which is consumed by the backlight driver circuit.
2022-03-06 19:20:49 +01:00
d2772291bf
fw-rust: Add a makefile for cargo-make
...
It has to be decided what kind of tooling should be used, for now
cargo-make is used. This will probably be changed to use the tools
provided by [probe.rs](https://probe.rs ).
2022-03-06 19:20:49 +01:00
aa75712418
fw-rust: Minimal hello world
2022-03-06 19:20:49 +01:00
af3790be0d
Rename folder of firmware written in c
...
To establish a better naming convention for firmwares written in other
languages.
2021-10-25 15:26:04 +02:00
ba6fff941e
Add possibility to set PLL in gui
...
- Add registers where PLL_A (MSNA) and PLL_B (MSNB) start.
- Create screens to edit the PLLs and add their entries to the home
screen.
- Use a struct for keeping the PLL configs.
- For editing such big numbers make the digits selctable.
- Create utility function for calculating 10 to the power of `n`.
2021-10-25 15:22:19 +02:00
73efd9348c
First steps toward custom clocking
...
Figuring out how to configure the clocks.
2021-10-24 13:33:13 +02:00