Simplified System Breakdown V1.8

FramingPlumbingControllerElectronic Schematic

Simplified BOM

Ballast Controller

  Arduino Clone
  Basic Logic Driven Power Transistor Circuit
  Bus Connector
  Valve Power Connector
  Generic printed circuit mounting board
  Ballast_System_V5.1.PDE – Arduino Programming Language

Ballast Payload System

  6”x6”x1/8” plywood sheets qty. 2
  11” length ½” diameter wood dowels qty. 4
  ½” eye screws qty. 8
  Valve - 2MS10/3212DC Pneuaire Normally Closed Valve, 12 VDC
  Bottle - Generic 3 liter soda bottle
  Cap - Generic 3 liter soda bottle cap
 Connector Mounting Plate - Perf Board 1" x 1/2"
 2 Bolts M3 x 12mm  
 Valve Power Connector - 3 Pin molex
 Valve Support Bracket - Thin aluminum flashing strip 
 2 Bolts M3 x 12mm
 2 Bolts M3 x 25mm
 Exterior Valve Cover - Plastic Cup

Development Status

Status Ballast Controller Ballast Payload System
Design Complete 100%
Materials 3 Sets 2 Sets
Prototype 2 Built 2 Built
Software V5.3 N/A
-Electrical 2 Passed
-Logical Passed
-Measured Response
-Integrated 1 Passed

Ballast Controller Requirements


  • Support White Star I2C commands

Electrical Interface

  • Standard White Star Bus

Communications Requirements

  • Respond to queries
    • how much weight grams dropped (integer grams)
    • how much weight grams remaining (integer grams)
    • valve open (1) or closed (0)
  • Respond to commands
    • Drop X weight in grams (integer grams)
    • abort current drop
    • suspend current drop
    • close until further notice
    • open until further notice

Ballast Controller v1 As Programmed

Ballast Controller Commands

Ballast Controller I2C Bus Address is 0x9

Ballast Controller Commands are:

Read a Register from Controller

Send BALLAST_REGISTER_ID as one byte
Ballast Registers always return 2 bytes
1st Byte is MSB
2nd Byte is LSB
Calculate total value as ((MSB * 256) + LSB)
The Valve Status will equal 1 for OPEN and 2 for CLOSE.
The BALLAST_AMOUNT register contains amount of Ballast remaining.
The INITIAL_BALLAST register contains amount loaded by last BALLAST_LOAD_AMOUNT command.

Write Ballast Amount Value into Controller

Send Command BALLAST_LOAD_AMOUNT value 17
Send two byte Ballast value
Send MSB 1st then LSB
Calculate total value as ((MSB * 256) + LSB)

Command Ballasting to STOP

Send command BALLASTING_STOP value 18
Nothing more need be sent

Command Dump Remaining Ballast

Send command BALLAST_DUMP_ALL value 19
Nothing more need be sent

Command Drop an Amount of Ballast

Send command BALLAST_DROP_AMOUNT value 20
Send two byte Ballast value
Send MSB 1st then LSB
Calculate total value as ((MSB * 256) + LSB)

Command Reset All Ballasting Quantities

Send command BALLAST_MASTER_RESET value 99
Nothing more need be sent

Psuedo-Algorythm For Ballast Timing

The Ballast System uses a simple ballast range method inwhich it calculates the number of seconds the valve must be open to drop 1 gram of ballast.

The value is set in a range test:

Greater than 2500 grams reamining = 2.75 seconds per gram
Greater than 2000 grams reamining = 2.80 seconds per gram
Greater than 1500 grams reamining = 2.85 seconds per gram
Greater than 1000 grams reamining = 2.95 seconds per gram
Greater than 0500 grams reamining = 3.05 seconds per gram
Greater than 0000 grams reamining = 3.15 seconds per gram

Ballast in excess of 3000 grams is out of range but will default = 2.6 seconds per gram

Additional test and value adjustment planned.

Build Photos

hardware/ballast/v1.0.txt · Last modified: 2018/07/29 17:58 (external edit)
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki