create new tag
, view all tags

LowLevel v2.1 PCB

This Document contains:


  • The LowLevel is a printed circuit board (PCB) designed for land vehicle control. It acts as a daughter board (shield) for an Arduino Mega microcontroller. It is a dual-mode controller, which selects manual drive-by-wire control or autonomous computer control of the following:
    • Control of the hub motor.
    • Control of the turning servo.
    • Control of the Braking servo.

The previous version of the LowLevel PCB was called MegaShieldDB. It had similar functionality, but different connectors.

  • Input for drive-by-wire control comes in from either a joystick or an RC receiver. Autonomous control is provided by a stack of three additional microcontrollers (High Level Control):
    • C3 (Pilot): Senses dynamic obstacles and sends near-term path and speed to C2.
    • C4 (Path Planner): Computes optimum path from current position to destination, disregarding dynamic obstacles.
    • C6 (Navigator): fuses instruments to give the best current estimate of position.

  • The connectors on the LowLevel are:
    • X2 Cruise (DB25F) - Autonomous control signals from High Level.
    • X3 Motor (DB15M): Signals for motor and drive-by-wire.
    • X1/X5 Turn Sensors (RJ45): SPI wheel angle sensor digital inputs. (These are not used. They are provided if the turn sensor is digitized to reduce noise. Present turn sensors are analog.)
    • X4 (ODO): Cyclometer (reed switch) input jack. Board layout was incorrect. This signal should connect to Arduino pin D2, but it does not.
    • JP9 (8 pin): Joystick analog input signals. (not currently used)
    • JP12 (3 pin): Pulse output signal to steer. (Need signal and ground. 5V is not used since both the steer servo and low-level board produce 5V)
    • JP11 (3 pin): Pulse output signal to apply main brakes. (No longer used)
    • JP5 (4 pin): Left wheel angle sensor analog input. (Little used since it covers 360 degrees and is less accurate)
    • JP6 (4 pin): Right wheel angle sensor analog input. (Trike prefer this, since it is +/- 30 degrees, and more accurate)

  • The LowLevel runs on 5V power, which it provides to sensors and servos on JP9, JP12, JP11, JP5 and JP6. A 9.6V battery supplies Vin to the Arduino, which regulates it to 5V and 3.3V. The RJ45 connectors send Vin, which must be regulated on the other end to 5V. Our trike uses a 36V battery to drive the hub motor and a 12V battery to drive the steering and brake servos. Each of these three actuators has a separate electronic subsystem, which generates 5V, but are not used by LowLevel. The 5V supply from the motor is used as an indication of whether 36V power is switched on.

Board Schematic:

  • Refer to connections spreadsheet for pin mapping (still in progress)

Assembly Guide:

  • Step by step instructions for building your own LowLevel board, complete with pictures and schematics.
  • Download: LowLevel_v2.docx
Topic attachments
I Attachment Action Size Date Who Comment
PNGpng Board-LowLevel.png manage 171.8 K 2017-08-06 - 21:32 TimK  
Unknown file formatdocx LowLevel_v2.docx manage 3737.4 K 2017-08-06 - 21:32 DavisBerg Assembly Guide
Unknown file formatcsv LowLevelv2BOM.csv manage 3.8 K 2018-06-14 - 22:56 TylerCFolsom Low Level Bill of Materials
Topic revision: r4 - 2018-06-14 - TylerCFolsom
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2018 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback