Online Laboratory for Embedded System Design Courses


by Tharshan Muthulingam

Project Overview and aims

  • Simulation of an embedded system controllable via external software. E.g. A browser
  • Cortex M3 is the chip being simulated with external peripherals such as SPI, UART, I2C, GPIO
  • The end user should be able to control the simulation with the mbed SDK using C/C++ and interact using a web interface
  • Develop experiments such as closed loop system.
  • Develop exercises to teach users about modern microcontrollers such as mbed

Previous Work

  • Worked in the FastModels team at ARM to learn about the CortexM3 FastModel system.
  • I learned how the peripherals are developed in the system using the LISA language
  • A python bridge was developed to externally interface the system.
  • I learned how to port the mbed SDK to the simulator, so that programs could be written with the same code used for mbed

system canvas

  • CortexM3 being linked to the console module
  • console module can output the events via python

Objectives

  • Finish porting the peripherals to the mbed SDK. 
  • Investigate closed loop systems and periodic events
  • Investigate and design three experiments
    • Create models in python to mimic real hardware. e.g. a TMP102 sensor
  • Test models with real devices
    • Verify using datasheets
    • Verify using real hardware using mbed

Progress

  • First few objectives completed
  • One experiment finished
    • Water Tank Heating system
  • Next experiment in progress
    • Simulate an ADXL345 (Accelerometer)
  • Report is in progress
  • Progress has mostly been on plan
  • No progress made during holidays or exam period

LED and Console


Water heating with feedback


Next steps

  • Finish 3 experiments to a suitable standard.
  • Investigate any more experiments that can be used to push the simulator to limits
  • Prototype a user friendly interface where user can edit code and control the simulator - An online IDE for simulator
  • Investigate ways to package these software packages and binaries in a portable way so they can be easily deployed on a server - currently could be difficult because of the licensing.
  • Relay progress back to YII supervisors and get their feedback

Adjustments

  • Objective 5 needs to be changed to focus on building the prototype for the web interface to control the simulator
  • Gantt chart can remain the same in terms of tim

Conclusion


  • Industry is heading towards server based applications
  • Thin client (browser) and applications are in cloud
  • This project could be a good example of that - if done well
  • I am proud of how quickly I picked up various concepts and the way microcontroller SDK are programmed.
  • This project has more potential, and I sometimes feel my efforts are not enough
  • Ideally I want to be able to package this up and be able to deploy, possibly open source my efforts. However, licence restrictions are a barrier.

EmbeddedOnlineLab

By Tharshan Muthulingam

EmbeddedOnlineLab

  • 1,052