-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Thermostat: request for comment #5
Comments
A couple of suggestions:
I also have a concern that unlike a traditional IC manufacturer Thorlabs might rapidly discontinue these parts. I guess the board is simple enough that you can just cut your losses and start again with another module. |
I did think about that, the reason I decided against it was just the usual feature creep etc., extra bugs etc. My feeling is that it's better just to make an Arduino/Beaglebone/whatever EEM shield and put the ethernet on that.
I'm fine to add 5V power to this if you think it would help. Connecting the PWM is a bit of a pain (with the front panel Rj45 there are no spare pins to use for I2C fan control). I'd prefer to avoid this kind of feature creep.
I did worry a bit about that. But, worst case, we just add one of those Maxim peltier driver ICs and a microprocessor and do this ourselves. In that case, the current design still serves as a very useful template for the new board. Plus, I don't see Thorlabs discontinuing this any time soon, as it's quite widely used. Do you guys think you would use this EEM if we made it? |
I think the board will be much less likely to be used standalone if you need to faff around with a second EEM (that will also need firmware and debugging). Another issue with things like Beaglebones is that as they run an OS, which means we can't easily put them on the NIST network. I can also imagine a few other EEM boards in a similar vein to this one that would benefit from cheap, simple and robust ethernet connectivity, so if we can find a good solution it could be reused. |
Let's use Ethernet solution we use in uTCA chassis based on Texas Instruments CPU compatible with RUST. @sbourdeauducq will like it. It's a single chip solution. |
The module is similar cost to ADI and Maxim chips that do similar job, but require analog compensation which is painful. In case of troubles with availability we can always develop replacement - the HW part of this module is trivial - just CPU and DC/DC converter, but the FW is considerable effort to develop. |
@hartytp Your specification is lacking performance goals. In the case of the Thorlabs chip this is
If this is to be an ARTIQ EEM module it's natural that it support the internal EEM connector. Note however that adding a UART PHY to EEM gateware would be a new protocol AFACT. @sbourdeauducq https://github.com/m-labs/sinara/wiki/EEM#eem-connector-protocol |
Given we don't need fast control and it's unlikely that any physics experiment will ever need to talk to this module, aren't we just using Kasli/Metlino as an expensive and inconvenient Ethernet->UART convertor. |
We can use EEM and Ethernet CPU at same time. Ethernet plug will have higher priority, EEM will just use double/quad UART protocol. |
Re the ethernet thing:
|
Does that make sense? Or, do you still feel strongly that you'd want ethernet? |
Two channels might be better:
|
There is firmware inside the proprietary Thorlabs device; you are just hiding it. In general I am in favor of the TM4C chip with Ethernet (bringing Ethernet up has been mostly unproblematic on ionpak, unlike Sayma) and not using the proprietary Thorlabs device at all (this TM4C has all that is needed to run the control algorithm, and many relevant I/O peripherals). |
I placed a comment but it disappeared. |
@hartytp we won't fit 4 channels. 2 xDSUB hardly fit |
I think I'm missing something here. Right now, using the core device to intermittently talk to misc non-real time hardware, do logging, and other general housekeeping is very undesirable and unscalable as it directly interferes with running experiments. Having a direct connection from the hardware to a PC running an Artiq slave seems like the right way of doing this and the one that was envisioned from the outset. However it seems that @hartytp is envisioning extra Kaslis being dotted around the lab to handle this kind of thing instead of PCs. Is one picture correct or is it really just a matter of personal preference?
If my picture above is correct then I think any piece of hardware where direct connection to a PC is the preferred mode of operation should have the necessary hardware (eg. ethernet) built in. One of the big wins of Sinara for me will be not having to add my own adaptors or micro controllers to things.
The ethernet to UART convertor I suggested obviously has firmware but, just like the Thorlabs controller it is pre-loaded and hidden from the user (as @sbourdeauducq points out).
These convertors are supposedly transparent (like the Ethernet to GPIB convertors we use). I mean if they don't actually work, that's one thing, but if they do then it doesn't seem like any extra work. Does anyone have experience with these? If they are junky then having something equivalent would be a great addition to Sinara in my opinion. In that case I think it should be considered a separate project (albeit one that Thermostat can take advantage of) and we should move it to another thread. |
|
Comment from @restelli by email. Topic: JQI's temperature controller. Our temperature thermostat project, developed by Benjamin Reschovsky (in CC) is based on commercial linear temperature controllers (Wavelength's WTC3243) it features 4 channels, it is compatible with both peltier and heaters and it can work both stand-alone and computer controlled. https://github.com/JQIamo/Linear-Temperature-Controller Tom's system would be much simpler because it leverages the Thorlabs MTD415T digital interface. In that case maybe an out-of-the-box TCP-IP to serial converter could even be used. It costs just $20 https://github.com/JQIamo/Linear-Temperature-Controller Tom's system would be much simpler because it leverages the Thorlabs MTD415T digital interface. In that case maybe an out-of-the-box TCP-IP to serial converter could even be used. It costs just $20 http://www.shopwiznet.com/wiz750sr-ttl http://www.shopwiznet.com/wiz750sr-ttl Re relative performance of the two models: the WTC3243 is a really nice chip in terms of stability etc. But, it's all analog. The big plus of the thorlabs chip is that it provides digital gain control and logging etc. The performance of the Thorlabs chip is still good enough to get from +- a few K lab fluctuations to comfortably better than 100mK, which is good enough for all the applications we have in mind. But, as always, the best solution depends on the application! |
I use since many years Lantronix embedded servers and I'm happy with them. But they support only one serial port. They have 3 IOs which can be used to select desired channel. They support virtual COM port. TM4C is another single-chip low cost option to consider. There is reference design based on FREE RTOS, so addition of more UART channels would be trivial. It already supports 2 channels. |
What exactly is going on inside those Thorlabs or teamWavelength devices? Do we really need those single-source black-boxes? |
There is. uC, a 16 bit dac (more would be better, or multiplying or sigma Delta), a 16 (24 would be better) bit ADC, reference current source, opamp, and most likely the maxim driver module I mentioned in the wiki. |
@jordens there is just synchronous DC/DC converter that drives Peltier module directly. |
I find it much more interesting to have control over the whole design, especially if we want to push the specifications. And I really don't like the black-box aspect of those modules, I think this part should be open source, plus those modules make it look like we can't figure out how to build a good PID controller and need black magic from some vendor. |
@sbourdeauducq Yes, I fully agree with you, but development of own firmware is costly. And somebody need to volunteer or be paid for it. Hardware part is simple - just good ADC and high resolution PWM or DAC + Maxim chip. |
@sbourdeauducq it is definitely more fun to design ones own, but the firmware development is a pain - the core is just a 10 line PID loop, but all of the surrounding command handler / control interface adds up and is boring to write and support. My guess is that the firmware would be several k$ of time, and will divert effort from more critical software. I see this board as something very quick to design, and relatively low performance (~10mK) - this is all one needs to temperature stabilise most things around the lab apart from laser diodes. If the need arises, we can design a second revision using our own design rather than the Thorlabs module - I have a temperature controller design using a AD7191 that has a <0.2 mK/K uncompensated tempco (unmeasurably low after temperature compensation). |
@cjbe did you develop this module yourself ? |
@gkasprow yes. Just a MAX1968 peltier driver, a PIC microcontroller, and a differential sigma-delta ADC with a trivial input stage (input_stage.pdf). (I never thoroughly characterised the long-term drift or noise immunity of this design, so the annotations on the schematic may be overly optimistic.) |
@cjbe did you use straight-forward PID implementation or you implemented something more sophisticated? What about PID tuning? Is if hard-coded ? |
@dtcallcock IMHO there is no good reason to have an EEM connector on it at all, apart from to leach power to avoid another wall-wart. I don't think that it is that natural to patch in slow control and background diagnostics into the hard realtime part of the control system: one hardly needs a high-bandwidth link to a temperature controller. My preference is just for a USB-UART of Ethernet-UART link. |
Sure, I'll add something to the Wiki once I've had a play around with this and found something that works nicely. |
Personally, I'd be happy using a 13W PoE module and limiting the power per TEC in software. If the users exceed the power threshold then no damage will be done. If this turns out to be an issue, we could consider dropping to one temperature controller per Thermostat, but I don't think that's necessary.
What's the downside of using the 30W ones compared with he 13W ones? Just the extra 10EUR or so per board?
Let's just pick one and stick with it instead of having too many different population options! |
Okay, so trying to summarise this:
let me know if you disagree with that, or if I've missed anything. Otherwise, I'll close this issue and write this up on the Wiki. Also, it would be good to know who would be interested in buying one of these... |
LGTM I'll buy two. |
Okay, we seem to have reached a consensus on what this design should look like. Closing the issue, but feel free to reopen if you have any more questions/comments about the design. |
@gkasprow one last thing about this: does the Wiznet support configuring over USB/UART? Our networks have pretty restrictive firewalls, so it's nice to be able to set up the ethernet settings via USB/UART if the Wiznet supports it. If they do, can we add a micro USB on the front panel? No worries if not! |
Have a staging network that you control. The switches that you need for poe can do that for you. |
Sure. Isn't having a micro USB nice in general though? e.g. for the future version where we have a microprocessor this is useful for firmware updates, debugging etc |
The Wiznet modules can be configured via AT commands on the first serial port. I plan to use quad port module so we can connect USB to the first port permanently. I will also route the USB to the TM4C port. |
I found low profile, low cost 30W PoE modules so we don't have to restrict the power to 13W |
Adding USB is a antifeature here IMHO. The uC will have JTAG/SWD already. If its really only the conector, fine. If it needs an interface then I wouldn't do it. |
Okay, I'm not fussed either way. I was thinking of just having a usb micro and nothing else. I agree, it's not worth the UART. In any case, it seems the use for it is somewhat marginal, so let's drop it. |
I can place 3 goldpins so one can connect cheap USB-TTL cable to change settings when needed, |
@gkasprow That sounds like a good idea. Let's do that. |
Also, If the module can do DHCP (and preferably the MAC address is printed on a sticker somewhere), it should be plug-and-play for us anyway. |
They have a configuration software that scans network and is looking for valid MAC. |
Huh, for a valid MAC? |
@klickverbot I mean MAC that is within their address pool. |
So the IP address can be set over HTTP, but not the temperature? |
This webpage is for ethernet converter setup only. For temperature controller it is transparent. |
Nice, thanks Greg. |
A quick info that might be useful. Individual MAC addresses can be bought for few dollars in the form of small flash chips from companies such as Microchip/Atmel. |
@restelli we use these chips on every single module in Sinara family for identification purposes.. |
That's nice but not critical. A perfectly valid strategy is to choose an LAA OUI and then generate the device part of the EUI-48 from the hash of the unique identifiers of the CPU (if it has one) or from the Thorlabs modules (they do). That's what I am doing with Kasli v1.0. And the CPU also has enough flash space. |
transferred the issue to the right repo. |
I've sketched out a proposal for a temperature control EEM that I'm provisionally calling Termostat.
I'm interested in any comments that people have. Does that sound like something you'd use? Does the proposal match your needs? Any suggested improvements? etc...
The text was updated successfully, but these errors were encountered: