FlowArm and WiFi

Can Flowarm (flobotics) use Wifi to talk to a NRF24L02 connected to the SSC32u? I have a laser/3D printer program that can use WiFi in this way.

Hi,

I assume you are referring to small WiFi serial transceiver modules, such as RB-Ite-19 and RB-Elf-41?

If so, here’s what I’ve figured out with a quick look over the specs:
The nRF24 transceiver chip uses SPI to communicate. The SSC-32U only has three valid communication interfaces: USB, UART 5V TTL serial (TX/RX pins) and through the Bee socket (also UART TTL serial, but at a lower voltage). Therefore, it would not be possible to connect it directly: you would need a SPI <> UART interface between the module and the SSC-32U.

Also, here are some extra details concerning those modules:

I checked out Nordic Semiconductor’s website and found no mention of this chip in their selection. You can see the selection for nRF24 series here. Therefore, if you bought a module sold as a “NRF23L02”, it is quite possibly a fake one.
See the image below (screenshot from Nordic’s website):

Please note that while the nRF24 chipsets use 2.4 GHz communication, it is using a proprietary protocol and not WiFi (which can also use the same 2.4 GHz but with a different method of communication). Therefore, a nRF24-based wireless communication module would not be compatible with WiFi (such as on your desktop, laptop or phone).

That device is most likely using a WiFi module then and not a ISM-band device such as the nRF24.

Now, having said all that, there are still ways to control a SSC-32U using wireless communication (there is a Bee socket after all!). Here are the requirements for such communication to work:

  1. The Bee-compatible module placed on the SSC-32U must use less than 150 mA. Most modules will not reach that limit, but some of the more expensive (and powerful) “pro” modules can use quite a bit of current.
  2. You will need a VCP (Virtual COM Port) on your computer connected by wireless to the module on your SSC-32U.

I’ve personally had great results in our internal tests using the following:

  1. A USB to Bee-socket adapter board for the computer. I’ve used RB-Spa-145 successfully and always keep one around my desk for testing.
  2. Two Bee-socket compatible modules that are paired (set to use the same network and optionally target each other specifically). I always keep a pair of RB-Spa-112 handy for this purpose.

I hope this information helps!

Sincerely,

Hi Scharette,

You’re right, I got my modules mixed up. The ESP’s (01, 32) were used for the Wifi connection. This is what the LaserGRBL control program uses. I suspect this capability could be added to FlowArm as well with minimum effort.

Maybe I can add a WiFi module to an USB to TTL coverter and accomplish the same thing; but it would be nice to have it incorporated into FlowArm.

I see that Bee is already incorporated, but I haven’t worked with Bee. I have become familiar with the ESP’s. Thanks to Random Nerd Tutorials.
WiFi would also allow comms from 'phone, or over internet.

The NRF24L02’s would be nice to use as well, but I haven’t had much success with them.

Thanks for the information!
Alan KM6VV

Hey Alan,

If you want to stick to WiFi, the best may be to do exactly that. You’d need two modules in this case:

  1. One WiFi module connected to your computer (USB?) that provides a VCP.
  2. Another WiFi module connected to the SSC-32U that provides a UART interface (could be connected directly to TX/RX/GND).

Those two modules would need to be pre-configured to act as a UART device on each end and use WiFi to pass the information along in a bi-directional fashion. This is certainly doable but not trivial.

FlowBotics Studio (the software environment used to create FlowArm) already supports TCP/IP natively.
That being said, the entire state machine for communicating with the SSC-32U is made for using the internal COM port module. To make it TCP/IP compatible a non-trivial amount of work would be required.
Since we do not have currently an official WiFi module for the SSC-32U, this would also be required, too.
I’ll take note of this as it is certainly a very interesting idea.

Sincerely,

Are you saying that FlowBotics already supports TCP/IP? Then it’s ready! No?
I’ll go with a USB-TTL cable to an ESP for now. Although I was hoping to let the PC handle one end.

Another question, Is there an FSA config file for FlowArm to run a SainSmart 6DOF arm? I’ve dummied up a file (I think), but I’m waiting for another SSC32U board to get here to test. Is there a spec for the FSA files somewhere?

Thanks,
Alan KM6VV

So I see you offer a Bluetooth Bee module, and also a WiFi Bee module ( ESP8266 WiFi XBee Module). I assume Flowarm works with Bluetooth, Bee WiFi too? Is XBEE a form of Bluetooth? I guess I’m confused. Bluetooth could be OK.

Is Flowarm set up for these other modules? What more is needed? The ESP8266 modules I’ve used just give me a TTL “channel”. How about Bluetooth and XBEE? similar?

Thanks,
Alan

Yup. You can read more about its base component for client (page 287) and server (page 289).

Having the ability to do TCP/IP only really means the module is there and usable. You’d still have to modify FlowArm to use that instead of the COM Port module (page 74).
Here’s an idea of where that is:`

We do not have any such FSA file for that arm since FlowArm only officially supports robotic arms from Lynxmotion (AL5 series). That being said, you can certainly make your own using the Lynxmotion AL5D.fsa as a starting point.

There is no official specs for the file, but it is basically the min/max angle of rotation of each joint. For the links, it also includes the lengths, which are typically measured from center of rotation to center of rotation.
If the arm you are trying to control has a different physical setup than the AL5 series then you may not be able to use this software effectively since it is designed with IK for the AL5 series only. There is no way to change this without modifying the code inside various modules.

A few things to unpack here:

  1. XBee is a “brand name of a family of form factor compatible radio modules from Digi International” (from Wikipedia). Many manufacturers ended up making modules compatible with this form factor and interface because it became quite popular and frankly it is convenient.
  2. Bluetooth is a “is a wireless technology standard for exchanging data over short distances” (also from Wikipedia). Of course, like for XBee, ZigBee, WiFiBee, etc., there are BluetoothBee modules.
  3. By design, the SSC-32U should work with all Bee-compatible products that require 250 mA @ 3.3 V DC or less. This is due to the on-board regulator (MCP1700T-3302B(E)-TT). Therefore, if your chosen Bee compatible product uses 250 mA or less of current, you should have no issue using it with the SSC-32U. For example, the specs of the ESP8266 WiFi XBee Module [RB-Ite-202] specify a current requirement of 215 mA. Provided that is the maximum, this device would be compatible.

It’s not just you. RF in general is confusing to most people, including those who work on it. There’s some truth into why stuff like antenna design is called a “dark art” in electrical engineering… :stuck_out_tongue:
I hope this info can help you (and others!) reducing some of that confusion!

If you want reliable robotics, I’d say simply “no, it is not OK”. I’d strongly recommend going for XBee, ZigBee and others. Maybe my personal experience has tainted Bluetooth for me but it has been nothing but an unreliable nightmare since the first time I’ve used it (for anything other than basic HID devices). And that is only concerning modules meant to work together… inter-connectivity between modules of different manufacturers is a different issue altogether.

As mentioned previously, FlowArm is setup to use a COM port (VCP). Therefore, any device that provides such a port can be used. This why I recommend using XBee or ZigBee paired with a USB adapter board on the computer side. The USB adapter board provides a USB <> UART interface that shows up as a VCP to your computer (and FlowArm). On the device side, it is a Bee-compatible module that the SSC-32U can use directly. This basically creates a virtual, wireless COM Port between the two modules.
Once configured properly, any of those Bee-compatible modules should provide a UART channel between the two (or more, depending on devices and configurations, such as mesh/star networks) modules.

All you need to ensure is that:

  1. The SSC-32U side has a module that can talk to it by UART. This can be either through the TX/RX/GND pins using 5 V DC digital lines (or through a voltage level shifter such as RB-Spa-879 if the module is not using 5.0 V DC signals) or through the Bee-compatible socket/interface if the module uses 250 mA or less @ 3.3 V DC.
  2. The computer side has a module that can show up as a VCP (Virtual COM Port) in the OS that FlowArm can connect to.
  3. The two modules are paired together. How this is achieved depends on the module type. For example, most XBee & ZigBee modules are by default in broadcast mode on the same network. Therefore, you could probably use them out of the box without issue.
  4. The SSC-32U has to have its baud rate configuration changed to matched the module (either Bee socket or through UART TX/RX/GND pins directly). Check the SSC-32U manual page 24 (lower half) for more details.

Yeah, pretty much. In most cases those wireless devices basically just provided a reliable, wireless virtual UART connection between two (or more) points. Most of them have extra configurations for advanced features, such as target/source IDs, network IDs, compression, baud rates, encryption, etc.

I hope this helps you along!

Sincerely,

Hi Scharette,

Thanks for the leads. I see what you mean now about using a ‘module’; I don’t have FlowBotics, yet (retired). Thanks for your assistance, looks like I’ve got some study ahead of me.

I built up a “SainSmart” type arm from SES parts. Similar to an AL5 arm, but no tubular elements.

I considered Bluetooth over XBEE because of the iPhone, It would be handy to use a 'phone to control an arm. I’d have to buy modules for the SSC- 32 anyway, so might just use the XBEE, as you’ve strongly recommended. WiFiBee is still on my mind.

Alan, KM6VV
moving along…

WiFi is definitely something that can be interesting and can then be used by a laptop/desktop/phone/tablet/etc. using one common interface.

Good luck with the project!
If you feel like sharing pictures, I’d be curious to see it! :slight_smile:
You may even want to consider making a page about it here.

I don’t know what happened to my post. I sent pix. How about making it a Servo Erector set project? An aluminum ring and plastic ‘plug’ (UHMW ?) would be needed.

I did order a bunch of XBEE stuff, back ordered. But I’ve been running the arm with a 6-channel servo tester, and with Flowarm via USB cable to the SBC32U.

ALAN