This is the preliminary documentation for the __[KD01]__ robot, a 2 wheel (plus caster) differential drive robot. It shares the same software, chassis components, basic drive train, motor encoders and controllers as the [KR01].

!! Description

[{Image src='attach/KD01/KD01-side.jpg' link='attach/KD01/KD01-side.jpg' width='400' caption='KD01 side view (click to enlarge)' align='right' class='imgFloatRight'}]

There's not much online yet about the robot but there is a blog entry and three YouTube videos:

* [Differential Drive|https://robots.org.nz/2021/02/03/differential-drive/] (NZPRG blog entry)
* [KD01 Moth Behaviour|https://youtu.be/uoozN5BdepA]
* [KD01 Rotate in Place Test|https://youtu.be/HICrQzAZPow]
* [KD01 Rotate in Place|https://youtu.be/HFRrQuXLtvk] (first try)



!! I2C Bus

Things change all the time, but here's a sample of what's on the robot:

{{% i2cdetect -y 1}}
{{{
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- 15 -- -- 18 -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- 38 -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- 48 -- 4a -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- 74 -- -- 77  
}}}
* 0x15 : ThunderBorg motor controller
* 0x18 : RGB Encoder breakout
* 0x38 : HT0740 Switch (wired to cooling fan)
* 0x48 : ADS1015 AD converter
* 0x4A : BNO085 IMU
* 0x74 : starboard RGBMatrix5x5
* 0x77 : port RGBMatrix5x5



!! GPIO Pin Usage

[{Image src='https://service.robots.org.nz/wiki/attach/GPIO/raspberry-pi-pinout.png' width='900' caption='GPIO pins on a Raspberry Pi A+' align='center'}]

%%small
|| PIN                                 || PIN
| %%org 3V3 %%                         | %%red +5V %%
| __02__: SDA (I2C)                    | %%red +5V %%
| __03__: SCL (I2C)                    | %%grn GND %%
| __04__                               | __14__: TXD0
| %%grn GND %%                         | __15__: RXD0
| __17__: %%prp ENCODER A2 STBD %% (white)  | __18__: %%prp ENCODER B2 STBD %% %%gry (PCM_CLK) %% (violet)
| __27__: GPIO 27 (unused) | %%grn GND %%
| __22__: %%prp ENCODER A1 PORT %% (grey)  | __23__: %%prp ENCODER B1 PORT %% (blue) %%sup † %%
| %%org 3V3 %% %%sup † %%              | __24__: GPIO 24%%sup † %% __Button B on 1.14" Mini Pi TFT Display__
| __10__: MOSI%%sup † %%               | %%grn GND %% %%sup † %%
| __9__: MISO%%sup † %%                | __25__: GPIO 25%%sup † %% 
| __11__: SCLK%%sup † %%               | __8__: CE0%%sup † %% 
| %%grn GND %%                         | __7__: CE1  
| %%gry ID_SD %%                       | %%gry ID_SC %%
| __5__: ext clock (grey, from Itsy Bitsy) | %%grn GND %%
| __6__: rosd toggle switch (orange)   | __12__: __Button A on 1.14" Mini Pi TFT Display__ (blue)
| __13__:                              | %%grn GND %%
| __19__:                              | __16__: 
| __26__: (unused: conflict with SPI)  | __20__: 
| %%grn GND %%                         | __21__: 
%%
 
%%small
†   part of cable assembly connecting to [Adafruit 2.0" 320x240 Color IPS TFT Display|https://www.adafruit.com/product/4311] \\
‡   part of cable assembly connecting to [Adafruit 1.14" Mini Pi TFT Display|https://www.adafruit.com/product/4393]
%%
For sensor wires, wire markings are orange or red for port, green for starboard (just like on a boat).

----

[{Tag KD01 Robot Prototype}]