This is the source code of the firmware shipped with your 1Sheeld board. It is an implementation of a custom version of the Firmata protocol ported to ATmega162.
C Makefile C++
Permalink
Failed to load latest commit information.
.gitignore Added more folders to gitignore Jan 3, 2016
.travis.yml Update travis config file to build both the release and debug variants Mar 28, 2016
CHANGELOG.md Updated the changelog and readme files to reflect the new changes Apr 10, 2016
LICENSE.md Added the license file Sep 23, 2014
Makefile Supported new eeprom files in makefile Mar 28, 2016
README.md Updated the changelog and readme files to reflect the new changes Apr 10, 2016
config.h Refactored new file config.h template Mar 8, 2016
doxyfile modify doxyfile with new repo modifications Dec 31, 2015
eeprom.c Added config.h file to eeprom.c and added some code comments and expl… Apr 9, 2016
eeprom.h Added config.h file to eeprom.c and added some code comments and expl… Apr 9, 2016
firmata.c Reset booleans of testing the firmware and Renaming the bluetooth Apr 10, 2016
firmata.h Bumped up the versions Apr 10, 2016
gpio.c supported standard C variables for the entire solution Mar 21, 2016
gpio.h supported standard C variables for the entire solution Mar 21, 2016
macros.h Merge branch 'development' into ble_only Feb 22, 2016
main.c Removed two extra booleans along with some code which have been repla… Apr 10, 2016
mapping.c include config.h to all .c files Mar 9, 2016
mapping.h supported standard C variables for the entire solution Mar 21, 2016
onesheeld.c Added the new function under the hashtag if PLUS_BOARD Apr 10, 2016
onesheeld.h Refactored duplicated line of code to be in a single function Apr 10, 2016
pwm.c supported standard C variables for the entire solution Mar 21, 2016
pwm.h supported standard C variables for the entire solution Mar 21, 2016
timers.c supported standard C variables for the entire solution Mar 21, 2016
timers.h supported standard C variables for the entire solution Mar 21, 2016
uart.c Removed unwanted parts of code Apr 9, 2016
uart.h Removed #define if interrupt enabled as it's always enable d Mar 30, 2016
version.json Added a new file for apps firmware upgrades Sep 26, 2016

README.md

1Sheeld Firmware Build Status

Overview

This is the source code of the firmware shipped with your 1Sheeld board. It is an implementation of a custom version of the Firmata protocal ported to ATmega162. It supports some of Firmata's messages like digital messages but lacks capability query, analog, I2C and servos messages.

Building

The project is an generic C project, and can be built using any port of avr-gcc for either Microsoft Windows, Linux, or Mac OSX. Just make sure you have both GNU Make and avr-gcc tool chain installed on your platform then run make on the repo's root directory and both the classic and plus boards variations will be built in a new subdirectory called build.

If you are not going to use the make command, make sure you that either PLUS_BOARD or CLASSIC_BOARD is defined. (You can use the config.h file for that)

Fuse Bits

  • Low Value: 0xFD
  • High Value: 0xD8
  • Extended Value: 0xFB

Click here for a description of the enabled fuse bits.

Uploading

The ICSP pins are exposed with a 6-pin header on the bottom of your 1Sheeld board. You can easily connect any ATmega programmer and upload your own version of the firmware.

If you are using any USBasp programmer and have avrdude installed, after building using make you can flash your board by running either make flashdebug or make flashrelease on the repo's root directory. Make sure you erase the chip first by running make erase.

Note: 1Sheeld is equipped with a bootloader that enables us to push updates to the firmware from the app. If you attempt to upload this firmware and erased the chip, you will lose this functionality.

Documentation

You can generate the documentation by installing and running doxygen on the repo's root directory.

Contribution

Contributions are welcomed, please follow this pattern:

  • Fork the repo.
  • Open an issue with your proposed feature or bug fix.
  • Commit and push code to a new branch in your forked repo.
  • Submit a pull request to our development branch.

Don't forget to drop us an email, post on our forum, or mention us on Twitter or Facebook about what you have built using 1Sheeld, we would love to hear about it.

Changelog

To see what has changed in recent versions of 1Sheeld Firmware, see the Change Log.

License and Copyright

This code is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 3 only, as
published by the Free Software Foundation.

This code is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
version 3 for more details (a copy is included in the LICENSE file that
accompanied this code).

Please contact Integreight, Inc. at info@integreight.com or post on our
support forums www.1sheeld.com/forum if you need additional information
or have any questions.