Jump to content

Electrical Engineering / Electrical Instrumentation question.

-YETI-

Good morning, i have an Electrical and Communications background and i have a customer who asked for a solution to a problem i feel unqualified to answer.

 

My Customer has a need to send individual Digital and Anagoge inputs via an Ethernet Network then convert them back to individual outputs.

 

I'm struggling with what words to use to describe this. Any help would be greatly appreciated.

 

Even an digital 0v to 5v only system would be better than the nothing we currently have.

 

Thanks

 

 

rosco data via ethernet.PNG

Link to comment
Share on other sites

Link to post
Share on other sites

9 minutes ago, -YETI- said:

My Customer has a need to send individual Digital and Anagoge inputs via an Ethernet Network then convert them back to individual outputs.

I think the high level answer to this is:

Arduino --(USB UART)--> RasPi (or similar SBC) --(Ethernet)--> [optional switch/router] --(Ethernet)--> RasPi --(USB UART)--> Arduino

The coding for such an application wouldn't be especially difficult (I know at least Java has pretty easy to use serial and networking libraries; sending Arduino input values over serial is ECE102 material).

 

The RasPis themselves have some amount of discrete IO, but I'm less well versed with that (still may be an option). Keeping the IO separate from the controlling device allows for one to be upgraded without the other (and Arduinos are cheaper than RasPis if you derp something).

 

Heck, there are even some Arduino-compatibles that have an Ethernet port built right in, so you could skip that step (but you'd lose the high-level management aspects that a RasPi would give you).

Main System (Byarlant): Ryzen 7 5800X | Asus B550-Creator ProArt | EK 240mm Basic AIO | 16GB G.Skill DDR4 3200MT/s CAS-14 | XFX Speedster SWFT 210 RX 6600 | Samsung 990 PRO 2TB / Samsung 960 PRO 512GB / 4× Crucial MX500 2TB (RAID-0) | Corsair RM750X | Mellanox ConnectX-3 10G NIC | Inateck USB 3.0 Card | Hyte Y60 Case | Dell U3415W Monitor | Keychron K4 Brown (white backlight)

 

Laptop (Narrative): Lenovo Flex 5 81X20005US | Ryzen 5 4500U | 16GB RAM (soldered) | Vega 6 Graphics | SKHynix P31 1TB NVMe SSD | Intel AX200 Wifi (all-around awesome machine)

 

Proxmox Server (Veda): Ryzen 7 3800XT | AsRock Rack X470D4U | Corsair H80i v2 | 64GB Micron DDR4 ECC 3200MT/s | 4x 10TB WD Whites / 4x 14TB Seagate Exos / 2× Samsung PM963a 960GB SSD | Seasonic Prime Fanless 500W | Intel X540-T2 10G NIC | LSI 9207-8i HBA | Fractal Design Node 804 Case (side panels swapped to show off drives) | VMs: TrueNAS Scale; Ubuntu Server (PiHole/PiVPN/NGINX?); Windows 10 Pro; Ubuntu Server (Apache/MySQL)


Media Center/Video Capture (Jesta Cannon): Ryzen 5 1600X | ASRock B450M Pro4 R2.0 | Noctua NH-L12S | 16GB Crucial DDR4 3200MT/s CAS-22 | EVGA GTX750Ti SC | UMIS NVMe SSD 256GB / Seagate 1.5TB HDD | Corsair CX450M | Viewcast Osprey 260e Video Capture | Mellanox ConnectX-2 10G NIC | LG UH12NS30 BD-ROM | Silverstone Sugo SG-11 Case | Sony XR65A80K

 

Camera: Sony ɑ7II w/ Meike Grip | Sony SEL24240 | Samyang 35mm ƒ/2.8 | Sony SEL50F18F | Sony SEL2870 (kit lens) | PNY Elite Perfomance 512GB SDXC card

 

Network:

Spoiler
                           ┌─────────────── Office/Rack ────────────────────────────────────────────────────────────────────────────┐
Google Fiber Webpass ────── UniFi Security Gateway ─── UniFi Switch 8-60W ─┬─ UniFi Switch Flex XG ═╦═ Veda (Proxmox Virtual Switch)
(500Mbps↑/500Mbps↓)                             UniFi CloudKey Gen2 (PoE) ─┴─ Veda (IPMI)           ╠═ Veda-NAS (HW Passthrough NIC)
╔═══════════════════════════════════════════════════════════════════════════════════════════════════╩═ Narrative (Asus USB 2.5G NIC)
║ ┌────── Closet ──────┐   ┌─────────────── Bedroom ──────────────────────────────────────────────────────┐
╚═ UniFi Switch Flex XG ═╤═ UniFi Switch Flex XG ═╦═ Byarlant
   (PoE)                 │                        ╠═ Narrative (Cable Matters USB-PD 2.5G Ethernet Dongle)
                         │                        ╚═ Jesta Cannon*
                         │ ┌─────────────── Media Center ──────────────────────────────────┐
Notes:                   └─ UniFi Switch 8 ─────────┬─ UniFi Access Point nanoHD (PoE)
═══ is Multi-Gigabit                                ├─ Sony Playstation 4 
─── is Gigabit                                      ├─ Pioneer VSX-S520
* = cable passed to Bedroom from Media Center       ├─ Sony XR65A80K (Google TV)
** = cable passed from Media Center to Bedroom      └─ Work Laptop** (Startech USB-PD Dock)

 

Retired/Other:

Spoiler

Laptop (Rozen-Zulu): Sony VAIO VPCF13WFX | Core i7-740QM | 8GB Patriot DDR3 | GT 425M | Samsung 850EVO 250GB SSD | Blu-ray Drive | Intel 7260 Wifi (lived a good life, retired with honor)

Testbed/Old Desktop (Kshatriya): Xeon X5470 @ 4.0GHz | ZALMAN CNPS9500 | Gigabyte EP45-UD3L | 8GB Nanya DDR2 400MHz | XFX HD6870 DD | OCZ Vertex 3 Max-IOPS 120GB | Corsair CX430M | HooToo USB 3.0 PCIe Card | Osprey 230 Video Capture | NZXT H230 Case

TrueNAS Server (La Vie en Rose): Xeon E3-1241v3 | Supermicro X10SLL-F | Corsair H60 | 32GB Micron DDR3L ECC 1600MHz | 1x Kingston 16GB SSD / Crucial MX500 500GB

Link to comment
Share on other sites

Link to post
Share on other sites

 

digital:

voltage - Std 0 and 5vdc

bandwidth - doesn't matter

ristime - dosent matter

delay - under 60 seconds

etc.

 

analog:

voltage  0 to 12dc or 0 to 16dc

resolution - doesn't matter

noise - doesn't matter

bandwidth - doesn't matter

phase - doesn't matter

channel to channel delay - doesn't matter

etc.

 

Just got to get basic voltages to a remote site via ethernet. no complex signals.

Link to comment
Share on other sites

Link to post
Share on other sites

You can of course use an ADC and a DAC pair to  convert analogue to digital  and digital to analogue.

Depending on the quality and price of the ADC and DAC and the voltage reference  you will have some resolution (ex 10 bit, 12 bit, 14-16 bit ) and a specific number of samples per second ( ex 5000 samples per second of 12 bit values or 20 000 samples 10 bit values)

 

You can basically get the digital inputs and the analogue inputs and package them in a tcp/ip packet with an unique ID (a number that increments would probably be enough) and on the other end of the ethernet cable you could have a microcontroller or something that receives this package and sets the dac to output those values.

 

Depending  on sample rate , you could be fine even with 10 mbps ethernet or you could even NOT use ethernet logic, but simply use the ethernet cable as a serial cable and talk using RS485 or RS232 between two microcontrollers  - with good ethernet cable you can do 1-2 mbps or more with built in serial in microcontrollers.

 

I mean, if you use ethernet just to make connection between two devices, then you don't need microcontrollers with ethernet stuff built in, or you don't need extra chip to do the ethernet part. If you actually need to push the data to a switch or something, then you'd need the chip to have ethernet functionality or to have enough IO to connect an ethernet chip to it.

Link to comment
Share on other sites

Link to post
Share on other sites

Any background on what this is for? From what it sounds like speed and noise are of zero concern, so even an Arduino Nano could probably do the job. For ethernet interfacing, look up the schematic for the Arduino Uno ethernet shield and build it onto your board. It shouldn't be too hard.

 

With a voltage divider, you have enough ADC channels on the Nano to do your analog inputs. Pick an economical 4-channel SPI or I2C DAC, then add some amplifiers afterwards to get the required output range. You could even do PWM on the Arduino, but it's crude (Arduino uses something like a 400 Hz PWM) and you might not have enough pins. Not sure how close you need to get to the rails (0 V and 16 V), but you might get away with something crappy like an LM324. Otherwise, dig through your favorite supplier's parametric search engine. 

 

The thing that makes this doable with a Nano is the lack of speed. You've got all the time in the world to update, so lazy polling can actually work. 

 

If cost isn't a concern, then you can do all of this with PLCs.

 

Pretty boring project if you ask me - seems like basically nothing matters. Might need to factor in the cost of additional coffee / tea needed to stay awake during the design process.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×