Best Plugin for Arduino/ESP32

I am trying to connect to an esp32 I have hooked up to my computer over USB from inside Grasshopper. I’m hoping to send live control data from my grasshopper script to the esp32.

I have looked around and only found two plugins, Firefly and Heteroduino, both of which seem to be abandoned (2015 and 2017 respectively), and according to this post it looks like are basically dead for Rhino 8.

Are there any good plugins anyone would recommend?

I don’t yet know my exact needs yet, so maybe Firefly is still a viable option, especially given that project form the quote is from January. How hard would it be to develop this tool myself? I consider myself a competent c# programmer, but this seems like it could be like trying to eat an elephant. Any advice is appreciated!

Hi @cameronbehning

I think firefly still works. Even in RH8.

Some of the Firefly components will work in Rhino 8, but I believe the Arduino components will not work. However, it should still work fine in Rhino 7. Firefly has a Generic Serial Write component which I think should work for you. It basically just sends whatever string data you pass into the component over the serial port. You would need to write your own script to be uploaded to the esp32 board to parse that string and do whatever you want. This is essentially what the Firefly Firmata does for you… but it’s tailored for specific boards… notably the Uno boards rev 3 or below. I don’t have an esp32 board to help debug or test things for you… but I would start by looking through the Firefly Firmata and see how it parses incoming string data. It isn’t all that complicated and from there you can likely cobble together the bits and pieces that you need. If you do end up getting things working, please feel free to post your arduino script here, so that others can learn how you did it. Best.

1 Like

Firefly fail in rhino 8 - #2 by sadra maybe helps

I’m running into a problem that I’ve seen mentioned in a few places.
1. Solution exception:Method not found: ‘Microsoft.VisualBasic.Devices.Ports Microsoft.VisualBasic.Devices.Computer.get_Ports()’.
This appears to be caused by the switch from .Net to .NetCore in Rhino 8. As the developer of the plugin, can you speak anything about updates or releasing the source code?

I can’t really say much. I have started working on a version 2.0 of Firefly and it would be a complete rewrite from scratch. The goal is to make it cross-platform compatible and it would target the latest .NET frameworks. However, it’s still in its infancy so I don’t really have a timeline as to when that would be released.

4 Likes

Have you tried Funken? It was originally developed by @ar0551 for ironpython, but if you want to use it with python3 in Rhino8 you can use my fork: GitHub - filipejsbrandao/GhFunken: Grasshopper interface for Funken Serial Protocol Toolkit. Andrea hasn’t yet merged the branches.

I had the same issue with serial communication, and I have just written a new plugin that solves the issue, both on Rhino 7 and Rhino 8. It is about serial communication only,
The name is superSerial
Firefly (great plugin, I have used it so many times!) unfortunately does not work with Arduino R4 wifi, because it is a newer board. With this plugin everything should work fine.

https://www.food4rhino.com/en/app/superserial

I hope it helps, please let me know!
Fabio

2 Likes