Arduino Firmata Actor
-
@bonemap said:
The procedure to connect all the elements appeared to require a stepped process, which has the Firmata actor dropped into a patch AFTER setting up the Isadora Serial preferences. Is this the expected behaviour - activating port with the correct device, setting the correct baud rate and then going back into the Communications menu to check Enable Serial Ports. The above process appears to be required before the Firmata actor goes into a patch otherwise, it does not initialise effectively?
I don't think this order is required. When serial communication is disabled or undefined:
- When the Firmata actor is activated (i.e, by dropping it into a Scene or by entering a Scene that contains it), it requests the firmware version from the board. In this case the 'firmware' output will say "???" because it received no response.
- Similarly, if you click the 'gen spec' input, the actor obviously can't receive a response regarding the board capabilities, and the 'status' output will be stuck on 'get board info'.
Both of these would be the expected behavior if the serial port isn't properly set up and enabled.
But after dropping the actor into the scene enabling the serial ports caused my Arudino (running StandardFirmata.ino v2.5) to send the firmware report automatically. So for me the following sequence worked in a new patch.
- Create New Patch and add Arduino Firmata actor.
- Add Arduino Firmata - firmware output says '???' because it is not receiving data from the board.
- Choose Communications > Serial Port Setup... and setup serial port and baud rate.
- Choose Communications > Enable Serial Ports
After a moment, the board sends its firmware data and the 'firmware' output changed to 'v2.5'. In addition, because the default settings on the actor requested four analog inputs, and I have a sensor on A0, the "pin 14: analog input" started outputting data ope the actor.
quickly tested with two sensors: an analogue pulse sensor and a digital PIR sensor. I was unable to get both sensors reading into the same Firmata actor. They worked just fine independently and concurrently within their own Firmata actor as represented in the screengrab here.
Did you try using those two inputs at the same time in the Firmata Test App mentioned in the documentation? Do they work there?
I also noticed an immediate crash when attempting to cut and paste the Firmata actor between patches that already had Serial in Watcher.
I tried the reproduce this but was unable. Crash reports are appreciated if you can zero in on the report related to this crash. I did however get multiple dialogs saying The input buffer for the Serial In Watcher - Text' actor is full! Accumulated data has been discarded. That's because the Serial In Watcher - Text actor is going to be very confused by the Firmata data, as it has no line endings. This error would be expected if the two actors are on the same port and you're receiving Firmata data on that port.
Or we just say the two formats don't mix in an open patch?
As long as they are on different serial ports, it should be OK.
I was also unable to assign different port numbers and devices to the Serial in Watcher and run the Firmata actor concurrently, but this might require some additional testing.
I would be surprised if this is the case, but frankly I don't have multiple serial devices to test.
Best Wishes,
Mark -
@mark said:
try using those two inputs at the same time in the Firmata Test App
Hi,
[EDIT: we now have our own version of the Firmata Test App that is compatible with Big Sur. If you're on any version of macOS, you should be using this version. The latest version can always be found in the releases section of Firmata Test App on GitHub]
The link to the Firmata Test App appears to lead to a MacOS .dmg file from 2012 that will not load onto my computer.
I have a bit of gear here Uno and Micro boards with a variety of sensors and relays. Keen to test this out and get a great result from it. Is there a Firmata Test App for Mac OS 11 that I have missed? or do I need to find an older operating computer to test with?
Best Wishes
Russell
-
@bonemap said:
The link to the Firmata Test App appears to lead to a MacOS .dmg file from 2012 that will not load onto my computer.
The minimum system version inside the app says 10.4. What version of macOS are you trying to run it on? I haven't tried it on Big Sur, but it works great for me on Mojave.
Is it a security issue? Did you try control-clicking the app and choosing "Open" and then saying it's OK to run it?
Best Wishes,
Mark -
@mark said:
tried it on Big Sur
Yes, I am on Big Sur with these patches because I am trying to help you out with beta testing. Anyway, I have persisted with the testing on Mac OS 11.1 so far this is what I have...
Tested PIR sensor to single digital input pin - appears to be working well.
Tested Pulse Sensor to single analogue pin - this worked initially but now I have a persistent signal noise on only one analogue pin. the noise persists even no sensor connected to the boards but I can’t appear to make any other analogue input pins active. I have deleted the plugin and reinstalled ... deleted preferences/ restarted computer but the noise on only a single analogue pin persists. It also appears the same on a second port with a Firmata Actor when placed in the scene editor. Because of this I can't recreate the success I had this morning reading an analogue Sensor.
I have been unable to use two boards with the Firmata actor at all. I can assign the boards in the serial port setup and can access them concurrently through Serial in Watcher actors when setup in a separate Isadora file. But with the Firmata actor only one board appears to initialise through one of the Firmata actors the other Firmata actor remains with "???" or "getting board info". I have tried this about a dozen times with no success.
I have also had no success with any analogue inputs since first using the plugin this morning with a Pulse Sensor. I have several Pulse Sensors and I can get none of them to work anymore on analogue pins.
I have also attempted to use 3 pin accelerometers with the analogue pins through the Firmata actor to no avail. Just to be sure I ran two boards with accelerometers each using Serial In Watchers and this worked without any problem so I know the boards and the sensors are all functioning correctly with standard Arduino sketches and serial communication.
I also got an error in the text editor for Line 44 but I could not scroll any further than Line 43 - so I don't know if there was a Line 44 that was outside the bounds of the scroll or if something else was going on.
I was able to get digital output to operate a relay and PMW to operate a led without any problems.
This is looking good.
Best Wishes
Russell
-
Hi:)
So, for now, I have tested with an Arduino Mega 2560 and at least there is a signal comming through. But also I had problems getting anything out of the pulse generator. I get one signal, that is definetly not my pulse... (it the little heart beat thingy;)I also, today, tested a bare conductive board, but with that, It tells me that Standard Firmata is uploaded, but I cannot test it afterwards, all I see is a blank app when I choose the board. Also, the board doesn't work if I try in Isadora. I tried to look it up, and it seems that one needs to do something else with the Bare Conductive board because it has its own programming.
I had some problems replying here, but now it somehow works...All the best
Eva -
@mark said:
it works great for me on Mojave
OK! I have wound my testing back to my MBP with 10.14.6 Mojave and incorporated testing with the Test Firmata app. I can see now why the test Firmata app is so critical, but it is hardly future proof having to go back 2x Mac OS releases to access a critical test app - it is not going to be great moving forward. We really need a solution for Catalina and Big Sur - don't we?
I could not find any clear specification online about which boards are supported by Firmata protocol and which are not. I have a couple of Arduino Micro boards (which I love using because they are so small, using a magnifying glass to read the PIN numbers etc.), but these don't appear to be recognised by the Firmata Test app in Mac OS Mojave. However, the Arduino Micro I tested on Big Sur machine did allow me to successfully control PMW and digital outputs through Isadora - just not the analogue inputs.
The Arduino Uno appeared in the Firmata Test app on Mojave and I could see the analogue pins working with an accelerometer attached. So it is unclear why the Arduino Uno failed to read the analogue inputs when attempting to access through the Firmata actor in Isadora. On both test machines I could only get a reading from one analogue input at a time - perhaps I have something wrong with these inputs?. Not having the Firmata test app for Mac OS beyond Mojave 10.14 makes the task a bit hit and miss.
Best Wishes
Russell
-
@mark said:
@tonyschuite @bonemap @liminal_andy @juriaan
So, I've listened to all you have to say, and made substantial changes to the actor. I've explained how it's working now in this video, as it was easier to do this than to write it all out.
Please let me know if you think will help make this accessible to beginners and students who might use this actor.
Best Wishes,
MarkI think you nailed it :). These are precisely the changes needed to open up the actor to a lot of entry-level use cases. Absolutely love it. It may still be interesting in the future to have a dedicated firmware file and user actor that, while rigid and restrictive, can extend to boards that do not support Firmata specifically but do support the general firmware language (thinking of some of those ESP32s, etc.).
Fabulous actor! I need to aside aside more time to play with it...
-
@liminal_andy said:
but do support the general firmware language (thinking of some of those ESP32s, etc.).
So, ESP32's do not support Firmata? (I know zero about these boards. Thanks for educating me.)
Best Wishes,
Mark -
I've recompiled and notarized the Firmata Test app so that it will run on Big Sur. I just tested it on my Apple M1 machine running Big Sur and it worked as expected with my Arduino. (It was running under Intel emulation.)
Download the TroikaTronix version of the Firmata Test App v1.1 for MacOS
Let me know how it goes for you.
Best Wishes,
Mark -
@mark said:
recompiled and notarized the Firmata Test app so that it will run on Big Sur.
Thanks!
Best wishes
Russell
-
@bonemap said:
Thanks!
You should debug all connections and signals using the Firmata Test app for now, as the would be more of a known quantity that my new actor. If it works with the test app, it should (in theory) work with the new actor.
Best Wishes,
Mark -
@mark said:
If it works with the test app, it should (in theory) work with the new actor.
ok...
cheers
Russell
-
There appears to be a discrepancy with the Analogue input pins. Only one Analogue pin on the Firmata actor shows activity. With the same board, port and setup the Firmata test shows activity on all analogue inputs. I found this to be the case with the Mojave and Big Sur machines
Best Wishes
Russell
-
There appears to be a discrepancy with the Analogue input pins. Only one Analogue pin on the Firmata actor shows activity. With the same board, port and setup the Firmata test shows activity on all analogue inputs. I found this to be the case with the Mohave and Big Sur machines
Good find. You're right. Fixed v0.8.1.
Best Wishes,
Mark -
-
@tonyschuite @bonemap @liminal_andy @juriaan
So the former user @deflost informed me by email of another issue with the Arduino Firmata actor: after designing the setup, quitting Isadora and coming back, the Arduino wasn't reporting analog data unless the 'gen spec' input was triggered, which wiped out their edits to the PIN specification.
This is fixed in v0.8.2. I've moved the download to the first post in this thread.
I had chosen to ask only for the firmware version upon initializing the actor, as this message is short. But to deal with every possibility, I'm now asking for all the configuration information Firmata might send, which can be several hundred bytes. This means upon entering a scene, the actor will send this request and the Ardunio will be briefly "dead in the water" while it responds and sends all the data.
Not sure what can be done about this. Each copy of the actor has its own specification, and thus you really do need to update the configuration on what the hardware reports. But there is now going to be a more significant chunk of down time as you transition from one scene to the next and the Ardunio sends this block of data in response to the actor being activated.
In any case, let's see how this one settles.
Best Wishes,
Mark -
Dear All,
Bumping this thread so you'll know there is a Aduino Firmata v0.8.2. In addition to the fixes listed in the previous thread, I've improved the documentation.
The download now lives in the first post in this thread.
Best Wishes,
Mark -
@mark said:
let's see how this one settles
Mac Big Sur there appears to be a bug with the 'help' and info pop out associated with using the analog pinouts. The info pop out appears to not display the help text when set to analog pins. I getting further inconsistency when attempting to assign "help" text to 'input' pins to actor outputs...
Best Wishes
Russell
-
@bonemap said:
Mac Big Sur there appears to be a bug with the 'help' and info pop out associated with using the analog pinouts. The info pop out appears to not display the help text when set to analog pins. I getting further inconsistency when attempting to assign "help" text to 'input' pins to actor outputs...
Yep. For the actor outputs, it was showing the input help instead of the output help. Fixed v0.8.3.
Download is in the first post at the top.
Thanks,
Mark -
Hi! Please can anyone confirm whether the Arduino Firmata actor is designed to work with Arm based Macs. The actor is visible on my Intel based Mac - I can drag it into the workspace. However on my M1 Mac Mini I cannot locate it in the "Communications" section after the actor has been uploaded to the TroikaTronix Actor Plugins folder and then Isadora has been restarted. I'm eager to progress with @bonemap 's Arduino sensor setup!
Many thanks for your help! 😀
Best wishes Simon