Jump to content

Phatline

Members
  • Posts

    1,285
  • Joined

  • Last visited

  • Days Won

    72

Posts posted by Phatline

  1. Hi,

    i am currently finishing the TPD-Displays PCBs, and i write a Test App/or my first skeleton-UI to use it.

    Its all clear so far, i can print single digits, i know the pattern, the pinout.....

    i want to print for example:

    float BPM  = 128.5;             // for Example for Digit 1 2 8 5 --- As BPM Display

    but i stuck by Divididing  the BPM Value into single Integers, by searching in internet i found:

    	int i = BPM*10; // Elemenate FLOAT Digit!
    
    	static char buf[4];
    	sprintf(buf, "%05.2f", i); // split it into CHARs
    	

    but that dont work at all... (print "0" on the first digits, the others are OFF)

    i later print the "buf[x]" value to my Digit --- that works fine, when initalize  "TPD_SEG" by hand with iniatl values, but not when filled with above code!

     

    	// Transcode To Shiftregister-Friendly Array
    	static u8 x=0;
    	for (x=0; x<4; x++) {
    	//	7 Segment PINOUT
    	//		[6]	
    	//	[1]		[5]
    	//		[0]
    	//	[2]		[4]
    	//		[3]		[7]
    	//	
    							switch (buf[x]) {
    												case 0:	TPD_SEG[x][0] = 0;
    														TPD_SEG[x][1] = 1;
    														TPD_SEG[x][2] = 1;
    														TPD_SEG[x][3] = 1;
    														TPD_SEG[x][4] = 1;
    														TPD_SEG[x][5] = 1;
    														TPD_SEG[x][6] = 1;
    														TPD_SEG[x][7] = 0;	break;
    												case 1:	TPD_SEG[x][0] = 0;
    														TPD_SEG[x][1] = 0;
    														TPD_SEG[x][2] = 0;
    														TPD_SEG[x][3] = 0;	
    														TPD_SEG[x][4] = 1;
    														TPD_SEG[x][5] = 1;
    														TPD_SEG[x][6] = 0;
    														TPD_SEG[x][7] = 0;	break;	
    												case 2:	TPD_SEG[x][0] = 1;	
    														TPD_SEG[x][1] = 0;	
    														TPD_SEG[x][2] = 1;	
    														TPD_SEG[x][3] = 1;	
    														TPD_SEG[x][4] = 0;	
    														TPD_SEG[x][5] = 1;	
    														TPD_SEG[x][6] = 1;	
    														TPD_SEG[x][7] = 0;	break;	
    												case 3:	TPD_SEG[x][0] = 1;	
    														TPD_SEG[x][1] = 0;	
    														TPD_SEG[x][2] = 0;	
    														TPD_SEG[x][3] = 1;	
    														TPD_SEG[x][4] = 1;	
    														TPD_SEG[x][5] = 1;	
    														TPD_SEG[x][6] = 1;	
    														TPD_SEG[x][7] = 0;	break;	
    												case 4:	TPD_SEG[x][0] = 0;	
    														TPD_SEG[x][1] = 1;	
    														TPD_SEG[x][2] = 0;	
    														TPD_SEG[x][3] = 0;	
    														TPD_SEG[x][4] = 1;	
    														TPD_SEG[x][5] = 1;	
    														TPD_SEG[x][6] = 0;	
    														TPD_SEG[x][7] = 0;	break;	
    												case 5:	TPD_SEG[x][0] = 1;	
    														TPD_SEG[x][1] = 1;	
    														TPD_SEG[x][2] = 0;	
    														TPD_SEG[x][3] = 1;	
    														TPD_SEG[x][4] = 1;	
    														TPD_SEG[x][5] = 0;	
    														TPD_SEG[x][6] = 1;	
    														TPD_SEG[x][7] = 0;	break;	
    												case 6:	TPD_SEG[x][0] = 1;	
    														TPD_SEG[x][1] = 1;	
    														TPD_SEG[x][2] = 1;	
    														TPD_SEG[x][3] = 1;	
    														TPD_SEG[x][4] = 1;	
    														TPD_SEG[x][5] = 0;	
    														TPD_SEG[x][6] = 1;	
    														TPD_SEG[x][7] = 0;	break;	
    												case 7:	TPD_SEG[x][0] = 0;	
    														TPD_SEG[x][1] = 0;	
    														TPD_SEG[x][2] = 0;	
    														TPD_SEG[x][3] = 0;	
    														TPD_SEG[x][4] = 1;	
    														TPD_SEG[x][5] = 1;	
    														TPD_SEG[x][6] = 1;	
    														TPD_SEG[x][7] = 0;	break;	
    												case 8:	TPD_SEG[x][0] = 1;	
    														TPD_SEG[x][1] = 1;	
    														TPD_SEG[x][2] = 1;	
    														TPD_SEG[x][3] = 1;	
    														TPD_SEG[x][4] = 1;	
    														TPD_SEG[x][5] = 1;	
    														TPD_SEG[x][6] = 1;	
    														TPD_SEG[x][7] = 0;	break;	
    												case 9:	TPD_SEG[x][0] = 1;	
    														TPD_SEG[x][1] = 1;	
    														TPD_SEG[x][2] = 0;	
    														TPD_SEG[x][3] = 1;	
    														TPD_SEG[x][4] = 1;	
    														TPD_SEG[x][5] = 1;	
    														TPD_SEG[x][6] = 1;	
    														TPD_SEG[x][7] = 0;	break;	
    							}			
    		
    	}

     

     

     

  2. I have 3 TIA Cartridge PCBs, pay me the postage (AUSTRIA) - and i give it away for free:

    tia3.thumb.JPG.5c3ba056151ddb629040a51094c4e17c.JPG

    for info see here: http://wiki.midibox.org/doku.php?id=midibox_tia#the_midibox_tia_cartridge_version

    What not includet is: the 24LC512 aka "Bankstick", the 7805 aka "Voltage Regulator", the TIA aka "Soundchip", the 6N138 aka "Optocoppler".

    the 24LC512 to solder is not for Beginners!

    the Microcontroller is Preprogrammed with MIOS.

    tia1.thumb.JPG.edd12eb21c60b305f6238065f49776d5.JPG

  3. 1 hour ago, chriss said:

    Hi.
    Has anyone a working mb909 firmware (the one from jef) for the lpc17 Core. I found the directory on Github but i am Not able to compile. ( If its compilable anyway!).
    There must be a hex file on someone’s harddrive out there. 
    thanks Chris’s 

    send me the source-files (or give me a link), and i compile it... (but dont ask me about the firmware, didnot used it, nor i was involved in it...)

  4. Question:

    at the end, what is the performance of this RGB-Ledrings - in sence of RAM, CPU, and so on...

    I imagine a simple midi-controller app, will do fine, BUT:

    i am asking, since most my applications are on the limits on the Microcontroller (mostly ram, sometimes CPU, > sequencers, synths), is this done by CCRAM now, is it the same perfomance like using H595 Registers and some single Color LEDs, some kind of background task? or is this heavy load, and i should forget the last 3 Pages i read...? If i have already  a APP that uses 90% or more RAM (for example) will force that to NOT boot anymore?  (i have read the last 3 pages)

    thx for sharing your experiance

  5. Just now, Antichambre said:

    Except that I pretty sure you can remove some of the schmitt inverter buffers, you can do this. ;)
    If the target MIDI devices have different MIDI channels they will receive separated Voices messages.
    If the target MIDI devices are some midibox cores then just change their ID, as they can receive different SYSEX too.

    Ah... i thought they have to be inverted back, thinking of the signal is 180° "inverted" and has to be "inverted again"...

    (yes Midibox cores...) Good to know that the ID will manage the Sysex "Channel"!

  6. i need to handle up to 16 (MIOS32) Devices, The OUT >>> Thrubox is the simple thing (i think), is that Shematic correct? (ignore the boxes on the rightside, these are Shroudet Pinheaders to cable my devices with Ribboncables...since that is cheaper then the DIN-Thing)

    CV-Midi-Distribution.thumb.png.2c012442a3c05fd10812ddc43d3a3eac.png

    I know there will be a M16-Module, but i think for my task it is a bit overkill (maybe on price...)

     

    but what is when i have 16 MIDI-IN to handle, merge isnt possible or?, or is it possible to adress 16 MidiinPorts on a STM32F4?

    else it will be M16 in the end....

     

    background: I need to copy/route Patches (arreys of Data) from one Device to the other. (a recordet Envelope, Size off [4][4096]), dont really know at the moment how to achive that (Sysex?)

    there is one Remote Device, and 16 Slaves.... - so the data should be sent from one Slave to the Remote Device, and from the Remote Device there it will be sent to one of the other Slaves.... (they share the same PSU)

    ...CV1...

     

     

     

     

  7. i renamed the title...treat thread :whistling:

    thanks!

    English: mounting-block/cube , cube standoff

    German:  Gewindeblock  or  Montageblock  or better  Leiterplatten-Montageblock (because Montageblock is used for Water-Installation-"Montageblocks" too)

    buerklin (29,75 € incl VAT, excl Shipping)

    ettinger (52,44 € incl VAT, excl Shipping)

     

    a bit strange that Reichelt/Mouser doesnt have it, they all have such Nylon Variants: https://www.reichelt.com/de/en/mounting-block-m3-16-mm-natural-rnd-610-00209-p254065.html?r=1

  8. ok then i  take J16 RC2 (PA4) and J16 RC1 (PC4)

    which are used for SD-Card - which i dont need here. so i gues MIOS32_DONT_USE_SDCARD ?

     

    @ Type DEF - is this done like on J10 for example:

    MIOS32_BOARD_J10_PinInit(0, MIOS32_BOARD_PIN_MODE_OUTPUT_PP);

    MIOS32_BOARD_J10_PinSet (0, 1);

    for me Clear how to make it with J5 and J10

     

    >>>

    MIOS32_BOARD_J16_PinInit(0, MIOS32_BOARD_PIN_MODE_OUTPUT_PP); ???

     

    thx

     

  9. currently working on a eurorack version - with DIPCORE as a brain...  will be modular in a midibox of way ;)

    CV1-PCB-FRONT.thumb.png.9d4b7523674e46eca7c78d41e81d874d.png

     

    plan is to use for every filter, or amp or efx or mixer.... to use one off this "motherboards", to do basic stuff like "lfo, env1 env2, motionsequencer, cv mixing" - and then for every filter or whatever to make a decided "beside panel" ( cv-matrix, or simple encoders with displays to show and save the values --- memory modular...)

    eurorack.thumb.png.7bc6ce49dd61e79edd16dc6432e480fd.png

     

  10. ich hab noch 2 stück ssm2044 filterchips, hier würd die Platine gerne nehmen.

    ja eine lade mit der Aufschrift "Platinen wartend" "Platinen Teil fehlt" hab ich auch... und da liegen auch noch Platinen von 2008 drinnen... dieses Jahr hab ich aber viel aufgeholt.

×
×
  • Create New...