Jump to content

[DCS-BIOS] Arduino Based Simulator Interface System (ABSIS) [Review/Pre-Release]


jrsteensen

Recommended Posts

Posting the first two PCBs for the ABSIS system for review - it will be a open source PCB/Hardware solution for interfacing with DCS-BIOS.

 

Inside is an Arduino NANO and MEGA variant.

 

WARNING: These two are currently untested. If a couple people could review them before I send them off for fab, I would greatly appreciate it. They are only posted in Fritzing format currently.

 

Link: https://workbench.grabcad.com/workbench/projects/gcCsuFphr191MNK1hqtDKjijgQCBU_-ITV8Xu8nxLG-1SC#/space/gcIa1SQPPS0hxTytOzdhNwV22PVTUSm0S1dRDv-nNKRnPs

 

Update from Page 2:

 

Okay, posted on the link in the first post (or here) is the prototype representative boards. I ordered ~10x of each, and they should be on hand in two weeks.

 

Boards ready are the ABSIS NANO, ABSIS MEGA, and 64 LED Matrix boards.

 

Major Changes to the Nano and Mega:

  • Eliminated LED matrix from boards. Broke required connections out to a 6 pin accessory header.
  • Shrunk the sizes of all boards dramatically.
  • Added NPN MOSFET to both boards, with 12V supplied, and controlled by a PWM pin. This will be to drive board backlights. (The vast majority of boards will not require the dedicated 64 LED Matrix board.)

 

I will be adding accessory and specialty boards as I require them.

 

NOTE: I FULLY expect these boards to have an issue or two, until I get to test them.


Edited by jrsteensen
Link to comment
Share on other sites

If you hardwire the MAX487 RO --> Arduino RXI connection, you won't be able to upload a new sketch without unplugging the entire Arduino Nano from your board.

 

On the Mega and Nano, the internal USB-to-serial converter is connected to the ATMega328 RX and TX pins through 1K series resistors. This means anything you connect to those pins will take precedence, which is exactly what you want in normal operation (especially since you can't disconnect the built-in USB-serial chip).

 

This also means that when you want to upload a new sketch through the built-in USB-serial converter, you need to ensure that the MAX487 does not interfere with it. While in the bootloader, all of the normal I/O pins will be configured as inputs, so nothing is driving your TX_ENABLE signal. This means it picks up random noise and the receiver in the MAX487 might be enabled and override the signal from the USB-serial converter.

 

One way to prevent this would be a jumper that allows you to disconnect the MAX487 RO pin from the Arduino RXI pin. If you want to prevent interfering with the RS-485 bus when resetting the board or uploading a new sketch, you can also add a pull-down resistor to the TX_ENABLE pin to put the MAX487 into receive mode whenever the Arduino is not actively driving the signal.

 

An alternative solution would be a pull-up resistor on the TX_ENABLE line, which would make the MAX487 default to transmit mode. This would guarantee interference with the RS-485 bus while uploading a new sketch, but it would not require you to mess with a jumper. The RS-485 bus will recover quickly and any piece of data that was interfered with or messed up should fix itself within about 10 seconds as the DCS-BIOS protocol is designed to re-send everything once in a while even if there was no change.

Link to comment
Share on other sites

I only took a quick look, but it appears Vcc for the MAX485 has a series cap instead of a decoupling cap between Vcc and Gnd on both boards. You should also include the recommended decoupling caps between Vcc and Gnd on the MAX7219 (10uF & 0.1uF) as described in the data sheet.

I would include provision to add termination to the Rx and Tx lines of the MAX485 for the end points.

Link to comment
Share on other sites

Thanks for the input gentlemen. If I can shoehorn it onto the board I'll add a four pole DIP switch to convert J1, J2, J3 and a final position to disable MAX485/487 R0.

 

When you say series vs decoupling caps, what do you mean? (Really not an expert on PCB design. Learning as I go.)

 

I'll also add positions to terminate the bus near the bus connector.

 

Sent from my SAMSUNG-SM-N910A using Tapatalk

Link to comment
Share on other sites

There is a capacitor connected between the power supply and Vcc pin on the MAX485 chip. This will prevent the DC voltage of the supply getting to the chip and so the chip will not have power. Often digital devices use a capacitor placed near the device and connected between ground and the input power supply to provide surge current as the logic switches. These are called decoupling caps, and I assumed that was what you were including in your design.

I hope this clears up some confusion.

Link to comment
Share on other sites

It was! Thanks for the input. Hoping to have the nano updated today. I'm also increasing the board width a bit. I want to be able to route all the jumpers together. Just was running out of trace room for a two layer PCB. (Oh, how I wish Fritzing handled four layer for a dedicated power and ground plane.)

Link to comment
Share on other sites

Where would the 480 ohm resistors link to to terminate the RS-485 bus?

 

Found a good answer: 10 Ways to Bulletproof RS-485 Interfaces from TI

Also, would there be an easy way to add LEDs to the bus lines so I can visually see when they are talking? (Kinda like the blinky lights on an ethernet connector?)


Edited by jrsteensen
Link to comment
Share on other sites

Posted a revision to the Nano PCB.

 

Changes:

 

  • Removed flatcable connectors to include 7-SEG Outputs (That can be a breakout, if required.)
  • Broke BUS into two polarized three polarized pin headers, including a ground line, with BUS IN and BUS OUT, as well as a resistor to terminate if required.
  • Rearranged the board.
  • Added a power passthrough to 3 pin header on top of board for auxiliary power tap for panel. (Solenoid relays, etc.)
  • Fixed caps for ICs. (I think...not sure if autorouter did what I intended in the schematic.)
  • Various minor fixes.

Any input would be appreciated!

 

 

Again, all these boards are released on a CC non-commercial share-alike license.

Link to comment
Share on other sites

I forgot to say thank you for sharing your work in my earlier posts. Everybody's time is valuable and everyone brings different skills, so it really helps the community when we are able to cooperate.

On the schematic, I appreciate the decision to include a separate BUS IN and BUS OUT. That should make daisy chaining easier and provide flexibility. I also like the addition of the power pass-through. It looks like you are using the decoupling capacitors correcting.

The layout is a little hard to follow because the traces don't appear to follow a grid or maintain 45 and 90 degree angles. Is this a routing setting that is available in Fritzing? I have never used the software, but other packages can help control this.

It looks like C1 will do the job for the MAX485 chip, however I would work to reduce the trace length between Vcc on the MAX 7219 and C2 and C3. The inductive loading of the traces reduce the effectiveness of the decoupling capacitor.

There are a couple of places I noticed the traces have a close approach to other features. i'm not sure what your fab requirements are, but the trace running from BUS OUT A to BUS IN A comes close to the pad for BUS OUT B. Also, the 12V power trace comes close to a pad and another trace near the bottom of the board. Just something to double check a to prevent fabrication issues.

It looks like the 5V power runs through a single trace from the power input pin. Have you checked whether the trace width will support the current required to drive a full set of LEDs and the MAX485. I noticed you wisely beefed up the trace widths between the two power connectors. Just another possible thing to double check.

Everything I am mentioning are just suggestions based on observations. Feel free to ignore what doesn't apply or work for you.


Edited by Spelmann
Corrected refdes for BUS IN A
Link to comment
Share on other sites

Some great input Spelmann. Thank you and it is appreciated. Fritzing's autorouter leaves quite a bit to be desired, honestly. I was considering beefing up the power traces, but I have to do it all manually. Also, there is no option I've found to tell it to prefer 90 degree bends in traces. I am concerned about cross talk across the traces.

 

Sent from my SAMSUNG-SM-N910A using Tapatalk

Link to comment
Share on other sites

Got ~10x Nano PCBs on order. (Dirtypcbs.com - about 25 dollars shipped for "around" 10 boards.)

 

Got the Mega board mostly reworked today. Still need to manually fix some traces. Once it's complete, I'll order 10x of those as well.

 

For the RS485 Master board, I'll make a small PCB that will plug into the Mega - not a full shield, likely. All I need for a Master is to hook 3x MAX485/487s to it, and add the biasing to each bus, correct?

Link to comment
Share on other sites

The Mega board has been posted. I have removed the MAX7219 and associated connectors, and instead routed the connection from the arduino to the MAX7219 and board power to a six pin connector. That way it minimizes the size of the breakout board, and LED as well as other additional support can be easily added modularly.

 

Also, I hand routed the Mega board. Way cleaner.

 

I will be doing the same removal of the MAX LED driver and hand routing the nano board. I may add a small IC to allow the capability to drive three 12V strips of LEDs for panel backlighting directly on the nano. Unfortunately, I already have 10x of the current Nano configuration on the way.


Edited by jrsteensen
Link to comment
Share on other sites

Okay, posted on the link in the first post (or here) is the prototype representative boards. I ordered ~10x of each, and they should be on hand in two weeks.

 

Boards ready are the ABSIS NANO, ABSIS MEGA, and 64 LED Matrix Accessory boards.

 

Major Changes to the Nano and Mega:

  • Eliminated LED matrix from boards. Broke required connections out to a 6 pin accessory header.
  • Shrunk the sizes of all boards dramatically.
  • Added NPN MOSFET to both boards, with 12V supplied, and controlled by a PWM pin. This will be to drive board backlights. (The vast majority of boards will not require the dedicated 64 LED Matrix board.)

 

I will be adding accessory and specialty boards as I require them.


Edited by jrsteensen
Link to comment
Share on other sites

Added a BOM for the boards. Lists both DigiKey and Ebay (Chinese) components.

 

The cost savings on Chinese components is substantial, but do expect the occasional poor quality/DOA IC. For this reason, I always put a socket in for any IC that I'm using a Chinese IC for. (Lets me swap the ICs easily.)

Link to comment
Share on other sites

  • 1 year later...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...