During the last weeks I got a lot of hints regarding the new PIC18F family of Microchip. In the meantime the more advanced microcontrollers are also available for hobbyists, and the public domain community began to write tools for programming the chip.
I already played with a PIC18F452 two months ago to evaluate the possibilities. The PIC18F452 is 1:1 hardware compatible to the PIC16F877 (the heart of the MBHP core module), and is currently available for about 15 EUR at Conrad.com (Europe), US$9 at DigiKey (USA), AUS$25 at “unknown” in Australia (the user didn’t tell me where to buy it). In fact the PIC18F452 is worldwide available for the same price like the PIC16F877! And I expect that also Reichelt will offer it next year for less money (about 10 EUR).
Compared to the PC world the difference between the 16F and the 18F is like between a 286 and a 486 - the 18F452 has 2 times more flash memory (and a reduced code size), 4 times more RAM, runs with 40 MHz, has some new instructions for table read/writes (appr. 16 times faster than 16F), mutliplication (about 50 times faster), multiple pointer handling (3 instead of 1), Stack handling, … but the best: it has a linear program memory which helps to reduce the development cycles a lot!
It was very difficult for me to balance, when I should introduce my plans, which features I should already implement with the 16F, when I should start to migrate the firmwares, when I will support the new chip. But now everything is clear, so here are my notions:
Most of the features which are already on my ToDo lists will be implemented for the PIC16F, because as long as it doesn’t get too complex, the PIC16F877 is still sufficient:
- advanced MIDIbox64 sequencer with dedicated firmware
- finished MIDIbox MF
- MIDIbox-Link
- more features for MIDIbox SID
I think that these projects will be finished end of this year. Thereafter I will support the PIC16F firmwares only for bugfixes anymore, and will completely switch to PIC18F with my new project. It is the
- MIDIbox SID with control surface
- MIDIbox NG
The MIDIbox NG will be a combination of MIDIbox64, MIDIbox16E, MIDIO128 - in fact I will merge all existing routines to a single firmware which will act as a MIDI Operating System (MIDI OS or short: MIOS
). The MIOS will support 128 analog inputs, 128 digital inputs, 128 digital outputs:
- up to 128 pots or faders or 8 motorfaders (since they cannot be multiplexed)
- up to 128 buttons or 64 rotary encoders
- up to 128 LEDs or 64 LED rings
the MIOS will also come with some new concepts, which were already discussed:
- Display plugins (make your own MIDIbox skin for LED display, graphical or text LCDs)
- Meta Event plugins
- MIDI processing plugins
- IO processing plugins
Plugins will be exchangable via MIDI, so that you don’t need to connect a programmer to the core module, just to play with the code.
The MIOS will be programmed in assembler, but plugins may also be programmable in the C language. My hope is, that the GNU community starts with a gcc for the PIC18F family, like they did it for Atmel AVR.
This all may sound “expensive”, but it isn’t. In fact it will still be possible to build a very reduced MIDIbox with (for example) 16 pots and 8 buttons for less than 50 EUR! The advantages: only one scalable firmware for all projects will reduce my support effort a lot, and with the plugin technology everybody will be able to program and provide own features for the community. ![]()
Btw.: beside of the ongoing 16F development, there is another thing which prevents me from switching to the 18F family now: although IC-Prog is able to program the PIC18F452, it will not be possible to use it in conjunction with the JDM, since the programming current is too high for this design. An external power supply is necessary. So, I hope that somebody introduces a cheap and stable PIC18F programmer on the web until next year.
Update: With v1.05A of IC-Prog, the JDM can be used to program the PIC18F452! - so, this issue has been solved!
Best Regards, Thorsten.