2021-07-14, 02:11 AM
(This post was last modified: 2021-07-14, 02:11 AM by seandepagnier.)
it is possible with software modification.. but the problem is there are limited gpio remaining. If you dont need the end stop switches, or rudder feedback or temperature sensor, that would give you 4 keys, and you could also take advantage of a few others, but this would change motor.ino. I would then suggest sending messages back to the pi, receiving them in the servo driver and somehow dispatching them to control the pilot. The user interfaces typically run as separate services which is another issue. I think it is a nice idea, but the problem again, is a lot of people have lots of different good ideas and it is just hard to support everything. If you do make working code modifications, be sure to share, and I will do my best to integrate it (most likely with a compile time switch) but I cannot accept changes if they potentially degrade performance of the motor controller.
If you only need the buttons, one option would be a 433mhz wireless remote control and wire the buttons to it. The simplest way would be to just buy a 433mhz remote control and velcrow it on top of your tillerpilot. Then you can pull it off and use it walking around the boat. If you want to reuse the existing buttons, I have source code for how to use an arduino nano as a 433mhz wireless transmitter, already in the pypilot repository, and the transmitters and receivers cost about a dollar, but you need an arduino on the pi too. I can offer pypilot hat which has lcd with arduino and RF receiver as well as the wireless remote for a , I have not listed on my store yet, but feel free to PM me.
If you need the lcd display as well, on the tiller pilot, it is really not recommended to use the arduino to drive it but it is also maybe possible, just be aware the arduino is nearly at its capabilities to do what it is doing already. A better way would be to use ttgo-tdisplay wireless esp32 module. This would communicate directly via wifi to the raspberry pi and includes a screen, you can wire buttons directly to it. I have already working firmware for it, so it provides full control and configuration (tuning gains etc) but the display is not visible in direct sunlight. You could use a different display on an esp32 as well, I have 2 displays supported, so it should be easy to add drivers especially if you have code already for one in c.
Finally, you could just run an ethernet cable (or something with at least 6 conductors) and the buttons wired to the pi from a long distance, but I am not sure about doing this with spi for the lcd.
If you only need the buttons, one option would be a 433mhz wireless remote control and wire the buttons to it. The simplest way would be to just buy a 433mhz remote control and velcrow it on top of your tillerpilot. Then you can pull it off and use it walking around the boat. If you want to reuse the existing buttons, I have source code for how to use an arduino nano as a 433mhz wireless transmitter, already in the pypilot repository, and the transmitters and receivers cost about a dollar, but you need an arduino on the pi too. I can offer pypilot hat which has lcd with arduino and RF receiver as well as the wireless remote for a , I have not listed on my store yet, but feel free to PM me.
If you need the lcd display as well, on the tiller pilot, it is really not recommended to use the arduino to drive it but it is also maybe possible, just be aware the arduino is nearly at its capabilities to do what it is doing already. A better way would be to use ttgo-tdisplay wireless esp32 module. This would communicate directly via wifi to the raspberry pi and includes a screen, you can wire buttons directly to it. I have already working firmware for it, so it provides full control and configuration (tuning gains etc) but the display is not visible in direct sunlight. You could use a different display on an esp32 as well, I have 2 displays supported, so it should be easy to add drivers especially if you have code already for one in c.
Finally, you could just run an ethernet cable (or something with at least 6 conductors) and the buttons wired to the pi from a long distance, but I am not sure about doing this with spi for the lcd.