# Result

```{video} ../presentation.mp4
:width: 100%
```

::::{grid} 3
:::{grid-item}
:columns: 6

:::
:::{grid-item}
:columns: 6

:::
:::{grid-item}

:::
:::{grid-item}

:::
:::{grid-item}

:::
::::

## Evaluation
I would consider the first spiral as successful, I may need to increase the tolerance a bit more because, as you can see in the video some keys rub onto each other. \
Unfortunately I didn't manage to build more modules but I'm trying to build some more in the next weeks and try to communicate with those.\
Also I underestimated the needed work for my initial goal but I try to work on the project in the future and build a module for it implementing the initial functionality.
### Goals for the future
- Multiple Keyboard Modules controlled via I2C
- Different modules on the back of the keyboard with e.g. rotary encoder, slider, buttons etc.
- Display (LED, LCD) on the back to show notes or other things/games
- Add the old-school MIDI port to the keyboard
Also currently there is always a XIAO needed or the modules, which is pretty inefficient material/recourse wise when you only want to use multiple modules as a keyboard. \
So for a future 2.0 version it whould be nice to add the connection interface independent to the XIAO so you only need one of them for the actual MIDI-part.
## BOM
|Component | Product | Amount | Price | Vendor |
|----------|---------|--------|-------|--------|
| PCBs | XIAO ESP32 | 1 | 9€ | [Reichelt](https://www.reichelt.de/de/de/shop/produkt/xiao_esp32s3_dual-core_wifi_bt5_0_ohne_header-358354)|
| | ATtiny412 | 1 | 0.8€ | [Reichelt](https://www.reichelt.de/de/de/shop/produkt/8-bit-attiny_avr-risc_mikrocontroller_4_kb_20_mhz_soic-8-367056) |
| | ATtiny1624 | 1 | 1€ | [Reichelt](https://www.reichelt.de/de/de/shop/produkt/8-bit-attiny_avr-risc_mikrocontroller_16_kb_20_mhz_soic-14-335590) |
| | Condensator 100nF | 2 | 0.7€ | [Reichelt](https://www.reichelt.de/de/de/shop/produkt/smd_folienkondensator_100_nf_16_v_125_c-200455) |
| | Resistor 0 Ohm | 1 | 0.06€ | [Reichelt](https://www.reichelt.de/de/de/shop/produkt/smd-widerstand_1206_0_0_ohm_250_mw_5_-18219) |
| | Resistor 4 kOhm | 2 | 0.02€ | [Reichelt](https://www.reichelt.de/de/de/shop/produkt/smd-widerstand_1206_4_3_kohm_250_mw_1_-212744)|
| | PinHeader 3W | 2 | 0.6€/10 | [Reichelt](https://www.reichelt.de/de/de/shop/produkt/10pol_smd-stiftleiste_gewinkelt_rm_2_54-51754) |
| | PinHeader 5W | 2 | 0.6€/10 | [Reichelt](https://www.reichelt.de/de/de/shop/produkt/10pol_smd-stiftleiste_gewinkelt_rm_2_54-51754) |
| | PinSocket 3W | 4 | 0.14€ | [Reichelt](https://www.reichelt.de/de/de/shop/produkt/buchsenleisten_2_54_mm_1x03_gerade-119912) |
| | PinSocket 5W | 2 | 0.5€ | [Reichel](https://www.reichelt.de/de/de/shop/produkt/buchsenleisten_2_00_mm_1x05_gerade-119986) |
| Housing | Magnets
6.36mm diameter
3mm height| 12 | 0.33€ | [DigiKey](https://www.digikey.de/en/products/detail/radial-magnets-inc/8193/555328)|
| | Screws M3 12mm| 6 | 7.8€/100 | [Reichelt](https://www.reichelt.de/de/de/shop/produkt/pan_head_schrauben_edelstahl_a2_pzd_m3_12mm_100_stueck-72629) |
| | Screws M2.5 | 7 | 2.35€/20 | [Reichelt](https://www.reichelt.de/de/de/shop/suche/Schrauben?filter) |
| | Screws M2 | 4 | 0.6€ | [DigiKey](https://www.digikey.de/en/products/detail/apm-hexseal/RM2X8MM-2701/612919) |
| | Rubber bands | 12 | 1€ | Your local Supermarket |
| | USB-C Cable | 1 | 3.6€ | [Reichelt](https://www.reichelt.de/de/de/shop/produkt/scangrip_usb-ladekabel_usb-a_auf_usb-c-381057) |
| Not Build Side Connectors | Connector FFC FPC 4W | 4 | 4.75€ | [Reichelt](https://www.reichelt.de/de/de/shop/produkt/nullkraftstecker_4pol_rm1_0_mm_side_entry_bottom_contact-86701) |
| | PinHeader 3W | 1 | 0.6€/10 | [Reichelt](https://www.reichelt.de/de/de/shop/produkt/10pol_smd-stiftleiste_gewinkelt_rm_2_54-51754) |
| | PinSocket 3W | 1 | 0.14€ | [Reichelt](https://www.reichelt.de/de/de/shop/produkt/buchsenleisten_2_54_mm_1x03_gerade-119912) |
| | Screws M2.5 | 4 | 2.35€/20 | [Reichelt](https://www.reichelt.de/de/de/shop/suche/Schrauben?filter) |
:::{note}
BOM is for one key board module.
:::
## Licence
Open Source MIDI Keyboard
Copyright © 2025 Niclas Starost
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
### Git Repo: [OSMK](https://gitlab.fabcloud.org/niclas-starost/opensourcemidikeyboard)
## Design Files
- [FreeCAD Models and Assembly](../_static/FinalProject/FreeCAD_Keyboard.zip)
- [KiCAD PCB and Schematic](../_static/FinalProject/KiCAD_Keyboard.zip)
- [PCB Images](../_static/FinalProject/PCB_Images.zip)
- [ESP-IDF ESP32S3 Code for the MIDI implementation](../_static/FinalProject/esp32s3_code.zip)