tjbot-ce 3.0.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.
Files changed (224) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +382 -0
  3. package/dist/camera/camera.d.ts +62 -0
  4. package/dist/camera/camera.d.ts.map +1 -0
  5. package/dist/camera/camera.js +155 -0
  6. package/dist/camera/camera.js.map +1 -0
  7. package/dist/camera/index.d.ts +18 -0
  8. package/dist/camera/index.d.ts.map +1 -0
  9. package/dist/camera/index.js +18 -0
  10. package/dist/camera/index.js.map +1 -0
  11. package/dist/config/config-types.d.ts +75 -0
  12. package/dist/config/config-types.d.ts.map +1 -0
  13. package/dist/config/config-types.generated.d.ts +495 -0
  14. package/dist/config/config-types.generated.d.ts.map +1 -0
  15. package/dist/config/config-types.generated.js +2 -0
  16. package/dist/config/config-types.generated.js.map +1 -0
  17. package/dist/config/config-types.js +175 -0
  18. package/dist/config/config-types.js.map +1 -0
  19. package/dist/config/index.d.ts +20 -0
  20. package/dist/config/index.d.ts.map +1 -0
  21. package/dist/config/index.js +19 -0
  22. package/dist/config/index.js.map +1 -0
  23. package/dist/config/tjbot-config.d.ts +98 -0
  24. package/dist/config/tjbot-config.d.ts.map +1 -0
  25. package/dist/config/tjbot-config.js +309 -0
  26. package/dist/config/tjbot-config.js.map +1 -0
  27. package/dist/config/vendor/colors.yaml +61 -0
  28. package/dist/config/vendor/model-registry.yaml +275 -0
  29. package/dist/config/vendor/tjbot-config.schema.yaml +792 -0
  30. package/dist/config/vendor/tjbot.default.toml +452 -0
  31. package/dist/led/index.d.ts +20 -0
  32. package/dist/led/index.d.ts.map +1 -0
  33. package/dist/led/index.js +20 -0
  34. package/dist/led/index.js.map +1 -0
  35. package/dist/led/led-common-anode.d.ts +38 -0
  36. package/dist/led/led-common-anode.d.ts.map +1 -0
  37. package/dist/led/led-common-anode.js +79 -0
  38. package/dist/led/led-common-anode.js.map +1 -0
  39. package/dist/led/led-neopixel-spi.d.ts +60 -0
  40. package/dist/led/led-neopixel-spi.d.ts.map +1 -0
  41. package/dist/led/led-neopixel-spi.js +216 -0
  42. package/dist/led/led-neopixel-spi.js.map +1 -0
  43. package/dist/led/led-neopixel-ws281x.js +186 -0
  44. package/dist/led/led-neopixel.d.ts +57 -0
  45. package/dist/led/led-neopixel.d.ts.map +1 -0
  46. package/dist/led/led-neopixel.js +235 -0
  47. package/dist/led/led-neopixel.js.map +1 -0
  48. package/dist/microphone/index.d.ts +18 -0
  49. package/dist/microphone/index.d.ts.map +1 -0
  50. package/dist/microphone/index.js +18 -0
  51. package/dist/microphone/index.js.map +1 -0
  52. package/dist/microphone/microphone.d.ts +65 -0
  53. package/dist/microphone/microphone.d.ts.map +1 -0
  54. package/dist/microphone/microphone.js +179 -0
  55. package/dist/microphone/microphone.js.map +1 -0
  56. package/dist/rpi-drivers/index.d.ts +22 -0
  57. package/dist/rpi-drivers/index.d.ts.map +1 -0
  58. package/dist/rpi-drivers/index.js +22 -0
  59. package/dist/rpi-drivers/index.js.map +1 -0
  60. package/dist/rpi-drivers/rpi-detect.d.ts +24 -0
  61. package/dist/rpi-drivers/rpi-detect.d.ts.map +1 -0
  62. package/dist/rpi-drivers/rpi-detect.js +49 -0
  63. package/dist/rpi-drivers/rpi-detect.js.map +1 -0
  64. package/dist/rpi-drivers/rpi-driver.d.ts +116 -0
  65. package/dist/rpi-drivers/rpi-driver.d.ts.map +1 -0
  66. package/dist/rpi-drivers/rpi-driver.js +261 -0
  67. package/dist/rpi-drivers/rpi-driver.js.map +1 -0
  68. package/dist/rpi-drivers/rpi3-driver.d.ts +47 -0
  69. package/dist/rpi-drivers/rpi3-driver.d.ts.map +1 -0
  70. package/dist/rpi-drivers/rpi3-driver.js +145 -0
  71. package/dist/rpi-drivers/rpi3-driver.js.map +1 -0
  72. package/dist/rpi-drivers/rpi4-driver.d.ts +35 -0
  73. package/dist/rpi-drivers/rpi4-driver.d.ts.map +1 -0
  74. package/dist/rpi-drivers/rpi4-driver.js +101 -0
  75. package/dist/rpi-drivers/rpi4-driver.js.map +1 -0
  76. package/dist/rpi-drivers/rpi5-driver.d.ts +33 -0
  77. package/dist/rpi-drivers/rpi5-driver.d.ts.map +1 -0
  78. package/dist/rpi-drivers/rpi5-driver.js +78 -0
  79. package/dist/rpi-drivers/rpi5-driver.js.map +1 -0
  80. package/dist/servo/index.d.ts +19 -0
  81. package/dist/servo/index.d.ts.map +1 -0
  82. package/dist/servo/index.js +19 -0
  83. package/dist/servo/index.js.map +1 -0
  84. package/dist/servo/servo-constants.d.ts +33 -0
  85. package/dist/servo/servo-constants.d.ts.map +1 -0
  86. package/dist/servo/servo-constants.js +34 -0
  87. package/dist/servo/servo-constants.js.map +1 -0
  88. package/dist/servo/servo-lgpio.d.ts +82 -0
  89. package/dist/servo/servo-lgpio.d.ts.map +1 -0
  90. package/dist/servo/servo-lgpio.js +178 -0
  91. package/dist/servo/servo-lgpio.js.map +1 -0
  92. package/dist/speaker/audio-player.d.ts +30 -0
  93. package/dist/speaker/audio-player.d.ts.map +1 -0
  94. package/dist/speaker/audio-player.js +68 -0
  95. package/dist/speaker/audio-player.js.map +1 -0
  96. package/dist/speaker/index.d.ts +18 -0
  97. package/dist/speaker/index.d.ts.map +1 -0
  98. package/dist/speaker/index.js +18 -0
  99. package/dist/speaker/index.js.map +1 -0
  100. package/dist/speaker/speaker.d.ts +53 -0
  101. package/dist/speaker/speaker.d.ts.map +1 -0
  102. package/dist/speaker/speaker.js +125 -0
  103. package/dist/speaker/speaker.js.map +1 -0
  104. package/dist/stt/backends/azure-stt.d.ts +32 -0
  105. package/dist/stt/backends/azure-stt.d.ts.map +1 -0
  106. package/dist/stt/backends/azure-stt.js +227 -0
  107. package/dist/stt/backends/azure-stt.js.map +1 -0
  108. package/dist/stt/backends/google-cloud-stt.d.ts +31 -0
  109. package/dist/stt/backends/google-cloud-stt.d.ts.map +1 -0
  110. package/dist/stt/backends/google-cloud-stt.js +371 -0
  111. package/dist/stt/backends/google-cloud-stt.js.map +1 -0
  112. package/dist/stt/backends/ibm-watson-stt.d.ts +32 -0
  113. package/dist/stt/backends/ibm-watson-stt.d.ts.map +1 -0
  114. package/dist/stt/backends/ibm-watson-stt.js +190 -0
  115. package/dist/stt/backends/ibm-watson-stt.js.map +1 -0
  116. package/dist/stt/backends/sherpa-onnx-stt.d.ts +117 -0
  117. package/dist/stt/backends/sherpa-onnx-stt.d.ts.map +1 -0
  118. package/dist/stt/backends/sherpa-onnx-stt.js +694 -0
  119. package/dist/stt/backends/sherpa-onnx-stt.js.map +1 -0
  120. package/dist/stt/index.d.ts +20 -0
  121. package/dist/stt/index.d.ts.map +1 -0
  122. package/dist/stt/index.js +21 -0
  123. package/dist/stt/index.js.map +1 -0
  124. package/dist/stt/stt-engine.d.ts +68 -0
  125. package/dist/stt/stt-engine.d.ts.map +1 -0
  126. package/dist/stt/stt-engine.js +99 -0
  127. package/dist/stt/stt-engine.js.map +1 -0
  128. package/dist/stt/stt-utils.d.ts +36 -0
  129. package/dist/stt/stt-utils.d.ts.map +1 -0
  130. package/dist/stt/stt-utils.js +112 -0
  131. package/dist/stt/stt-utils.js.map +1 -0
  132. package/dist/stt/stt.d.ts +52 -0
  133. package/dist/stt/stt.d.ts.map +1 -0
  134. package/dist/stt/stt.js +100 -0
  135. package/dist/stt/stt.js.map +1 -0
  136. package/dist/tjbot.d.ts +317 -0
  137. package/dist/tjbot.d.ts.map +1 -0
  138. package/dist/tjbot.js +736 -0
  139. package/dist/tjbot.js.map +1 -0
  140. package/dist/tts/backends/azure-tts.d.ts +30 -0
  141. package/dist/tts/backends/azure-tts.d.ts.map +1 -0
  142. package/dist/tts/backends/azure-tts.js +92 -0
  143. package/dist/tts/backends/azure-tts.js.map +1 -0
  144. package/dist/tts/backends/google-cloud-tts.d.ts +38 -0
  145. package/dist/tts/backends/google-cloud-tts.d.ts.map +1 -0
  146. package/dist/tts/backends/google-cloud-tts.js +116 -0
  147. package/dist/tts/backends/google-cloud-tts.js.map +1 -0
  148. package/dist/tts/backends/ibm-watson-tts.d.ts +42 -0
  149. package/dist/tts/backends/ibm-watson-tts.d.ts.map +1 -0
  150. package/dist/tts/backends/ibm-watson-tts.js +99 -0
  151. package/dist/tts/backends/ibm-watson-tts.js.map +1 -0
  152. package/dist/tts/backends/sherpa-onnx-tts.d.ts +80 -0
  153. package/dist/tts/backends/sherpa-onnx-tts.d.ts.map +1 -0
  154. package/dist/tts/backends/sherpa-onnx-tts.js +237 -0
  155. package/dist/tts/backends/sherpa-onnx-tts.js.map +1 -0
  156. package/dist/tts/index.d.ts +19 -0
  157. package/dist/tts/index.d.ts.map +1 -0
  158. package/dist/tts/index.js +20 -0
  159. package/dist/tts/index.js.map +1 -0
  160. package/dist/tts/tts-engine.d.ts +67 -0
  161. package/dist/tts/tts-engine.d.ts.map +1 -0
  162. package/dist/tts/tts-engine.js +109 -0
  163. package/dist/tts/tts-engine.js.map +1 -0
  164. package/dist/tts/tts.d.ts +47 -0
  165. package/dist/tts/tts.d.ts.map +1 -0
  166. package/dist/tts/tts.js +101 -0
  167. package/dist/tts/tts.js.map +1 -0
  168. package/dist/utils/colors.d.ts +39 -0
  169. package/dist/utils/colors.d.ts.map +1 -0
  170. package/dist/utils/colors.js +155 -0
  171. package/dist/utils/colors.js.map +1 -0
  172. package/dist/utils/constants.d.ts +41 -0
  173. package/dist/utils/constants.d.ts.map +1 -0
  174. package/dist/utils/constants.js +43 -0
  175. package/dist/utils/constants.js.map +1 -0
  176. package/dist/utils/credentials.d.ts +43 -0
  177. package/dist/utils/credentials.d.ts.map +1 -0
  178. package/dist/utils/credentials.js +121 -0
  179. package/dist/utils/credentials.js.map +1 -0
  180. package/dist/utils/errors.d.ts +26 -0
  181. package/dist/utils/errors.d.ts.map +1 -0
  182. package/dist/utils/errors.js +32 -0
  183. package/dist/utils/errors.js.map +1 -0
  184. package/dist/utils/index.d.ts +25 -0
  185. package/dist/utils/index.d.ts.map +1 -0
  186. package/dist/utils/index.js +23 -0
  187. package/dist/utils/index.js.map +1 -0
  188. package/dist/utils/logging.d.ts +44 -0
  189. package/dist/utils/logging.d.ts.map +1 -0
  190. package/dist/utils/logging.js +113 -0
  191. package/dist/utils/logging.js.map +1 -0
  192. package/dist/utils/model-registry.d.ts +142 -0
  193. package/dist/utils/model-registry.d.ts.map +1 -0
  194. package/dist/utils/model-registry.js +391 -0
  195. package/dist/utils/model-registry.js.map +1 -0
  196. package/dist/utils/utils.d.ts +33 -0
  197. package/dist/utils/utils.d.ts.map +1 -0
  198. package/dist/utils/utils.js +50 -0
  199. package/dist/utils/utils.js.map +1 -0
  200. package/dist/vision/backends/azure-vision.d.ts +33 -0
  201. package/dist/vision/backends/azure-vision.d.ts.map +1 -0
  202. package/dist/vision/backends/azure-vision.js +151 -0
  203. package/dist/vision/backends/azure-vision.js.map +1 -0
  204. package/dist/vision/backends/google-cloud-vision.d.ts +32 -0
  205. package/dist/vision/backends/google-cloud-vision.d.ts.map +1 -0
  206. package/dist/vision/backends/google-cloud-vision.js +193 -0
  207. package/dist/vision/backends/google-cloud-vision.js.map +1 -0
  208. package/dist/vision/backends/onnx.d.ts +116 -0
  209. package/dist/vision/backends/onnx.d.ts.map +1 -0
  210. package/dist/vision/backends/onnx.js +781 -0
  211. package/dist/vision/backends/onnx.js.map +1 -0
  212. package/dist/vision/index.d.ts +19 -0
  213. package/dist/vision/index.d.ts.map +1 -0
  214. package/dist/vision/index.js +20 -0
  215. package/dist/vision/index.js.map +1 -0
  216. package/dist/vision/vision-engine.d.ts +131 -0
  217. package/dist/vision/vision-engine.d.ts.map +1 -0
  218. package/dist/vision/vision-engine.js +97 -0
  219. package/dist/vision/vision-engine.js.map +1 -0
  220. package/dist/vision/vision.d.ts +48 -0
  221. package/dist/vision/vision.d.ts.map +1 -0
  222. package/dist/vision/vision.js +83 -0
  223. package/dist/vision/vision.js.map +1 -0
  224. package/package.json +124 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpi3-driver.js","sourceRoot":"","sources":["../../src/rpi-drivers/rpi3-driver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Copyright 2025 IBM Corp. All Rights Reserved.
3
+ * Copyright 2026-present TJBot Contributors. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { ShineConfig, WaveConfig } from '../config/index.js';
18
+ import { ServoPosition } from '../servo/index.js';
19
+ import { RPiBaseHardwareDriver } from './rpi-driver.js';
20
+ declare class RPi4Driver extends RPiBaseHardwareDriver {
21
+ private commonAnodeLed;
22
+ private neopixelLed;
23
+ private useGRBFormat;
24
+ private servo;
25
+ constructor();
26
+ setupLEDCommonAnode(config: ShineConfig['commonanode']): void;
27
+ setupLEDNeopixel(config: ShineConfig['neopixel']): Promise<void>;
28
+ setupServo(config: WaveConfig): void;
29
+ renderLEDCommonAnode(rgbColor: [number, number, number]): void;
30
+ renderLEDNeopixel(hexColor: string): Promise<void>;
31
+ cleanup(): Promise<void>;
32
+ renderServoPosition(position: ServoPosition): void;
33
+ }
34
+ export default RPi4Driver;
35
+ //# sourceMappingURL=rpi4-driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpi4-driver.d.ts","sourceRoot":"","sources":["../../src/rpi-drivers/rpi4-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAwB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAIxD,cAAM,UAAW,SAAQ,qBAAqB;IAC1C,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,KAAK,CAAmC;;IAQhD,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI;IAWvD,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAStE,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAOpC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAQxD,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBlD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;CAOrD;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Copyright 2025 IBM Corp. All Rights Reserved.
3
+ * Copyright 2026-present TJBot Contributors. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { getLogger } from '../utils/logging.js';
18
+ import { LEDCommonAnode, LEDNeopixel } from '../led/index.js';
19
+ import { LGPIOServoController } from '../servo/index.js';
20
+ import { Hardware } from '../utils/index.js';
21
+ import { RPiBaseHardwareDriver } from './rpi-driver.js';
22
+ const logger = getLogger(import.meta.url);
23
+ class RPi4Driver extends RPiBaseHardwareDriver {
24
+ commonAnodeLed;
25
+ neopixelLed;
26
+ useGRBFormat;
27
+ servo;
28
+ constructor() {
29
+ super();
30
+ logger.debug('initializing RPi4 hardware driver');
31
+ this.useGRBFormat = true;
32
+ }
33
+ setupLEDCommonAnode(config) {
34
+ const redPin = config?.redPin ?? 19;
35
+ const greenPin = config?.greenPin ?? 13;
36
+ const bluePin = config?.bluePin ?? 12;
37
+ logger.verbose(`initializing Common Anode LED on RED PIN ${redPin}, GREEN PIN ${greenPin}, and BLUE PIN ${bluePin}`);
38
+ this.commonAnodeLed = new LEDCommonAnode(redPin, greenPin, bluePin);
39
+ this.initializedHardware.add(Hardware.LED);
40
+ }
41
+ async setupLEDNeopixel(config) {
42
+ const pin = config?.gpioPin ?? 18;
43
+ logger.verbose(`initializing NeoPixel LED on pin ${pin}`);
44
+ this.neopixelLed = new LEDNeopixel(pin);
45
+ await this.neopixelLed.initialize();
46
+ this.useGRBFormat = config?.useGRBFormat ?? true;
47
+ this.initializedHardware.add(Hardware.LED);
48
+ }
49
+ setupServo(config) {
50
+ const pin = config.servoPin ?? 18;
51
+ logger.verbose(`initializing ${Hardware.SERVO} on PIN ${pin}`);
52
+ this.servo = new LGPIOServoController(0, pin);
53
+ this.initializedHardware.add(Hardware.SERVO);
54
+ }
55
+ renderLEDCommonAnode(rgbColor) {
56
+ if (this.commonAnodeLed) {
57
+ this.commonAnodeLed.render(rgbColor);
58
+ }
59
+ else {
60
+ logger.warn('attempted to render on an uninitialized Common Anode LED');
61
+ }
62
+ }
63
+ async renderLEDNeopixel(hexColor) {
64
+ if (this.neopixelLed) {
65
+ const c = hexColor.startsWith('#') ? hexColor.slice(1) : hexColor;
66
+ if (c.length !== 6) {
67
+ logger.warn(`Invalid NeoPixel color '${hexColor}'`);
68
+ return;
69
+ }
70
+ if (this.useGRBFormat) {
71
+ const grbStr = `0x${c[2]}${c[3]}${c[0]}${c[1]}${c[4]}${c[5]}`;
72
+ const grb = parseInt(grbStr, 16);
73
+ await this.neopixelLed.render(grb);
74
+ }
75
+ else {
76
+ const rgbStr = `0x${c}`;
77
+ const rgb = parseInt(rgbStr, 16);
78
+ await this.neopixelLed.render(rgb);
79
+ }
80
+ }
81
+ else {
82
+ logger.warn('attempted to render on an uninitialized Neopixel LED');
83
+ }
84
+ }
85
+ async cleanup() {
86
+ if (this.neopixelLed) {
87
+ await this.neopixelLed.cleanup();
88
+ }
89
+ await super.cleanup();
90
+ }
91
+ renderServoPosition(position) {
92
+ if (this.servo) {
93
+ this.servo.setPosition(position);
94
+ }
95
+ else {
96
+ logger.warn('attempted to render on an uninitialized servo');
97
+ }
98
+ }
99
+ }
100
+ export default RPi4Driver;
101
+ //# sourceMappingURL=rpi4-driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpi4-driver.js","sourceRoot":"","sources":["../../src/rpi-drivers/rpi4-driver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Copyright 2025 IBM Corp. All Rights Reserved.
3
+ * Copyright 2026-present TJBot Contributors. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { ShineConfig, WaveConfig } from '../config/index.js';
18
+ import { ServoPosition } from '../servo/index.js';
19
+ import { RPiBaseHardwareDriver } from './rpi-driver.js';
20
+ declare class RPi5Driver extends RPiBaseHardwareDriver {
21
+ private commonAnodeLed;
22
+ private neopixelLed;
23
+ private servo;
24
+ constructor();
25
+ setupLEDCommonAnode(config: ShineConfig['commonanode']): void;
26
+ setupLEDNeopixel(config: ShineConfig['neopixel']): Promise<void>;
27
+ setupServo(config: WaveConfig): void;
28
+ renderLEDCommonAnode(rgbColor: [number, number, number]): void;
29
+ renderLEDNeopixel(hexColor: string): Promise<void>;
30
+ renderServoPosition(position: ServoPosition): void;
31
+ }
32
+ export default RPi5Driver;
33
+ //# sourceMappingURL=rpi5-driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpi5-driver.d.ts","sourceRoot":"","sources":["../../src/rpi-drivers/rpi5-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAwB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAIxD,cAAM,UAAW,SAAQ,qBAAqB;IAC1C,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,KAAK,CAAmC;;IAOhD,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI;IAWvD,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtE,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAOpC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAQxD,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxD,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;CAOrD;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Copyright 2025 IBM Corp. All Rights Reserved.
3
+ * Copyright 2026-present TJBot Contributors. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { getLogger } from '../utils/logging.js';
18
+ import { LEDCommonAnode, LEDNeopixelSPI } from '../led/index.js';
19
+ import { LGPIOServoController } from '../servo/index.js';
20
+ import { Hardware } from '../utils/index.js';
21
+ import { RPiBaseHardwareDriver } from './rpi-driver.js';
22
+ const logger = getLogger(import.meta.url);
23
+ class RPi5Driver extends RPiBaseHardwareDriver {
24
+ commonAnodeLed;
25
+ neopixelLed;
26
+ servo;
27
+ constructor() {
28
+ super();
29
+ logger.debug('initializing RPi5 hardware driver');
30
+ }
31
+ setupLEDCommonAnode(config) {
32
+ const redPin = config?.redPin ?? 19;
33
+ const greenPin = config?.greenPin ?? 13;
34
+ const bluePin = config?.bluePin ?? 12;
35
+ logger.verbose(`initializing Common Anode LED on RED PIN ${redPin}, GREEN PIN ${greenPin}, and BLUE PIN ${bluePin}`);
36
+ this.commonAnodeLed = new LEDCommonAnode(redPin, greenPin, bluePin);
37
+ this.initializedHardware.add(Hardware.LED);
38
+ }
39
+ async setupLEDNeopixel(config) {
40
+ const spiInterface = config?.spiInterface ?? '/dev/spidev0.0';
41
+ const useGRBFormat = config?.useGRBFormat ?? false;
42
+ logger.verbose(`initializing NeoPixel LED on SPI ${spiInterface}`);
43
+ this.neopixelLed = new LEDNeopixelSPI(spiInterface, useGRBFormat);
44
+ this.initializedHardware.add(Hardware.LED);
45
+ }
46
+ setupServo(config) {
47
+ const pin = config.servoPin ?? 18;
48
+ const chipNumber = 0; // GPIO chip 0 (standard Raspberry Pi configuration)
49
+ this.servo = new LGPIOServoController(chipNumber, pin);
50
+ this.initializedHardware.add(Hardware.SERVO);
51
+ }
52
+ renderLEDCommonAnode(rgbColor) {
53
+ if (this.commonAnodeLed) {
54
+ this.commonAnodeLed.render(rgbColor);
55
+ }
56
+ else {
57
+ logger.warn('attempted to render on an uninitialized Common Anode LED');
58
+ }
59
+ }
60
+ async renderLEDNeopixel(hexColor) {
61
+ if (this.neopixelLed) {
62
+ await this.neopixelLed.render(hexColor);
63
+ }
64
+ else {
65
+ logger.warn('attempted to render on an uninitialized Neopixel LED');
66
+ }
67
+ }
68
+ renderServoPosition(position) {
69
+ if (this.servo) {
70
+ this.servo.setPosition(position);
71
+ }
72
+ else {
73
+ logger.warn('attempted to render on an uninitialized servo');
74
+ }
75
+ }
76
+ }
77
+ export default RPi5Driver;
78
+ //# sourceMappingURL=rpi5-driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpi5-driver.js","sourceRoot":"","sources":["../../src/rpi-drivers/rpi5-driver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright 2025 IBM Corp. All Rights Reserved.
3
+ * Copyright 2026-present TJBot Contributors. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ export { LGPIOServoController } from './servo-lgpio.js';
18
+ export { MAX_PULSE_MS, MID_PULSE_MS, MIN_PULSE_MS, ServoPosition } from './servo-constants.js';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/servo/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright 2025 IBM Corp. All Rights Reserved.
3
+ * Copyright 2026-present TJBot Contributors. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ export { LGPIOServoController } from './servo-lgpio.js';
18
+ export { MAX_PULSE_MS, MID_PULSE_MS, MIN_PULSE_MS, ServoPosition } from './servo-constants.js';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/servo/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Copyright 2025 IBM Corp. All Rights Reserved.
3
+ * Copyright 2026-present TJBot Contributors. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ /**
18
+ * TJBot servo motor stop positions
19
+ * @readonly
20
+ * @enum {int}
21
+ */
22
+ export declare enum ServoPosition {
23
+ ARM_BACK = 700,
24
+ ARM_UP = 1400,
25
+ ARM_DOWN = 2300
26
+ }
27
+ /**
28
+ * Servo pulse widths in milliseconds.
29
+ */
30
+ export declare const MIN_PULSE_MS = 0.5;
31
+ export declare const MID_PULSE_MS = 1.5;
32
+ export declare const MAX_PULSE_MS = 2.5;
33
+ //# sourceMappingURL=servo-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"servo-constants.d.ts","sourceRoot":"","sources":["../../src/servo/servo-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AACH,oBAAY,aAAa;IACrB,QAAQ,MAAM;IACd,MAAM,OAAO;IACb,QAAQ,OAAO;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,YAAY,MAAM,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Copyright 2025 IBM Corp. All Rights Reserved.
3
+ * Copyright 2026-present TJBot Contributors. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ /**
18
+ * TJBot servo motor stop positions
19
+ * @readonly
20
+ * @enum {int}
21
+ */
22
+ export var ServoPosition;
23
+ (function (ServoPosition) {
24
+ ServoPosition[ServoPosition["ARM_BACK"] = 700] = "ARM_BACK";
25
+ ServoPosition[ServoPosition["ARM_UP"] = 1400] = "ARM_UP";
26
+ ServoPosition[ServoPosition["ARM_DOWN"] = 2300] = "ARM_DOWN";
27
+ })(ServoPosition || (ServoPosition = {}));
28
+ /**
29
+ * Servo pulse widths in milliseconds.
30
+ */
31
+ export const MIN_PULSE_MS = 0.5;
32
+ export const MID_PULSE_MS = 1.5;
33
+ export const MAX_PULSE_MS = 2.5;
34
+ //# sourceMappingURL=servo-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"servo-constants.js","sourceRoot":"","sources":["../../src/servo/servo-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AACH,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,2DAAc,CAAA;IACd,wDAAa,CAAA;IACb,4DAAe,CAAA;AACnB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Copyright 2025 IBM Corp. All Rights Reserved.
3
+ * Copyright 2026-present TJBot Contributors. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { ServoPosition } from './servo-constants.js';
18
+ /**
19
+ * Servo controller using lgpio on Raspberry Pi GPIO character devices
20
+ */
21
+ export declare class LGPIOServoController {
22
+ private chipNumber;
23
+ private pin;
24
+ private freq;
25
+ private chipHandle?;
26
+ private claimed;
27
+ private currentPulseMs;
28
+ private running;
29
+ private autoStopTimer?;
30
+ private autoStopDelayMs;
31
+ /**
32
+ * Create a LGPIOServoController instance
33
+ * @param chipNumber GPIO chip number (usually 0)
34
+ * @param pin GPIO pin number (BCM)
35
+ * @param freq PWM frequency in Hz (default 50 for standard servos)
36
+ */
37
+ constructor(chipNumber: number, pin: number, freq?: number, autoStopDelayMs?: number);
38
+ /**
39
+ * Set the servo to a specific position.
40
+ * @param position Servo position in microseconds (500-2500 for standard servos)
41
+ */
42
+ setPosition(position: ServoPosition): void;
43
+ private ensureStarted;
44
+ private setServoPulse;
45
+ /**
46
+ * Start the servo controller worker
47
+ */
48
+ start(): void;
49
+ /**
50
+ * Stop the servo controller and clean up resources
51
+ */
52
+ stop(): Promise<void>;
53
+ /**
54
+ * Set pulse width in milliseconds
55
+ * Valid range is 0.5-2.5ms for standard servos
56
+ * @param pulseMs Pulse width in milliseconds
57
+ */
58
+ setPulseWidth(pulseMs: number): void;
59
+ /**
60
+ * Set servo angle (0-180 degrees)
61
+ * 0° = 0.5ms pulse, 90° = 1.5ms pulse, 180° = 2.5ms pulse
62
+ * @param angle Angle in degrees (0-180)
63
+ */
64
+ setAngle(angle: number): void;
65
+ /**
66
+ * Get the current pulse width
67
+ */
68
+ getPulseWidth(): number;
69
+ /**
70
+ * Get the current angle (approximately)
71
+ */
72
+ getAngle(): number;
73
+ /**
74
+ * Check if the controller is running
75
+ */
76
+ isRunning(): boolean;
77
+ /**
78
+ * Cleanup and stop the controller
79
+ */
80
+ cleanup(): Promise<void>;
81
+ }
82
+ //# sourceMappingURL=servo-lgpio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"servo-lgpio.d.ts","sourceRoot":"","sources":["../../src/servo/servo-lgpio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAA4C,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAsB/F;;GAEG;AACH,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,aAAa,CAAC,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAS;IAEhC;;;;;OAKG;gBACS,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,SAAK,EAAE,eAAe,SAAO;IAc9E;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAM1C,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,aAAa;IAarB;;OAEG;IACH,KAAK;IAUL;;OAEG;IACG,IAAI;IAuBV;;;;OAIG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM;IAe7B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM;IAMtB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACG,OAAO;CAIhB"}