Jump to content

latigid on

Frequent Writer
  • Posts

    2,516
  • Joined

  • Last visited

  • Days Won

    147

Posts posted by latigid on

  1. Of course, easy mode would be to use an existing PCB and MX-type switches. But those keyboards are built for a specific purpose, as are mine. What will you do with the extra four columns and two rows? Arduino-compatible, but using an SPI-controlled matrix driver. SRIO on a MIDIbox simply updates with the clock tick and requires almost no overhead. (Plus, the former doesn't fit with TK.'s plans of derivative HW that's simple to integrate.) Are the LEDs addressable or always on?

    The biggest challenge is to get LEDs to illuminate the entire switch. Hopefully the PCBs come tomorrow so it will become clearer to explain, and I'll probably start a new thread for it.

    MX-type have the LED as THT close to the key, or an aperture on the north edge. This is okay if you have a small glyph to illuminate, but for blank keys it looks bad. Enter Matias, where the entire key is transparent. But there's no room for LEDs, except on the underside as reverse mount. Now try to find a bicolour LED that's bright enough. I did some testing with 2x lensed 1206-ish sized parts. Maybe it could have worked, but it would've required 4 LEDs per switch. This increases the price and still isn't perfect. 

    Here it is. It's not the intended use for these LEDs, but it works well. You can choose R, G or B, but the BLMs support only two of the colours. You could control the third separately, or all three with a different driver.

    59286aecc6c84_matiasLED.png.8ddb88e1e64b

     

    This is the route I'm gonna take, you're of course welcome to try your own methods with existing hardware.

    Best,
    Andy

  2. I don't think it will work. The display normally initialises on start up. Switching with the power running will likely lead to garbled display pixels. You're also messing with the integrity of the datalines. DIN/DOUT might work, but you'd be sending the data right before switching = corruption.

    A bit laborious, but you could send the data lines of J8/9 and the displays to additional buffer chips (541 or 125). (It would almost work with the buffers/595s already present, but there are extra signals to deal with.) The outputs of the buffers can be enabled by tying the /OE pins low. Meaning if they're high, no signal passes. You then switch one datastream off and the other on, probably with a short manual delay in between. Resetting the Core would also not hurt, but could be okay without.

     

  3. 3 minutes ago, FantomXR said:

    Hi!

    Thanks for your reply!

    I think using a RC delay sounds like the simplest solution. But why should I set this pin to high?

    And do you have any idea what kind of values to choose?

    thanks,

    Chris

     

    Hi,

    /OE means output enable, active low (/ or a line on top of the pin name). When it's low, outputs are enabled. When it's high, outputs are tristated/high impedance/open circuit. Notice the DOUT pin 13 is normally connected to 0V/ground. For this to work, you have to charge a capacitor (e.g. 10uF) from +5V to /OE, then provide a resistance to 0V (10k, you choose the delay though). When the power is applied the /OE pin will "see" this as a high logic level, then fall to the low state once the capacitor has charged.

    Finally, you add a diode to discharge quickly once the power turns off. Anode side to 0V, cathode side to /OE.

     

    591a26bab74f8_RCdelay.thumb.PNG.307f661b

     

    You can distribute this circuit to many /OE pins; I did the BLM 16x16 in groups of 4.

     

    Best regards,
    Andy

     

  4. The state of outputs on 595 shift registers is undefined on power up. But it's possible to temporarily set the /OE pins (#13) high with an RC delay, meanwhile the Core will have sent a "clear all outputs" signal to the 595s. You could potentially do this with a free MCU pin too. Keep in mind that the /OE pin will be high impedance, which means any transistor bases used as current sinks will be floating = not a good idea. To avoid this, add a pull down resistor of 100k or so to the transistor base.

  5. This last order had 11 different PCBs in it and includes everything needed for a SEQ, like the MIDIO/I2C/line transmitter and also a new design for a Core that doesn't rely on the Discovery board. The USB entry module had some fab issues, because it's not clear how to call out plated slots:

    USB.thumb.PNG.115c89a7a874868f2e425fea21

    (the thing to do is to give the actual cutout of 0.8mm min. width in a separate file, not just the router path as I've seen before)

    But hopefully they'll be on the way soon.

    The subsequent steps will be to build and test to make sure it's all sound, then send a set to AdrianH, so he can work on the case once all of the heights/dimensions are known. Of equal importance is to get TK. on board, as this is three different BLMs that will need updated programming and HW config files. He is extremely busy this year but if the past is an indication, he will give a bit of his "vacation" to the project. Otherwise I'll take the train to Munich and sleep on his doorstep :P.

    Hopefully things become clearer in the next month or so. If all is well I can start to take orders, although I may have to look further as the forum is quite quiet at the moment.

    @gerald.wert 
    No problem! I spend the time on these projects when I can because I want something nice for myself, and I also want to do good by those who want to take part. But this is MIDIbox, and if you have the time and motivation, everything is there to build your own custom unit.

    Best regards,
    Andy

     

     

  6. @borfo 
    I've already ordered the boards a few weeks ago, so this is a bit moot. But I've had some thoughts throughout the day. 

    IMO, there's not much point in breaking out the matrix further for individual button wiring. Like you say you could design something to work with or replace a DIOMATRIX, but you'll still find work needs to be done on the switch side. Instead you might find it's easier to use DIN/DOUT modules instead and forget the matrices.

    One of the goals of this design was to use high-quality switches. The Matias ones are rated for 50M key presses; I don't think you could say the same for the Chinese ones. The latter are only single colour, so the improved features wouldn't be implementable. It's a huge pain to find illuminated switches at reasonable cost, and I've put a lot of time into finding a solution. Matias switches cost 0.25 USD or less, you do need a custom keycap but their price will depend on the quantity. Should be around $1 each for switch + cap = $32 per SEQ. IMO that's not a bad price and the HW should be commensurate with the amazing software TK. provides.

    @gerald.wert
    Personally I wouldn't trust those switches, and you'll find even bi-colour switches are very hard to source let alone RGB. You might fit some kind of SEQ in a C64 case, just keep in mind the LCDs need around 360-70mm, and you probably want some kind of datawheel.

     

     

  7. J2_SI is only required if you connect some sort of DIN chain to your Line sender, and you need to get those data back to the Core. But it doesn't matter if it's soldered in place for your case. If you look on the uCapps page you can see the situations where the configs are explained.

    Good luck!

  8. The ones you linked are the correct type, as long as Reichelt delivered the correct ones.

    There are two (well three, but dual terminator is not so common I think) types of RN, one where the pins are isolated into individual elements, the other has one common/bussed connection and are used for pull-up/down resistors.

    A picture = 1000 words. It can save a lot of time for those helping you troubleshoot to check if your soldering is sloppy, maybe the switches you used can be installed sideways etc. etc.

  9. The datastream for WS2812 is serial and runs separately to J8/9, so matrix events don't make sense. Instead, each LED needs its own EVENT_RGBLED. The current _NG implementation can either change the hue (colour) or the value (brightness) when dimmed=1.

    Let me know if you want some PCBs and/or encoders.

    Best,
    Andy

  10. Normally if you can get communication going over USB, the LCD should boot up with either "READY" or a start screen from the application.

    • Is your resistor network soldered the right way around?
    • How long is the cable for the LCD?
    • photos
    • photos
  11. Some other ideas:

    • make the track divider very long, so the retrigger occurs after a longer time
    • set the gate length to full (glide), wait for the step to play then remove the step (or mute the track?). Perhaps the note off  event will not be sent in this case.
×
×
  • Create New...