1 /* 2 * Copyright (c) 2024 DNDG srl 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef __ARDUINO_OPTA_BOARD_H 8 #define __ARDUINO_OPTA_BOARD_H 9 10 #include <stdint.h> 11 12 #define OPTA_OTP_MAGIC 0xB5 13 14 #define OPTA_SERIAL_NUMBER_SIZE 24 15 16 struct __packed opta_board_info { 17 uint8_t magic; 18 uint8_t version; 19 union { 20 uint16_t board_functionalities; 21 struct { 22 uint8_t wifi: 1; 23 uint8_t rs485: 1; 24 uint8_t ethernet: 1; 25 } _board_functionalities_bits; 26 }; 27 uint16_t revision; 28 uint8_t external_flash_size; 29 uint16_t vid; 30 uint16_t pid; 31 uint8_t mac_address[6]; 32 uint8_t mac_address_wifi[6]; 33 }; 34 35 const struct opta_board_info *const opta_get_board_info(void); 36 37 const char *const opta_get_serial_number(void); 38 39 #endif /* __ARDUINO_OPTA_BOARD_H */ 40