joerandomnumber
Forum Replies Created
-
AuthorPosts
-
joerandomnumberParticipant
I tried Oracle download again today and got it to work. I found that the website gave the error message if I clicked the download link and then log in when the download requested it. Instead, I had to log in to Oracle separately from the download process, and then the download would work after that. Downloaded 8-161 and installed it, then uninstalled 8-271 and rebooted. The Makelangelo app will now connect without crashing.
joerandomnumberParticipantThanks for the update. I’m having the same jssc.SerialNativeInterface.openPort failure, and I have 8-271. Unfortunately, Oracle is “experiencing technical difficulty” (which apparently is their MO) so I can’t download 8-161.
joerandomnumberParticipantDan, pushed changes to use abs() when turning the knob quickly per your PR comment. Also fixed some code that could overwrite and corrupt memory, made long M117 messages wrap on the 128×64 display so they can be read, and fixed a display location calculation error that made the 128×64’s left most column not get used. Those changes are pushed to my fork in github and can be viewed in the PR.
joerandomnumberParticipantProvided some responses in the PR, and put a picture to show the jumpers I had to do. Let me know your thoughts about the stepper motor and servo verse interrupts, and if something different is warranted (e.g. disabling the knob interrupts during time critical sections).
joerandomnumberParticipantYes, the “modified to the code to work with interrupts” requires some changes that would be a bit extensive to list here… and there some jumpers that would be needed too. Dan is concerned about using the interrupts and what affect that could have on motor control. I believe I could point you to the github fork I made, but probably worth waiting for Dan to look it over first since he knows the code base.
joerandomnumberParticipantTylor, I’m using a 12864 LCD and RAMPS 1.4 and ran into the same issue where the knob/menus were unusable. So the first thing I did was fix that so I could explore the menus.
I have these settings to get the display to work (obviously your display already works too):
#define LCD_TYPE LCD_IS_128X64
#define MOTHERBOARD BOARD_RAMPS
#define LCD_PINS_RS 16
#define LCD_PINS_ENABLE 17
#define LCD_PINS_D4 23And then I jumpered pins 33 and 31 to inputs that have interrupts (18 and 19) and modified to the code to work with interrupts.
My SD on the 12864 worked, but there was an issue where it wouldn’t display the file names. I accidentally submitted that fix with the interrupt code PR.
joerandomnumberParticipantI know how to use git, but not really familiar with github. That said, I found instructions on stackoverflow about how to use github. Seems they want me to make a forked repo instead of just branching in your repo. I believe the pull request has been made. Here’s the steps I found…
- click fork button on original github project page
- clone your forked repository instead original
- push to it
- press Pull Requests button on your repository
- create it
- wait for original author to accept it
I had started from your Dec 23 commit with hash ca06a9ca702, but the repo was updated today, so I had to merge my changes into that. A fix for the “print from file” menu that I made today (lcd_dirty flag usage) that is unrelated to the encoder interrupts unfortunately got committed with it when I merged the code. The commit message explains what I did, and I’ll quote it below too.
Implement interrupts for 12864 LCD encoder with RAMPS 1.4 configuration
A configuration item named USING_12864_WITH_ENCODER_INTERRUPTS
was added to the board_ramps.h include file to enable interrupt usage.These changes require adding a jumper from D33 to D18, and one from
D31 to D19. These can be done from the display connector to pins on
the RAMPS 1.4 board. I cut a female jumper cable in half, soldered
the wire to the display adapter, and used the female end to attach to
the correct pin on the RAMPS 1.4 board.D33 and D31 will still be set to inputs and receive the signal, but
they are not used. Interrupts are enabled for D18 and D19, their
pull-ups are enabled, and the signal is read from the new pins.Code was written to process the interrupts and handle menus. Turning
the knob quicker will increment float and long values quicker.The button press was not moved to an interrupt. It still must be held
sufficiently long for the polling code to recognize the button press.joerandomnumberParticipantI have modified code to use interrupts for 12864 LCD and RAMPS 1.4. Encoder works nicely now. How do I submit it for a PR so you can review it? I can’t push a new branch to the github repo.
-
AuthorPosts