-
Posts
15,247 -
Joined
Content Type
Profiles
Forums
Blogs
Gallery
Everything posted by TK.
-
You will find the binary here: http://www.ucapps.de/tmp/setup_midibox_catdog.zip There are open questions (e.g. to which pins are the encoders and menu button connected, do you have detented or non-detented encoders), but however, now you can just change the setup_*.asm file if required I haven't tested if it is working Please use MIOS Studio for uploading the .hex file Best Regards, Thorsten.
-
yes, before this addition they where only documented in SEQ_SYSEX_WriteP, SEQ_SYSEX_ReadP (seq_sysex.inc) and app_defines.inc Best Regards, Thorsten.
-
Hi Andrzej, you can select this in your setup file, just specify the encoder number in "DEFAULT_ENC_DATAWHEEL" Best Regards, Thorsten.
-
Hi QBAS, I received your PIC today. I read out the flash and noticed that some 64 blocks are 0xffff, this identifies that the PIC was reset during a flash erase, and this also matches with your description ("then I try upload MIOS 1,9 but can`t finish") Thereafter I plugged the chip into my MBSID. Upload of MIOS V1.9 and the MBSID application was working ok without failures, everything works like expected. I don't know exactly why this chip is only working with the old bootloader and MIOS on your board, but I assume that it could be related to a brown out reset - the PIC is reset once the voltage falls below 4.5V - maybe your PSU is too weak, so that the voltage falls during a flash erase (this consumes some more power than on normal operation) Since you have a programmer, could you please try the following with one of the bad chips: load the bootloader hex file into P18, disable the "Config from HEX file" option, go into the PIC-Configuration menu and set BOR to disabled. Thereafter burn this into the PIC and try it again. If this helps, you could measure the voltage between Vs/Vd during a code upload. If it is falling (it should be stable 5V), then it's related to your PSU Best Regards, Thorsten.
-
Hallo Basti, ist es wirklich notwendig, einen zweiten Thread zum gleichen Thema im englischen Teil des Forums zu oeffnen? So weiss man gar nicht, welche Fragen bereits beantwortet wurden, ohne die Antworten genaustens zu vergleichen. Den Link zum Datenblatt kann man nicht oeffnen. Wie ist denn die genaue Typen- oder Bestellnummer bei Distrelec? Ein Foto von der LED Matrix findest Du uebrigens hier: http://www.midibox.org/midibox_fm_photos/6.html Gruss, Thorsten.
-
As mentioned before: have a look into MBHP_TV, it decodes MIDI as well Best Regards, Thorsten.
-
Just have a look into midibox_lc or midibox_mm Best Regards, Thorstem.
-
Could you please send me your project directory? Then I can check what has gone wrong (I don't know, which changes you already did...) Best Regards, Thorsten.
-
***SPOILER*** Here is the answer to this riddle: http://www.ucapps.de/midibox_seq/mbseq_sysex_implementation.txt ***SPOILER***
-
the release candidate is located here: http://www.ucapps.de/tmp/mios_v1_9c_rc1.zip If you haven't updated to the new bootloader yet, you have to do this before. Thereafter update from MIOS V1.9a to this new version (the bootloader/MIOS update package will be available with the official release, because it's some additional effort for me to combine the codes and to calculate the correct CRC) The algorithm I've developed is very tricky, and I'm not 100% sure if it works in all cases (haven't tested it that much yet), so anybody who tries this out on his MIDIbox helps me a lot! Best Regards, Thorsten.
-
Hi Tim, I noticed, that the MBSEQ application has set "32" as debounce value, this is (or was...) not good for rotary encoders. When you are changing this value to 0 (search for "DEBOUNCE" in the main.asm or setup_*.asm file), then the panasonic encoder will propably work fine. With MIOS V1.9c this change won't be required anymore, because debouncing is only done for the buttons, not for encoders Best Regards, Thorsten.
-
Ich weiss nicht, wie man die Schaltung noch exakter beschreiben koennte, aber vielleicht kann es ja mal jemand erklaeren, der selbst aus der nicht-techniker Ecke kommt? Ein Encoder verhaelt sich elektrisch wie ein Taster - je nach Stellung sind die Kontakte mal geschlossen, mal nicht. Ja, es aendert sich, wenn Du daran drehst. Gruss, Thorsten.
-
MIOS ist das Hauptprogramm, dort befindet sich auch so etwas wie eine main() Funktion (die aber nicht so heisst). An MIOS selbst musst Du jedoch nichts aendern, es laeuft als Betriebssystem im Hintergrund, und ruft - wie von Michael erwaehnt - bei bestimmten Ereignissen die sogenannten "Hooks" auf. In diese Hooks kannst Du dann Deine eigenen Routinen einhaken. Der wesentliche Vorteil dieser Methode ist, dass die MIOS Routinen assembleroptimiert und gut getestet sind - jede MIDIbox laeuft damit, egal ob Synthesizer, Sequenzer oder Controller Gruss, Thorsten.
-
tut ja nicht weh. Du kannst die Pins auch freilassen, die Pull-Up Widerstaende sorgen dafuer, dass nichts ungewolltes passiert ja Gruss, Thorsten.
-
This info is documented here: http://www.ucapps.de/mios_c_send_enc_rel.html just for the case you missed the examples Best Regards, Thorsten.
-
it will be obsolete as soon as I release MIOS V1.9c - I already made the required change, it was easier than expected. And now it works a little bit better, because debouncing is not applied on encoder pins anymore. I've tested it on my MBSID and MBSEQ so far, but they have perfect buttons and therefore normaly don't need debouncing anyhow. With the other MIDIboxes I will do this in the next days... Is anybody interested in helping me with testing? Best Regards, Thorsten.
-
I've already a script which allows me to generate an offline version of ucapps.de and midibox.org from the original version which is located on my laptop HD (the script automatically fixes the links) But it doesn't work on the forum and Wiki Best Regards, Thorsten.
-
ok, no problem. I only need to extend the existing "track select via mute button" by the possibility to select multiple tracks at once so long the mute button is held Best Regards, Thorsten.
-
I guess that the rss feed only offers the last 10 postings, therefore some older can get lost Best Regards, Thorsten.
-
It's described in the README if you want to determine it from the program side, just do a table read at 0x404, if the two bytes are 0x11, 0x47, bootloader v1.2 is installed Best Regards, Thorsten.
-
Addendum: since the high update rate must be guaranteed for really good results, the MIOS ISRs should not run in background, the program should just loop itself. I'm also not sure, if programming this in C is a good choice, with assembly you would have better timings. The MBHP_TV application is maybe a good programming example for such applications, it generates a TV picture which *must* be 100% accurate to the scanline frequency Best Regards, Thorsten.
-
Hallo Markus, man kann das z.B mit einem Timer realisieren, der alle 5 Sekunden ein Flag setzt (einfach ein Bit in einem freien Register) - Dieser Request sollte dann in USER_Tick() abgefragt werden, ist er gesetzt, loescht man ihn wieder, und sendet den Snapshot. Von der Timer Routine aus sollte man nichts senden, da es sich hierbei um eine Interrupt Routine handelt. Am einfachsten waere es, wenn Du als Timer den Hook USER_SR_Service_Prepare hernimmst, der wird bereits jede Millisekunde aufgerufen. Hier muesstest Du einen Zaehler einbauen, der bei 5000 anfaengt, und mit jedem Aufruf dekrementiert. Ist der Wert 0 erreicht, wird auf 5000 zurueckgesetzt, und das Request Flag gesetzt. Beispiel (blind programmiert, nicht ausprobiert): app_defines.h: MY_CTR_L EQU 0x070 MY_CTR_H EQU 0x071 MY_REQUEST_FLAG EQU 0x072 main.asm: USER_SR_Service_Prepare ;; decrement counter decf MY_CTR_L, F skpc decf MY_CTR_H, F ;; ...until it reaches zero movf MY_CTR_L, W iorwf MY_CTR_H, W bnz USER_SR_Service_Prepare_NoReload USER_SR_Service_Prepare_Reload ;; reload counter and request snapshot movlw LOW(5000) movwf MY_CTR_L movlw HIGH(5000) movwf MY_CTR_H bsf MY_REQUEST_FLAG, 0 USER_SR_Service_Prepare_NoReload ;; old code... ;; branch to the Rx/Tx LED handler goto MIDI_RXTX_Handler [/code] Gruss, Thorsten.
-
Hallo Pico, zwischen zwei Clocks liegen einige Millisekunden, bei 140 BPM bspw. 71mS, deshalb bezweifle ich, dass Windows diese zusammenfassen wuerde, es sei denn, der Clock wird an mehrere (virtuelle) Ausgaenge (=Cables) gleichzeitig gesendet, hier muesstest Du einen Ausgang Deiner Wahl selektieren. Gruss, Thorsten.
-
Hallo Marc, irgendwie ist der interessante Teil verlorengegangen - koenntest Du alle Zeilen von 0x0000...0x05f0 hier reinpasten? Gruss, Thorsten.