Code Monkey home page Code Monkey logo

ec's Introduction

System76 EC

System76 EC is a GPLv3 licensed embedded controller firmware for System76 laptops. It is designed to be portable to boards using several 8-bit microcontrollers, such as:

Board Embedded Controller Architecture
System76 ecsim Simulated ITE EC 8051
System76 Laptops ITE IT8587E 8051
System76 Thelio Io Atmel ATMEGA32U4 AVR
Arduino Mega 2560 Atmel ATMEGA2560 AVR

Shared features (that can be used across different micro-controllers):

Acronym Feature Description
ADC Analog-digital converter Reads voltages from batteries and temperature from thermistors
DAC Digital-analog converter Brightness control of keyboard backlight
GPIO General purpose input/output Control of LED's, buttons, and enable lines for other hardware
KBSC Keyboard scan controller Detects laptop keyboard presses. Keyboard scanning can be done using GPIOs, the ITE EC has hardware acceleration
PS/2 Keyboard and mouse bus Interfaces with touchpad. PS/2 can be done using GPIOs, the ITE EC has hardware acceleration
PWM Pulse-width modulation Fan control and brightness control of LED's
SMBUS System management bus Reads battery information
SPI Serial peripheral interface Reads and programs the EC's firmware
UART Universal asynchronous receiver-transmitter Provides EC console input/output

Features specific to ITE embedded controllers:

Acronym Feature Description
LPC Low pin count Forwards memory and I/O access to EC. Most EC functions are exposed to the host through this interface. High frequency makes a GPIO implementation not possible. Simulation is provided by System76 ecsim
PECI Platform environment control interface Reads CPU temperature (relative to throttle point). Proprietary nature means a GPIO implementation is unlikely, though not technically impossible

Features specific to Atmel embedded controllers:

Acronym Feature Description
USB Universal serial bus Can be used to provide access to EC functions either to the host or to a remote machine

Flashing

Requirements:

Internal programmer

Use this method for flashing a system already running System76 EC.

make BOARD=<vendor>/<model> flash_internal

External programmer

Use this method for first-time flashing or flashing a bricked controller.

The system must not have any power!

  1. Turn off the computer
  2. Unplug the AC adapter
  3. Remove the bottom panel
  4. Disconnect the battery
  5. Ground the laptop to the programmer
  6. Disconnect the keyboard from its port
  7. Attach the programmer to the keyboard port
  8. Flash the firmware
make BOARD=<vendor>/<model> flash_external

ec's People

Contributors

jackpot51 avatar crawfxrd avatar watchmkr avatar meklort avatar arodland avatar

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.