Jump to content

FantomXR

Members
  • Posts

    1,035
  • Joined

  • Last visited

  • Days Won

    22

Posts posted by FantomXR

  1. Hey people,

    I was looking for a way to detect, if an encoder (with metal shaft of course) is touched. Since NG itself doesn't support such touchsensors I was searching for an IC. And I found it:
    https://www.mouser.de/ProductDetail/Microchip-Technology/AT42QT1010-TSHR?qs=xbJoyvfFV%2F%252BFK88JVR2efg%3D%3D

    I've added a 22nF cap between SNS and SNSK and put a 10k resistor right before the encoder. It works great! As soon as I touch the encoder, the "OUT" goes high and if I release it it goes back low.

    You just have to connect that to an inputpin of an HC165 and you are done.

    Best,
    Chris

    • Like 1
  2. 6 minutes ago, latigid on said:

    Is there a specific problem you are trying to solve? 

    I guess that routing is way more comfortable and even better if I place all SRs on one PCB next to each other and use pinheader to connect the buttons & LEDs to it directly. For some I reason I never did it like this... 

    I never had performance problems anyway... so I'm just interested how it is done in the professional world...

  3. I know this is an old thread. But my question fits into this topic I think.

    What is the "professional" way to place the shift registers? Is it better to place them near the MCU to keep SPI-traces as short as possible or is it better to place them near the objects, that are connected to it (resp. buttons or LEDs)? 

    I already designed tons of PCBs and I used to put the SRs near the objects which are connected to the SRs. But meanwhile I don't see really much sense in it. It means a lot routing and starting from scratch with any new PCB. 

    How do you do it?

  4. Hey people,

    Maybe you can guide me in the right direction. 

    In my projects I use buttons with integrated LEDs. But I want to get away from the standard HC595. Mainly because it takes a lot of PCB space and it has a lot traces due to the SPI protocol. 

    Is there another style to control those LEDs? I also work a lot with WS2812. This is great because there is only one single data line from one to the next. 

    Thanks,

    Chris

  5. You can not set the resolution on a "per input" base. So yes, you'd need a dedicated AINSER module.

    Please note: MIOS32 only supports two AINSER modules. Although TK shows how to implement a third module in another thread, I was not able to get it running.

  6. Hey people,

    my setup contains nine 128x64pixel OLEDs in a horizontal layout. I usually print to all of them at the same time.

    Now, MIOS writes to the displays character by character. So it starts with the first line on the first OLED, goes all the way to the first line of the 9th display and then starts over at the 2nd line of the first display. 

    Since there is a lot of data, it takes time to print to the OLEDs and you really can see how the characters are printed line by line. 

    So my question is: Is there a way to speed up that transfer rate? I googled a bit and found this on an arduino forum:
    https://forum.arduino.cc/index.php?topic=286837.0

    Is it possible to somehow adapt this to MIDIbox? Do you have an idea?

    Thanks,
    Chris

  7. If you set type=cc then it's logical that it only allows values between 0-127. If you want to send highres-midi you have to set the type=pitchbend or type=NRPN. 

    If you substract 7682 from 8192 you will get 510, which is almost what you set with the range. In this case you have to use MAPs instead of standard ranges. Then it will work. Please refer to the NGC-manual. For testing purposed I'd recommend not to use ranges anyway. 

  8. As far as I know the maximum allowed number of banks is 127. So this shouldn't be a problem. 

    You want 33 OLEDs? This is definitely nothing easy to do. You need to take care of the clock pin when doing the PCB layout. Nothing you can do on breadboard. Also you'd need a separate power supply for it. 

  9. Hey TK.,

    I wonder why RECEIVERS do not react to banks. 

    This is the example code:
     

    EVENT_RECEIVER id=1 type=SysEX stream="0xf0 0x33 0x22 0x33 0x00 ^txt 0xf7" lcd_pos=1:1:1 bank=1
    EVENT_RECEIVER id=2 type=SysEX stream="0xf0 0x33 0x22 0x33 0x00 ^txt 0xf7" lcd_pos=2:1:1 bank=2

    I'd expect: When bank 1 is selected the text will be displayed on the first screen. When bank 2 is selected it will show up on the second display. If bank 3 is selected nothing should happen.

    But what happens is that it always shows up on both displays. Should it be like this?

    In my setup I send a bunch of SysEx strings to the midibox and I'd like to switch between them with banks. Is that possible?

    Thanks,
    Chris

  10. 43 minutes ago, tago said:

    Are 8 SRs in use because the DIO module is configured as a matrix for keyboard scanning?

    I don't see the reason why TK choosed sr=9 as emulated shiftregister. But anyway: When working with emulated elements (same is valid for button- & LED-matrices f.e.) it's always good to use a value that is definitely not blocked by real hardware.

    The keyboard blocks the first two digital input-SRs (usually HC165) and the first two digital output-SRs (usually HC595). 

    dout_sr1=1 means the first HC595 in the digital chain. din_sr1=1 means the first HC165 in the chain. For a beginner this might be confusing. 

    In NG you can set the total number of scanned shiftregisters with this command:

    SRIO num_sr=2

    Even though in this example I set num_sr=2 I can connect in total 4 shift registers. 2x HC165 and 2x HC595.

×
×
  • Create New...