tonedef Posted September 12, 2022 Report Share Posted September 12, 2022 (edited) Finally got the dust off of my STM32F4 board to work on a project I started 3 years ago. Sad news, I cannot get these OLED displays working. They're factory wired for 4SPI, which I tried initially and no dice. Realized they might need to be I2C (IIC), so I moved/added the SMD resistors for that, but still no dice. Blank. Also edited the DEFAULT.NGC file to add: RESET_HW LCD "%C" LCD "@(1:1:1)OLED1" LCD "@(2:1:1)OLED2" LCD "@(3:1:1)OLED3" LCD "@(4:1:1)OLED4" LCD "@(5:1:1)OLED5" LCD "@(6:1:1)OLED6" LCD "@(7:1:1)OLED7" LCD "@(8:1:1)OLED8" Been several years since I've played around with building a MIDIBox project, and the last one was a LPC17 so I'm admittedly rusty as well as new to the STM32F4 board. What am I missing? Also, LD1/COM LED onthe STM32F4 board is red and blinks, is that normal? For what it's worth, the displays I am able to get working in Arduino projects, so it must be something I'm not doing right here. Img-4490.m4v Edited September 12, 2022 by tonedef Quote Link to comment Share on other sites More sharing options...
slo Posted September 12, 2022 Report Share Posted September 12, 2022 Did you adjust the bootloader for the SSD1306? See here http://ucapps.de/midibox_ng_manual_lcd.html 1 Quote Link to comment Share on other sites More sharing options...
tonedef Posted September 14, 2022 Author Report Share Posted September 14, 2022 (edited) Oh, wow, I totally missed that! Thank you!!! I wasted an entire day rummaging around and didn't manage to see that :) Just in case others run across this: You want 4SPI configuration, not IIC like I have in the pic. The number of screens you have must match the configuration you set in the bootloader, otherwise you get noise, and won't be able to write to all the lines/columns Also easy to miss, but for the 1306 RES connection, you need to wire it up like this (again, connections on your 1306 PCB): GND -> 10uf cap -> 1k resistor -> VCC. Once done, RES will be tied to where the cap and resistor meet (like this) It wasn't clear to me how to actually use the bootloader for the STMF4 board, but it's essentially: Plugin your board as you normally do Open MIOS Studio Click Browse and choose the mios32_bootloader app (download here) Click Start. If it won't complete, try unpluging/pluging the board and trying again Unplug/plugin the board In the MIDI IN and MIDI OUT sections whatever app you had prior to all of this might be listed, but it doesn't actually exist (and it shouldn't). That's why you now see the error "No response...". The new app, MIOS32, took its place and you need to refresh to see it. Click Application -> Rescan MIDI Devices Click Understood in the pop-up (this will make your old app disappear, and the MIOS32 app show up) Change MIDI IN and MIDI OUT to MIOS32 Enter these one by one into the input box: (send a command to MIOS32 application). Keep in mind lcd_num_x must match the number you have chained:set lcd_type GLCD_SSD1306 set lcd_num_x 1 set lcd_num_y 1 set lcd_width 128 set lcd_height 64 store Yah. Bootloader is done. Time to restore your app in MIOS Studio: Click Browse and choose whatever app you want, like midibox_ng Click Start. Like the bootloader, if it won't complete, try unpluging/pluging the board and trying again Unplug/plugin the board Now for some test display data. Lets set some values for your SSD1306 OLED's in MIOS Studio: Click on Tools -> MIOS32 File Browser Click Create File Create some name like LCD.NGC Click Update Click on the file you just created Click Edit Text and add the following test example: RESET_HW LCD "%C" LCD "@(1:1:1)A23456789012345678901234567890" LCD "@(1:1:2)B23456789012345678901234567890" LCD "@(1:1:3)C23456789012345678901234567890" LCD "@(1:1:4)D23456789012345678901234567890" LCD "@(1:1:5)E23456789012345678901234567890" LCD "@(1:1:6)F23456789012345678901234567890" LCD "@(1:1:7)G23456789012345678901234567890" LCD "@(1:1:8)H23456789012345678901234567890" Click Save You should now have 8 rows and 21 columns of text. If you need to flip it 180 degrees, you can redo the steps above and add set lcd_type GLCD_SSD1306_ROTATED before you store. Edited September 14, 2022 by tonedef 1 Quote Link to comment Share on other sites More sharing options...
tonedef Posted September 14, 2022 Author Report Share Posted September 14, 2022 (edited) The only other question I have is can I rotate this 90 degrees instead of just 180? My current thought as a workaround is to create a font set that's rotated 90 degrees and write out lines a single letter at a time: LCD "@(1:1:3)," LCD "@(1:1:4)o" LCD "@(1:1:5)l" LCD "@(1:1:6)l" LCD "@(1:1:7)e" LCD "@(1:1:8)H" LCD "@(1:2:2)." LCD "@(1:2:3)d" LCD "@(1:2:4)n" LCD "@(1:2:5)e" LCD "@(1:2:6)i" LCD "@(1:2:7)r" LCD "@(1:2:8)f" It'd look like this, but you have to imagine all the letters are rotated counter clockwise by 90 degrees: Edited September 14, 2022 by tonedef 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.