1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
<mmm-embed path="/0x33.board" facet="toc" nolink></mmm-embed>
# <mmm-embed facet="title" nolink></mmm-embed>
This page lists the various PCB revisions in existance and their quirks and major changes.
Each revision has a revision code that is also tagged in the git repo (e.g. `r1`) and the corresponding short commit hash,
both of which are also printed on the PCBs front and back side.
In order to function correctly the firmware needs to know which hardware revision it is running on,
this is done using the <mmm-link path="/0x33.board/appendix/config.py">board parameters in `config.py`</mmm-link>.
<div id="kc-sch"></div>
<div id="kc-pcb"></div>
- [r1 / fa5b61d](https://git.s-ol.nu/hw/0x33.board/hardware/-/r1/) <button onclick="kc_showRev('r1', 'kicad/midi/midi')") style="margin: 0.25em" id="kc-r1">load preview</button>
- jacks labelled AUDIO, MIDI, CV
- all ports need bodge work to fix pin assignments
- no I2C pull-up / levelshifting
- Uses a bidirectional key-matrix that can result in ghosting with some key combinations
- [r2 / defcd99](https://git.s-ol.nu/hw/0x33.board/hardware/-/r2/) <button onclick="kc_showRev('r2', 'kicad/midi/midi')") style="margin: 0.25em" id="kc-r2">load preview</button>
- jacks labelled MIDI, OUT1 (I2C convertible), OUT2 (pwm)
- MIDI, I2C need bodge
- no I2C pull-up / levelshifting
- fixed "nkro" key-matrix
- [r3 / d4cf583](https://git.s-ol.nu/hw/0x33.board/hardware/-/r3/) <button onclick="kc_showRev('r3')") style="margin: 0.25em" id="kc-r3">load preview</button>
- jacks labelled MIDI, I2C, PWM; adjusted positions; different jack part
- fixed MIDI, 5V tolerant I2C port
- solderable "SMTSO" thread inserts, no need for plastic spacers
- OSHW certified!
- [r4 / 5e4bf5c](https://git.s-ol.nu/hw/0x33.board/hardware/-/r4/) <button onclick="kc_showRev('r4')") style="margin: 0.25em" id="kc-r4">load preview</button>
- adjusted board and case outline for gapless tiling
- moved display slightly to improve mode idicator lighting
- added serial number field on PCB
<script>
function kc_show(id, files) {
const kc = document.getElementById(id);
let html = `<kicanvas-embed controls="full" id="${id}" theme="kicad">`;
for (const file of files) {
html += `<kicanvas-source src="${file}"></kicanvas-source>\n`;
}
html += '</kicanvas-embed>';
kc.outerHTML = html;
}
function kc_showRev(rev, base="pcb/pcb") {
const prefix = `https://git.s-ol.nu/hw/0x33.board/hardware/-/raw/${rev}/`;
console.log(base);
kc_show('kc-sch', [
prefix + base + ".kicad_pro",
prefix + base + ".kicad_sch",
prefix + base.split("/").slice(0, -1).join("/") + "/matrix.kicad_sch",
]);
kc_show('kc-pcb', [
prefix + base + ".kicad_pro",
prefix + base + ".kicad_pcb",
]);
for (const r of ["r1", "r2", "r3", "r4"]) {
const btn = document.getElementById(`kc-${r}`);
btn.disabled = r == rev;
}
}
kc_showRev("r4");
</script>
|