Here are some recent projects where Pocket Innovations were involved with one part of a project or a whole project.
This is a self-funded Open Source Research and Development project to build an electric motorcycle. The project involves designing and building a 3-phase induction motor controller and battery management system. The motorcycle being used for the conversion is a Suzuki Across. To see the lastest news and updates on this project please visit eMotorcycle.blogspot.com.
Analog Devices Blackfin Driver Software
This work involved writing device drivers for Analog Devices Blackfin DSP. It required writing optimised code which had to conform to Analog Devices established device driver model and coding style. Support documentation was also needed(this had to follow Analog Devices established documentation style). Testing procedures needed to be followed to ensure correct operation of driver which included regression testing for updates to a driver.
Input was also given on some key aspects of driver implimentation, with a key role in helping develop parts a file system service.
This is a project that was taken on later into the development phase. A working prototype had been developed but the project needed to be taken to the next level ready for comercial production.
One of the requirements of the work to be carried out was to add support for entering alpha/numerical data. The prototype interface was a 16x2 character display with an IP65 rated keypad, and provided a difficult and cumbersome way of entering letters. Our solution was to change the interface to a 4.7" graphics LCD touch screen, this provides a weather proof interface that is comparable to the 16x2 lcd with waterproof keypad. The new display has allowed the development of an easy to read and use customiseable user interface.
MRC Semaphore Board
This project was an upgrade to some existing windows software that took input from several field controllers and a stream of data from a modem into a user interface. The software then took the information, formatted it and output to an electronic display board. The windows software was a single big application that needed to be running for the system to work.
We decided that a web application with a database backend and several windows services would be a better way to implement the system. This allows for remote monitoring and maintenance of the system. The services allow the system to update the sign without the server being logged in which increases security. A service was written for each of the field processors, one for the data stream and one for communicating with the sign. This allows for a more robust system since all the different elements are seperated with a central database for sharing the data.
Basic motor controller
This was another project that was taken over after an initial prototype had been developed. On taking over the project there were "several small software problems that should be easy to fix", the problem symptoms were occasional motor activation at random times, and unreliablity! After some initial investigation it was found that there were some hardware design problems and the "small software prolems" turned out to be a product of some more severe programming faults.
The hardware was re-layed out to reduce the effect of motor switching on the digital circuit and an improvement of the layout to help with manufacturing. The software was re-written to be modular and a new control unit with a communitions link was added to stop the automatic operation. The new software made it easy to alter the control unit to work the way the customer wanted.
School Zones Server
This was a major project to connect several hundred field processors via GPRS to a central server with a SQL Server database. The database was interfaced to via a website to control the field controllers, this control had to be real-time and a log of activity was critical.
Our part of the project was to design a database and to write a service that was able to communicate with the field processrors. The database as designed so that in the case of an update being applied from the website the field processors will be updated, even is the server restarts or another user updates the same field processor. The database interface was through views, stored procedures and table integrety and loggin was done through triggers. This allowed for updates the database to be done in the testing phase to speed up some areas of the database access without affecting the website. The major key points of this project were:
- Reliablity - the system has to be 100% failsafe, this means that if a server goes down with commands to field units un-processed then when the server comes back online the commands still have to be sent.
- Logging - Comprehensive logs are kept for everything, from access to the database from the website to field controller service logs and communications to/from the field controllers. Everything is kept. This makes traceability and bug tracking very easy.
- Speed - The speed of real-time updates from the field units, and access to the database from the web interface was a consideration in the design of the system. The database uses stored procedures and triggers extensively so that tweeks to the database were able to be carried out without having to change the web code.