A Godot plugin to read Arduino serial input

GDSerCommPlugin

A Godot plugin to read Arduino serial input

Dependencies

Installation

Build binaries

Windows 10 64-bit

  • In Powershell run these commands
git clone --depth=1 [email protected]:Superwaitsum/GDSercomm.git
cd .\GDSercomm\
git clone --depth=1 [email protected]:GodotNativeTools/godot_headers.git
git clone --depth=1 [email protected]:ingeniamc/sercomm.git
cd .\sercomm\
cmake -S. -Bbuild
cmake --build build
cd ..
cp .\sercomm\build\config.h .\sercomm\include\public\sercomm\
mkdir lib
cp .\sercomm\build\Debug\sercomm.lib .\lib\
cp .\sercomm\build\Debug\sercomm.dll .\lib\
scons p=windows
cp .\lib\sercomm.lib .\bin\
  • Now you should have all your .dll in the GDSercomm/bin folder

Ubuntu 18.04

  • In terminal run these commands
git clone --depth=1 [email protected]:Superwaitsum/GDSercomm.git
cd GDSercomm/
git clone --depth=1 [email protected]:GodotNativeTools/godot_headers.git
git clone --depth=1 [email protected]:ingeniamc/sercomm.git
cd sercomm/
cmake -H. -Bbuild
cmake --build build
cd ..
cp sercomm/build/config.h sercomm/include/public/sercomm/
mkdir lib
cp sercomm/build/libsercomm.so lib/
scons p=linux
cp lib/libsercomm.so bin/
cp bin/libsercomm.so /usr/lib
ldconfig
  • Now you should have all your .so in the GDSercomm/bin folder

OSX

  • OBS! This is not tested because I don't own a OSX computer
  • In terminal run these commands
git clone --depth=1 [email protected]:Superwaitsum/GDSercomm.git
cd GDSercomm/
git clone --depth=1 [email protected]:GodotNativeTools/godot_headers.git
git clone --depth=1 [email protected]:ingeniamc/sercomm.git
cd sercomm/
cmake -H. -Bbuild
cmake --build build
cd ..
cp sercomm/build/config.h sercomm/include/public/sercomm/
mkdir lib
cp sercomm/build/libsercomm.dylib lib/
scons p=osx
cp lib/libsercomm.dylib bin/
# it is not easy to get permissions to modify /usr/lib, might not be needed?
cp bin/libsercomm.dylib /usr/lib
sudo update_dyld_shared_cache
  • Now you should have all your .dylib in the GDSercomm/bin folder

Plugin

  • Git clone repo into your addons folder in the root of your project.
  • Inside the editor got to Project->Projects Settings->Plugins and activate "Serial Communication"

Screenshot

Screenshot

Owner
Joel Setterberg
Just doing my best enjoying the things I love
Joel Setterberg
Comments
  • how do i use the serial input?

    how do i use the serial input?

    hello! i am kind of new with godot and this is not an issue really but a question. From the plugin window i can see that the data is arriving but i can't understand how i can access the data from my code to use it.

  • No nativescript_init inside Windows 64bit sercomm.dll file

    No nativescript_init inside Windows 64bit sercomm.dll file

    Following the instructions on how to build the binaries for Windows 64bit will result in an No nativescript_init in sercomm.dll file.

    Could this be due to Visual Studio 16 2019 C compiler has changed and need some more options set?

  • RichTextLabel can not add a integer to text.

    RichTextLabel can not add a integer to text.

    For some reason

    res://addons/GDSerCommDock/MenuLogic.gd:45 - Invalid type in function 'add_text' in base 'RichTextLabel'. Cannot convert argument 1 from int to String.

    when reading from serial.

    My input look something like "0.86,0.83"

  • Add gitpod config

    Add gitpod config

    this commit adds support for Gitpod.io, a free automated dev environment that makes contributing and generally working on GitHub projects much easier. It allows anyone to start a ready-to-code dev environment for any branch, issue and pull request with a single click.

  • When plugin active

    When plugin active "Nonexistent function 'get_available'" error occures

    It seems that the function get_available in MenuLogic.gd isn't found when run as a tool.

    I builds the binaries with the instructions in the README.md

    I have tried scons p=platform and scons p=windows

    OS: Windows 10

    https://github.com/NangiDev/GDSerCommPlugin/blob/e90751cfd7877265e72daff7d93854c65f59cd45/addons/GDSerCommDock/MenuLogic.gd#L41

    res://addons/GDSerCommDock/MenuLogic.gd:41 - Invalid call. Nonexistent function 'get_available' in base 'Reference (GDSerComm.gdns)'.

  • There is no way to indicate flow control

    There is no way to indicate flow control

    There are devices, such as the Arduino 33 BLE Sense, whose serial communication requires hardware-level flow control. Currently I can not find how to accomplish this within the plugin (nor am I sure that gdsercomm or sercomm support it after a quick glance at the repos).

    Implementing the ability to choose between RTS/CTS would be enough for my immediate purposes personally, but I figure support would also include DTR/DSR as well as XON/XOFF software-based flow control.

  • Build on Ubuntu 21.20

    Build on Ubuntu 21.20

    I tried to build Linux binary. The library built successfully

    Distro: Pop OS (based Ubuntu 21.20) Godot 3.4.1.stable

    but got this error when running the project

    E 0:00:00.540 init_library: No nativescript_init in "res://addons/GDSerCommDock/bin/libGDSercomm.so" found <C++ Source> modules/gdnative/nativescript/nativescript.cpp:1510 @ init_library()

  • Look into using LibSercomm from Vcpkg

    Look into using LibSercomm from Vcpkg

    The libsercomm dependency is now a part of the vcpkg repo.

    https://github.com/microsoft/vcpkg/pull/21105

    This means we could potentially just get it from there instead of trying to build it ourselves.

  • Have a version released to Godot Marketplace

    Have a version released to Godot Marketplace

    As a user of GDSercommPlugin I want to be able to download the plugin from Godot Marketplace when integrating it in my game.

    What do we need to address before this is possible?

    • How do you deploy a plugin in Marketplace?
    • Automated CD/CI of the binaries for all plattforms:
      • Mac OSX
      • Windows
      • Linux
      • Android?
      • IOS?
    • Automated CD/CI for deploying working builds to marketplace
RS232 / Serial interface for go

A simple serial interface for go. This is a yak I shaved so I could use go both for Arduino work and Amateur radio (APRS) work. There are many things

Oct 14, 2022
The plugin serves as a starting point for writing a Mattermost plugin

Plugin Starter Template This plugin serves as a starting point for writing a Mattermost plugin. Feel free to base your own plugin off this repository.

Dec 10, 2021
Feb 10, 2022
Cf-cli-find-app-plugin - CF CLI plugin to find applications containing a search string

Overview This cf cli plugin allows users to search for application names that co

Jan 3, 2022
Twitter-plugin - Falco Plugin for Twitter Stream

Twitter Plugin This repository contains the twittter plugin for Falco, which fol

Mar 17, 2022
GraphRPC is simply GraphQL as your RPC Contract Input & Output Layer.

GraphRPC About GraphRPC is simply GraphQL as your RPC Contract Input & Output Layer. No proto contract corruption on any update Programming language a

Oct 18, 2022
A grpc server to calculate factorial of input numbers.

Using the program Open the terminal and navigate to the MEANT4-Task directory Run 'make' in the terminal. You should see the following out put go buil

Nov 10, 2021
A simple calculator to return the final price with the input included percentage or vice versa

ccl A simple calculator in Golang and Cobra to return the final price with the i

Oct 10, 2022
Assanlab - JSON input data with counts on how many times you showed an ad on each individual domain

JSON input data with counts on how many times you showed an ad on each individua

Dec 31, 2021
Service that calls uzma24/project1 service, takes input from .txt file and prints JSON output returned from the service.

Service that calls uzma24/project1 service, takes input from .txt file and prints JSON output returned from the service. Program can take large input files.

Feb 6, 2022
Nuke-Net is a VERY VERY over powered and ridiculous web crawler that is well- very very noisy XD read more here
Nuke-Net is a VERY VERY over powered and ridiculous web crawler that is well- very very noisy XD read more here

Nuke-Net is a VERY VERY over powered and ridiculous web crawler that is well- very very noisy XD read more here

Dec 20, 2021
Read k8S-source-code notes, help quickly understand the K8S-code organization rules
Read k8S-source-code notes, help quickly understand the K8S-code organization rules

K8S源码阅读笔记 以下笔记针对 kubernetes V1.23.1(截至2022年01月01日最新版本),并不保证对其它版本的有效性 一、架构图 二、阅读前准备 由于kubernetes项目巧妙的设计和代码高度的封装性,建议在阅读代码前,尽可能的进行以下内容的准备: 1. 编程知识配备 编程语准

Feb 16, 2022
Provides the function Parallel to create a synchronous in memory pipe and lets you write to and read from the pipe parallelly

iopipe provides the function Parallel to create a synchronous in memory pipe and lets you write to and read from the pipe parallely

Jan 25, 2022
A Go library for connecting to HandlerSocket (github.com/ahiguti/HandlerSocket-Plugin-for-MySQL)

handlersocket-go Go library for connecting to HandlerSocket Mysql plugin. See github.com/ahiguti/HandlerSocket-Plugin-for-MySQL/ Installation $ go get

Jan 19, 2021
Yet another SIP003 plugin for shadowsocks, based on Xray-core

Yet another SIP003 plugin for shadowsocks, based on Xray-core Build go build Usage See command line args for advanced usages.

Jan 8, 2023
DipDup plugin for selective metadata indexing

DipDup metadata indexer DipDup service for indexing contract and token metadata. Based on TzKT indexer. For start synchronization of DipDup state TzKT

Nov 25, 2022
Tool for monitoring network devices (mainly using SNMP) - monitoring check plugin
Tool for monitoring network devices (mainly using SNMP) - monitoring check plugin

Thola Description A tool for monitoring network devices written in Go. It features a check mode which complies with the monitoring plugins development

Dec 29, 2022
Protoc plugin to generate contract tests for gRPC in Go

Deal - Go Introduction WE DO NOT SUPPORT THE SERVER SIDE YET This plugin allows us to write Consumer-Driver Contracts tests! Usage example Proto servi

Sep 3, 2022
This plugin allows you to start a local server with hot reloading with Esbuild

esbuild-dev-server This plugin allows you to start a local server with hot reloading with Esbuild Installation npm npm i esbuild-dev-server -D yarn y

Nov 4, 2022