Giter Site home page Giter Site logo

buckler's Introduction

Berkeley Buckler

Build Status

A development board for teaching embedded systems.

Buckler PCB

Getting Started

  1. Clone this repository and update the submodule
  $ git clone https://github.com/lab11/buckler.git --recursive
  $ git subomdule update --init --recursive
  1. Build an example application
  $ cd software/apps/blink/
  $ make

You should see results similar to

BUILD OPTIONS:
  Chip        nrf52832
  RAM         64 kB
  FLASH       512 kB
  SDK         15
  SoftDevice  s132 6.0.0
  Board       Buckler_revB

 DIR        _build
 CC main.c ...
 ... (many more CCs) ...
 LD _build/blink_sdk15_s132.elf
 HEX _build/blink_sdk15_s132.hex
 BIN _build/blink_sdk15_s132.hex
 SIZE _build/blink_sdk15_s132.elf
 text    data    bss     dec    hex   filename
 37672   2548   2624   42844   a75c   _build/blink_sdk15_s132.elf
  1. Load the example application (be sure to connect your Buckler board)
  $ make flash

The three LEDS (red, yellow, and blue) on Buckler should begin a blinking sequence.

Build Options

Several make directives exist for convenience of performing common operations.

  • flash - Upload code to the attached board over JTAG. Also builds code if necessary.
  • rtt - Open two additional terminals, one starting a JTAG connection and the other with an RTT terminal.
  • gdb - Open two additional terminals, one starting a GDB server and the the other with a GDB session.
  • debug - Build application in unoptimized debug mode (with -g and -O0).
  • flash_debug - Upload debug version of code to the attached board over JTAG. Also builds the debug version of code if necessary.
  • erase - Erase all code from the attached board over JTAG.
  • flash_softdevice - Upload the appropriate softdevice to the board over JTAG. make flash automatically runs this command.
  • clean - Remove all built output.
  • size - Print size of built application text and data segments.
  • lst - Generate an assembly listing of the built code.

Directory Structure

├── hardware
│   └── <Various hardware revisions>
│       ├── <PDF version of schematic and layout>
│       ├── <Eagle schematic and layout files>
│       └── <Zipped assembly files>
├── media
│   └── <Images used in repo>
└── software
    ├── apps
    │   └── <Various applications>
    │       ├── <Code for application>
    │       └── <Makefile for application>
    ├── boards
    │   └── <Board-specific headers and Makefiles>
    ├── libraries
    │   └── <Various libraries>
    ├── nrf5x-base
    │   └── <Submodule: build tools and files for nRF projects>
    └── tools
        └── <Tools for Travis-CI use>

Project Repositories

If you are using Buckler for a project, we recommend you include it as a submodule in your own repository. An example of how to do so can be found in: buckler-external-repo

Software Requirements

In order to get code compiling and loading over JTAG, you'll need at least two tools.

JLinkExe should be installed from here. You want to the "J-Link Software and Documentation Pack". There are various packages available depending on operating system.

arm-none-eabi-gcc is the cross-compiler version of GCC for building embedded ARM code.

MacOS:

$ brew tap ARMmbed/homebrew-formulae && brew update && brew install arm-none-eabi-gcc

Ubuntu:

$ sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa && sudo apt update && sudo apt install gcc-arm-embedded

buckler's People

Contributors

abiri avatar adkinsjd avatar brghena avatar lederg avatar nealjack avatar victoria-tuck avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

buckler's Issues

Rev A Issues

  • Add accelerometer axes (X, Y, Z) to silkscreen
  • Add female header for LCD
  • Do something about LCD header nearly intersecting with dev board header (possibly rotate the LCD 180 degrees)
    • Moved it 25 mil to the right to avoid collision
  • Check the footprint for the MPU-9250
  • Add probe points for P6

Rev B Issues

  • Add silkscreen label for switch position high/low
  • Put IC part numbers on the silkscreen

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.