Test and Measurment Rack with distributed voltage reference. - Page 1
Forum section: electronics / general

author: Doctorandus_P
author_rank: Super Contributor
timestamp: May 31, 2025, 06:36:10 pm
content: Every now and then, I'm working on the design of a rack system for test equipment. Yes I'm aware of PXI, and multiple DIY and even commercially available attempts). One of the things I'm struggling with is what signals to put on the bus.I wonder if it's useful to design in an analog pin to be used as a (for example 10V) voltage reference, so the voltage reference can be shared with multiple modules over the bus. Could this work, or is it too likely to pick up too much noise? My accuracy goal is that the 10V reference deviates less then 1mV between all the modules (Hopefully 100uV).I am guessing there is just a small margin where this could be useful. If a module does not need high accuracy, then a 10ct reference is good enough. If a module needs high accuracy (I.e an EUR 15 Reference), then I expect it would pick up too much noise anyway. The bus length is expected to stay below 400mm. Sharing the voltage reference will also eliminate differences in drift between the modules.My goal is to open source the bus, and at least a bunch of starter modules, but keep the option open to attempt to make some money with it. I also want to keep the cost down. For example, DIN41612 or DIN41617 connectors are out because their cost is too high. Minimum cost of entry would be: Matrix board + 90 degree IDC connectors and a flatcable with a bunch of male connectors, but a more rigid backbone from FR4 and a GND plane for shielding has already been designed.So adding an analog voltage reference on the bus is:1. Good idea, it can save some cost.2. Destined to fail, a connector pin is too valuable for that.3. Meh, try it out. Revise the standard and design it out if it does not work.

author: Simmed
author_rank: Frequent Contributor
timestamp: June 02, 2025, 05:23:43 am
content: DIN41612 ?3 rowspossibility for guard ring +force +sense

author: Doctorandus_P
author_rank: Super Contributor
timestamp: June 02, 2025, 09:10:55 am
content: Oops, my mistake. I meant DIN41612 was out, but I wrote DIN41617. I did not realize the difference between those two numbers / connectors.Adding a guard ring would be nice indeed, but I don't have the pins to spare. I'm already quite certain of the connectors I'm going to use: 44 pin dual row female headers for the backplane, and 40 pin male IDC headers for the boards themselves. Even when you buy them from brands such as Amphenol, these cost around 50ct (100+) and that is less than 1/4 of the DIN416xx connectors. More pins is nice, but also cost money, and I want to make the cost as low as possible because it's also aimed at the DIY market.I also very much like the idea of IDC / Flat cable compatibility. That makes it easy to use a module outside of the rack during design and testing. This also further lowers the threshold to entry, as a flatcable with a row of connectors can be used as the backbone, and an FR4 backbone can be omitted.Force & Sense?How do you implement that on a bus system with an unknown number of daughter cards?A little bit later...Force & Sense is a very nice idea.I was already thinking of adding some extra analog pins, but deleted that text from my opening post to keep it short.The Idea is to have one module (for example DMM) with a fancy (= expensive) ADC, and then use daughter boards only for signal conditioning and switching. Sort of like a scanner card in benchtop DMM, but then distributed over the whole rack.I'm now going to put in the specification that a module that uses the 10V reference must also be able to put the (buffered) 10V reference back on the ADC measurement pin, but only on request. High-Z is also mandatory, so the fancy ADC / DMM can read from another daughterboard. And with analog switching already mandatory, an extra channel is cheap. If daughterboards only have cheap opamps to buffer the reference (I.e. TL082) then the master can even measure the opamp offset and (attempt to) apply some correction, sound an alarm, keep an eye on drift etc. At the very least it improves confidence in the measurements.To reduce leakage, all of the analog pins can be physically removed from daughter boards that do not use it. This is optional and can be done by the end user, but I'll put it in the documentation, and define these pins on the accessible row of the header.

author: TizianoHV
author_rank: Regular Contributor
timestamp: June 03, 2025, 07:02:14 am
content: Some possible problems:-A faulty board or somethig else drags down the ref voltage causing an error in all modules.-All boards are tied to a common ground (no floating measurements possible). What are you going to measure with this? (batteries...)-Will it measure only 10V? if you have multiple ranges/functions the internal reference may not be the biggest source of drift (voltage dividers....).

author: Doctorandus_P
author_rank: Super Contributor
timestamp: June 03, 2025, 12:37:16 pm
content: Quote from: TizianoHV on June 03, 2025, 07:02:14 amThat is not a problem if you have feedback. Even with no feedback though the rack, the voltage reference module itself can monitor the voltage and send an alarm if it detects a fault.Quote from: TizianoHV on June 03, 2025, 07:02:14 amYes, that is a serious issue. I'm planning on several high current modules, such as power supplies or a small SMU and that makes accurate external measurements impossible without floating the reference. On my mainframe bus, I have 8 pins for "power" GND, and one pin is reserved for a "Clean GND". The clean GND is a star GND, only used for reference and never has current (maybe a uA or two).But still, If I make a module with a floating front end and it's own (cheaper) reference. Adding a relay to measure the fancy internal reference can be used for calibration and compensation of slow drift. For the added cost of a relay, putting in a more accurate reference in the floating part is maybe more sensible.Quote from: TizianoHV on June 03, 2025, 07:02:14 amProgrammable voltage power supplies are also part of the system. Making the voltage reference programmable is an interesting option, but if it's below 1V, then problems with GND become more severe, Going over the power supply voltage (with a step up) would also require the modules to have protection. I think this is better reserved for plugging in external cables.Quote from: TizianoHV on June 03, 2025, 07:02:14 amMy goal is to make an affordable, compact and universal test and measurement system. Power supplies, DMM, function generator, all the usual bench stuff, but also easily extensible with custom modules. I want to keep the BOM cost of modules below EUR50 (to start with), more complicate / expensive modules later. So instead of a Pickering programmable resistor, think of an Eastwood RM550 programmable resistor (EUR100), but then on a board that fits in a rack, and takes up 20mm of width on your desk. Internal Linux PC is an option, but interface to an external PC is possible too. The module is going to be powered with a raw 24Vdc. Yesterday I gathered some info of schematics and software for a JBC C210/C245 clone (AxxSolder). I want to ditch the USB stuff and the display, and it uses the internal 24V power supply. so the module becomes cheap to make. Display functions is going to be transferred to PC software, or an external "universal" display module that can be used for multiple instruments. Maybe the module will get a simple UI. A few buttons for the temperature up/down or fixed temperature setpoints, but the fancy things are going to be external, and communicated over the bus only. (Yes, that's a compromise)One module I'm working on now is a controlled heater. It uses a BJT (Think TO220, TO247 for higher power) both as heating element, and as temperature sensor. so you can clamp it on an opamp or crystal, and log temperature behavior. Or put it on a heatsink to measure it's thermal resistance. Another module I'm working on has four floating analog inputs for sensors. This module can interface with low voltage sensors. such as:* Load cell* Wheatstone bridge (weight scale)* PTC temperature.* Maybe even measure high voltage with a fixed divider, but dividing it down to 50mV is not ideal.Each sensor module has a resistor to identify it. so the module know whether it's a load cell (1kg 5kg 20kg, etc), shunt resistor (for measuring uA to 100A). So whatever sensor cable you plug into it, it recognizes it, loads appropriate calibration values and makes formatted data available on the bus. I have the low level bus working (Packet interface over serial RS485, but am still working on defining higher level protocols, probably a SCPI based.

author: nctnico
author_rank: Super Contributor
timestamp: June 03, 2025, 10:46:25 pm
content: I'd probably attack this problem with a distribution amplifier setup which has a sense to each module so the error in the ground (0V) can be compensated. I'm not seeing how the star ground is going to work as current will be shared between modules causing a voltage differential.I also don't see why DIN41612 connectors are too expensive. They start at prices less than 2 euro and I'm not looking very hard.

author: Doctorandus_P
author_rank: Super Contributor
timestamp: June 04, 2025, 10:21:44 pm
content: "Star Ground" was a bit of a misnomer. What I meant is more like a remote sense / feedback line for the remote GND. But for accurate measurements, I am going for both completely isolated modules, or for differential measurements, or both. A separate sense line to each module is a big No-No. My goal is to make the rack extensible to at least 20 modules. Adding a few differential analog wires that can be multiplexed may work though.To keep pin count lowish, I decided to go mostly serial. I've got Uart / RS485 @115k2 (already working for 10 years, also over 30m of CAT5 cable). and for speed I'm adding a faster baudrate. I will probably do 3Mbaud, because that seems widely supported. Both by small Linux SBC's and by USB -> serial dongles. This 3Mbaud is just for the backbone. I have not decided whether to use CAN drivers (on a RS232 bus) or RS485.Also, thanks for the reminder of DIN41612. I am really confused how I missed that. It's also a bit confusing Some of the prices are just for an empty shell, and then you pay 20ct for each connector contact.I have been thinking about quick data exchange between microcontrollers. Microcontrollers don't really have parallel buses with enable and latch pins such as the old micro computer buses. I think the quickest (for regular microcontrollers is quad SPI, but this has a problem with all the slave select signals over the bus. And I've come up wit a very clever Idea:1. I have two slave selects.2. First slave select goes to a 74HC595, amended with an address decoder, something like 74HC138 or 74HC688. So this is only for setting the remote address.3. Second SS wire gets gated by the address decoder, and then goes to the microcontroller, and the microcontroller hardware handles the rest.4. (Or keep it simpler: Bus arbitration is done over another bus, (maybe I2C), and quad SPI is only for bulk transfers.)But clever ideas are not always the smartest, or the wisest.I am building a lot of flexibility into my bus system. That's why it also has I2C on the bus. I can spare those two wires just for fun or quick easy extensions. I have also explicitly reserved empty room around the modules. This room can be used for custom interconnects. And one way of connecting the modules is with bog standard Ethernet. (or USB, analog custom interconnects, whatever) Just shove in a small switch and you have Ethernet or USB working. uC's with Ethernet start around EUR10, and when you need the bandwidth it's bot cost effective, reliable, and has inherent galvanic isolation. In those cases Power is still provided by the bus. Either direct, or via an isolated SMPS on a module, that's specific to whatever the module needs.I don't know I can do quad SPI @50MHz over a bus with connectors and 30cm of wire. If that works, it'sl 200Mbps, and cheaper to implement then Ethernet. It's also much more bandwidth than what I'm planning on using. But USB also started with slow speeds and low power.I'm also still in doubt whether to add CAN to the backbone. It has wide support, but I don't like it because of it's small data size message format and "weird" addressing scheme. Another problem with pre-existing CAN modules is that they all use different baudrates, ant that alone makes them incompatible with each other. (Although quick to fix if the firmware is Open Source).

author: nctnico
author_rank: Super Contributor
timestamp: June 04, 2025, 11:32:34 pm
content: Flexibility is the enemy of simple (and cheap).The bus system you describe is much like HP's IEEE488 which seems to have become obsolete. I would go for something with RS485 levels and use an existing standard. Perhaps DMX512 or Modbus. For higher speeds, use an ethernet network. You can put an ethernet jack next to each connector on the backplane so a module can opt to have ethernet connectivity.

author: Simmed
author_rank: Frequent Contributor
timestamp: June 05, 2025, 12:22:54 am
content: from xdev webpage about wavetek 7xxx serieshttps://xdevs.com/article/w7000stub/there is a PCB shot with a rear backplane connectorhttps://www.digikey.com/en/products/detail/harting/09061486901/3179889

author: Doctorandus_P
author_rank: Super Contributor
timestamp: June 05, 2025, 12:15:42 pm
content: Quote from: nctnico on June 04, 2025, 11:32:34 pmNot necessarily. A lot of flexibility can be built into a design without making it very complicated or expensive. But it needs careful thought. Flexibility does make interoperability more difficult. And as with everything in life, the trick is to find the right balance.My module design is very similar to PC cards. The bracket is 20x20mm aluminimum extrusion (100mm high) and the backbone connector is on the bottom. As a result, both the back and top are freely accessible to route extra cables for custom interconnects (Ethernet, USB, Analog, etc) The (removable) lid is on the top, so the inside is accessible without removing the cards. Just reserving space for custom interconnects makes this very flexible, at no extra cost.Yes IEE488 / GPIB is mostly obsolete, it's a legacy standard.https://en.wikipedia.org/wiki/GPIBAnd for good reasons. Thick clunky expensive cables, limited amount of nodes and data rates that are not on par with modern equipment. These days LXI is usedhttps://en.wikipedia.org/wiki/LAN_eXtensions_for_InstrumentationWhich is also an adoption of a preexisting standard. LXI is apparently more then SCPI over Ethernet. I have to read more about that IVI stuff. I'm still working on a good software interface definition.Quote from: nctnico on June 04, 2025, 11:32:34 pmJust over 20 years ago, I created my own bus for home automation. This was before "arduino" existed.specifications in short:UART with RS485 drivers.Defined packets, 16 bit address space, 16 bit CRC.Upto 240 bytes payload per packet.Fully multi drop. Any mode can start a data exchange. (Just like in Ethernet)24V power distribution over the cable.Uses 4 wires of CAT5 (2 for data, 2 for power)Can coexist with 100BASE-TX, because I use the other 4 wires.I have also used a wire pair to send S/PDIF audio distribution with RS485 drivers. Works nicelyI've looked at GPIB, DMX512, MODBUS, CAN and a bunch of others, but both multi drop and power distribution is essential for me, and I want a relatively efficient bulk transfer, which means bigger packets.This 4 wire bus has been working for 20 years now (With a few revisions).Now I am extending it to a rack system, with faster data transfer, and more power capability.Another goal is to reduce clutter on the lab bench by putting all the modules on a backbone.I've also looked at EUROrack but something like that is far to expensive for most hobbyists.I put a very high emphasis on low cost, and on easy to reproduce by anyone with moderate mechanical skills.(hacksaw, filing drilling) I may start selling kits with CNC machined parts at some future date.Back on topic:I'm now 80% done with defining pin layout and pin function assignment. Mechanical form factor is also nearing completion. One of the big questions is whether the (probably 40 pin) bus will only deliver Power and Digital data, or if I also put analog signals (Remote GND sense, voltage reference, ADC channel) though the backplane itself.

author: Simmed
author_rank: Frequent Contributor
timestamp: June 06, 2025, 01:52:30 am
content: Quote from: Doctorandus_P on June 05, 2025, 12:15:42 pmactuallyi have been fiddling around on the drawing board regarding this eurorack cost problem thingyi got intrigue after seeing those modwiggler thingiesit is possible to put together "2 halves" to make a "box"the rough fitting diagram shows the right half of a 3RU with a 12HP "module" and a "fitting position" for a 48P DIN41612it is not going to rival the robustness of CNC milled struts found in industrial euroracksi have tested some small samples for bending, it looks feasibledoable, just need more time to figure out more thingsi have yet to draw up how to fit rack ears yetmy ball park estimate to make 1 eurorack with maybe 5 or 6 modules? looks to be around maybe US$150 ?(using PCB aluminium 1.6mm) including the screwable inserts? like SMD SMTSO ?so for 1 half rack (42HP), it will fit 3x 14HP cassettes = maybe 3 VREF ?or if to squeeze 4 = 10HP eachadditional misc info from CERN HPM7717https://edms.cern.ch/ui/#!master/navigator/document?P:100408339:101708753:subDocsyou can see the rear PSU connectionthey have 2 types, 1 of which is a 96pand then they have the entire module under TEC temperature controlhttps://gitlab.com/ohwr/project/opt-adc-10k-32b-1cha/-/wikis/uploads/000a9d2c0cb5e10a42af427661d56b79/photo_closedandopen.pnghttps://edms.cern.ch/ui/file/2808893/1/EDA-04258-V3-0_3D-top.jpgcost estimate 1 unit + shipping probably US$150outer housing onlyhttps://www.reichelt.com/us/en/shop/product/system_housing-50439?q=%2Fapi%2Fuser%2FcountrySelect%2Fen%2Fhttps%3A%2F%2Fwww.reichelt.com%2Fmy%2Fen%2Fshop%2Fproduct%2Fsystem_housing-50439#open-modal-login