Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Sign in
F
fwatch
  • Project
    • Project
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 8
    • Issues 8
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • Wiki
    • Wiki
  • image/svg+xml
    Discourse
    • Discourse
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Commits
  • Issue Boards
  • Projects
  • fwatch
  • Wiki
  • Software

Software

Last edited by OHWR Gitlab support Mar 27, 2019
Page history

Software

RTOS options

Below is a list of RTOSes supporting the EFM32 microcontroller.

FreeRTOS has been selected as the RTOS for the Freewatch.*

Name Footprint Licence Remarks
FreeRTOS to be tested Modified GPL Tickless mode example project available
No integrated USB stack, need to port CMSIS stack example
FAT FS example exists (not for EFM32)
Power management for EFM32
uCOS-II/III to be determined restrictive in commercial cases Examples exist (but not for GCC)
USB stack available (not free, not with EFM32-targeted example)
FAT FS library available (not free, not with EFM32-targeted example)
RTX < 4.0 KB BSD Tickless mode example projects exist
*Compliant with CMSIS-RTOS standard
No integrated USB stack, need to port CMSIS stack
No integrated FAT FS
TNKernel to be tested BSD No apparent direct support for EFM32 (but supports Cortex-M3)
MSc thesis using TNKernel on EFM32
USB stack available (unkown quality)
file system available (unkown quality)

Device drivers

All devices need implementation of initalization and power control routines. Below is a list of required features for particular devices that are expected to be used in higher layers of software:

LCD (Sharp LS013B7DH03)

- sending pixel data

GPS (ANTENOVA M10478-A1)

- fetching NMEA frames over serial port
- handling private protocol (system messages, commands, settings, etc.)

Accelerometer & compass (ST LSM303C)

- reading sensor values (raw & human readable values in appropriate units)

- interrupt settings

- FIFO reading & control

- selftest
- calibration

Compass calibration

  • Compensating for Tilt, Hard-Iron, and Soft-Iron Effects

Pressure & temperature sensor (Meas. Spec. MS5806-02BA)

- reading sensor values (raw & human readable values in appropriate units)

- interrupt settings
- altitude calibration

Ambient light sensor (Maxim 44009)

- reading sensor values (raw & human readable values in appropriate units)

- interrupt settings

- control of sensitivity
- selftest

Fuel gauge (Maxim MAX17047)

- reading voltage, drawn current, average current, remaining time to empty, remaining capacity, temperature of battery
- reading/writing values of other registers

SD card

- checking status (presence, write-lock)
- reading/writing blocks

Backlight

- setting level (preferrably controlled by hardware with PWM)

Libraries

Functionality expected to be offered by respective libraries:

UI

- drawing primitives (lines, boxes, circles)

- displaying text

- reading state of buttons
- playing simple sounds (or just beeping)

Sensors

- collecting data from sensors

- conversion between units

- modifying settings
- gestures detection? (maybe should be done as a separate library)

GPS

- reading current location

- getting time

- logging/following routes

- connection quality information
- direction (0-360^ or N, W, E, S)

NMEA parsers:

  • http://nmea.sourceforge.net/
  • https://code.google.com/p/avr-nmea-gps-library/

Filesystem

Operations on SD card (probably in FAT file system):

- listing/copying/moving/deleting of files & directories

- reading/writing files
- formatting?

To be evaluated:

  • http://elm-chan.org/fsw/ff/00index_e.html
  • https://code.google.com/p/fullfat/
  • http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_FAT_SL/FreeRTOS_Plus_FAT_SL.shtml
  • http://www.silabs.com/Support%20Documents/TechnicalDocs/AN0030.pdf

Settings

- time (set manually/fetched from GPS; 12h/24h format)

- units (metric/imperial)

- backlight level (manual/auto)

- buzzer volume
- sensors/applications specific settings

Applications

Main menu

- choice of application
- displayed as text list, icons or scrollable with big icons (one application per screen, think of Nokia 3310 main menu)

Watch

Modes:

- analog

- digital

- eggtimer (countdown)

- stopwatch
- alarm clock

Features:
- auto DST adjustment

Navigation

- show current position/altitude

- show speed/acceleration/distance

- show compass

- route logging
- route following (using stored .kml/.gpx files)

Calendar/todo/notes (optionally)

- read-only

- synchronized through USB connection
- audible reminders

Settings

- interface to settings library

- software version information

- detailed information about battery state
- debug mode activation (reading raw sensor data, devices state, NMEA frames over USB)

Other

Power management

PC-side software

Files

  • sw_stack.png
Clone repository
  • App tutorial
  • Design review v1
  • Documents
  • Home
  • Outdated not used anymore
  • Software todo
  • Bootloader
  • Buttons
  • Case
  • Documents
    • Marketing
    • Movies
    • Pictures
    • Presentations
    • Project attachments
    • Version 'pcb v1' attachments
More Pages

New Wiki Page

Tip: You can specify the full path for the new file. We will automatically create any missing directories.