Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Robo-Tank 3.0 - Repackaged
#1
Hello, looks like I have another change to the controller to talk about. As some of you know I just released v2 not long ago, unfortunately v2 is turning out to be 1 step forward with 2 steps back even though it's better than v1. 

The main issue with v2 is assembly, it takes me longer and is more difficult. Bottom line is too much is on the board and things are in the way when assembling, the RJ45 pins are very close together and my eyes just aren't what they use to be close up. It's also a major pain mounting all those capacitors and counting out all the jumpers needed. Aside from this I also don't like how they look, because the ground planes internal the top of the board is raw and unfinished which makes it look cheap, after I solder the water based flux that comes out of the solder really shows up and makes the board look kind of nasty. At this stage it's nearly impossible to clean, one day I'll look into an ultrasonic cleaner. Anyways long term this won't work.

The good news is what I've come up with now should be a winner long term, I've actually never been this excited since the first set of boards I ever ordered however the part shortage has to spoil that excitement somewhat, maybe one day...

I was happy with all the features of v2 so this is basically just repackaged with assembly in mind. I've split the controller into 3 pieces or modules. I think I would still prefer one board but this does have advantages. The last year or so I've been getting the boards factory assembled as much as I can however that has it's limits. If I stuck with one board verses splitting it into 3 boards the board would be quite large and cost quite a bit more, my guess is they have larger machines that are used so they charge more so this is the main reason for the split.

The other main advantages are a person can jump in cheaper now if they only want the basics. Down the road I can create other equipment specific modules that can be integrated easier, as I had more overall PCB to work with I could improve things even more and if someone has issues down the road it's a little easier/cheaper.

The downside is customers who got v2, the extra cables involved, extra 3D printing and all the work that comes with new boards.

To those who have v2 and v1 for that matter, I am sorry I have to drop this but I do need to continue to improve things. I know it's disappointing to see a change just after you receive something, personally I would be a little bummed too but honestly for this controller it's not that bad based on how it works. To make this work long term I need to keep costs as low as possible, the biggest factor in that equation is time and over the years that's what I've been working on bringing down. Hard to believe at one point I spent 4-6 hours getting one controller and power bar fully assembled and now I can do it in 30 minutes or less, minus printing time of course. All the previous controllers out there will be supported for a long time even in my app and when push comes to shove there isn't anything new. The few extra features can be added without to much trouble and any new modules I have down the road will still work, they just won't connect as nice. 

To my surprise I got everything yesterday so I'm just printing some cases now and will be doing the big test, fingers crossed I didn't miss something. 

This is the main controller and the only board that needs a few connectors mounted. The other 2 boards I get 100% ready to drop in a case, a dream come true.  K05164 K05164 K05164

Imagine this was in a case, the 5 green connectors, 4 header pins and BNC connector is all that needs to be mounted and those I can solder blind. 

The controller has three RJ45 sockets, two on the left and one top left. This is where the other modules plug in. If cables are mixed nothing can be damaged just won't work. 

The DC Ports and LED Ports on the left side have seven 0-5v PWM signals and a ground. The Sensors port top left has 6 GPIO pins from Pi, +5v and Ground. And as usual the DB9's have 8 GPIO pins from Pi and a Ground. If a person only has the controller and want to DIY some things they can gain access easily using adapters for each plug type or just splice a cable. This also gives me extra ports for various extensions down the road. Maybe someone doesn't care about DC ports and prefers stepper motor drivers, that plug could be use to run that module.

Top middle is where the BNC for pH will be, you can see in 2nd image.

Bottom left is to power up the controller, 12-24v DC.

On the top is the header pins for I2C, a feeder/DC port and two backup float ports for Power Bar 1 outlet 1 and 2. It also has two temp ports, each of these have their own 1-wire bus so they don't interfere with each other. You can run 2 - 3 on one plug but if one goes down they all do in most cases.

A downside is there's no room for a cooling fan inside the case which is basically needed for the Pi 4, I think there's room for a low profile heat sink but that's probably not going to help a Pi 4 much. I'm thinking a person could mount one to bottom of the case which would be the lid and some legs could be printed that wrap the fan so air can flow into the fan. In the next few days I'll see what I can do here. 

[Image: CAM02801-optimized.jpg]

The controller still has a high quality 5v regulator with reverse polarity using the better technique, a 2 amp resettable fuse, 12-24v input, isolated pH circuit, PCA9685 for 0-5v PWM, 3.3v to 5v converter for I2C, real time clock with battery backup and an internal pluggable header to send either +5v or +12v through the shielding of the DB9 cables if a person is doing DIY and wants power.

You can see the 4 components missing, sadly these I have to mount due to the part shortage and two are quite difficult to get. My Christmas gift this year was getting them, the other day I used my last pca9685 but was lucky to find some a couple weeks ago from a source I never used and they actually arrived the day I used the last one. At the same time I used my last ATtiny85 for the pH circuit and no stock could be found and not expected until mid January, I happened to check Mouser again and wow they actually had them so I was able to fill my stocking.   K05108

[Image: CAM02807-optimized.jpg]

Below is the Lighting and DC Module, it has the same 6 DC ports and 8 LED ports as previous controllers however as I had more room I was able to add a 4th 3.5mm socket for things like Jebao pumps or lights. Each socket has 2 signals which can be either 0-5v PWM, 0-10v PWM, 0-5v Analog or 0-10v Analog or you can access the signals using the pluggable screw terminal connectors. I brought the dip switches back as they are nicer. On v2 I had to switch to the pluggable jumpers due to lack of space on the board. I also added a backup float port for each DC ports instead of just three. These backup ports simply cuts the signal going to each port so it shuts off no matter what the Raspberry Pi says. If you don't need the backup just add a jumper to the plug. 

I wasn't sure how this was going to look and was little worried but I think it'll be ok. You can see the RJ45's and DC input sticks out above the faceplate, that's because I didn't want to mount those parts. I can only get parts mounted on one side of the board so this is what I did. I pretty much nailed the faceplate wrapping around so it doesn't look so bad I think. I'll see better when I get it in a case. Either way I had to do it as it saves me lots of time keeping cost down.

You can't see in the pic but the RJ45's have LED's built in, those should light up when connection is made to controller, kind of nice. 

You also maybe asking why two RJ45's to connect one module? I know it doesn't seem right but overall best way to go at this time. Ethernet patch cables are cheap and not many cables have 17 conductors. Maybe HDMI but I didn't want to chance using something new and they cost more. This also adds more flexibility, if you don't care about DC ports or LED ports only one side can be plugged in and free up the controller output for something else.

So designing three PCB's with faceplates in a few days and getting 100% no screw ups is pretty difficult, looks like I just spotted two.  K0505 If this is it I'll gladly take it though.

Notice the backup ports, all DC6, oh man copy and paste got me... and labeling for the LED ports, Ch1 at top and channel 8 at bottom except that's not the case for the 3.5mm plugs on the side. Those are reversed, dohhhh.... I was going back and forth as I was deciding on the rotation, at one point the 3.5mm came out the bottom. So yeah switches and green plugs are correct.

[Image: CAM02814-optimized.jpg]

Below is the board view, as I had more space I was able to beef up the protection for the DC port mosfets. They have the flyback diode, a TVS to protect the gate and another TVS to protect the drain plus the mosfets built in ESD protection. I also added reverse polarity protection to each DC port using the simple method, now if something is connected backwards nothing should be damaged, previously connecting something backwards to a DC port would instantly destroy the mosfet.

The board is powered up using 12-24v DC. At this time I'm not sure how much current it will handle, I'll post that info a little later. The main DC input does have reverse polarity protection using the better method.

[Image: CAM02820-optimized.jpg]

Finally this is the sensor module. Now each of the 6 sensors has a dedicated plug for an optical sensor, non-contact sensor or one can use the pluggable screw terminal connector for a float switch, DS18B20 temp sensor or DHT22 temp/humidity sensor. (DHT22 only on my app).

The active port is determined by the jumpers at the bottom. One pluggable jumper for each port and can only be set one way. If set on NC side the non-contact plug is active, Opt side is optical sensor port and Sensor is the green connector. The jumper above the green connector is to set active either a Pullup Resistor or Pulldown Resistor. I could have just put a pullup resistor as most use that but thought it would be nice as an option.

Again on this module the RJ45 will stick above the faceplate and the optical / non-contact sockets are slightly sunk in as they are shorter than the green connectors but should be ok.

[Image: CAM02825-optimized.jpg]

This board gets powered up through the controller as it's low current, it has a simple 3.3v regulator to keep the signals safe for the Pi. The RJ45 has LED's built in as well so one will light up when connected.

[Image: CAM02831-optimized.jpg]

Maybe you've questioned it by now, but one quark is powering the system. This was a tough decision, I'm not sure if I picked the right one yet but here's my reasoning.

It's possible to buy just the controller, in that case you need a DC input to power it. If you have the DC module as well, which I expect a majority will, you need to power up both, this is what I went with. I could have removed one DC port leaving 5 and send +5v from it to the controller so the DC input wouldn't be needed if DC module was used which is obviously cleaner.

The cost to this though was greater though as I would need to double up the regulator system and protection added which is costly. Running over an amp through a RJ45 conductor is pushing it even though I've only experienced .30 amps max but I've never connected displays, keyboards or mouse to Pi which may bring it up. Also if a person wants to send +5v through a DB9 on the controller it's an additional load on that conductor. Along with that a DC port is lost and a PWM pin is wasted.

Due to this I've decided I'm going to include a DC cable splitter with all controllers even if no DC module is shipped this way only one power supply is needed and a person doesn't need to hunt one down and over pay. Doing that is cheaper than trying to power controller from module and it also has the benefit of running a separate power supply for the DC module to help isolate the ports further from the controller.

Well that's it, now to see how it works and looks packaged up, stay tuned.
[-] The following 4 users Like Rob F's post:
  • dcartier, JFReyes, vilich, VonCali
Reply to top
#2
I think this a better form factor than the monolithic style v2 board. It breaks up the functions nicely so that the main board and remote boards can be independently developed. Heck, we might even be able to get these DIN mounted :)

Dennis
Reply to top
#3
Thanks for your thoughts Dennis. DIN mount hey, I've seen those before.
Reply to top
#4
Wink 
Hi Rob,

I also think it is a great idea, I fully agree with your choice.
Working in full brainstorming, what do you think about interfacing the various modules with a standard bus, something similar for example to RS485?
The logic of each module would be bus-powered, providing a separate power supply input only for the output modules.
This would make the system fully modular 

Marzio
[-] The following 2 users Like MarzioM's post:
  • dcartier, Rob F
Reply to top
#5
I think RS-485 support is an excellent idea and frankly, I don't know why more aquarium controllers don't use it. It allows for multiple devices to share the bus, has protection from noise and offers way more speed than most projects would need (up to 10Mbit/s).

I like I2C for it's simplicity, and it is great for board level communication, but once you go remote with it, the limitations start to rear their ugly head.

Dennis
[-] The following 1 user Likes dcartier's post:
  • Rob F
Reply to top
#6
Hi Dennis,
if you feel like experimenting on the I2C bus (I would like to too, but now I'm too busy...), I found some time ago this nice gadget:

https://www.adafruit.com/product/4756

It could be useful to connect external devices remotely from the controller

Best
[-] The following 1 user Likes MarzioM's post:
  • Rob F
Reply to top
#7
(12-28-2021, 11:36 AM)MarzioM Wrote: Hi Dennis,
if you feel like experimenting on the I2C bus (I would like to too, but now I'm too busy...), I found some time ago this nice gadget:

https://www.adafruit.com/product/4756

It could be useful to connect external devices remotely from the controller

Best

Ah, that is a neat tool. That would help with the length and capacitance limitations.

Dennis
[-] The following 1 user Likes dcartier's post:
  • Rob F
Reply to top
#8
(12-28-2021, 05:39 AM)MarzioM Wrote: Hi Rob,

I also think it is a great idea, I fully agree with your choice.
Working in full brainstorming, what do you think about interfacing the various modules with a standard bus, something similar for example to RS485?
The logic of each module would be bus-powered, providing a separate power supply input only for the output modules.
This would make the system fully modular 

Marzio

Hi Marzio, thanks for your feedback. One day I may go more module but as suggested I would need a good bus. In the past I've experimented with I2C however that didn't go as planned as it wasn't reliable. That I2C signal booster is nice, I've played with similar, however still not ideal as the low/high signal still travels through the same piece of wire with little spacing between the voltages. If noise gets in the low signal can get lost. Apparently for I2C the best method is to convert the I2C to a differential signal, SCL and SDA become 4 wires like a RS485 bus. This makes it more immune to noise as you can bump up to 12v/24v where a high signal is clear. This approach is more costly though as you need a signal converter at both ends.

I think some commercial controllers use CAN bus or similar, this is what cars and some airplanes use. I've looked into this an it looks amazing, down the road I hope to explore it more.
Reply to top
#9
I was waiting for the longest time for Adafruit to bring out a ESP-S2 based feather that included CAN support. I see it is out now. I thought those chips would be perfect node controllers for making smart remote sensors|I/O.

Hmm, they don't mention the TWAI support (Espressif's CAN)  in the Adafruit docs? That would be ashamed if they did not include support for it ...

Dennis
Reply to top
#10
I got everything bench tested and happy to say it's all working as good or possibly better than v2. I didn't make a video testing but one day I will as I think it's good.

Aside from the small error on the faceplate for DC/Lighting module the only thing that didn't work is the reverse polarity protection for each DC port. After shorting one out it's mosfet was damaged as was the case with previous boards. The main reverse polarity protection for the board is ok though. I think I know where I messed up so next set of boards may have that however I might just forget it. To keep cost down and for space I just went with a simple Schottky diode across each port but it gets hot with 2 amps passing through even though it's rated for 5 amps. So the limit for these DC ports is 1 amp each or 4 amps between them all. 

Oh yeah, those LED's in the Ethernet sockets don't light up as I expected which was disappointing. Definitely my fault as I didn't do my due diligence to make sure it would work.

Here's some pics of everything in the cases. I don't think the exposed RJ45's look that bad, what do you think?

[Image: CAM02841-optimized.jpg]
[Image: CAM02835-optimized.jpg]
Forgot to put the metal nut on BNC.

[Image: CAM02855-optimized.jpg]
[Image: CAM02859-optimized.jpg]

[Image: CAM02846-optimized.jpg]
[Image: CAM02849-optimized.jpg]
[Image: CAM02863-optimized.jpg]

[Image: CAM02868-optimized.jpg]

[Image: CAM02879-optimized.jpg]

[Image: CAM02881-optimized.jpg]


I really like this sensor extension, it's a nice step towards the plug and play idea and like the other module can be used without the main controller. Setting the jumper for the correct port is straight forward, now if I can only find some XH extension cords. 

[Image: CAM02893-optimized.jpg]
[Image: CAM02896-optimized.jpg]
[Image: CAM02897-optimized.jpg]
[-] The following 1 user Likes Rob F's post:
  • dcartier
Reply to top
#11
(12-28-2021, 06:56 PM)dcartier Wrote: I was waiting for the longest time for Adafruit to bring out a ESP-S2 based feather that included CAN support. I see it is out now. I thought those chips would be perfect node controllers for making smart remote sensors|I/O.

Dennis

I got a few of these a while back to figure it out and see if I can work with it. It's cool they have the Leonardo Arduino built in so perfect for prototyping.

https://www.seeedstudio.com/CANBed-Ardui...-4365.html
Reply to top
#12
@Rob, I personally really like the repackaged version, and all things considered, the RJ45 sockets don't bother either.
The output current limitation per port, with only 4 or 5 A total, could be quite frustrating though.
Especially when powering the module at 12V, the fifteen or so watts available per output would severely limit the handling of the rising or circulating pumps.
At this point, external power mosfets or relays would need to be provided, and this could be troublesome.
Do you foresee any possible solution besides bypassing with a short circuit these Schottky, effectively eliminating the protection offered?
Reply to top
#13
Hi Marzio, thanks for your feedback, glad you like it and I agree on the DC ports. 1 amp isn't much, I'm going to play with this board and see what I can do for the next set of boards. Removing that troublesome diode will help but I need to change the mosfet as well as it get's hot quicker than the mosfet I previously used. I changed mosfet because the one on this board has built in ESD protection and a lower gate voltage threshold allowing a wider range in voltages, 3v - 12v vs 6v - 12v. As I've added those other extra diodes on gate and drain the internal ESD protection isn't necessary so I will likely go back to other mosfet.
Reply to top
#14
ouch, new design is awesome. i've bought the V2 some days ago and it was already shipped, but i really prefere this one
Reply to top
#15
Sorry Gandalf, as I mentioned to you, a month ago when I shipped your order I didn't know I would have this revision coming. It's difficult doing updates as this will always happen but to improve I need to do.
Reply to top
#16
do you have plans in changing the form factor ? With ports not on the upper side but on the front ?
Reply to top
#17
Currently I have no more plans but that can change. I am debating if I should replace the two RJ45's on DC expansion to an HDMI. I think the ports will be staying on top as I have no room on the sides.
Reply to top
#18
ports on top makes difficult clabling inside the cabinet.
Reply to top
#19
A few people have mentioned this. There's to many ports to be on the edge, it would be a big board like that.
Reply to top
#20
(01-01-2022, 03:18 PM)Rob F Wrote: Currently I have no more plans but that can change. I am debating if I should replace the two RJ45's on DC expansion to an HDMI. I think the ports will be staying on top as I have no room on the sides.

With the RJ45's, the off the shelf cable options are pretty much endless. Any length, style, colour you could ever want. With HDMI, not so much. As well, I am not sure how remote the expansions are allowed to be, but if they are allowed to be a fair distance from the main board, then the RJ45's definitely make more sense.

Dennis
Reply to top


Forum Jump:

Current time: 04-24-2024, 01:01 AM