Computer-controlled Signal-randomized Translingual Neurostimulator

by quicksilv3rflash in Circuits > Electronics

48 Views, 1 Favorites, 0 Comments

Computer-controlled Signal-randomized Translingual Neurostimulator

20260404_211033.jpg

This project was commissioned by Diego in Canada in order to work with the MathAddict browser extension, whose GitHub repository may be found here, which itself builds off of MathAcademy. This system then controls the previously-built signal-randomized translingual neurostimulator using an Arduino Nano as a bridge between the computer and the translingual neurostimulator, enabling the neurostimulator to be USB-controlled.

Supplies

20260404_213106.jpg

Assembled TLNS boards

See ordering instructions and design files here:

https://www.instructables.com/Signal-randomized-Translingual-Neurostimulator-TLN/


USB-C to mini USB-B cable

https://www.amazon.com/Cable-Matters-Mini-Feet-Black/dp/B00UUBS0SS


Silicone-insulated wire, 20 gauge, 2 conductors

https://www.amazon.com/TUOFENG-Silicone-Electrical-Conductor-Parallel/dp/B0981P286D


Transistor, MPSA06

https://www.amazon.com/50PCS-MPSA06-NPN-Transistors-TO92/dp/B0DMT35ZLR


Resistors, 1.5k, 3.3k, and 10k, all 250mW

https://www.amazon.com/Molence-Resistor-Resistors-Assortment-Experiments/dp/B0C5N47J51


Capacitor, 10uF MLCC

https://www.amazon.com/Capacitance-Transparent-Electronic-Professionals-Enthusiasts/dp/B0GDS6L12N


Perfboard

https://www.amazon.com/Tulead-Perfboard-Prototyping-Circuit-Experiment/dp/B07V9LSJLZ


Arduino Nano clone with CH340 USB-to-TTL serial converter, best found through ebay -- item listings are named things like "MINI USB Nano V3.0 ATmega328P CH340G 5V 16M Micro-controller board for arduino"

https://www.ebay.com/itm/177244633950


Spar Urethane

https://www.truevalue.com/product/helmsman-11-5-oz-aerosol-high-gloss-spar-urethane/


Double-sided mounting tape

https://www.homedepot.com/p/Gorilla-1-in-x-1-67-yd-Black-Heavy-Duty-Mounting-Tape-6055002/308910063


Masking tape

https://www.homedepot.com/p/3M-ScotchBlue-1-88-In-x-60-Yds-Original-Multi-Surface-Painter-s-Tape-3-Rolls-2090-48EP3/305218415


Toothbrush

https://www.amazon.com/GuruNanda-DentalGuru-Gum-Massager-Toothbrush/dp/B0CHGQ4VHY


Distilled or deionized water

https://www.amazon.com/Distilled-Steam-Distilled-Drinking-Appliances-Medical/dp/B0FX43RGCT


Isopropanol (91%)

https://www.amazon.com/Isopropyl-Alcohol-Antiseptic-Topical-Solution/dp/B0FNK4FQLC


Rectangular food storage container

https://www.walmart.com/ip/Rubbermaid-Red-Plastic-Food-Storage-Container-3-Count/16664882


Lithium-Ion cells with built-in protection circuit (450mAh)

https://www.amazon.com/dp/B0CQ71ZS1X


Soldering iron (I'm using a MINIWARE TS100 -- since replaced by the TS101)

https://www.amazon.com/NovelLife-TS101-Soldering-Adjustable-Temperature/dp/B0BLNHB11B


Solder (SN100C alloy, 3% NC601 flux, 0.032" diameter)

https://www.amazon.com/FCT-SN100C-NC601-Clean-Solder/dp/B07RWRSYKK


AVR programmer (Atmel-ICE)

https://www.digikey.com/en/products/detail/microchip-technology/ATATMEL-ICE/4753379


Pin header (1x4, 2.54mm spacing)

https://www.digikey.com/en/products/detail/w%C3%BCrth-elektronik/61300411121/4846827


Personal computer (I'm using a CHUWI MiniBook X N100 -- since replaced by MiniBook X N150)

https://www.chuwi.com/product/items/chuwi-minibook-x-n100.html


Atmel Studio (version 7.0.2389)

https://sourceforge.net/projects/gcbasic/files/Support%20Files/ATMELCompilers/ATMEL7Studio_installer-7.0.2389-full.exe/download

Flash Modified Firmware to TLNS Board

20260330_130738.jpg
20260330_131011.jpg
20260330_131023.jpg
20260330_174924.jpg
20260330_175019.jpg

The modified TLNS firmware is found on this project's GitHub repository,

https://github.com/quicksilv3rflash/computer-controlled-signal-randomized-translingual-neurostimulator

at /2026_04_02_TLNS_firmware/TLNS/main.c


Follow the TLNS firmware flashing instructions at

https://www.instructables.com/Signal-randomized-Translingual-Neurostimulator-TLN/

steps 9 through 14, but using the modified firmware linked above.

For the firmware flashing process, it is necessary to have a battery attached to the TLNS board (or an alternate means of powering it), but the battery is not required for operation of the final device configuration, as it draws USB power from the computer it is connected to.

Device Schematic

modified_device_schematic.jpg

This schematic shows how the TLNS device is connected to the Arduino Nano, the five additional discrete components required to facilitate communication, and the single component which must be removed from the TLNS board to allow for proper operation.

Solder the Arduino Nano and Communication Bridge Circuitry to Perfboard

20260225_172635.jpg
20260225_180451.jpg
20260225_180505.jpg
20260225_181253.jpg
20260225_182847.jpg
20260404_195924.jpg
20260404_201921.jpg
20260404_202115.jpg
20260404_203508.jpg
20260404_203522.jpg

Solder the Arduino Nano to the perfboard, then add the communication bridge circuitry and output lead wires. The output wires from the MPSA06 transistor on the perfboard can now be connected to the TLNS device, across switch K1.

Install Local Drivers for CH340 USB-to-TTL Serial Converter IC

arduino_nano_v3_bottom.jpg

The CH340 integrated circuit on the Arduino Nano requires its own driver software to work properly with the computer. Sparkfun has created a detailed and useful guide to installing the required driver software at

https://learn.sparkfun.com/tutorials/how-to-install-ch340-drivers/all

There is also additional information -- and yet more potential driver installation files -- (though it appears partially out-of-date) at

https://sparks.gogo.co.nz/ch340.html

Flash Firmware to Arduino Nano

20260404_204410.jpg

The Arduino Nano firmware is found on this project's GitHub repository,

https://github.com/quicksilv3rflash/computer-controlled-signal-randomized-translingual-neurostimulator

at /2026_05_11_arduino_bridge_firmware/2026_05_11_arduino_bridge_firmware.ino


The Arduino Nano bridge firmware was written and flashed using Arduino 2.3.6 on Linux Mint. It *should* work with any version of the Arduino IDE, but I am noting the precise version number and operating system used in the event that there are any compatibility issues of which I am unaware. Open the firmware in the Arduino IDE, select the correct port (Tools > Port > [should be the only available option, /dev/ttyUSB0 on my system]), board (Tools > Board > Arduino Nano), and bootloader variant (Tools > Processor > Atmega328P (Old Bootloader) ), then press Ctrl+R and then Ctrl+U.

Remove Resistor R5 From the TLNS Device

r5_a.jpg
r5_b.jpg
20260404_193550.jpg
20260404_193725.jpg

Remove resistor R5 from the TLNS board. It is an imperial 0603 resistor (1608 metric), so it is easy to simultaneously reflow both of its solder joints and remove it from the board with the tip of the soldering iron.

Solder 3.3kOhm Resistor to the TLNS Device

3k3_resistor_detail.jpg

Solder the 3.3kOhm resistor to the TLNS device as shown.

Solder the Wires Between the Arduino Nano Board and the TLNS Device

20260404_195209.jpg
20260404_195149.jpg

The remaining wires between the Arduino Nano and the TLNS device can now be soldered.

Test Device With Webpage Invoking Web Serial API

Capture d’écran du 2026-05-08 22-10-23.png

The test webpage is available at

https://www.neuroplustech.com/gedge_serial.html

if you wish to use it to test your hardware configuration. It is also in the project's GitHub repository,

https://github.com/quicksilv3rflash/computer-controlled-signal-randomized-translingual-neurostimulator

as gedge_serial.html if you would prefer a local copy.

Design Notes

20260404_211826.jpg
20260404_211839.jpg
20260404_211852.jpg
20260404_211909.jpg
20260404_212006.jpg

The original design notes for this project may be of use to you, so they are included here.

Communication Protocol From the Computer to the Arduino Nano

Capture d’écran du 2026-04-29 09-48-57.png
20260318_115602.jpg

The computer is connected to the Arduino Nano using a USB cable, and the Arduino's CH340 integrated circuit identifies itself to the computer as a serial COM port. Commands are then sent from the computer to the Arduino Nano at 115200 baud. These commands are in the format F#####I##D###### (e.g. F00200I17D000500) -- while designed with all integer values in mind, and assuming that the numeric portions would be fixed-length, the implementation in the code allows for more flexible input. The first character can be any letter, as the code simply checks if it is a non-zero value, but the second and third characters must be 'I' and 'D'. The length of the numbers is unlimited (within the Arduino Nano's 2kB of available memory). The first number, frequency, after 'F' and before 'I', is read as a string and then converted with a .toDouble() function -- a decimal point could be used to request a fractional value if desired. The second number, intensity, after 'I' and before 'D', is read as a string and then converted with a .toInt() function -- it must be an integer between 0 and 20, inclusive. The third number, duration (in milliseconds), after 'D', is read as a string and converted with a .toDouble() function -- a decimal point could be used to request a fractional value if desired.

Mechanism of Operation of the Arduino Nano Bridge Firmware

20260318_121329.jpg

The Arduino Nano bridge firmware listens to the COM port at 115200 baud for a command in the format described in the previous step, and then converts it to a pulse train and an analog value produced using pulse width modulation.

Communication Protocol From the Arduino Nano to the TLNS Device

communication_protocol_detail.jpg

The Arduino Nano outputs a pulse-width modulated analog value and a pulse train -- the analog value defines the output pulse width of the translingual neurostimulator, ranging between 20 microseconds and 80 microseconds in 20 microsecond steps, and the pulse train defines the frequency with which the translingual neurostimulator produces these pulses -- one digitalWrite(2, HIGH); command in the Arduino corresponds to one pulse from the translingual neurostimulator.

Mechanism of Operation of the Modified TLNS Firmware

Capture d’écran du 2026-04-29 14-32-06.png

As with the previous signal-randomized translingual neurostimulator design, the selection of the active electrode is randomized -- the connected computer controls the duration and frequency of output pulses, but not which electrode is being activated; which electrode on the grid is activated is reselected pseudorandomly within the TLNS device for each output pulse.