Jump to content

Outlook: Migration to PIC18F and MIDIbox NG


TK.
 Share

Recommended Posts

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.
Link to comment
Share on other sites

With this new design will it be possible to use

motorfaders?  :)

Yes, I forgot to add this to the list (fixed)

I surfed around and found out that the Tait classic programmer should work with icprog and support PIC18F452. Se link below for design with pcb

http://users.auth.gr/~mixos/projects/pcb/pc/002/

It would be great if somebody could evaluate the quality of this programer, just to save my effort. I already own the PICstart kit by Microchip and therefore have no problems to program the newer PICs...

Best Regards, Thorsten.

Link to comment
Share on other sites

hi,

The (one I know of ) Australian supplier of PIC18F452 is Dontronics,  AUS$25+gst.

Re JDM

It should be possible to buffer the Vpp and/or Vdd with a FLOATING  supply (plug pack) with few components . If I am right this could save buiding a whole new programmer.

I will try this just as soon as I get a chip.

If you can't wait then go for the Tait :P

stay tuned

Link to comment
Share on other sites

The P16PRO programmer supports these PIC's -

www.picallw.com

It works well with IC-Prog and many other softwares.

Cheap kits are available from -

www.oatleyelectronics.com/kits/k129.html

only $27 AUD. I've been using this for a while and had no problems. Most software has an option for this programmer.

Love the new ideas Thorsten - I just wish you'd stop long enough for me to finish something ;)

cheers,

Paul

Link to comment
Share on other sites

Hi Thorsten,

I'm heavily impressed about your further plans!

Because of Your fabulous and unique Midibox project I have a lot of good times (...create nightly soundsapes and so on...  8) ) - So I must blame on You, that I become more and more a Midi-Maniac   ;)

Thanks al lot!

- Lemonhorse

Link to comment
Share on other sites

Hi Ian,

Will this enable a better solution for the MF extension ?

since the current MIDIbox MF design is a realtime system with a defined update cycle, the faders won't be moved slower or faster... but possibly some features will be provided in the next years which are really usefull for the daily work and cannot be implemented with a PIC16F anymore (especially RAM consuming features)

Best Regards, Thorsten.

Link to comment
Share on other sites

  • 2 weeks later...

This has to be evaluated... since the PIC18F comes with much more RAM, a second MIDI buffer could be realized like on the standalone MIDI Merger, this would decrease the latency to 320 uS - 960 uS on usual cases (when no SysEx data is received/sent)

Best Regards, Thorsten.

Link to comment
Share on other sites

  • 1 month later...
Guest drummond

That's great to know! I was delaying building a midibox for me because I wanted to build the newer model when it comes out, but if it won't change hardware at first, I may just get it going!

Link to comment
Share on other sites

  • 1 month later...

Yes - the NG design has one large DOUT and one DIN chain, each with up to 128 pins, and a definition table which allows to define the function of the pins. The chains will be served/updated every 500 uS so that they are (in addition to buttons/switches and LEDs) fast enough for encoders, LED rings, LED digits, etc. in mixed configurations - the reason why this flexibility is not provided by the 16F designs is the limited memory...

Best Regards, Thorsten.

Link to comment
Share on other sites

Guest romakrau

Hi Thorsten,

you wrote in your message above, that there will be a table

where the commands of a switch can be stored. Will it be

possible to use sysex commands with more than 2 bytes for

data and an additional header and footer per switch?

Greetings

Roman

Link to comment
Share on other sites

Hi Roman,

from my experience pseudo protocol structures like known from commercial controllers don't offer the flexibility like the simple Meta events concept. With the Plug-In capability (code can be downloaded via MIDI) updates of Meta events will be easier than ever before and therefore I will stay by this method.

In other words: yes, will be supported - (really) any MIDI event strings will be programmable.

Best Regards, Thorsten.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...