~ruther/qmk_firmware

ref: 31a9d2d00dc732ca29be2213dbf915d6f6ffc76d qmk_firmware/platforms/avr/hardware_id.c -rw-r--r-- 558 bytes
31a9d2d0 — Yizhen Liu [keyboard] Graystudio Think6.5 V3 Support Revised (#21560) 1 year, 9 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Copyright 2022 QMK
// SPDX-License-Identifier: GPL-2.0-or-later

// For some reason this bit is undocumented for some AVR parts and not defined in their avr-libc IO headers
// See https://stackoverflow.com/questions/12350914/how-to-read-atmega-32-signature-row
#ifndef SIGRD
#    define SIGRD 5
#endif // SIGRD

#include <avr/boot.h>
#include "hardware_id.h"

hardware_id_t get_hardware_id(void) {
    hardware_id_t id = {0};
    for (uint8_t i = 0; i < 10; i += 1) {
        ((uint8_t*)&id)[i] = boot_signature_byte_get(i + 0x0E);
    }
    return id;
}
Do not follow this link