MIDI2VC, ver 2 assembled
I've assembled the MIDI2VC, and discovered two errors (so far) in the layout. First is in the silk screen, the ICSP arrow points at the wrong header pin. Second error is in the MIDI in connector, where pins have been swapped. This was due to an error in the DIN5 symbol.
I've rewritten the source code to fit the new MCU, and everything seems to work fine now, so I don't expect to find any more errors than the ones listed. I will probably not make another physical board with these fixes, but will fix the errors in the production files for later release, if anyone wants to order boards for this project.
The assembled board looks like this:
|MIDI2VC, ver 2, top side, powered by PICKIT 3|
|MIDI2VC, ver 2, bottom side|
Interrupt efficiencyI've been writing before that the interrupt in the MIDI2VC code, needs to be very fast. Actually, both the ISR, that pushes UART symbols into the UART buffer, and the function that pops values from the buffer, needs to be very fast.
The push function, becuase the interrupt needs to finish in order to receive new symbols. The pop function because UART interrupts needs to be disabled when the function writes to the buffer.
I've read here, that XC8, free version, bloats the compiled code, to promote the non-free versions. To get around this, I'm learning some assembler to place in the appropriate places in the C code. I'll get back on my progress on that.
Features that I still need to add is:
- Pitch bend support
- Trigger output
- MIDI-USB in support
The MIDI-USB support seems a lot more difficult than i thought. I will need to learn some about USB and will need to switch to an MCU with USB support.