Re: DIY Tiny OLED I2C full graphics controller May 03, 2015 09:05AM |
Registered: 12 years ago Posts: 5,796 |
Re: DIY Tiny OLED I2C full graphics controller May 05, 2015 02:05PM |
Registered: 10 years ago Posts: 590 |
Re: DIY Tiny OLED I2C full graphics controller May 05, 2015 02:43PM |
Registered: 10 years ago Posts: 1,159 |
Quote
enif
I did some follow up on Chri's idea of positioning the rotary encoder horizontally on the side instead of vertically on the front...
The first problem to tackle was the horizontal mounting of the encoder. Even though it's possible to buy encoders which are made for this type of mounting, these are not easy to find and I also already still have a good number of vertical ones... So I decided to convert the vertical encoder to become horizontal with tiny 10x14mm PCB and a straight 4-pin header:
Then I adapted the PCB for the horizontal encoder. At the same time I also removed the protection diode of the buzzer, as I realized that these buzzers are not piezo buzzers, but a "active magnetic" buzzer, i.e. an oscillator with a small speaker. I also added the possibility for an optional resistor in series with the buzzer, in case it buzzes too loud or draws too much current.
Here the resulting electronics
and the "finished" tinyOLED display controller (I will eventually publish the frame on thingiverse, but my SCAD file still needs some tidying up)
I really think that Chri's idea makes much sense: it's more intuitive to use, smaller to implement and also (in my case at least) the encoder pushing force is better absorbed by the frame.
Thanks, Chri, for your excellent idea!
PS: The only thing that is still irritating me is changing the feed rate on the status screen: turning up will decrease the feed rate and turning down will increase itI'll probably change that in my copy of Marlin...
Re: DIY Tiny OLED I2C full graphics controller May 05, 2015 02:45PM |
Registered: 11 years ago Posts: 869 |
They aren't THAT hard to find: right angle rotary encoders with detent and built in switchQuote
enif
The first problem to tackle was the horizontal mounting of the encoder. Even though it's possible to buy encoders which are made for this type of mounting, these are not easy to find and I also already still have a good number of vertical ones...
Re: DIY Tiny OLED I2C full graphics controller May 05, 2015 04:59PM |
Registered: 13 years ago Posts: 799 |
Re: DIY Tiny OLED I2C full graphics controller May 06, 2015 06:29AM |
Registered: 10 years ago Posts: 590 |
Quote
Chri
I never tought that a encoder would be so large compaired to the rest of the LCD
Quote
Chri
Although i think a original vertical encoder would be better for longtherm stability as it would have a square soldered footprinted compaired to the modified normal that only has a "line" soldering.
Chri
Re: DIY Tiny OLED I2C full graphics controller May 07, 2015 05:11AM |
Registered: 9 years ago Posts: 30 |
Re: DIY Tiny OLED I2C full graphics controller May 07, 2015 05:58AM |
Registered: 10 years ago Posts: 590 |
Quote
3dMistery
enif, how do I open your files? I don0t have SW that recognize .patch file.
Re: DIY Tiny OLED I2C full graphics controller May 07, 2015 08:49AM |
Registered: 9 years ago Posts: 30 |
Re: DIY Tiny OLED I2C full graphics controller May 07, 2015 08:56AM |
Registered: 10 years ago Posts: 590 |
Re: DIY Tiny OLED I2C full graphics controller May 07, 2015 08:42PM |
Registered: 9 years ago Posts: 30 |
Re: DIY Tiny OLED I2C full graphics controller May 08, 2015 12:44AM |
Registered: 12 years ago Posts: 64 |
Quote
3dMistery
I still have problems-it's not clear where to copy, what to copy and what to replace.
It's really confusing.
Re: DIY Tiny OLED I2C full graphics controller May 08, 2015 11:49AM |
Registered: 10 years ago Posts: 590 |
Re: DIY Tiny OLED I2C full graphics controller May 08, 2015 11:55AM |
Registered: 9 years ago Posts: 30 |
Quote
xoan
Quote
3dMistery
I still have problems-it's not clear where to copy, what to copy and what to replace.
It's really confusing.
[en.wikipedia.org]
Re: DIY Tiny OLED I2C full graphics controller May 08, 2015 02:42PM |
Registered: 9 years ago Posts: 606 |
Re: DIY Tiny OLED I2C full graphics controller May 08, 2015 05:20PM |
Registered: 9 years ago Posts: 30 |
Re: DIY Tiny OLED I2C full graphics controller May 10, 2015 02:09PM |
Registered: 10 years ago Posts: 95 |
Re: DIY Tiny OLED I2C full graphics controller May 10, 2015 02:16PM |
Registered: 10 years ago Posts: 590 |
Re: DIY Tiny OLED I2C full graphics controller May 23, 2015 11:08PM |
Registered: 9 years ago Posts: 1 |
Re: DIY Tiny OLED I2C full graphics controller May 24, 2015 05:36PM |
Registered: 10 years ago Posts: 814 |
Re: DIY Tiny OLED I2C full graphics controller June 04, 2015 07:46PM |
Registered: 11 years ago Posts: 88 |
Re: DIY Tiny OLED I2C full graphics controller June 09, 2015 08:08PM |
Registered: 9 years ago Posts: 30 |
Re: DIY Tiny OLED I2C full graphics controller June 10, 2015 02:19AM |
Registered: 10 years ago Posts: 590 |
Re: DIY Tiny OLED I2C full graphics controller June 10, 2015 05:10AM |
Registered: 10 years ago Posts: 95 |
diff --git a/uiconfig.h b/uiconfig.h index da02325..1e47611 100644 --- a/../../Repetier-Firmware/Repetier/uiconfig.h +++ b/uiconfig.h @@ -110,11 +110,11 @@ What display type do you use? // CD Pin: UI_DISPLAY_RS_PIN // ST7920 with software SPI -#define U8GLIB_ST7920 +//#define U8GLIB_ST7920 // SSD1306 with software SPI //#define U8GLIB_SSD1306_SW_SPI // SSD1306 over I2C using hardware I2C pins -//#define U8GLIB_SSD1306_I2C +#define U8GLIB_SSD1306_I2C // For the 8 bit ks0108 display you need to set these pins // UI_DISPLAY_D0_PIN,UI_DISPLAY_D1_PIN,UI_DISPLAY_D2_PIN,UI_DISPLAY_D3_PIN,UI_DISPLAY_D4_PIN,UI_DISPLAY_D5_PIN,UI_DISPLAY_D6_PIN,UI_DISPLAY_D7_PIN // UI_DISPLAY_ENABLE_PIN,UI_DISPLAY_CS1,UI_DISPLAY_CS2, @@ -238,7 +238,7 @@ Define the pin 0 = No keys attached - disables also menu 1 = Some keys attached */ -#define UI_HAS_KEYS 0 +#define UI_HAS_KEYS 1 /** \brief Is a back key present. @@ -246,7 +246,7 @@ Define the pin If you have menus enabled, you need a method to leave it. If you have a back key, you can always go one level higher. Without a back key, you need to navigate to the back entry in the menu. Setting this value to 1 removes the back entry. */ -#define UI_HAS_BACK_KEY 1 +#define UI_HAS_BACK_KEY 0 /* Then you have the next/previous keys more like up/down keys, it may be more intuitive to change the direction you skip through the menus. If you set it to true, next will go to previous menu instead of the next menu. @@ -363,12 +363,13 @@ const int matrixActions[] PROGMEM = UI_MATRIX_ACTIONS; void uiInitKeys() { #if UI_HAS_KEYS!=0 - //UI_KEYS_INIT_CLICKENCODER_LOW(33,31); // click encoder on pins 47 and 45. Phase is connected with gnd for signals. - UI_KEYS_INIT_BUTTON_LOW(4); // push button, connects gnd to pin - UI_KEYS_INIT_BUTTON_LOW(5); - UI_KEYS_INIT_BUTTON_LOW(6); - UI_KEYS_INIT_BUTTON_LOW(11); - UI_KEYS_INIT_BUTTON_LOW(42); + UI_KEYS_INIT_CLICKENCODER_LOW(33,31); // click encoder on pins 47 and 45. Phase is connected with gnd for signals. + UI_KEYS_INIT_BUTTON_LOW(35); // push button, connects gnd to pin + //UI_KEYS_INIT_BUTTON_LOW(4); // push button, connects gnd to pin + //UI_KEYS_INIT_BUTTON_LOW(5); + //UI_KEYS_INIT_BUTTON_LOW(6); + //UI_KEYS_INIT_BUTTON_LOW(11); + //UI_KEYS_INIT_BUTTON_LOW(42); // UI_KEYS_INIT_CLICKENCODER_LOW(47,45); // click encoder on pins 47 and 45. Phase is connected with gnd for signals. // UI_KEYS_INIT_BUTTON_LOW(43); // push button, connects gnd to pin @@ -378,12 +379,13 @@ void uiInitKeys() { void uiCheckKeys(int &action) { #if UI_HAS_KEYS!=0 - //UI_KEYS_CLICKENCODER_LOW_REV(33,31); // click encoder on pins 47 and 45. Phase is connected with gnd for signals. - UI_KEYS_BUTTON_LOW(4,UI_ACTION_OK); // push button, connects gnd to pin - UI_KEYS_BUTTON_LOW(5,UI_ACTION_NEXT); // push button, connects gnd to pin - UI_KEYS_BUTTON_LOW(6,UI_ACTION_PREVIOUS); // push button, connects gnd to pin - UI_KEYS_BUTTON_LOW(11,UI_ACTION_BACK); // push button, connects gnd to pin - UI_KEYS_BUTTON_LOW(42,UI_ACTION_SD_PRINT ); // push button, connects gnd to pin + UI_KEYS_CLICKENCODER_LOW_REV(33,31); // click encoder on pins 47 and 45. Phase is connected with gnd for signals. + UI_KEYS_BUTTON_LOW(35,UI_ACTION_OK); // push button, connects gnd to pin + //UI_KEYS_BUTTON_LOW(4,UI_ACTION_OK); // push button, connects gnd to pin + //UI_KEYS_BUTTON_LOW(5,UI_ACTION_NEXT); // push button, connects gnd to pin + //UI_KEYS_BUTTON_LOW(6,UI_ACTION_PREVIOUS); // push button, connects gnd to pin + //UI_KEYS_BUTTON_LOW(11,UI_ACTION_BACK); // push button, connects gnd to pin + //UI_KEYS_BUTTON_LOW(42,UI_ACTION_SD_PRINT ); // push button, connects gnd to pin // UI_KEYS_CLICKENCODER_LOW_REV(47,45); // click encoder on pins 47 and 45. Phase is connected with gnd for signals. // UI_KEYS_BUTTON_LOW(43,UI_ACTION_OK); // push button, connects gnd to pin #endif
Re: DIY Tiny OLED I2C full graphics controller June 10, 2015 06:05AM |
Registered: 9 years ago Posts: 30 |
Re: DIY Tiny OLED I2C full graphics controller June 11, 2015 05:55AM |
Registered: 10 years ago Posts: 136 |
Re: DIY Tiny OLED I2C full graphics controller June 11, 2015 06:25AM |
Registered: 10 years ago Posts: 590 |
Re: DIY Tiny OLED I2C full graphics controller June 12, 2015 04:44AM |
Registered: 10 years ago Posts: 136 |
Re: DIY Tiny OLED I2C full graphics controller June 12, 2015 12:16PM |
Registered: 10 years ago Posts: 590 |
Re: DIY Tiny OLED I2C full graphics controller June 14, 2015 09:55AM |
Registered: 10 years ago Posts: 136 |