Skip to content

zocker007/TCPi

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SigmaStudio TCPIP Channel Tools Box

What is this?

  • This is a Python package, with which you can:
    • Remotely control SigmaDSP through TCP/IP channel.
      • With SigmaStudio or Python programs.
    • Use ESP32 / PC as a client.
    • Use ESP32 / PC as the server.
    • Can also read data from SigmaDSP over TCP/IP channel (with Python programs).
    • Can read/write EEPROM.

Why?

  • I was playing with SigmaDSP (ADAU1701/ADAU1401), and often need to switch between USBi and FTDI FT232H.
  • With SigmaDSP TCP/IP channel, SigmaStudio and Python programs can share the same means to access SigmaDSP, no more switching.
  • Remote access is always a huge advantage:
    • Can control any SigmaDSP no matter where it is, as long as it's TCP/IP reachable. Very convenient for maintenance.
    • Configurations can be modified and deployed over multiple SigmaDSP devices on-demand, with just a few lines of code.
    • No need to squeeze huge code into a tiny MCU (like ESP32), parameters can be calculated remotely and deployed onto devices.
    • UI controls (like push buttons) no longer need to be "on-device", you can control SigmaDSP with just your phone.

Design and Features

  • Coverage of SigmaDSP's memory space:
    • Can access data of program RAM, parameter RAM, and also EEPROM, just assign the address to read/write.
  • Can also read data from SigmaDSP
    • Not only writing data to, but can also read data from SigmaDSP via TCP/IP channel (with Python programs).
  • Support "reset" command:
    • With ESP32 as the server, SigmaDSP and ESP32 itself will be reset upon receiving the "reset" command.
  • A client can be:
    • A PC running SigmaStudio
    • A PC running Python programs
    • An ESP32 running MicroPython
    • A smart phone
  • A server can be:
    • A PC with Python environment
    • An ESP32 with MicroPython environment
      • Using its I2C port to access SigmaDSP.
  • Portability:
    • The same package can be used on PC / ESP32 without modification required.

How to use it

  • For using ESP32 as the server:
    • Download TCPi_uPy.rar.
    • Unzip it and edit the following items in file config.py:
      • LED, on your ESP32 module:
        • ON_BOARD_LED_PIN_NO, ON_BOARD_LED_HIGH_IS_ON
      • I2C connection:
        • I2C_SCL_PIN_ID, I2C_SDA_PIN_ID: with which pins the ESP32 should use to connect with ADAU1701.
        • Avoid some pins of ESP32, see ESP32 GPIO guide.
      • WiFi:
        • SSID, PASSWORD
    • Upload all files to ESP32.
    • In ESP32's terminal interface, type import test_tcpi_upy, it will show its IP when the WiFi connection is established.
      • The default port number is 8086.
      • You can write import test_tcpi_upy into file main.py, so it will run as a Sigma TCP/IP channel server after each boot.
    • Follow AD's instructions for connecting the server with SigmaStudio.
  • Please also see here and here for other examples.

Test Results

Supported Chips

  • ADAU1701
  • ADAU1702
  • ADAU1401
  • ADAU1401A

Limitations

  • Not high speed, obvious latency.
  • Need more memory to accommodate the data SigmaStudio uploads all at once. ESP32 with 8MB PSRAM is preferred.

Dependencies

About

SigmaStudio TCPIP Channel Tools Box.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 99.4%
  • Python 0.6%