AronHetLam / ATEM_tally_light_with_ESP8266

Wireless tally light for use with ATEM switchers, which connects over WiFi, using an ESP WiFi module.
GNU General Public License v3.0
159 stars 40 forks source link

Joystick and Display Support #57

Open paulkilroy opened 3 years ago

paulkilroy commented 3 years ago

I wrote some code to support a 3 axis joystick and the heltec onboard display. I'd love to merge it into this branch rather than a fork. Let me know if there is interest and I'll clean it up...

It's very useful for me to use with the tally light system so there is just one master connecting to the ATEM.

Here's a link to the display and joystick in the background.

https://ibb.co/zsx57q8

AronHetLam commented 3 years ago

I'm not sure i understand what you're using the joystick for. Are you controlling PTZ cameras with it?

You can start by forking it, and make a PR from there. If it runs on ESP32 I'd like for the added features to only compile for the ESP32, as I think the ESP8266 would have a hard time keeping up.

paulkilroy commented 3 years ago

Yes - Its will look use your atem code to find the camera on preview and control that via visca ip protocol. Camera IPs are added to the config webpage and stored in the eeprom. I'll let you know when the code is cleaned up and ready.

AronHetLam commented 2 years ago

What libraries do you use? I can't compile it.

paulkilroy commented 2 years ago

It probably needs the heltec WiFi kit board and it’s libraries.

https://heltec-automation-docs.readthedocs.io/en/latest/esp32+arduino/quick_start.html#via-arduino-board-manager

I’m wondering if there’s a more generic oled library, that’s probably what is tripping it up?

On Sun, Dec 5, 2021 at 2:27 PM Aron het Lam @.***> wrote:

What libraries do you use? I can't compile it.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/AronHetLam/ATEM_tally_light_with_ESP8266/issues/57#issuecomment-986294580, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMVBG4YQY5KRLEKMZZFXQALUPPDJNANCNFSM5G54KPXA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

AronHetLam commented 2 years ago

Ahh. Yes, preferably it should be more generic. I tried just downloading heltic libraries, but that only solved some of the problems. I probably need the board manager.

paulkilroy commented 2 years ago

Can you copy and paste your compile errors and I’ll confirm it’s just the display library. If that’s the case, the u8g2 library should be a more generic replacement I can fix the code to use.

On Mon, Dec 6, 2021 at 2:42 AM Aron het Lam @.***> wrote:

Ahh. Yes, preferably it should be more generic. I tried just downloading heltic libraries, but that only solved some of the problems. I probably need the board manager.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/AronHetLam/ATEM_tally_light_with_ESP8266/issues/57#issuecomment-986555389, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMVBG42PT5IYLDR2VB6BOFDUPRZOLANCNFSM5G54KPXA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

AronHetLam commented 2 years ago

First and only error: CameraControl:3:20: fatal error: heltec.h: No such file or directory

After installing `Heltec ESP32 Dev-Boards` library (expand me)

``` CameraControl:4:1: error: 'SSD1306Wire' does not name a type SSD1306Wire *display; ^ C:\Users\aronh\source\repos\AronHetLam\ATEM_tally_light_with_ESP8266\ATEM_tally_light\CameraControl.ino: In function 'void cameraControlSetup()': CameraControl:30:3: error: 'display' was not declared in this scope display = Heltec.display; ^ CameraControl:30:20: error: 'class Heltec_ESP32' has no member named 'display' display = Heltec.display; ^ C:\Users\aronh\source\repos\AronHetLam\ATEM_tally_light_with_ESP8266\ATEM_tally_light\CameraControl.ino: In function 'void displayCalibrateScreen(String, int)': CameraControl:87:3: error: 'display' was not declared in this scope display->clear(); ^ CameraControl:88:20: error: 'ArialMT_Plain_24' was not declared in this scope display->setFont(ArialMT_Plain_24); ^ CameraControl:89:29: error: 'TEXT_ALIGN_CENTER' was not declared in this scope display->setTextAlignment(TEXT_ALIGN_CENTER); ^ CameraControl:90:23: error: 'DISPLAY_WIDTH' was not declared in this scope display->drawString(DISPLAY_WIDTH / 2, 0 , "Calibrating..."); ^ CameraControl:93:20: error: 'ArialMT_Plain_16' was not declared in this scope display->setFont(ArialMT_Plain_16); ^ CameraControl:97:31: error: 'DISPLAY_HEIGHT' was not declared in this scope display->drawProgressBar(0, DISPLAY_HEIGHT - 11, 120, 10, pct); ^ C:\Users\aronh\source\repos\AronHetLam\ATEM_tally_light_with_ESP8266\ATEM_tally_light\CameraControl.ino: In function 'void displayLoop(int, int, int)': CameraControl:221:3: error: 'display' was not declared in this scope display->clear(); ^ CameraControl:224:29: error: 'DISPLAY_WIDTH' was not declared in this scope display->fillRect(0, 0, DISPLAY_WIDTH, 25); ^ CameraControl:225:24: error: 'BLACK' was not declared in this scope display->setColor( BLACK ); ^ CameraControl:227:20: error: 'ArialMT_Plain_24' was not declared in this scope display->setFont(ArialMT_Plain_24); ^ CameraControl:228:29: error: 'TEXT_ALIGN_LEFT' was not declared in this scope display->setTextAlignment(TEXT_ALIGN_LEFT); ^ CameraControl:230:28: error: 'DISPLAY_WIDTH' was not declared in this scope display->drawLine(0, 25, DISPLAY_WIDTH, 25); ^ CameraControl:232:22: error: 'WHITE' was not declared in this scope display->setColor( WHITE ); ^ CameraControl:233:20: error: 'ArialMT_Plain_10' was not declared in this scope display->setFont(ArialMT_Plain_10); ^ CameraControl:243:20: error: 'ArialMT_Plain_16' was not declared in this scope display->setFont(ArialMT_Plain_16); ^ CameraControl:244:29: error: 'TEXT_ALIGN_RIGHT' was not declared in this scope display->setTextAlignment(TEXT_ALIGN_RIGHT); ^ C:\Users\aronh\source\repos\AronHetLam\ATEM_tally_light_with_ESP8266\ATEM_tally_light\CameraControl.ino: In function 'void drawBoolean(int, int, int, boolean)': CameraControl:258:5: error: 'display' was not declared in this scope display->fillRect( x, y, sz, sz ); ^ CameraControl:260:5: error: 'display' was not declared in this scope display->drawRect( x, y, sz, sz ); ^ ```

I don't think it's the correct heltec lib, and it can't find the SSD1306Wire lib.

paulkilroy commented 2 years ago

That SSD1306Wire class is in the heltec board class. All these look like they are related to the display code. I’ll try to clean that up this week and send you a new patch that is just dependent on u8g2. That seems like a pretty coming library everyone could use.

On Mon, Dec 6, 2021 at 1:17 PM Aron het Lam @.***> wrote:

First and only error: CameraControl:3:20: fatal error: heltec.h: No such file or directory After installing Heltec ESP32 Dev-Boards library (expand me)

CameraControl:4:1: error: 'SSD1306Wire' does not name a type SSD1306Wire *display; ^ C:\Users\aronh\source\repos\AronHetLam\ATEM_tally_light_with_ESP8266\ATEM_tally_light\CameraControl.ino: In function 'void cameraControlSetup()': CameraControl:30:3: error: 'display' was not declared in this scope display = Heltec.display; ^ CameraControl:30:20: error: 'class Heltec_ESP32' has no member named 'display' display = Heltec.display; ^ C:\Users\aronh\source\repos\AronHetLam\ATEM_tally_light_with_ESP8266\ATEM_tally_light\CameraControl.ino: In function 'void displayCalibrateScreen(String, int)': CameraControl:87:3: error: 'display' was not declared in this scope display->clear(); ^ CameraControl:88:20: error: 'ArialMT_Plain_24' was not declared in this scope display->setFont(ArialMT_Plain_24); ^ CameraControl:89:29: error: 'TEXT_ALIGN_CENTER' was not declared in this scope display->setTextAlignment(TEXT_ALIGN_CENTER); ^ CameraControl:90:23: error: 'DISPLAY_WIDTH' was not declared in this scope display->drawString(DISPLAY_WIDTH / 2, 0 , "Calibrating..."); ^ CameraControl:93:20: error: 'ArialMT_Plain_16' was not declared in this scope display->setFont(ArialMT_Plain_16); ^ CameraControl:97:31: error: 'DISPLAY_HEIGHT' was not declared in this scope display->drawProgressBar(0, DISPLAY_HEIGHT - 11, 120, 10, pct); ^ C:\Users\aronh\source\repos\AronHetLam\ATEM_tally_light_with_ESP8266\ATEM_tally_light\CameraControl.ino: In function 'void displayLoop(int, int, int)': CameraControl:221:3: error: 'display' was not declared in this scope display->clear(); ^ CameraControl:224:29: error: 'DISPLAY_WIDTH' was not declared in this scope display->fillRect(0, 0, DISPLAY_WIDTH, 25); ^ CameraControl:225:24: error: 'BLACK' was not declared in this scope display->setColor( BLACK ); ^ CameraControl:227:20: error: 'ArialMT_Plain_24' was not declared in this scope display->setFont(ArialMT_Plain_24); ^ CameraControl:228:29: error: 'TEXT_ALIGN_LEFT' was not declared in this scope display->setTextAlignment(TEXT_ALIGN_LEFT); ^ CameraControl:230:28: error: 'DISPLAY_WIDTH' was not declared in this scope display->drawLine(0, 25, DISPLAY_WIDTH, 25); ^ CameraControl:232:22: error: 'WHITE' was not declared in this scope display->setColor( WHITE ); ^ CameraControl:233:20: error: 'ArialMT_Plain_10' was not declared in this scope display->setFont(ArialMT_Plain_10); ^ CameraControl:243:20: error: 'ArialMT_Plain_16' was not declared in this scope display->setFont(ArialMT_Plain_16); ^ CameraControl:244:29: error: 'TEXT_ALIGN_RIGHT' was not declared in this scope display->setTextAlignment(TEXT_ALIGN_RIGHT); ^ C:\Users\aronh\source\repos\AronHetLam\ATEM_tally_light_with_ESP8266\ATEM_tally_light\CameraControl.ino: In function 'void drawBoolean(int, int, int, boolean)': CameraControl:258:5: error: 'display' was not declared in this scope display->fillRect( x, y, sz, sz ); ^ CameraControl:260:5: error: 'display' was not declared in this scope display->drawRect( x, y, sz, sz ); ^

I don't think it's the correct heltec lib, and it can't find the SSD1306Wire lib.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/AronHetLam/ATEM_tally_light_with_ESP8266/issues/57#issuecomment-987104031, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMVBG446ERZ7R2YMRW43M3LUPUD45ANCNFSM5G54KPXA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

jpdd521 commented 2 years ago

我编写了一些代码来支持3轴操纵杆和heltec板载显示器。我很想把它合并到这个分支中,而不是一个分支。让我知道是否有兴趣,我会清理它...

与Tally Light系统一起使用对我来说非常有用,因此只有一个主站连接到ATEM。

这是背景中显示器和操纵杆的链接。

https://ibb.co/zsx57q8

3 axis joystick ,control that via visca ip protocol,做好了吗?