Skip to content

Commit 8544c41

Browse files
committed
add custom promicro/supermini
Revert "set regout0 if possible" This reverts commit f3c3e7c. promicro revert regout0 to 3v3 set regout0 if possible Revert "erase uicr if not correct" This reverts commit c2138f5. Revert "promicro/supermini revert to nice!nano usb_desc" This reverts commit 88cbdf2. promicro/supermini revert to nice!nano usb_desc use promicro for supermini name fix promicro/supermini erase uicr if not correct Revert "promicro revert regout0 to 3v3" This reverts commit f451511. set regout0 if possible
1 parent 4b37590 commit 8544c41

File tree

4 files changed

+86
-1
lines changed

4 files changed

+86
-1
lines changed

src/boards/boards.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ void board_init(void) {
111111
// #define UICR_REGOUT0_VALUE UICR_REGOUT0_VOUT_3V3
112112
// in board.h when using that power configuration.
113113
#ifdef UICR_REGOUT0_VALUE
114-
if ((NRF_UICR->REGOUT0 & UICR_REGOUT0_VOUT_Msk) == (UICR_REGOUT0_VOUT_DEFAULT << UICR_REGOUT0_VOUT_Pos)){
114+
if (((NRF_UICR->REGOUT0 & UICR_REGOUT0_VOUT_Msk) != (UICR_REGOUT0_VALUE << UICR_REGOUT0_VOUT_Pos)) && (((NRF_UICR->REGOUT0 & UICR_REGOUT0_VOUT_Msk) & (UICR_REGOUT0_VALUE << UICR_REGOUT0_VOUT_Pos)) == (UICR_REGOUT0_VALUE << UICR_REGOUT0_VOUT_Pos))){ // cant write regout0 if any bits need to change to 1
115115
NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen << NVMC_CONFIG_WEN_Pos;
116116
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
117117
NRF_UICR->REGOUT0 = (NRF_UICR->REGOUT0 & ~((uint32_t)UICR_REGOUT0_VOUT_Msk)) |
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/*
2+
* The MIT License (MIT)
3+
*
4+
* Copyright (c) 2020 Nick Winans
5+
*
6+
* Permission is hereby granted, free of charge, to any person obtaining a copy
7+
* of this software and associated documentation files (the "Software"), to deal
8+
* in the Software without restriction, including without limitation the rights
9+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
* copies of the Software, and to permit persons to whom the Software is
11+
* furnished to do so, subject to the following conditions:
12+
*
13+
* The above copyright notice and this permission notice shall be included in
14+
* all copies or substantial portions of the Software.
15+
*
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22+
* THE SOFTWARE.
23+
*/
24+
25+
#ifndef _SLIMENRF_TRK_PROMICRO_H
26+
#define _SLIMENRF_TRK_PROMICRO_H
27+
28+
#define _PINNUM(port, pin) ((port)*32 + (pin))
29+
30+
#define UICR_REGOUT0_VALUE UICR_REGOUT0_VOUT_2V1
31+
32+
/*------------------------------------------------------------------*/
33+
/* LED
34+
*------------------------------------------------------------------*/
35+
#define LEDS_NUMBER 1
36+
#define LED_PRIMARY_PIN _PINNUM(0, 15) // Blue "Red"
37+
#define LED_STATE_ON 1
38+
39+
/*------------------------------------------------------------------*/
40+
/* BUTTON
41+
*------------------------------------------------------------------*/
42+
#define BUTTONS_NUMBER 2 // none connected at all
43+
#define BUTTON_1 _PINNUM(0, 18) // unusable: RESET
44+
#define BUTTON_2 _PINNUM(0, 19) // no connection
45+
#define BUTTON_PULL NRF_GPIO_PIN_PULLUP
46+
47+
//--------------------------------------------------------------------+
48+
// BLE OTA
49+
//--------------------------------------------------------------------+
50+
#define BLEDIS_MANUFACTURER "SlimeVR"
51+
#define BLEDIS_MODEL "SlimeNRF Tracker ProMicro"
52+
53+
//--------------------------------------------------------------------+
54+
// USB
55+
//--------------------------------------------------------------------+
56+
#define USB_DESC_VID 0x1209
57+
#define USB_DESC_UF2_PID 0x7693
58+
#define USB_DESC_CDC_ONLY_PID 0x7693
59+
60+
#define UF2_PRODUCT_NAME "SlimeVR SlimeNRF Tracker ProMicro"
61+
#define UF2_VOLUME_LABEL "SLIMENRFTRK"
62+
#define UF2_BOARD_ID "nRF52840-SlimeNRFTracker-ProMicro"
63+
#define UF2_INDEX_URL "https://github.com/SlimeVR"
64+
65+
#endif // _SLIMENRF_TRK_PROMICRO_H
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
MCU_SUB_VARIANT = nrf52840
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#include "boards.h"
2+
#include "uf2/configkeys.h"
3+
4+
__attribute__((used, section(".bootloaderConfig")))
5+
const uint32_t bootloaderConfig[] =
6+
{
7+
/* CF2 START */
8+
CFG_MAGIC0, CFG_MAGIC1, // magic
9+
5, 100, // used entries, total entries
10+
11+
204, 0x100000, // FLASH_BYTES = 0x100000
12+
205, 0x40000, // RAM_BYTES = 0x40000
13+
208, (0x239A << 16) | 0x00B3, // keep same as nice!nano for update compatibility
14+
209, 0xada52840, // UF2_FAMILY = 0xada52840
15+
210, 0x20, // PINS_PORT_SIZE = PA_32
16+
17+
0, 0, 0, 0, 0, 0, 0, 0
18+
/* CF2 END */
19+
};

0 commit comments

Comments
 (0)