Jump to content

ReinerS

Members
  • Posts

    50
  • Joined

  • Last visited

Everything posted by ReinerS

  1. SOLVED, sorry! I had called MIOS_LCD_PrintCString with a simple char as argument. Weird error message anyway. So just disregard my question! Reiner
  2. Hello, I'm walking up the learning curve. I have modified the Ain64-Din128-Dout128 example to suit my needs and now get the following error when executing the makefile: F:\Meine_Downloads\midi\ain64_din128_dout128_v2_0>make Makefile generated. Makefile.bat generated. Assembling MIOS SDCC wrapper ========================================================================== Compiling pic18f452.c Processor: 18F452 ========================================================================== Compiling main.c Processor: 18F452 Assertion failed: 0, file gen.c, line 13074 This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. Caught signal 22: SIGABRT ERROR! Has anybody seen this before? I have no idea what kind of error to look for in my code! Reiner
  3. Hello all, I am just looking at the c-code for the ain64-din128-dout128 example to work out how the MIOS_MPROC_EVENT_TABLE works. I am stumbling across the following: In mios.tables.inc MIOS_MPROC_EVENT_TABLE is defined to be 256 entries of size 2Bytes (dw), so it is 512 Bytes. (Makes sense to me, for 128 buttons I need to store 2 messages per button (on and off), and I need two bytes to define each). In cmios.h, however, MIOS_MPROC_EVENT_TABLE is declared as unsigned char [2*128], so it is only 256 Bytes long, only half the size! Do I only have access to half of the table in C-programs? ??? ??? many thanks Reiner
  4. Hello Michael, thanks for the link to the programming example, that was the missing piece! I simply didn't think about the MPROC_NotifyReceivedByte function and was looking for something that delivers the content of a sysex message directly. But of course it is straightforward to program that myself following the example. The message content for the Hauptwerk status message is public and well documented, so there is no problem here. BTW, how is the hierarchy between the MPROC_Notify functions? When e.g. a Note_On is received, will MIOS call the ReceivedByte function three times (upon each byte) and then the ReceivedEvent function after it has decoded the event? Or is the ReceivedByte not called when standard events are received? (Doesn't make a difference for my programming, but just out of curiosity). Again, thanks for your help! And also thanks to Thorsten for this wonderful and well documented software! Reiner
  5. Hello all, I have been using Mido128 for quite a while now to control the Hauptwerk virtual organ software from my old organ console. This works fine, but now I want to show the Hauptwerk status messages, which are send as text wrapped in a sysex message, on the LCD connected to the core. I have looked into modifying the assembler version of the midio128 application, but since I never worked with assembler before, it all looks very strange to me. So now I am looking into the C-wrapper for Mios and the Ain64-Din128-Dout128 example, and this looks a lot easier and more familiar to me. I got the toolchain working, so I can change code, compile and upload to the core without problem. However, I cannot find an example here on how to read a sysex-message in a MIOS-C-program. Can anyone point me to an example or post some sample code how this can be done? Many thanks Reiner
  6. Hi all, my name is Reiner and I am using Midio128 to interface an old electronic organ to the Hauptwerk virtual pipe organ software. I now want to modify the Midio128 application so that I can use an LCD display connected to the core module to display Hauptwerk status messages. These are sent via sysex messages (but in a different format than those accepted by the MIOS display routines). Now I am looking for how to start. I have downloaded Miosstudio and MPLAB-IDE as well as the Midio128 sources, I can assemble and upload to the core, so all of that works. My first test was (just as a test to see how this whole procedure works) to disable the display routines built into the Midio software, ok, that worked also. Now I need to get into assembler programming. While I am familiar with C, C++, and several scripting languages (Matlab/Octave, tcl/tk), I have never worked with assembler before and it all looks rather strange to me. Can anyone here point me to a good starting point for understanding PIC-assembler and also basic MIOS programming? Any help is greatly appreciated. Naturally, if I get this to work, I'll make this code available in case anyone finds it useful. Many thanks Reiner
  7. Thanks for your hints! I'll try Thorstens suggestion with the cap and resistor change. Actually I noticed yesterday that a little patience also does wonders here: The midio stays locked with a number of output LEDs on (the LCD backlight dims down a bit, which indicates a power supply problem, but I measure 9V DC going into the core module and 4.99 when measuring the 5V line), but after a while (between 5 and 30 seconds) it recovers again! The output LEDs turn off (in groups, wonder why that is) and then Mios displays it startup message on the LCD and everything is running fine. So I might just leave it as it is for a while, its quite a hassle to move the organ and open it up. Best wishes Reiner
  8. Hi, I'm running a midio128 to query the stop-buttons on my organ console and send the data to the Hauptwerk virtual pipe organ software. This has worked great for a while but lately I am getting startup problems: Most of the times the box seems to lock up during the startup phase. A random number (many times actually all of them) of output pins get set to active (so the LEDs on my stop switches light up) and nothing happens any more. Switching on and off a number of times mostly gets it working after a random number of tries, and once it is working it keeps running stable. I think it may be either the power supply or some interference from the long unshielded cables running to the switches and LEDs. One thing I would like to try as a work around (or simple fix) would be a hardware reset, but I find no mention of it in the docu anywhere. Is there a pin on the core module one could use for a hardware reset of the PIC? I might be able to get it to work issuing a reset immediately after power on. Thanks for your help Reiner
  9. Just to finish this up, I received a new display from Reichelt yesterday and it now works perfectly! Thanks again to all who replied Best wishes Reiner
  10. Thanks again, I'll have it replaced and report back! Best wishes Reiner
  11. Hi all, thanks for the replies. Just to clarify how the output is produced: I changed the midio128 application to not update the screen (basically commented out the lcd-handler functions). Now mios can be used to display messages on the LCD. I am only sending the corresponding sysex-message (actually using 00, but I don't think clearing the display is the problem) once (using Midiox for testing) and then the message, in the example a sequence of "0"s and "8"s, just stays on permanently. So there is no flickering involved. It appears as if vertical lines get scrambled (same positions in both display character lines). BTW, when mios is booting, it displays its copyright notice, with the characters in the same positions being garbled. Actually I cannot think what wiring problem could cause something like this, but then I also don't know how data is sent to the display anyway. So the question remains: Is it likely that the display is broken (since it is new I could send it in for replacement) or could this be a wiring problem? (Actually the wiring looks pretty good). Regards Reiner
  12. Hi, I just installed an LCD display to my Midio128 and got it to display text sent from an external application (I want to use it as Hauptwerk status display), but somehow it displays very strange looking things. This is what it looks like when I just send it a sequence of "0" and "8" characters. In both lines characters 9-11 display garbage. Is the display broken, could this be a soldering problem or do you have any idea what could cause this? Any help is greatly appreciated. Reiner
  13. Just downloaded the MPLab and disabled the Midio128 LCD handling, so now messages I send via the MIOS sysex messages appear and remain. So this one is solved for me. Greetings Reiner
  14. Hi, I want to use the LCD display to show disply status messages from the Hauptwerk organ program. Looking at the MIOS-sysex implementation I found that MIOS should be able to show information on the LCD when the correct sysex-messages are sent. This sounded good, so I went ahead and got an LCD for my Midio128, which I use to set stops from my console. I am very happy to report that the display works, thanks to you all for the good instructions! My problem: Apparently Midio128 also makes use of the display (showing each button press and incoming message). And the display does not show anything when I send the sysex message to the core, so I guess the MIOS display function is disbaled by the midio128 application. Is this so? So I will have to adapt the midio128 application? best wishes Reiner
  15. just a note for anyone else having this problem. Thorsten has put up version 2.1b which solves the problem. Many thanks! Reiner
  16. Hi, I thought a bit more about what might have happened. My assumption: The PIC must have protection diodes on its input pins. When inserted the wrong way, these were connected to +5V instead to ground, so the protection diodes and the darlingtons of the optocoupler were connected in series between +5V and ground without any resistor. The first input signal then openend the darlington and the weaker element (fortunately the cheaper one ;)) burned through. ANyone knows if the PIC really has protection diodes? I can't really come up with any other idea why the optos burned through. Thanks again Greetings Reiner
  17. Hi Moebius, thanks for the link with the test programs! I could verify correct working of the output quickly, but the Testrxtx failed. After a lot of measunreing and trying I finally found out that both oprocouplers were killed by my previously inserting the PIC the wrong way (which the PIC survived)! (I could verify by using the optocoupler from the midio128). SInce I am merging signals from inside the same "box" (a midified organ) I decided to not use optocouplers and just bridged pin 3 and 6. Now the thing wokrs perfectly! Thanks a lot! Greetings Reiner
  18. thanks for your input, but its not the problem. I use the 20MHz quarz for the PIC16 in the midimerger (and of course 10Mhz for the midio128 with the PIC18), but funny enough the PIC18 also runs with the 20MHz quarz (I did that just for checking the correct wiring of midi-out). Greetings Reiner
  19. Some more info on my problem: I have tried two more things: 1) put the PIC18F... from my Midio128 (with the midio128 program loaded) into the midi-merger to see what happens, and it produces some output, so the quarz is working and the midi-out is wired correctly. 2) with the PIC18F... in the Midio128 board, put LEDs across the midi-ins of the merger and yes, they are flickering both when the keyboard midi-encoder is active and when the midio128 sends messages, so the midi-ins are also correctly wired. So what else remains: a) Can programming the pic (16F...) fail in such a way that icprog reports verified code but the PIC is not correctly programmed? b) Is there a bug in the Midimerger hex file (latest version from www.ucapps.de)? 3) In addition to the midimerger-hex file, is there anything else I need for programming the merger? Hope that someone can help me! Greetings Reiner
  20. Hi, I have just got a new PIC (remember, I put one in the wrong way and thought it was killed) and programmed it with IC-Prog with the Midimerger1.04.hex file. ICprog says device programmed ok with verify after each step and after programming on. I still dont get any sign of life out of the merger! I built it on a prototyping board (didn't seem efficient to make a board for that simple thing) and double and triple checked everything. Questions: a) does the midi-merger send out anything after bootup, or is it completely quiet until it receives input? b) what checks (measurements) can be done with a multimeter other than checking the supply voltage? c) I connected the "plus" side of the midi-outs of the other devices to the 220Ohm resistor connected with pin2 of the optocoupler and the "signal"-side with pin3 of the coupler, is that correct? What else can I check? Is there a simple programI could flash into the pic that just sends out messages to check wehter the PIC is alive? Greetings Reiner
  21. Hi, this question may be silly. I just built the MidiMerger using the Pic16F877 chip and inserted it the wrong way. Voltage went down to 1 V. After discovering the error I turned it around and found that the merger doesn't work. However, the PIC is still programmable without any problem with the JDM programmer. Can it be damaged in such a way or is it more likely I did something wrong in building up the merger? (I doublechecked everything,though) Thanks for any help Reiner
  22. Hi, just a short question on the behaviour of the Midio128 after bootup. I have my DINs configured as @Toggle with te inverted inputs enabled (default setting). What I want is that the first click on a button will set the bit to "on", send a NOTEON message and light the LED connected to the corresponding DOUT, obviously the second click should turn it off again. Problem: After starting up the first click will send a NOTEOFF message and not light the LED, only the second click will produce the "on" event. After that it behaves normally. But I cannot go and click all buttons once before it behaves usefully. Is this behaviour by design? Can I do something with the settings in the sysex to make it behave as I wish? Any help is appreciated Greetings Reiner
  23. Hi, I would like to build a simple midi-merger, but the information on the Midibox page is contradicting. The midi-merger section shows a circuit having two optocouplers for the Midi-Ins and the old PIC16xxx, its supposed to be built from just a core module, right? The core module only has one optocoupler, is there a circuit board somewhere that has the second? Also, has somebody ported the Midi-merger to the new PIC18xxx core? I don't find it on the web page. Would perhaps someone in Germany be willing to flash the Midi Merger application into a PIC16xxx chip for me? Greetings and thanks Reiner
  24. ok, think I got it. I was missing the midio128 application. I will try this evening. Greetings Reiner
  25. Hello everybody, I just soldered all my boards together (got 2xDIn and 2xDout and of course the core) and am trying to get it to run. With Serges sysex-loader I can upload the MIOS to the PIC (version 1.7) and get an acknowledge on each block, so that part seems to work. Next I try to upload the mk_midio128.syx file using the loader, and it sends the blocks to the PIC, but doesn't get a response. The midio is not working either, no messages are sent for any input pin. Trying to get a sysex-dump from midio128 bank gets no response from the pic, a dump from mios program area works. Any ideas? any help is greatly appreciated! Thanks Reiner
×
×
  • Create New...