CSduino – an Arduino variation adapted for Copenhagen Suborbitals.
The pre launch electrical problems caused by the mediocre mechanical design of the original Arduino circuit board during our launch campaign in May 2013 made us decide to design and build our own, more rugged, version of the popular platform.
In addition to far better mounting facilities, the CSduino, as our version have been named, is also equipped with many of the add-on circuits that are almost always needed to enable an Arduino to interface all the sensors and actuators we use.
Furthermore, the use of the platform in space have been taken into consideration, and additional circuits to counter the effects of the radiation that occur outside earth protective atmosphere, as well as the use of bipolar technology where possible, have been incorporated in the design.
Compared to most modern discrete devices and integrated circuits, which are for the large part based on FET technology, bipolar parts are
Old fashioned, big, slow and inefficient. But much less susceptible to suffer from Single Event Upsets (SEU), Single Event Latch-up (SEL) and Single Event Effects (SEE) than FET technology. We choose to live with the drawbacks to gain the other benefits.
We have based the CSduino on the Arduino Due, the fastest and most recent addition to the Arduino family. The first part that was redesigned was the power supply circuit. Now the times with external voltage regulators are over, and the supply voltage can now range from 8 to 30V without the need for additional heatsinking. The new design also includes a circuit that monitors the current consumption, and in case of a radiation induced latch-up immediately cycles the power to remedy the fault condition. Another change or addition meant to counter radiation sensitivity is a NAND-Flash memory IC. Although we have incorporated a TF-card socket too, a NAND-Flash is both faster and mechanically more robust. A TF-card has a built-in housekeeping system which makes response times highly variable, and intolerably slow at times, and the socket uses connecting methods that are sensitive to vibration, a thing we have in abundance.
The NAND-Flash IC is soldered directly to the printed circuit board (PCB) and can be accessed on a lower level that assures a faster response. We have also added a watchdog timer IC to the design.
The processor is a 3.3V version, which has led us to include level converters on the logic interfaces, to make sure we will have no problems interfacing both 3,3V and 5V logic ICs. The level and data direction is selected in groups of two bits, eight groups in all, by shorting solder bridges on the PCB. The two SPI and three I2C interfaces also have level converters, so that we can use whichever peripheral IC we fancy without being hampered by the logic signal level.
Every time the need to control a relay with an Arduino arises, a transistor driver has to be added. The CSduino has 8 of these drivers implemented. To reduce sensitivity to radiation bipolar devices have been chosen. MOSFETs would have been easier to use, but their high sensitivity to radiation make them a bad choice here. The 8 drivers are open collector and all have a protective diode included. The supply voltage for the loads is separate from the PCB logic and can be up to 40V. We have also included 4 high current totem-pole output drivers, which can control motors and other loads requiring both current sink and current source. An IC with 4 half H-bridges has been chosen to facilitate driving a DC motor if needed.
Even though optocouplers don’t behave well in environtments with a high radiation level, we have incorporated two opto inputs. We regularly need galvanic separation for tests on the ground, and just omit the optocouplers on flightversions of the PCB.
The CSduino is equipped with 6 serial interfaces. Each interface include both RS232, RS422/485 and 3.3V TTL level drivers. The appropriate driver is selected via solder jumpers on each interface.
The processor have an analog to digital converter and multiplexer peripheral included on-chip. The converter has 12 bit resolution, and the multiplexer have 16 inputs. One input is connected to an on-chip temperature sensor, 2 inputs share a package pin with another function and thus cannot be used. This leaves 13 analog inputs, 4 of which can, via solder jumpers, be used to monitor supply voltages and current consumption on the PCB. All 13 inputs can be accessed via connectors. The processor peripherals also include dual 12 bit digital to analog converters.
The original Arduino Due have an ATMEGA16U2A processor included on the board, which interfaces the serial programming interface of the SAM3X8E processor to a standard USB interface. We have moved this processor away from the CSduino PCB to reduce the risk of errors, and instead use a small PCB mounted directly on an USB connector. In-circuit programming is thus accomplished via an “intelligent” USB plug and a special cable, instead of using a standard USB cable.
The CSduino is, apart from the connector for in circuit programming, SSP, JTAG and power supply connectors, equipped with JST XH-series connectors. The connector pin count varies according to signal group, to reduce risk of connectors being swapped. This means that we, generally, do not use the shield technique favored by the Arduino family of boards, as we find this to be an unsound mechanical solution.