Skip to content

Some UI tweaks / fix EMC2101 fan PWM setting / add ASIC temperature set point option#2

Open
Rob0xFF wants to merge 15 commits into
BitMaker-hub:masterfrom
Rob0xFF:master
Open

Some UI tweaks / fix EMC2101 fan PWM setting / add ASIC temperature set point option#2
Rob0xFF wants to merge 15 commits into
BitMaker-hub:masterfrom
Rob0xFF:master

Conversation

@Rob0xFF

@Rob0xFF Rob0xFF commented Aug 4, 2024

Copy link
Copy Markdown
  • AxeOS: calculate value to be written to EMC2101_REG_FAN_SETTING register by considering EMC2101_PWM_FREQ according to eq. 6, see EMC2101 datasheet appendix A

for example, a fan setting of 50% yielded approx. 70% of fan RPM before, now it correctly yields 50% of fan's max RPM

  • AxeOS: EMC2101 register value EMC2101_INTERNAL_TEMP is 8bit signed, changed return value accordingly, now supporting temperatures below 0°C

  • AxeOS: tweaked min_fan_speed in power management

  • UI: moved units from inside the p-knop to the outside to ensure they do not overlap the knop graphic

  • UI/AxeOS: added option to define a setpoint ASIC temperature to maintain

  • UI: added groups to setting UI for better overview / readability

  • AxeOS: using EMC2101_FAN_RPM_NUMERATOR instead of explicit integer

  • Github: changed instruction to build firmware

  • fix flip screen not working

  • convert all c array images to pure true color without alpha channel to save 10% of flash space

  • fix unit of measure for efficiency on mining screen

Rob0xFF added 4 commits August 4, 2024 08:54
Moved units from inside the p-knop to the outside to ensure they do not overlap the knop graphic
- calculate value to be written to EMC2101_REG_FAN_SETTING register by considering EMC2101_PWM_FREQ according to eq. 6, see datasheet appendix A

for example, a fan setting of 50% yielded approx. 70% before, now it correctly yields 50% of fan's max RPM

- EMC2101 register value EMC2101_INTERNAL_TEMP is 8bit signed, changed return value accordingly, now supporting temperatures below 0°C

- tweaked min_fan_speed in power management
add instructions on how to build firmware
- UI/AxeOS: added option to define a setpoint ASIC temperature to maintain
- UI: added groups to setting UI for better overview / readability
- AxeOS: using EMC2101_FAN_RPM_NUMERATOR instead of explicit integer
@Rob0xFF Rob0xFF changed the title Some minor UI tweaks / fix EMC2101 fan PWM setting Some UI tweaks / fix EMC2101 fan PWM setting / add ASIC temperature set point option Aug 4, 2024
Rob0xFF and others added 11 commits August 5, 2024 19:38
- dashboard page: layout fixes for small displays
- flip screen now working for NerdAxe T-Display (button did not do anything on NerdAxe)
- minor UI fixes to give a more unified look
- converted all c arrays to true color without alpha channel, saving about 220 kbyte of flash
- fixed efficiency unit to J/kH on mining screen
* added rx serial buffer flush and serial debugging for BM1368

* added serial buffer flush to BM1366 also

* turned off ASIC serial debugging. let's see how this does on free heap

(cherry picked from commit 2e03a8f)
(cherry picked from commit cf99b50)
(cherry picked from commit 3d17f03)

# Conflicts:
#	main/system.c
(cherry picked from commit 3ea05b9)
disp_drv.flush_cb = example_lvgl_flush_cb;
disp_drv.draw_buf = &disp_buf;
disp_drv.user_data = panel_handle;
disp_drv.sw_rotate = 1;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The display supports hardware rotation.

try this instead:

    if (!nvs_config_get_u16(NVS_CONFIG_FLIP_SCREEN, 0)) {
        esp_lcd_panel_mirror(panel_handle, true, false);
    } else {
        esp_lcd_panel_mirror(panel_handle, false, true);
    }
    ```

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I have to try your code a.s.a.p. I tried to do it the hardware way with no success, so I chose software rotation.

@BitMaker-hub

Copy link
Copy Markdown
Owner

Amazing work, guys, thank you. I'll test this today

@Rob0xFF

Rob0xFF commented Aug 25, 2024

Copy link
Copy Markdown
Author

I am still working on a means to automatically switch on and off the screen based on time of day. Therefore, time zone must be set by the user and the user must choose the on and off time. At the moment, both is hard coded in the test branch of my fork. Works for me at least. Additionally, I implemented a screen notification, if the hash difficulty > network difficulty, i.e. a block is found. It is also shown in the web UI. I added some more stats to the Logs section of the UI, like NerdDisplay status and reason of last reset. All of this is in the test branch of my fork,

Please let me know, if you guys would be interested. I could try to develop further.

@Rob0xFF

Rob0xFF commented Aug 25, 2024

Copy link
Copy Markdown
Author

I also set up my personal node using umbrella and am mining to public pool on the node to test performance. I have seen, that using the default string in stratum_api.c from the original Nerdaxe repository

sprintf(subscribe_msg, "{\"id\": %d, \"method\": \"mining.subscribe\", \"params\": [\"bitaxe/%s (%s)\"]}\n", send_uid++, model, version);

yields that my Nerdaxe is identified as "Bitaxe" on public pool. So, as I told on X, I think all those NerdAxes shown on public-pool.io might not be the ones of this project as they all seem to identify as Bitaxe. If I am right, we should introduce a unique identifier when subscribing to pool via stratum in order to distinguish Nerdaxes from this project and other ones. There is an other project, which also calls itself "Nerdaxe", as you know.

@Rob0xFF

Rob0xFF commented Aug 25, 2024

Copy link
Copy Markdown
Author

Also a to do is to let the user set the max fan speed of his device, to improve UI graphic, i.e. full use of the round bar should match rpm which equals 100% fan speed. I have a noctua with 5000rpm, so I hardcoded it for the moment.

Keep up the great work guys.

@BitMaker-hub

Copy link
Copy Markdown
Owner

Thanks for all of your work.

Very interesting to add the timeZone as we did in the previous version of NerdMiner. I think just adding a function to shutdown screen at night "more or less" its enough, or at least a power down/power on hour. I think I can help on that.

Regarding the fan speed, yes, absolutelly. This could be awsome

And.. regarding the stratum method, wow... I didn't saw that. And yes, it is very important to change it

@BitMaker-hub

Copy link
Copy Markdown
Owner

Allright, I've just seen I made a mistake when I rebased last firmware to last bitaxe changes.
I mainly rewritted the mining suscribe method from nerdaxe to bitaxe.
I've just changed back again.

I will try to check the changes you did this week and come back with a new screen and a new update.

@Rob0xFF

Rob0xFF commented Aug 26, 2024

Copy link
Copy Markdown
Author

Okay, thanks for clearing things up regarding the identifier. Looking forward to the next release. Really love the Nerdaxe, so keep up the good work.BTW if you plan to upgrade to other ASICS, please consider aligning the visible display area of the Lilygo to the fan to give a more clear look. I tried to work around this with my case here

BitMaker-hub pushed a commit that referenced this pull request Jan 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants