@typecad/board-esp32c6 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +44 -0
- package/dist/analog.d.ts +4 -0
- package/dist/analog.js +7 -0
- package/dist/board.d.ts +78 -0
- package/dist/board.js +17 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.js +69 -0
- package/dist/pins.d.ts +36 -0
- package/dist/pins.js +50 -0
- package/package.json +60 -0
- package/src/analog.ts +8 -0
- package/src/board.ts +32 -0
- package/src/index.ts +91 -0
- package/src/pins.ts +43 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 typecad0
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# @typecad/board-esp32c6
|
|
2
|
+
|
|
3
|
+
ESP32-C6 board definition package for TypeCAD.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
`@typecad/board-esp32c6` provides typed pins, peripherals, and board metadata for boards built on the ESP32-C6 (single-core 32-bit RISC-V @ 160 MHz, Wi-Fi 6 + BLE 5.3 + Thread/Zigbee). It re-exports silicon-level pin definitions from [`@typecad/mcu-esp32c6`](../mcu-esp32c6) and HAL utilities from [`@typecad/hal`](../hal).
|
|
8
|
+
|
|
9
|
+
## Quick start
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { GPIO2, delay } from '@typecad/board';
|
|
13
|
+
|
|
14
|
+
const led = GPIO2.asOutput(false);
|
|
15
|
+
|
|
16
|
+
while (true) {
|
|
17
|
+
led.toggle();
|
|
18
|
+
delay(1000);
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Reference this board in `cuttlefish.config.ts`:
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
board: '@typecad/board-esp32c6',
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## What's inside
|
|
29
|
+
|
|
30
|
+
- **GPIO pins**: `GPIO0`–`GPIO27` (silicon pins from `@typecad/mcu-esp32c6`)
|
|
31
|
+
- **Peripheral instances**: `I2C0`, `SPI0`, `UART0`, `ADC`
|
|
32
|
+
- **HAL utilities** (re-exported from `@typecad/hal`): `delay`, `millis`, `Pin`, `I2CBus`, `SPIBus`, etc.
|
|
33
|
+
- **Board metadata**: `BoardDefinition` manifest with PWM/analog/interrupt pin capabilities and memory specs
|
|
34
|
+
|
|
35
|
+
Direct imports from `@typecad/board-esp32c6` are also supported when you want explicit board package references.
|
|
36
|
+
|
|
37
|
+
## Related packages
|
|
38
|
+
|
|
39
|
+
- [`@typecad/mcu-esp32c6`](../mcu-esp32c6) — silicon-level pin definitions for the ESP32-C6 chip
|
|
40
|
+
- [`@typecad/hal`](../hal) — hardware abstraction layer (GPIO, I2C, SPI, UART)
|
|
41
|
+
|
|
42
|
+
## License
|
|
43
|
+
|
|
44
|
+
MIT
|
package/dist/analog.d.ts
ADDED
package/dist/analog.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// @typecad/board-esp32c6 — Analog constants
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
/** Default reference (3.3V). */
|
|
5
|
+
export const DEFAULT = 0;
|
|
6
|
+
/** Internal 1.1V reference. */
|
|
7
|
+
export const INTERNAL = 3;
|
package/dist/board.d.ts
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { BoardDefinition } from '@typecad/cuttlefish/api/schema';
|
|
2
|
+
import * as boardIndex from './index.js';
|
|
3
|
+
export declare const Board: {
|
|
4
|
+
readonly definition: BoardDefinition;
|
|
5
|
+
D2: boardIndex.Pin;
|
|
6
|
+
D3: boardIndex.Pin;
|
|
7
|
+
D4: boardIndex.Pin;
|
|
8
|
+
D5: boardIndex.Pin;
|
|
9
|
+
D6: boardIndex.Pin;
|
|
10
|
+
D7: boardIndex.Pin;
|
|
11
|
+
D8: boardIndex.Pin;
|
|
12
|
+
D9: boardIndex.Pin;
|
|
13
|
+
D10: boardIndex.Pin;
|
|
14
|
+
D12: boardIndex.Pin;
|
|
15
|
+
D13: boardIndex.Pin;
|
|
16
|
+
D14: boardIndex.Pin;
|
|
17
|
+
D15: boardIndex.Pin;
|
|
18
|
+
D16: boardIndex.Pin;
|
|
19
|
+
D17: boardIndex.Pin;
|
|
20
|
+
D18: boardIndex.Pin;
|
|
21
|
+
D19: boardIndex.Pin;
|
|
22
|
+
D20: boardIndex.Pin;
|
|
23
|
+
D21: boardIndex.Pin;
|
|
24
|
+
D22: boardIndex.Pin;
|
|
25
|
+
D23: boardIndex.Pin;
|
|
26
|
+
D24: boardIndex.Pin;
|
|
27
|
+
D25: boardIndex.Pin;
|
|
28
|
+
D26: boardIndex.Pin;
|
|
29
|
+
D27: boardIndex.Pin;
|
|
30
|
+
A0: boardIndex.Pin;
|
|
31
|
+
A1: boardIndex.Pin;
|
|
32
|
+
A2: boardIndex.Pin;
|
|
33
|
+
A3: boardIndex.Pin;
|
|
34
|
+
A4: boardIndex.Pin;
|
|
35
|
+
A5: boardIndex.Pin;
|
|
36
|
+
A6: boardIndex.Pin;
|
|
37
|
+
I2C0: boardIndex.I2CBus;
|
|
38
|
+
SPI0: boardIndex.SPIBus;
|
|
39
|
+
UART0: boardIndex.SerialPort;
|
|
40
|
+
UART1: boardIndex.SerialPort;
|
|
41
|
+
digital: {
|
|
42
|
+
D2: boardIndex.Pin;
|
|
43
|
+
D3: boardIndex.Pin;
|
|
44
|
+
D4: boardIndex.Pin;
|
|
45
|
+
D5: boardIndex.Pin;
|
|
46
|
+
D6: boardIndex.Pin;
|
|
47
|
+
D7: boardIndex.Pin;
|
|
48
|
+
D8: boardIndex.Pin;
|
|
49
|
+
D9: boardIndex.Pin;
|
|
50
|
+
D10: boardIndex.Pin;
|
|
51
|
+
D12: boardIndex.Pin;
|
|
52
|
+
D13: boardIndex.Pin;
|
|
53
|
+
D14: boardIndex.Pin;
|
|
54
|
+
D15: boardIndex.Pin;
|
|
55
|
+
D16: boardIndex.Pin;
|
|
56
|
+
D17: boardIndex.Pin;
|
|
57
|
+
D18: boardIndex.Pin;
|
|
58
|
+
D19: boardIndex.Pin;
|
|
59
|
+
D20: boardIndex.Pin;
|
|
60
|
+
D21: boardIndex.Pin;
|
|
61
|
+
D22: boardIndex.Pin;
|
|
62
|
+
D23: boardIndex.Pin;
|
|
63
|
+
D24: boardIndex.Pin;
|
|
64
|
+
D25: boardIndex.Pin;
|
|
65
|
+
D26: boardIndex.Pin;
|
|
66
|
+
D27: boardIndex.Pin;
|
|
67
|
+
};
|
|
68
|
+
analog: {
|
|
69
|
+
A0: boardIndex.Pin;
|
|
70
|
+
A1: boardIndex.Pin;
|
|
71
|
+
A2: boardIndex.Pin;
|
|
72
|
+
A3: boardIndex.Pin;
|
|
73
|
+
A4: boardIndex.Pin;
|
|
74
|
+
A5: boardIndex.Pin;
|
|
75
|
+
A6: boardIndex.Pin;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
export default Board;
|
package/dist/board.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// @typecad/board-esp32c6 — Board namespace
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
import { D2, D3, D4, D5, D6, D7, D8, D9, D10, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D27, A0, A1, A2, A3, A4, A5, A6, } from './pins.js';
|
|
5
|
+
import { I2C0, SPI0, UART0, UART1 } from '@typecad/mcu-esp32c6';
|
|
6
|
+
import * as boardIndex from './index.js';
|
|
7
|
+
export const Board = {
|
|
8
|
+
get definition() { return boardIndex.ESP32C6Board; },
|
|
9
|
+
D2, D3, D4, D5, D6, D7, D8, D9, D10,
|
|
10
|
+
D12, D13, D14, D15, D16, D17, D18, D19, D20, D21,
|
|
11
|
+
D22, D23, D24, D25, D26, D27,
|
|
12
|
+
A0, A1, A2, A3, A4, A5, A6,
|
|
13
|
+
I2C0, SPI0, UART0, UART1,
|
|
14
|
+
digital: { D2, D3, D4, D5, D6, D7, D8, D9, D10, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D27 },
|
|
15
|
+
analog: { A0, A1, A2, A3, A4, A5, A6 },
|
|
16
|
+
};
|
|
17
|
+
export default Board;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { BoardDefinition } from '@typecad/cuttlefish/api/schema';
|
|
2
|
+
export declare const ESP32C6Board: BoardDefinition;
|
|
3
|
+
export default ESP32C6Board;
|
|
4
|
+
export * from '@typecad/mcu-esp32c6';
|
|
5
|
+
export * from '@typecad/hal';
|
|
6
|
+
export declare const pins: {
|
|
7
|
+
readonly pwm: readonly [import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin];
|
|
8
|
+
readonly analog: readonly [import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin];
|
|
9
|
+
readonly interrupt: readonly [import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin];
|
|
10
|
+
readonly digital: readonly [import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin, import("@typecad/hal").Pin];
|
|
11
|
+
};
|
|
12
|
+
export declare const PeripheralPins: {
|
|
13
|
+
readonly I2C0: {
|
|
14
|
+
readonly SDA: "GPIO23";
|
|
15
|
+
readonly SCL: "GPIO22";
|
|
16
|
+
};
|
|
17
|
+
readonly SPI0: {
|
|
18
|
+
readonly MOSI: "GPIO19";
|
|
19
|
+
readonly MISO: "GPIO20";
|
|
20
|
+
readonly SCK: "GPIO21";
|
|
21
|
+
readonly CS: "GPIO18";
|
|
22
|
+
};
|
|
23
|
+
readonly UART0: {
|
|
24
|
+
readonly TX: "GPIO16";
|
|
25
|
+
readonly RX: "GPIO17";
|
|
26
|
+
};
|
|
27
|
+
readonly UART1: {
|
|
28
|
+
readonly TX: "remappable";
|
|
29
|
+
readonly RX: "remappable";
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export * from './pins.js';
|
|
33
|
+
export * from './analog.js';
|
|
34
|
+
export { Board } from './board.js';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// @typecad/board-esp32c6 — Board definition manifest
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
import { ESP32C6 } from '@typecad/mcu-esp32c6';
|
|
5
|
+
const ARDUINO_CORE_VERSION = '10819';
|
|
6
|
+
export const ESP32C6Board = {
|
|
7
|
+
id: 'esp32c6',
|
|
8
|
+
name: 'ESP32-C6',
|
|
9
|
+
vendor: 'Espressif',
|
|
10
|
+
description: 'Generic ESP32-C6 devboard (vendor-agnostic). Single-core RISC-V ' +
|
|
11
|
+
'(RV32IMAC) @ 160 MHz with Wi-Fi 6 (802.11ax) + BLE 5.3 and native USB ' +
|
|
12
|
+
'Serial/JTAG + USB-OTG. 30 GPIO; no PSRAM support.',
|
|
13
|
+
mcu: ESP32C6,
|
|
14
|
+
clockSpeed: 160_000_000,
|
|
15
|
+
memory: {
|
|
16
|
+
flash: 4 * 1024 * 1024,
|
|
17
|
+
},
|
|
18
|
+
pins: {
|
|
19
|
+
...ESP32C6.pins,
|
|
20
|
+
},
|
|
21
|
+
peripherals: {
|
|
22
|
+
...ESP32C6.peripherals,
|
|
23
|
+
aliases: {
|
|
24
|
+
UART0: 'Serial',
|
|
25
|
+
UART1: 'Serial1',
|
|
26
|
+
I2C0: 'Wire',
|
|
27
|
+
SPI0: 'SPI',
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
build: {
|
|
31
|
+
frameworks: {
|
|
32
|
+
platformio: 'esp32c6',
|
|
33
|
+
arduino: 'esp32:esp32:esp32c6',
|
|
34
|
+
},
|
|
35
|
+
defines: {
|
|
36
|
+
F_CPU: '160000000UL',
|
|
37
|
+
ARDUINO: ARDUINO_CORE_VERSION,
|
|
38
|
+
ARDUINO_ESP32C6_DEV: '1',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
export default ESP32C6Board;
|
|
43
|
+
export * from '@typecad/mcu-esp32c6';
|
|
44
|
+
// Generic HAL re-exports from @typecad/hal. Full re-export so this board package
|
|
45
|
+
// is a superset of @typecad/hal — `import { ... } from '@typecad/hal'` resolves
|
|
46
|
+
// here at transpile time and exposes every HAL symbol plus board-specific pins.
|
|
47
|
+
export * from '@typecad/hal';
|
|
48
|
+
import { GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6, GPIO7, GPIO8, GPIO9, GPIO10, GPIO11, GPIO12, GPIO13, GPIO14, GPIO15, GPIO16, GPIO17, GPIO18, GPIO19, GPIO20, GPIO21, GPIO22, GPIO23, GPIO24, GPIO25, GPIO26, GPIO27, } from '@typecad/mcu-esp32c6';
|
|
49
|
+
export const pins = {
|
|
50
|
+
pwm: [GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6, GPIO7, GPIO8, GPIO9,
|
|
51
|
+
GPIO10, GPIO11, GPIO12, GPIO13, GPIO14, GPIO15, GPIO16, GPIO17, GPIO18,
|
|
52
|
+
GPIO19, GPIO20, GPIO21, GPIO22, GPIO23, GPIO24, GPIO25, GPIO26, GPIO27],
|
|
53
|
+
analog: [GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6],
|
|
54
|
+
interrupt: [GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6, GPIO7, GPIO8, GPIO9,
|
|
55
|
+
GPIO10, GPIO11, GPIO12, GPIO13, GPIO14, GPIO15, GPIO16, GPIO17, GPIO18,
|
|
56
|
+
GPIO19, GPIO20, GPIO21, GPIO22, GPIO23, GPIO24, GPIO25, GPIO26, GPIO27],
|
|
57
|
+
digital: [GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6, GPIO7, GPIO8, GPIO9,
|
|
58
|
+
GPIO10, GPIO11, GPIO12, GPIO13, GPIO14, GPIO15, GPIO16, GPIO17, GPIO18,
|
|
59
|
+
GPIO19, GPIO20, GPIO21, GPIO22, GPIO23, GPIO24, GPIO25, GPIO26, GPIO27],
|
|
60
|
+
};
|
|
61
|
+
export const PeripheralPins = {
|
|
62
|
+
I2C0: { SDA: 'GPIO23', SCL: 'GPIO22' },
|
|
63
|
+
SPI0: { MOSI: 'GPIO19', MISO: 'GPIO20', SCK: 'GPIO21', CS: 'GPIO18' },
|
|
64
|
+
UART0: { TX: 'GPIO16', RX: 'GPIO17' },
|
|
65
|
+
UART1: { TX: 'remappable', RX: 'remappable' },
|
|
66
|
+
};
|
|
67
|
+
export * from './pins.js';
|
|
68
|
+
export * from './analog.js';
|
|
69
|
+
export { Board } from './board.js';
|
package/dist/pins.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export declare const D0: import("@typecad/hal").Pin;
|
|
2
|
+
export declare const D1: import("@typecad/hal").Pin;
|
|
3
|
+
export declare const D2: import("@typecad/hal").Pin;
|
|
4
|
+
export declare const D3: import("@typecad/hal").Pin;
|
|
5
|
+
export declare const D4: import("@typecad/hal").Pin;
|
|
6
|
+
export declare const D5: import("@typecad/hal").Pin;
|
|
7
|
+
export declare const D6: import("@typecad/hal").Pin;
|
|
8
|
+
export declare const D7: import("@typecad/hal").Pin;
|
|
9
|
+
export declare const D8: import("@typecad/hal").Pin;
|
|
10
|
+
export declare const D9: import("@typecad/hal").Pin;
|
|
11
|
+
export declare const D10: import("@typecad/hal").Pin;
|
|
12
|
+
export declare const D11: import("@typecad/hal").Pin;
|
|
13
|
+
export declare const D12: import("@typecad/hal").Pin;
|
|
14
|
+
export declare const D13: import("@typecad/hal").Pin;
|
|
15
|
+
export declare const D14: import("@typecad/hal").Pin;
|
|
16
|
+
export declare const D15: import("@typecad/hal").Pin;
|
|
17
|
+
export declare const D16: import("@typecad/hal").Pin;
|
|
18
|
+
export declare const D17: import("@typecad/hal").Pin;
|
|
19
|
+
export declare const D18: import("@typecad/hal").Pin;
|
|
20
|
+
export declare const D19: import("@typecad/hal").Pin;
|
|
21
|
+
export declare const D20: import("@typecad/hal").Pin;
|
|
22
|
+
export declare const D21: import("@typecad/hal").Pin;
|
|
23
|
+
export declare const D22: import("@typecad/hal").Pin;
|
|
24
|
+
export declare const D23: import("@typecad/hal").Pin;
|
|
25
|
+
export declare const D24: import("@typecad/hal").Pin;
|
|
26
|
+
export declare const D25: import("@typecad/hal").Pin;
|
|
27
|
+
export declare const D26: import("@typecad/hal").Pin;
|
|
28
|
+
export declare const D27: import("@typecad/hal").Pin;
|
|
29
|
+
export declare const A0: import("@typecad/hal").Pin;
|
|
30
|
+
export declare const A1: import("@typecad/hal").Pin;
|
|
31
|
+
export declare const A2: import("@typecad/hal").Pin;
|
|
32
|
+
export declare const A3: import("@typecad/hal").Pin;
|
|
33
|
+
export declare const A4: import("@typecad/hal").Pin;
|
|
34
|
+
export declare const A5: import("@typecad/hal").Pin;
|
|
35
|
+
export declare const A6: import("@typecad/hal").Pin;
|
|
36
|
+
export { I2C0, SPI0, UART0, UART1 } from '@typecad/mcu-esp32c6';
|
package/dist/pins.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// @typecad/board-esp32c6 — Pin aliases
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
import { GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6, GPIO7, GPIO8, GPIO9, GPIO10, GPIO11, GPIO12, GPIO13, GPIO14, GPIO15, GPIO16, GPIO17, GPIO18, GPIO19, GPIO20, GPIO21, GPIO22, GPIO23, GPIO24, GPIO25, GPIO26, GPIO27, } from '@typecad/mcu-esp32c6';
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Arduino-style digital pin aliases (D-numbers match GPIO numbers on ESP32-C6)
|
|
7
|
+
// GPIO28-30 (SPI flash) are omitted from Dx aliases — they're unsafe.
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
export const D0 = GPIO0;
|
|
10
|
+
export const D1 = GPIO1;
|
|
11
|
+
export const D2 = GPIO2;
|
|
12
|
+
export const D3 = GPIO3;
|
|
13
|
+
export const D4 = GPIO4;
|
|
14
|
+
export const D5 = GPIO5;
|
|
15
|
+
export const D6 = GPIO6;
|
|
16
|
+
export const D7 = GPIO7;
|
|
17
|
+
export const D8 = GPIO8;
|
|
18
|
+
export const D9 = GPIO9;
|
|
19
|
+
export const D10 = GPIO10;
|
|
20
|
+
export const D11 = GPIO11;
|
|
21
|
+
export const D12 = GPIO12;
|
|
22
|
+
export const D13 = GPIO13;
|
|
23
|
+
export const D14 = GPIO14;
|
|
24
|
+
export const D15 = GPIO15;
|
|
25
|
+
export const D16 = GPIO16;
|
|
26
|
+
export const D17 = GPIO17;
|
|
27
|
+
export const D18 = GPIO18;
|
|
28
|
+
export const D19 = GPIO19;
|
|
29
|
+
export const D20 = GPIO20;
|
|
30
|
+
export const D21 = GPIO21;
|
|
31
|
+
export const D22 = GPIO22;
|
|
32
|
+
export const D23 = GPIO23;
|
|
33
|
+
export const D24 = GPIO24;
|
|
34
|
+
export const D25 = GPIO25;
|
|
35
|
+
export const D26 = GPIO26;
|
|
36
|
+
export const D27 = GPIO27;
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
// Analog input aliases (ADC1 channels — usable while Wi-Fi is active).
|
|
39
|
+
// ADC2 pin (GPIO7) is omitted from Ax aliases because it is unusable while
|
|
40
|
+
// Wi-Fi is enabled.
|
|
41
|
+
// ---------------------------------------------------------------------------
|
|
42
|
+
export const A0 = GPIO0;
|
|
43
|
+
export const A1 = GPIO1;
|
|
44
|
+
export const A2 = GPIO2;
|
|
45
|
+
export const A3 = GPIO3;
|
|
46
|
+
export const A4 = GPIO4;
|
|
47
|
+
export const A5 = GPIO5;
|
|
48
|
+
export const A6 = GPIO6;
|
|
49
|
+
// Bus aliases (default pins for I2C0 / SPI0 / UART0)
|
|
50
|
+
export { I2C0, SPI0, UART0, UART1 } from '@typecad/mcu-esp32c6';
|
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@typecad/board-esp32c6",
|
|
3
|
+
"version": "0.1.0-alpha.1",
|
|
4
|
+
"description": "TypeCAD ESP32-C6 board definition with typed pins and peripherals",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"src"
|
|
11
|
+
],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsc",
|
|
14
|
+
"prepublishOnly": "npm run build"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@typecad/cuttlefish": "0.1.0-alpha.1",
|
|
18
|
+
"@typecad/hal": "0.1.0-alpha.1",
|
|
19
|
+
"@typecad/mcu-esp32c6": "0.1.0-alpha.1"
|
|
20
|
+
},
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public"
|
|
24
|
+
},
|
|
25
|
+
"repository": {
|
|
26
|
+
"type": "git",
|
|
27
|
+
"url": "git+https://github.com/justind000/typecode.git",
|
|
28
|
+
"directory": "packages/board-esp32c6"
|
|
29
|
+
},
|
|
30
|
+
"homepage": "https://github.com/justind000/typecode/tree/main/packages/board-esp32c6",
|
|
31
|
+
"bugs": {
|
|
32
|
+
"url": "https://github.com/justind000/typecode/issues"
|
|
33
|
+
},
|
|
34
|
+
"keywords": [
|
|
35
|
+
"arduino",
|
|
36
|
+
"board",
|
|
37
|
+
"cpp",
|
|
38
|
+
"cuttlefish",
|
|
39
|
+
"devkit",
|
|
40
|
+
"embedded",
|
|
41
|
+
"esp32c6",
|
|
42
|
+
"firmware",
|
|
43
|
+
"microcontroller",
|
|
44
|
+
"pins",
|
|
45
|
+
"typecad",
|
|
46
|
+
"typescript"
|
|
47
|
+
],
|
|
48
|
+
"engines": {
|
|
49
|
+
"node": ">=18"
|
|
50
|
+
},
|
|
51
|
+
"author": "typecad0",
|
|
52
|
+
"sideEffects": false,
|
|
53
|
+
"exports": {
|
|
54
|
+
".": {
|
|
55
|
+
"types": "./dist/index.d.ts",
|
|
56
|
+
"default": "./dist/index.js"
|
|
57
|
+
},
|
|
58
|
+
"./package.json": "./package.json"
|
|
59
|
+
}
|
|
60
|
+
}
|
package/src/analog.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// @typecad/board-esp32c6 — Analog constants
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
|
|
5
|
+
/** Default reference (3.3V). */
|
|
6
|
+
export const DEFAULT = 0;
|
|
7
|
+
/** Internal 1.1V reference. */
|
|
8
|
+
export const INTERNAL = 3;
|
package/src/board.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// @typecad/board-esp32c6 — Board namespace
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
|
|
5
|
+
import type { BoardDefinition } from '@typecad/cuttlefish/api/schema';
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
D2, D3, D4, D5, D6, D7, D8, D9, D10,
|
|
9
|
+
D12, D13, D14, D15, D16, D17, D18, D19, D20, D21,
|
|
10
|
+
D22, D23, D24, D25, D26, D27,
|
|
11
|
+
A0, A1, A2, A3, A4, A5, A6,
|
|
12
|
+
} from './pins.js';
|
|
13
|
+
|
|
14
|
+
import { I2C0, SPI0, UART0, UART1 } from '@typecad/mcu-esp32c6';
|
|
15
|
+
import * as boardIndex from './index.js';
|
|
16
|
+
|
|
17
|
+
export const Board = {
|
|
18
|
+
get definition() { return boardIndex.ESP32C6Board; },
|
|
19
|
+
|
|
20
|
+
D2, D3, D4, D5, D6, D7, D8, D9, D10,
|
|
21
|
+
D12, D13, D14, D15, D16, D17, D18, D19, D20, D21,
|
|
22
|
+
D22, D23, D24, D25, D26, D27,
|
|
23
|
+
|
|
24
|
+
A0, A1, A2, A3, A4, A5, A6,
|
|
25
|
+
|
|
26
|
+
I2C0, SPI0, UART0, UART1,
|
|
27
|
+
|
|
28
|
+
digital: { D2, D3, D4, D5, D6, D7, D8, D9, D10, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D27 },
|
|
29
|
+
analog: { A0, A1, A2, A3, A4, A5, A6 },
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export default Board;
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// @typecad/board-esp32c6 — Board definition manifest
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
|
|
5
|
+
import type { BoardDefinition } from '@typecad/cuttlefish/api/schema';
|
|
6
|
+
import { ESP32C6 } from '@typecad/mcu-esp32c6';
|
|
7
|
+
|
|
8
|
+
const ARDUINO_CORE_VERSION = '10819';
|
|
9
|
+
|
|
10
|
+
export const ESP32C6Board: BoardDefinition = {
|
|
11
|
+
id: 'esp32c6',
|
|
12
|
+
name: 'ESP32-C6',
|
|
13
|
+
vendor: 'Espressif',
|
|
14
|
+
description:
|
|
15
|
+
'Generic ESP32-C6 devboard (vendor-agnostic). Single-core RISC-V ' +
|
|
16
|
+
'(RV32IMAC) @ 160 MHz with Wi-Fi 6 (802.11ax) + BLE 5.3 and native USB ' +
|
|
17
|
+
'Serial/JTAG + USB-OTG. 30 GPIO; no PSRAM support.',
|
|
18
|
+
|
|
19
|
+
mcu: ESP32C6,
|
|
20
|
+
clockSpeed: 160_000_000,
|
|
21
|
+
|
|
22
|
+
memory: {
|
|
23
|
+
flash: 4 * 1024 * 1024,
|
|
24
|
+
},
|
|
25
|
+
|
|
26
|
+
pins: {
|
|
27
|
+
...ESP32C6.pins,
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
peripherals: {
|
|
31
|
+
...ESP32C6.peripherals,
|
|
32
|
+
aliases: {
|
|
33
|
+
UART0: 'Serial',
|
|
34
|
+
UART1: 'Serial1',
|
|
35
|
+
I2C0: 'Wire',
|
|
36
|
+
SPI0: 'SPI',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
build: {
|
|
41
|
+
frameworks: {
|
|
42
|
+
platformio: 'esp32c6',
|
|
43
|
+
arduino: 'esp32:esp32:esp32c6',
|
|
44
|
+
},
|
|
45
|
+
defines: {
|
|
46
|
+
F_CPU: '160000000UL',
|
|
47
|
+
ARDUINO: ARDUINO_CORE_VERSION,
|
|
48
|
+
ARDUINO_ESP32C6_DEV: '1',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export default ESP32C6Board;
|
|
54
|
+
|
|
55
|
+
export * from '@typecad/mcu-esp32c6';
|
|
56
|
+
|
|
57
|
+
// Generic HAL re-exports from @typecad/hal. Full re-export so this board package
|
|
58
|
+
// is a superset of @typecad/hal — `import { ... } from '@typecad/hal'` resolves
|
|
59
|
+
// here at transpile time and exposes every HAL symbol plus board-specific pins.
|
|
60
|
+
export * from '@typecad/hal';
|
|
61
|
+
|
|
62
|
+
import {
|
|
63
|
+
GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6, GPIO7,
|
|
64
|
+
GPIO8, GPIO9, GPIO10, GPIO11, GPIO12, GPIO13, GPIO14,
|
|
65
|
+
GPIO15, GPIO16, GPIO17, GPIO18, GPIO19, GPIO20, GPIO21,
|
|
66
|
+
GPIO22, GPIO23, GPIO24, GPIO25, GPIO26, GPIO27,
|
|
67
|
+
} from '@typecad/mcu-esp32c6';
|
|
68
|
+
|
|
69
|
+
export const pins = {
|
|
70
|
+
pwm: [GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6, GPIO7, GPIO8, GPIO9,
|
|
71
|
+
GPIO10, GPIO11, GPIO12, GPIO13, GPIO14, GPIO15, GPIO16, GPIO17, GPIO18,
|
|
72
|
+
GPIO19, GPIO20, GPIO21, GPIO22, GPIO23, GPIO24, GPIO25, GPIO26, GPIO27] as const,
|
|
73
|
+
analog: [GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6] as const,
|
|
74
|
+
interrupt: [GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6, GPIO7, GPIO8, GPIO9,
|
|
75
|
+
GPIO10, GPIO11, GPIO12, GPIO13, GPIO14, GPIO15, GPIO16, GPIO17, GPIO18,
|
|
76
|
+
GPIO19, GPIO20, GPIO21, GPIO22, GPIO23, GPIO24, GPIO25, GPIO26, GPIO27] as const,
|
|
77
|
+
digital: [GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6, GPIO7, GPIO8, GPIO9,
|
|
78
|
+
GPIO10, GPIO11, GPIO12, GPIO13, GPIO14, GPIO15, GPIO16, GPIO17, GPIO18,
|
|
79
|
+
GPIO19, GPIO20, GPIO21, GPIO22, GPIO23, GPIO24, GPIO25, GPIO26, GPIO27] as const,
|
|
80
|
+
} as const;
|
|
81
|
+
|
|
82
|
+
export const PeripheralPins = {
|
|
83
|
+
I2C0: { SDA: 'GPIO23', SCL: 'GPIO22' } as const,
|
|
84
|
+
SPI0: { MOSI: 'GPIO19', MISO: 'GPIO20', SCK: 'GPIO21', CS: 'GPIO18' } as const,
|
|
85
|
+
UART0: { TX: 'GPIO16', RX: 'GPIO17' } as const,
|
|
86
|
+
UART1: { TX: 'remappable', RX: 'remappable' } as const,
|
|
87
|
+
} as const;
|
|
88
|
+
|
|
89
|
+
export * from './pins.js';
|
|
90
|
+
export * from './analog.js';
|
|
91
|
+
export { Board } from './board.js';
|
package/src/pins.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// @typecad/board-esp32c6 — Pin aliases
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6, GPIO7,
|
|
7
|
+
GPIO8, GPIO9, GPIO10, GPIO11, GPIO12, GPIO13, GPIO14,
|
|
8
|
+
GPIO15, GPIO16, GPIO17, GPIO18, GPIO19, GPIO20, GPIO21,
|
|
9
|
+
GPIO22, GPIO23, GPIO24, GPIO25, GPIO26, GPIO27,
|
|
10
|
+
} from '@typecad/mcu-esp32c6';
|
|
11
|
+
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Arduino-style digital pin aliases (D-numbers match GPIO numbers on ESP32-C6)
|
|
14
|
+
// GPIO28-30 (SPI flash) are omitted from Dx aliases — they're unsafe.
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
|
|
17
|
+
export const D0 = GPIO0; export const D1 = GPIO1; export const D2 = GPIO2;
|
|
18
|
+
export const D3 = GPIO3; export const D4 = GPIO4; export const D5 = GPIO5;
|
|
19
|
+
export const D6 = GPIO6; export const D7 = GPIO7; export const D8 = GPIO8;
|
|
20
|
+
export const D9 = GPIO9; export const D10 = GPIO10; export const D11 = GPIO11;
|
|
21
|
+
export const D12 = GPIO12; export const D13 = GPIO13; export const D14 = GPIO14;
|
|
22
|
+
export const D15 = GPIO15; export const D16 = GPIO16; export const D17 = GPIO17;
|
|
23
|
+
export const D18 = GPIO18; export const D19 = GPIO19; export const D20 = GPIO20;
|
|
24
|
+
export const D21 = GPIO21; export const D22 = GPIO22; export const D23 = GPIO23;
|
|
25
|
+
export const D24 = GPIO24; export const D25 = GPIO25; export const D26 = GPIO26;
|
|
26
|
+
export const D27 = GPIO27;
|
|
27
|
+
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
// Analog input aliases (ADC1 channels — usable while Wi-Fi is active).
|
|
30
|
+
// ADC2 pin (GPIO7) is omitted from Ax aliases because it is unusable while
|
|
31
|
+
// Wi-Fi is enabled.
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
|
|
34
|
+
export const A0 = GPIO0;
|
|
35
|
+
export const A1 = GPIO1;
|
|
36
|
+
export const A2 = GPIO2;
|
|
37
|
+
export const A3 = GPIO3;
|
|
38
|
+
export const A4 = GPIO4;
|
|
39
|
+
export const A5 = GPIO5;
|
|
40
|
+
export const A6 = GPIO6;
|
|
41
|
+
|
|
42
|
+
// Bus aliases (default pins for I2C0 / SPI0 / UART0)
|
|
43
|
+
export { I2C0, SPI0, UART0, UART1 } from '@typecad/mcu-esp32c6';
|