ssp Posted January 24, 2021 Author Report Share Posted January 24, 2021 (edited) Is it possible to change the font size when using the ssd1306 oled's? Is this set in mios studio while the stf32m is in bootloader mode. when entering the , set lcd_type etc? UPDATE: I found the section i needed in the NG usermanual. GLCDs can output different fonts which are selected with the ampersant (&) character: &&: outputs the & character &<font>: selects a font for graphical LCDs: &n: selects the "normal" 6x8 font &i: selects the inverted 6x8 font &s: selects the "small" 4x8 font &t: selects the "tiny" 4x8 font &b: selects the "big" 24x16 font &k: selects "knob icons", a 24x32 font. Values can be output with %B &h: selects a meter with horizontal orientation, a 32x8 font. Values can be output with %B &v: selects a meter with vertical orientation, a 8x32 font. Values can be output with %B And finally it's also possible to change the output LCD and position within a label: @(<lcd>:<X>:<Y>): changes to the given lcd, X and Y position. Example: lcd_pos=1:1:1 label="Enc%3i&k@(1:1:2)%B&n@(1:18:1)%3d" No, this is not an encrypted message, because the processing rules are well documented! ;-) - it will output "ENC" + the ID number. Then it will select the "knob" icon, jump to position X=1 Y=2 and output the knob icon based on the EVENT value. Thereafter it will select the normal font, jump to position X=18 Y=1 and output the MIDI value in decimal format. all is good Edited January 24, 2021 by ssp Quote Link to comment Share on other sites More sharing options...
ssp Posted February 7, 2021 Author Report Share Posted February 7, 2021 been busy working on various projects, finally got time to print the enclosure for one of them this weekend. Designed in solidworks and printed in Carbon/Nylon. I have 5 alps motorised faders to fit and a few buttons, leds and pots to go on a pcb i am milling next week. There are insert faceplates to do yet on the fader face and the upper face. All is looking good though so far and the cade is working as well, I am also making a small dout x2 pcb as well as i only need 9 leds, i am using a TSSOP16 74hc595 and a smt resistor network to reduce the size for the space i need in the enclosure. Using jlcpcb in china for a couple of different boards as they are far too expensive to be made in the uk. Quote Link to comment Share on other sites More sharing options...
ssp Posted January 30, 2022 Author Report Share Posted January 30, 2022 (edited) Question, i have 8 oleds hooked upto the st core, the first 7 work fine but the 8th keeps corrupting, it will not display the text correctly. the lcd number in the mios setting is for 8 only, i just erased the st board and re uploaded mios and the mb ng software, all is good but 8 is still garbled, i used other oleds i have here incase it was faulty, moved it around and i also got my two spare st boards and programmed them also. Still the same barled text on number 8 only, any ideas? The pcb is clean and soldered correctly no bridges or any issues. Update: Problem solved, needed more voltage so moved the j15_S from 3v3 to 5v Edited January 30, 2022 by ssp Quote Link to comment Share on other sites More sharing options...
ssp Posted January 30, 2022 Author Report Share Posted January 30, 2022 (edited) I am looking at the banks and other functions today. I am sure I have seen this discussed somewhere ( having a forum search to find it) can you have multiple control parameters on a fader, potentiometer or encoder from a button press So if you want one fader to control ADSR features. on its 1st function its cc16 assigned to the amplitude press a button and then its second function is cc17 assigned to decay press again third function is cc18 assigned to sustain.. and so on Would this be a combination of mapping and radio buttons? I am playing around with the code today seeing if i can make a happy accident. I am currently reading the enc_banks on teh git hub https://github.com/midibox/mios32/blob/master/apps/controllers/midibox_ng_v1/cfg/tests/encbanks.ngc Tx Edited January 30, 2022 by ssp Quote Link to comment Share on other sites More sharing options...
totoRaymond Posted January 30, 2022 Report Share Posted January 30, 2022 Hi, About your LCDs, i was going to advise to check your voltages, too much of a voltage drop on a long run can give weird behaviours, especially on proto boards. But anyway, you figured that out. About your second question, there are multiple ways of achieving this. What is it you really want? One single button to cycle through a number of banks? You can use meta= CycleBank for that. i didn't use it myself, so you might want to make some tests. But basically, you have multiple events, with unique ids, but same hw_id, and unique bank#. you button should be set to event= Meta meta= CycleBank mode= OnOnly i guess This should get you started. but be aware that this will cycle the bank for ALL parameters with bank ids available. Thomas Quote Link to comment Share on other sites More sharing options...
ssp Posted January 30, 2022 Author Report Share Posted January 30, 2022 38 minutes ago, totoRaymond said: Hi, About your LCDs, i was going to advise to check your voltages, too much of a voltage drop on a long run can give weird behaviours, especially on proto boards. But anyway, you figured that out. About your second question, there are multiple ways of achieving this. What is it you really want? One single button to cycle through a number of banks? You can use meta= CycleBank for that. i didn't use it myself, so you might want to make some tests. But basically, you have multiple events, with unique ids, but same hw_id, and unique bank#. you button should be set to event= Meta meta= CycleBank mode= OnOnly i guess This should get you started. but be aware that this will cycle the bank for ALL parameters with bank ids available. Thomas yes this is what is in the git hub, i am thinking of two buttons, -bank and +bank, i am still reading things and writing bits down to work on this week Thanks for the info Thomas @totoRaymond Quote Link to comment Share on other sites More sharing options...
totoRaymond Posted January 30, 2022 Report Share Posted January 30, 2022 (edited) Hi again, If you're thinking about 2 buttons, then there is the "meta= IncBank" and "meta= DecBank" options. having the effect of increasing bank and decreasing bank respectively. AND (i just checked the manual), you can also specify the hw_id on which you want to change bank with "meta= IncBankOfHwId" and "meta= DecBankOfHwId" options. advantage being: i doesn't change ALL parameters banks but only the specified ones (you can specify any number of hw_id) Hope this helps. Thomas Edited January 30, 2022 by totoRaymond Quote Link to comment Share on other sites More sharing options...
ssp Posted January 30, 2022 Author Report Share Posted January 30, 2022 nowhere else for me to post but i keep getting site issues, anyone else getting this?? Quote Link to comment Share on other sites More sharing options...
totoRaymond Posted January 31, 2022 Report Share Posted January 31, 2022 Hi, I got the same issue yesterday too. Seem to work right now... Thomas Quote Link to comment Share on other sites More sharing options...
Phatline Posted February 1, 2022 Report Share Posted February 1, 2022 On 1/30/2022 at 10:06 PM, ssp said: nowhere else for me to post but i keep getting site issues, anyone else getting this?? daily... have tok reload the side then it works Quote Link to comment Share on other sites More sharing options...
ssp Posted February 13, 2022 Author Report Share Posted February 13, 2022 Question: I want to test the bank code i have written, I am going to assign in to a fader connected to j5a on the stfm core. Would i use the EVENT_AIN function for this? I just want to connect a fader directly to j5a, so how would i implement this rather than using an ainser8 or ainser64? thanks Quote Link to comment Share on other sites More sharing options...
totoRaymond Posted February 13, 2022 Report Share Posted February 13, 2022 (edited) Hi ssp, I never used it but yes, it seems that if you connect a fader or pot to J5A, you need to use AIN statement first to describe the physical thing. then use EVENT_AIN to describe the behavior of said event. If you'll use bank on that parameter, you need to use different "id" for each bank but they should all refer to the same "hw_id" I hope it's clear enough, sometimes i find it difficult to explain such things in human language. (plus english is not my mother tongue) Cheers, Thomas Edited February 13, 2022 by totoRaymond Quote Link to comment Share on other sites More sharing options...
ssp Posted February 13, 2022 Author Report Share Posted February 13, 2022 13 minutes ago, totoRaymond said: Hi ssp, I never used it but yes, it seems that if you connect a fader or pot to J5A, you need to use AIN statement first to describe the physical thing. then use EVENT_AIN to describe the behavior of said event. If you'll use bank on that parameter, you need to use different "id" for each bank but they should all refer to the same "hw_id" I hope it's clear enough, sometimes i find it difficult to explain such things in human language. (plus english is not my mother tongue) Cheers, Thomas Yes i understand the "bank" setup and hw id's, it was just finding an example of setting up the fader on j5a as the only other time i have used it is with an ainser64 and i dont need one of those right now. sat going through the ngc info again to see whats what, there is so much missing info wise that was never added along with the solution to having multiple ssd1306 but it still refers to j28 on the lpc pcb and nothing for the stfm pcbs. it would be good to get some of these updated as others have had to edit mios rather than configuring the ngc which is easier for users. Quote Link to comment Share on other sites More sharing options...
totoRaymond Posted February 13, 2022 Report Share Posted February 13, 2022 7 minutes ago, ssp said: Yes i understand the "bank" setup and hw id's, it was just finding an example of setting up the fader on j5a as the only other time i have used it is with an ainser64 and i dont need one of those right now. sat going through the ngc info again to see whats what, there is so much missing info wise that was never added along with the solution to having multiple ssd1306 but it still refers to j28 on the lpc pcb and nothing for the stfm pcbs. it would be good to get some of these updated as others have had to edit mios rather than configuring the ngc which is easier for users. I feel what you say. Documentation on the midibox NG is sometimes wonky (some description are wrong case wise, I've lost nights chasing case sensitive statements) but the software is so good.... I'd like to be able to correct things on the documentation sometimes.... or just add comments so people after resolve same problems faster. still, MidiBox is an awesome project. It deserves to be supported by a lot more people. I'd like to become part of the team though i don't feel worthy of it. Cheers, Thomas Quote Link to comment Share on other sites More sharing options...
ssp Posted February 13, 2022 Author Report Share Posted February 13, 2022 16 minutes ago, totoRaymond said: I feel what you say. Documentation on the midibox NG is sometimes wonky (some description are wrong case wise, I've lost nights chasing case sensitive statements) but the software is so good.... I'd like to be able to correct things on the documentation sometimes.... or just add comments so people after resolve same problems faster. still, MidiBox is an awesome project. It deserves to be supported by a lot more people. I'd like to become part of the team though i don't feel worthy of it. Cheers, Thomas yes the ngc format is so much easier to go through than the old assembly!! but i got to grips with that in the end. I am trying to get to grips with everything then apply it in the thread in a more simplistic way for those coming in new and also it helps me visualise things better. I just got the fader working on the core once it was written it was simple # AIN hardware AIN enable_mask=10000000 ( I am assuming that the 8 digits refer to the 8 pins on J5a/b and for an active pin you put a 1 in place? # EVENTs EVENT_AIN id= 1 type=CC chn= 1 cc= 16 range= 0:127 It works but i get double figures in mios studio when i move the fader such as Chn# 1 CC# 16 = 22 Chn# 1 CC# 16 = 22 Chn# 1 CC# 16 = 23 Chn# 1 CC# 16 = 23 Is this a bit resolution that i need to add into the ngc code to prevent the doubling up on the fader movement into mios studio? Thanks I need some zzz now so will test the code tomorrow Quote Link to comment Share on other sites More sharing options...
totoRaymond Posted February 13, 2022 Report Share Posted February 13, 2022 that's strange. can you send your complete .ngc file? and have you turned debug_mode on? also what is the status of your router? I had weird behavior related to these in the past. Quote Link to comment Share on other sites More sharing options...
ssp Posted February 13, 2022 Author Report Share Posted February 13, 2022 4 minutes ago, totoRaymond said: that's strange. can you send your complete .ngc file? and have you turned debug_mode on? also what is the status of your router? I had weird behavior related to these in the past. the code is basic this is the mios studio input: it replicates the fader movement [8548.313] b0 10 03 Chn# 1 CC# 16 = 3 [8548.313] b0 10 03 Chn# 1 CC# 16 = 3 [8548.315] b0 10 02 Chn# 1 CC# 16 = 2 [8548.315] b0 10 02 Chn# 1 CC# 16 = 2 [8548.315] b0 10 02 Chn# 1 CC# 16 = 2 [8548.333] b0 10 00 Chn# 1 CC# 16 = 0 [8548.333] b0 10 00 Chn# 1 CC# 16 = 0 [8548.333] b0 10 00 Chn# 1 CC# 16 = 0 Quote Link to comment Share on other sites More sharing options...
ssp Posted February 13, 2022 Author Report Share Posted February 13, 2022 13 minutes ago, totoRaymond said: that's strange. can you send your complete .ngc file? and have you turned debug_mode on? also what is the status of your router? I had weird behavior related to these in the past. so using this just to tect the fader RESET_HW # AIN hardware AIN enable_mask=1000 # EVENTs EVENT_AIN id=1 type=CC chn=1 cc=16 range=0:127 i get this in the input window of miosstudio it jitters around while using the fader [9150.059] b0 10 56 Chn# 1 CC# 16 = 86 [9150.062] b0 10 57 Chn# 1 CC# 16 = 87 [9150.069] b0 10 5a Chn# 1 CC# 16 = 90 [9150.071] b0 10 5b Chn# 1 CC# 16 = 91 [9150.076] b0 10 58 Chn# 1 CC# 16 = 88 [9150.077] b0 10 5e Chn# 1 CC# 16 = 94 [9150.078] b0 10 5c Chn# 1 CC# 16 = 92 [9150.080] b0 10 5e Chn# 1 CC# 16 = 94 [9150.081] b0 10 5c Chn# 1 CC# 16 = 92 [9150.082] b0 10 5e Chn# 1 CC# 16 = 94 [9150.083] b0 10 5d Chn# 1 CC# 16 = 93 [9150.084] b0 10 5f Chn# 1 CC# 16 = 95 [9150.085] b0 10 61 Chn# 1 CC# 16 = 97 [9150.086] b0 10 5e Chn# 1 CC# 16 = 94 [9150.089] b0 10 60 Chn# 1 CC# 16 = 96 [9150.092] b0 10 61 Chn# 1 CC# 16 = 97 [9150.093] b0 10 62 Chn# 1 CC# 16 = 98 [9150.097] b0 10 65 Chn# 1 CC# 16 = 101 [9150.098] b0 10 67 Chn# 1 CC# 16 = 103 [9150.099] b0 10 63 Chn# 1 CC# 16 = 99 [9150.103] b0 10 66 Chn# 1 CC# 16 = 102 [9150.104] b0 10 64 Chn# 1 CC# 16 = 100 [9150.106] b0 10 66 Chn# 1 CC# 16 = 102 [9150.110] b0 10 67 Chn# 1 CC# 16 = 103 [9150.113] b0 10 68 Chn# 1 CC# 16 = 104 [9150.117] b0 10 67 Chn# 1 CC# 16 = 103 [9150.118] b0 10 6b Chn# 1 CC# 16 = 107 [9150.119] b0 10 69 Chn# 1 CC# 16 = 105 [9150.122] b0 10 68 Chn# 1 CC# 16 = 104 [9150.123] b0 10 6a Chn# 1 CC# 16 = 106 [9150.124] b0 10 6c Chn# 1 CC# 16 = 108 [9150.126] b0 10 6b Chn# 1 CC# 16 = 107 [9150.129] b0 10 6d Chn# 1 CC# 16 = 109 [9150.130] b0 10 6c Chn# 1 CC# 16 = 108 [9150.137] b0 10 6e Chn# 1 CC# 16 = 110 [9150.138] b0 10 6d Chn# 1 CC# 16 = 109 [9150.142] b0 10 6e Chn# 1 CC# 16 = 110 [9150.146] b0 10 70 Chn# 1 CC# 16 = 112 [9150.148] b0 10 72 Chn# 1 CC# 16 = 114 [9150.149] b0 10 6f Chn# 1 CC# 16 = 111 [9150.153] b0 10 70 Chn# 1 CC# 16 = 112 [9150.158] b0 10 71 Chn# 1 CC# 16 = 113 [9150.162] b0 10 72 Chn# 1 CC# 16 = 114 [9150.163] b0 10 74 Chn# 1 CC# 16 = 116 [9150.166] b0 10 76 Chn# 1 CC# 16 = 118 [9150.167] b0 10 74 Chn# 1 CC# 16 = 116 [9150.168] b0 10 73 Chn# 1 CC# 16 = 115 [9150.169] b0 10 74 Chn# 1 CC# 16 = 116 [9150.173] b0 10 75 Chn# 1 CC# 16 = 117 [9150.178] b0 10 76 Chn# 1 CC# 16 = 118 [9150.184] b0 10 74 Chn# 1 CC# 16 = 116 [9150.185] b0 10 77 Chn# 1 CC# 16 = 119 [9150.191] b0 10 78 Chn# 1 CC# 16 = 120 [9150.193] b0 10 7a Chn# 1 CC# 16 = 122 [9150.203] b0 10 7b Chn# 1 CC# 16 = 123 [9150.207] b0 10 7c Chn# 1 CC# 16 = 124 [9150.214] b0 10 7d Chn# 1 CC# 16 = 125 [9150.217] b0 10 7e Chn# 1 CC# 16 = 126 Quote Link to comment Share on other sites More sharing options...
totoRaymond Posted February 14, 2022 Report Share Posted February 14, 2022 (edited) Well it seems to work as expected so far. You might be able to lower the jitter by using shielded cable (microphone cable should be fine). Thomas Edited February 14, 2022 by totoRaymond Quote Link to comment Share on other sites More sharing options...
ssp Posted February 14, 2022 Author Report Share Posted February 14, 2022 I have attached an ainser64 to the core and the jitter has gone, im just going to get my head around this now and re code things and test the banking again. Quote Link to comment Share on other sites More sharing options...
ssp Posted February 14, 2022 Author Report Share Posted February 14, 2022 as soon as i have things set up and working i will share the pics and code as usual. just had to go out an buy a blooming piano for the kids.. electric!! Quote Link to comment Share on other sites More sharing options...
ssp Posted February 14, 2022 Author Report Share Posted February 14, 2022 Got it all running, used 3 buttons and two displays and a single fader, the code works really nicely and I got to grips with it finally, this is good as I will need multiple functions to map rather than have too fit individual parts everywhere! Code: RESET_HW LCD "%C@(1:1:1)Bank Test" # Controlled from buttons # select Bank1 directly EVENT_BUTTON id=1 type=Meta meta=SetBank button_mode=OnOnly range=1:1 # For testing purposes: decrement bank EVENT_BUTTON id=2 type=Meta meta=DecBank button_mode=OnOnly # For testing purposes: increment bank EVENT_BUTTON id=3 type=Meta meta=IncBank button_mode=OnOnly # For testing purposes: cycle bank EVENT_BUTTON id=4 type=Meta meta=CycleBank button_mode=OnOnly # Bank 1 EVENT_AINSER id=1 hw_id =1 bank=1 fwd_to_lcd=1 type=CC chn=1 cc=16 range=0:127 offset=0 lcd_pos=2:1:1 label="FDR1 #%3i %3d@(2:1:2)%B" #Bank 2 EVENT_AINSER id=1 hw_id =1 bank=2 fwd_to_lcd=1 type=CC chn=1 cc=17 range=0:127 offset=0 lcd_pos=2:1:1 label="FDR2 #%3i %3d@(2:1:2)%B" # AIN hardware AIN enable_mask=00000000 # AINSER hardware AINSER n=1 enabled=1 muxed=1 cs=0 num_pins=1 resolution=7bit AINSER n=2 enabled=0 muxed=1 cs=1 num_pins=0 resolution=7bit # EVENTs #EVENT_AINSER id= 1 type=CC chn= 1 cc= 16 range= 0:127 offset= 0 ports=1000100000001000 lcd_pos=2:1:1 label="^std_ain" Quote Link to comment Share on other sites More sharing options...
ssp Posted February 20, 2022 Author Report Share Posted February 20, 2022 Question using the code above i edited to add banked leds. from this: # Bank 1 EVENT_AINSER id=1 hw_id =1 bank=1 fwd_to_lcd=1 type=CC chn=1 cc=16 range=0:127 offset=0 lcd_pos=2:1:1 label="FDR1 #%3i %3d@(2:1:2)%B" #Bank 2 EVENT_AINSER id=1 hw_id =1 bank=2 fwd_to_lcd=1 type=CC chn=1 cc=17 range=0:127 offset=0 lcd_pos=2:1:1 label="FDR2 #%3i %3d@(2:1:2)%B" To this: # Bank 1 EVENT_AINSER id=1 hw_id =1 bank=1 fwd_to_lcd=1 fwd_id=LED:1 fwd_to type=CC chn=1 cc=16 range=0:127 offset=0 lcd_pos=2:1:1 label="FDR1 #%3i %3d@(2:1:2)%B" #Bank 2 EVENT_AINSER id=1 hw_id =1 bank=2 fwd_to_lcd=1 fwd_id=LED:2 type=CC chn=1 cc=17 range=0:127 offset=0 lcd_pos=2:1:1 label="FDR2 #%3i %3d@(2:1:2)%B" However this just lit the led when the fader was moved and remained on when the bank was changed and then the other led came on and stayed on, not what i wanted. What i want is that when you press the bank buttons if you are on bank 1 then the led for bank one i9s lit, when you press the increment button to goto bank 2 led 1 goes out and led 2 for bank 2 come on press increment again and bank 3 led comes on and 2 goes out. how would i go about this? would i define an EVENT_LED id=1 and add functions to that or would i use a map? Thanks Quote Link to comment Share on other sites More sharing options...
ssp Posted February 20, 2022 Author Report Share Posted February 20, 2022 Looking over the .NGR info and I am wondering if in this instance would I use the .NGR script to have a single led per bank to show that bank is active? (reading mode activated in the meantime!!) Quote Link to comment Share on other sites More sharing options...
ssp Posted February 20, 2022 Author Report Share Posted February 20, 2022 there isn't any real info on how I can do this, I have the bank code written and working yet don't seem to be able to assign a single led to a bank to show its active and then turn off when another bank is selected and that bank's led comes on. I have tried multiple versions of adapted code and do not seem to be getting anywhere. Searching the forum is hard work as it keeps erroring and not completing the search. I am going to try something in the .NGR script but even so I don't think that is the answer. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.