# Custom Widget to Send Keyboard Input From Cockpit

**URL:** <https://discuss.bluerobotics.com/t/custom-widget-to-send-keyboard-input-from-cockpit/23229>\
**Category:** Cockpit\
**Created:** [June 24, 2026, 4:03am UTC](https://discuss.bluerobotics.com/t/custom-widget-to-send-keyboard-input-from-cockpit/23229 "2026-06-24T04:03:04Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![alexgosleep](https://avatars.discourse-cdn.com/v4/letter/a/97f17d/32.png) [@alexgosleep](https://discuss.bluerobotics.com/u/alexgosleep)\
**Post date:** [June 24, 2026, 4:03am UTC](https://discuss.bluerobotics.com/t/custom-widget-to-send-keyboard-input-from-cockpit/23229/1 "2026-06-24T04:03:04Z")

</div>

Hello BlueRobotics Community:

I made a custom widget that mapped the keyboard input (WAD) and send over to the FC as a **RC\_CHANNELS\_OVERRIDE** packet. It’s missing a S because my boat can’t go backward (sadly). You can modify it easily.

I got the idea from monitoring the packets send from my Radiomaster to the FC, and I decided to ‘hijacked’ the packet and managed to somewhat hacked it. My set up is: Laptop with cockpit desktop installed, companion chip is Rock 5T and FC is 7-nano. I am running BlueOS docker on the Rock 5T.

To use the code, you can just import it in Cockpit’s custom widget and you might want to change the ROCK5T\_IP to the ip address of your own companion chip. The channels’ values are tuned to my own Radiomaster’s and you might want to calibrate them too. (I used MissionPlanner to calibrate it)

[advanced-control-widget.json](https://discuss.bluerobotics.com/uploads/short-url/9PjDK8QKQoFG4afsju4ZQRPxWIJ.json) (5.6 KB)

---

<div class="post-metadata">

**Author:** ![rafael.lehmkuhl](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.bluerobotics.com/rafael.lehmkuhl/32/6630_2.png) [@rafael.lehmkuhl](https://discuss.bluerobotics.com/u/rafael.lehmkuhl)\
**Post date:** [June 24, 2026, 1:30pm UTC](https://discuss.bluerobotics.com/t/custom-widget-to-send-keyboard-input-from-cockpit/23229/2 "2026-06-24T13:30:50Z")

</div>

Tried here! Super cool!

 ![image](https://us1.discourse-cdn.com/flex019/uploads/bluerobotics/original/3X/e/f/ef31a101e6d2ca71b28190ba679a61d5a7ebc084.jpeg)

Can I make two suggestions?

1. Make it so the container adapts to the size of the widget instance, centering the main container (red border) and have a transparent background (so that grey area does not appear).
2. Since there are some parts to be configured, it would be cool if it had a configuration menu for the user to change the IP address and mappings.

---

<div class="post-metadata">

**Author:** ![alexgosleep](https://avatars.discourse-cdn.com/v4/letter/a/97f17d/32.png) [@alexgosleep](https://discuss.bluerobotics.com/u/alexgosleep)\
**Post date:** [June 25, 2026, 1:15am UTC](https://discuss.bluerobotics.com/t/custom-widget-to-send-keyboard-input-from-cockpit/23229/3 "2026-06-25T01:15:44Z")

</div>

Thanks for your reply and feedback! Will work on this after I finish other work at hands HAHAHA 🙏 🤩

---

<div class="post-metadata">

**Author:** ![alexgosleep](https://avatars.discourse-cdn.com/v4/letter/a/97f17d/32.png) [@alexgosleep](https://discuss.bluerobotics.com/u/alexgosleep)\
**Post date:** [June 29, 2026, 1:30am UTC](https://discuss.bluerobotics.com/t/custom-widget-to-send-keyboard-input-from-cockpit/23229/4 "2026-06-29T01:30:42Z")

</div>

check this out !

[advanced-control-widget.json](https://discuss.bluerobotics.com/uploads/short-url/9PjDK8QKQoFG4afsju4ZQRPxWIJ.json) (5.6 KB)

---

<div class="post-metadata">

**Author:** ![rafael.lehmkuhl](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.bluerobotics.com/rafael.lehmkuhl/32/6630_2.png) [@rafael.lehmkuhl](https://discuss.bluerobotics.com/u/rafael.lehmkuhl)\
**Post date:** [June 29, 2026, 12:48pm UTC](https://discuss.bluerobotics.com/t/custom-widget-to-send-keyboard-input-from-cockpit/23229/5 "2026-06-29T12:48:44Z")

</div>

Alex, I believe you uploaded the same file! This one is identical to the first.

---

<div class="post-metadata">

**Author:** ![alexgosleep](https://avatars.discourse-cdn.com/v4/letter/a/97f17d/32.png) [@alexgosleep](https://discuss.bluerobotics.com/u/alexgosleep)\
**Post date:** [June 30, 2026, 9:13am UTC](https://discuss.bluerobotics.com/t/custom-widget-to-send-keyboard-input-from-cockpit/23229/7 "2026-06-30T09:13:24Z")

</div>

Yo Rafael check this out!

[diy-widget-config1.0.json](https://discuss.bluerobotics.com/uploads/short-url/1BfJVukTW9ADBvRUTvPQS8BYeu8.json) (12.7 KB)

---

<div class="post-metadata">

**Author:** ![rafael.lehmkuhl](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.bluerobotics.com/rafael.lehmkuhl/32/6630_2.png) [@rafael.lehmkuhl](https://discuss.bluerobotics.com/u/rafael.lehmkuhl)\
**Post date:** [June 30, 2026, 12:03pm UTC](https://discuss.bluerobotics.com/t/custom-widget-to-send-keyboard-input-from-cockpit/23229/8 "2026-06-30T12:03:53Z")

</div>

The widget itself is much better now! Nice work!

 ![image](https://us1.discourse-cdn.com/flex019/uploads/bluerobotics/original/3X/3/f/3f367f1b981139c5e2c4be481b59336a107bb7e5.png)

On the other hand, a black rectangle appeared in the top-left corner of my screen. It appears to be the configuration menu of the widget. There seems to be no way of closing it now 😅

 ![image](https://us1.discourse-cdn.com/flex019/uploads/bluerobotics/original/3X/9/3/939ad0b119b30279700caff433efc0d4e39635aa.png)

---

<div class="post-metadata">

**Author:** ![rafael.lehmkuhl](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.bluerobotics.com/rafael.lehmkuhl/32/6630_2.png) [@rafael.lehmkuhl](https://discuss.bluerobotics.com/u/rafael.lehmkuhl)\
**Post date:** [June 30, 2026, 5:19pm UTC](https://discuss.bluerobotics.com/t/custom-widget-to-send-keyboard-input-from-cockpit/23229/9 "2026-06-30T17:19:36Z")

</div>

@alexgosleep a tip: if you just remove the `top` and `left` CSS attributes from the `config-modal` element, it will work:

 ![image](https://us1.discourse-cdn.com/flex019/uploads/bluerobotics/original/3X/a/2/a2a2dec96475bd760ce74bc9dd7ace6025f4dfba.jpeg)

---

<div class="post-metadata">

**Author:** ![alexgosleep](https://avatars.discourse-cdn.com/v4/letter/a/97f17d/32.png) [@alexgosleep](https://discuss.bluerobotics.com/u/alexgosleep)\
**Post date:** [July 1, 2026, 2:06am UTC](https://discuss.bluerobotics.com/t/custom-widget-to-send-keyboard-input-from-cockpit/23229/10 "2026-07-01T02:06:32Z")

</div>

Yoo rafael, thanks for the tip!!
