Skip to main content

ChatterSync Wireless USB Drive

Overview

If USB drives are bottleneck in your programming workflow, we want to solve that. ChatterSync is a completely free and open source solution to wirelessly transfer your NC files to any machine that supports USB flash drives, and can be put together for $30.

Our approach is simple — a Raspberry Pi that emulates a flash drive, but you can use it with our Visual Studio Code Extension to transfer files from your computer.

We’ve made it completely open source — just visit the ChatterSync repo on GitHub to get the BOM, SD card image, and the files to 3D print the enclosure.

Bill of Materials

  • Raspberry Pi Zero W — $15.00
  • MicroSD Card (16GB) — $8.47
  • MicroUSB to USB-A Cable — $6.64
  • (Optional) 3D Printed Case (STEP files included in this repo) Total cost: $30.11

Installation

  1. Download or clone the ChatterSync repository to your computer for all the files you’ll need.
  2. Download the latest version of the Raspberry Pi Imager and install it on your computer.
  3. Insert your MicroSD card into your computer and open the Raspberry Pi Imager. Select the MicroSD card as the target and select the provided chattersync.img file as the source. Click "Write" to write the image to the card.
  4. Configure your WiFi network by editing the wpa_supplicant.conf file on the MicroSD card. Instructions for this can be found here.
  5. Eject the MicroSD card and insert it into the Raspberry Pi Zero W. Connect the Raspberry Pi to your CNC machine using the MicroUSB to USB-A cable.
  6. Note the IP address of the Raspberry Pi. You can find this by logging into your router and looking at the list of connected devices. Alternatively, you can use a tool like Advanced IP Scanner to scan your network for the Raspberry Pi. The hostname of the Raspberry Pi is chattersync.
  7. Open the Visual Studio Code with the Chatter NC Editor Extension installed and select “Add Machine”.
  8. Follow the prompts, using the IP address of the Raspberry Pi as the “Machine Address”. The “Machine Name” can be whatever you want to call it. For “protocol”, select “sftp” (this will default to port 22). This is the most secure option. For “username”, enter chatter, and for "password", enter chatter. These are the default credentials for this image.
  9. Once you have added the machine, click the settings cogwheel and change the property basePath to /mnt/chattersync. This will allow you to access the USB emulation volume over the network.

You should now be able to connect to the Raspberry Pi and transfer files to your CNC machine.

Usage

Simply connect the device to your CNC machine’s USB port and then use an SFTP client to facilitate file transfer (of course, we recommend the free Chatter VSCode Extension). Please note: When files are updated, the device will pretend to disconnect and reconnect. This is normal behavior. It is NOT recommended to run NC file directly off of the device. Instead, copy them to the machine’s internal memory before running them. Same rules you would follow when using a USB drive.

Compatibility

We are simply emulating a flash drive so in theory, if you can use a flash drive, you can use this. Below is a list of what we and the community have tested. If you test this on a machine not listed below, please let us know or submit a Pull Request to the GitHub repo.

  • Tested with Haas Classic version 13 or later. If you have a big LCD screen, you're good to go. If you have a small LCD screen, go to your "List Program" screen. If you see an option for USB, you're good to go.

  • Tested with Fanuc 31i-B. This is a pretty good option if you don't have a dataserver.

  • Tested with Hurco machines back to 2018 (Winmax Mill version 10.2.208), should work with older machines as well but this has not been tested.

  • Tested on Siemens 840D SL (on a DMG Mori)

  • Tested with Bondor tube laser (unknown control version)

  • Tested with Okuma machines at least back to 2019, tested on OSP-P300MA and OSP-P300MA-H

  • Tested with YCM machines with Fanuc control at least back to 2014, tested on MXP-200FA

  • Limited compatability with Syntec controls (tested on 21ma), the automatic mount/unmount does not work properly so the device must be manually unplugged/plugged in when files are changed remotely.

  • Currently incompatible with Brother B00 control, causing a freeze on the file IO screen. We plan to test with another type of filesystem to see if this fixes the issue.

  • Haas NGC compatibility is questionable. We're doing our best to figure out why, but given that NGC controls all have file transfer built in natively, it's not a huge deal - just save yourself the time and use what is built into the machine.

  • Not compatible with Datron Neo Series 2, tested on 2022 Next Control

Customization

The provided image is a “blank slate” that will serve most shops’ needs. However, there are a few things you may want to customize.

The hostname of the Raspberry Pi is chattersync. You can change this by editing the /etc/hostname file or by using the raspi-config tool.

The default username and password are chatter and chatter, respectively. You can change these by using the passwd command. The default IP address is set to use DHCP. If you want to set a static IP address, you can do so by editing the /etc/dhcpcd.conf file.

The default size of the USB emulation volume is set to 2GB. If you would like to expand this, you will need to re-image the file located at /usr/share/chattersync.bin. Please note that you will lose all data on the USB emulation volume when you do this, so plan accordingly.

By default, the USB volume is “read-only” to the machine. If you change the .env file located in /usr/local/share/chattersyncdaemon and set READ_ONLY=false, the machine will be able to write to the USB volume. For lazy folks, the command is sudo nano /usr/local/share/chattersyncdaemon/.env. This has not been tested extensively, so use at your own risk.

Troubleshooting

If you are unable to connect to the Raspberry Pi, make sure that you have the correct IP address and that the Raspberry Pi is connected to your network.

If you are unable to connect to the Raspberry Pi, make sure that you have the correct username and password. The default username and password are chatter and chatter, respectively.

If you are unable to connect to the Raspberry Pi, make sure that you have the correct protocol selected. The Raspberry Pi only supports the sftp protocol.

If you are unable to connect to the Raspberry Pi, make sure that you have the correct port selected. The Raspberry Pi uses port 22.

If you are unable to connect to the Raspberry Pi, make sure that you have the correct path selected. The Raspberry Pi uses /home/chatter as the default path.

FAQ

Does this send my data to Chatter?

No.

Is this ITAR / CMMC compliant?

Yes, as long as you still comply with your internal requirements. It’s on your network, not ours.

Why is this free?

We’re working to build things that help shops. Sometimes that’s not feasible to make a product out of, so we just release this stuff for free.

Can I use this commercially?

Yes. You can use this for whatever you want.

Can I resell this?

Go for it! Maybe you can resell Chatter too.

Can I contribute to this?

Yes, please! We’d love to see what you come up with.

What if I have a problem?

Join our Discord Server and ping us. If you’re a developer, feel free to create an issue or pull request on the GitHub repo.