Jump to content

jojjelito

Frequent Writer
  • Posts

    1,483
  • Joined

  • Last visited

  • Days Won

    10

Posts posted by jojjelito

  1. I'll try to e-mail you the entire thing when I'm back at work tomorrow. Basically all the init business is below the wait 50ms code in the above example. I'm not sure about all the waiting around before that though.

    We should double-check the values I set, and make sure that Hawkeye's

    USER_LCD_Cmd does it's thing correctly (i.e send 2x4bits plus wait for the busy flag).

    /J

  2. Sheesh!

    The code I posted is deffo something unfinished: I looked at pp21 in the Newhaven datasheet:

    For 4bit display init, I think that all the funky business with

    
    movlw   0x3
    
            movwf   USER_LCD_LAT_D
    
            rcall   USER_LCD_Strobe_Set
    
            movlw   10                      ; 10 ms delay
    
            call    MIOS_Delay
    
            rcall   USER_LCD_Strobe_Clr
    
            movlw   10                      ; 10 ms delay
    
            call    MIOS_Delay
    plus the 50ms wait need to go away. The datasheet starts with Power on. Wait more than 1ms for power stablization. I dunno why all those other delays are there in the code, need to check with Hawkeye. Then we should send function set where:
    [Function Set:
    
    RS R/W DB7 DB6 DB5 DB4
    
    0 0 0 0 1 0
    
    0 0 0 0 1 0
    
    0 0 1 0 X X
    
    

    And then do some waiting for the busy flag.

    Then on to display off. Busy flag wait.

    Display clear. Wait for busy flag.

    Entry mode set. Wait for busy flag.

    Home command. Wait for busy flag.

    Display on.

    Let there be light!

  3. Oh, cool!

    I'm not 100% sure this was my latest or greatest, I found it in a working directory in my lab PC at work. It looked familiar enough, but it's possible I went ahead and changed more stuff in my compile/source dir. I'll take a gander at this vs the data sheet later tonight.

  4. Ahh. Think I got my delays from the datasheet, but that don't mean that they suffice whistle.png

    I wonder if it's not easier to grok how to modify the OLED board jumpers to make it run in a more sane 8-bits? If we're lucky we don't have to mess around with the init that much if it's similar enough to a HD44780...

  5. I need to refresh my memory, but here's from my app_led.inc from when I was on it. Not sure if it's the latest, we need to cross-check this against the data sheet again:

    
    
    USER_LCD_Init
    
    	;; notify that no graphical LCD is connected
    
    	bcf	MIOS_BOX_CFG0, MIOS_BOX_CFG0_USE_GLCD
    
    
    	; (Initialization of Ports: done in Init_Ports)
    
    	SET_BSR	USER_LCD_STATUS
    
    	clrf	USER_LCD_STATUS, BANKED
    
    
    	movlw	100			; 100 ms delay
    
    	call	MIOS_Delay
    
    
            bcf     USER_LCD_LAT_RW, USER_LCD_PIN_RW	; LCD_WRITE
    
            bcf     USER_LCD_LAT_RS, USER_LCD_PIN_RS	; USER_LCD_PIN_RS_0
    
    
    	;; initialize LCD
    
    	movlw	0x3
    
    	movwf	USER_LCD_LAT_D
    
    	rcall	USER_LCD_Strobe_Set
    
            movlw	10			; 10 ms delay
    
    	call	MIOS_Delay
    
    	rcall	USER_LCD_Strobe_Clr
    
            movlw	10			; 10 ms delay
    
    	call	MIOS_Delay
    
    
    	movlw	0x3
    
    	movwf	USER_LCD_LAT_D
    
    	rcall	USER_LCD_Strobe_Set
    
            movlw	10			; 10 ms delay
    
    	call	MIOS_Delay
    
    	rcall	USER_LCD_Strobe_Clr
    
            movlw	10			; 10 ms delay
    
    	call	MIOS_Delay
    
    
    	movlw	0x3
    
    	movwf	USER_LCD_LAT_D
    
    	rcall	USER_LCD_Strobe_Set
    
            movlw	10			; 10 ms delay
    
    	call	MIOS_Delay
    
    	rcall	USER_LCD_Strobe_Clr
    
            movlw	10			; 10 ms delay
    
    	call	MIOS_Delay
    
    
    	movlw	0x2
    
    	movwf	USER_LCD_LAT_D
    
    	rcall	USER_LCD_Strobe_Set
    
            movlw	10			; 10 ms delay
    
    	call	MIOS_Delay
    
    	rcall	USER_LCD_Strobe_Clr
    
            movlw	10			; 10 ms delay
    
    	call	MIOS_Delay
    
    
            movlw	50			; 50 ms delay
    
    	call	MIOS_Delay
    
    
    	movlw	0x2B			; Function set		
    
    	rcall	USER_LCD_Cmd
    
    	movlw	0x08			; Display Off		
    
    	rcall	USER_LCD_Cmd
    
    	movlw	0x01			; Display Clear
    
    	rcall   USER_LCD_Cmd
    
    	movlw	0x06			; Entry Mode Set to Auto Increment
    
    	rcall   USER_LCD_Cmd
    
    	movlw	0x02			; Home Command
    
    	rcall   USER_LCD_Cmd
    
    	movlw	0x0C			; Display ON
    
    	rcall   USER_LCD_Cmd
    
    
    	movlw	0x00			; set cursor to zero pos
    
    	rgoto	USER_LCD_CursorSet
    
    
    

  6. Hiya!

    Hawkeye's VFD driver does some 4bit magic. I tweaked it to use a more Newhaven-centric display init in the main SID app, but I missed out on the fact that there's display init also done in the bootloader!

    I assume you use the Newhaven 4x20 OLED .

    Currently I'm tied up with my modular, but it would be fun to get this display business done. Maybe the Newhaven requires less tweaking if we re-jig it to use 8 bits instead. I remember looking the display PCB and the PDF and shaking my head, at the time I trouble correlating the actual board with what is described in the manual... Better look again.

    /J

  7. You should not use more than 8,1mm for an 8mm hole. Any hole that is too big will leads to your parts sloshing around in the hole. A hole is easy to file bigger in case it's needed. I'm looking at the ON-ON-ON DPDT switches used instead of Lorlin rotary switches, they had slightly bigger shafts than other more normal SPST/DT or DPDT switches.

    Also, use 3mm aluminium instead, depending on how wide your front panel is since it is a bit flexy in the middle. You can also use hex distances or internal bracing for support, but 2mm is thin, 2,5mm just there, and 3mm feels sturdy.

    /J

  8. There are options in the code so that several signaling schemes fit. As long as it's a quadrature encoder chances are it will work. If you find something that outputs some odd Gray code you're off to coding land...

    Did you notice the Eagle Plastic 450-BA600? It will fit more common encoder with 6mm D-shaft and has no line. Mouser has several choices of 450-BAxxx knobs that will fit both 6mm serrated T-18 and D shafts. You'll save money on the encoders plus get to use more standard parts.

  9. Dumb questions or not:

    1) Using a knob with a set screw made for 1/4" (6.35mm) axis on a 6mm D-axis won't end well. The know will wobble around some or not be centered properly around the axis of rotation. Don't do this!

    2) Look at the photo tutorial on building a MB6582. Here the LCD is fixed to the PCB that is fixed to the front panel using JB-Weld and lots of hex spacers. Another, less nice-looking, option is to use the 4 screw-holes of the display PCB (assuming it has those), some hex spacers and 4 screws going through the whole shebang. Or, just do the distances behind the front panel for the display. Or, cover up the display hole with a plexi window and mount the display with hardware internal to the box.

    /J

  10. We should keep in touch regarding that code transmogrification! I don't think I destroyed my display but originally I just carried all the leads straight over, before realizing that it was a 4-bit beast. I have some prototype code at work I played with last summer, then the modular grabbed my time too much...

  11. Oh yeah, there I was, balls deep in your mama. Oh, sorry! Is this thing on? OK...

    I'll get back to the driver hacking after some other things I'm doing are done. Maybe the smaller displays are more standards-compliant, I know that Altitude put a 2x16 in a Shruthi-1 without any changes to the code. Please note however, that the Shruthi is a different code-path entirely as it's written in C++ outside of the MIDIbox world so take this indication as a feasibility hint, no more.

    Reminds me, in 2016 or whenever I have the time, I'll do the Prophet VS and the CZ5000. They both need the OLED treatment. Especially after seeing the picture above :thumbsup:

    Cheers!

    /J

  12. Oooh, finally a chance to acquire some cool knobs in 3-shot. Are those hard finish only? Never mind. They look cool!

    Those 3-shot are actually 4/04/DR 110 006 for the d-shaft and 4/04/TP110 006 for the spline shaft. Gotta give this a short ponder before PM:ing later tonite...

    All of a sudden I wanted in. Dangnabbit! :frantics:

×
×
  • Create New...