History of MembersPage/DavidHelland
Older Newer
2006-03-16 04:43:08 . . . . MembersPage/DavidHelland [added Megaloader description]


Changes by last author:

Added:
Hi -

I have a MSAVR running in simulation with Mega_Stim. I hope to install on my air cooled VW soon. The configuration is 1600cc Tbi 4 cyl.

My home page is :

http://helland.net

----

DOXYGEN

Demo of VEMS souce code documentation is :

http://helland.net/vems

Source code in CVS was updated to include the DOXYGEN comments on 4/27/04.

To generate the DOXYGEN html directory on your computer:

# download DOXYGEN from www.doxygen.org

# intall it

# download the VEMS source code from CVS

# enter the folowing command in the firmware directory: doxygen doxygen.cfg

----

MEGALOADER

I have been working on upgrading the terminal emulation program that I use to add flash programming capability.

Megaloader http://www.vems.hu/files/DavidHelland/megaloader.zip from MembersPage/DavidHelland for win, linux (src + binary) is text-only terminal emulator with up-load and down-load capability for MSAVR. Also programs HEX files into AVR Flash.

I hope someone would try it and give some feedback. It can be built for Win32 or Linux.

The main functions are:

Program Name: Megaloader

* Author: Dave Helland

* Date: 5/21/04

* Target: WIN32 (Win9x,Win2K,ME,NT) and Linux

Purpose/Description:

* Provide FLASH serial programming function for MegasquirtAVR Mega128.

* Provide all the enhanced features of prog.pl perl script.

Features:

* 1. Upload HEX files via serial port to program FLASH in

* Atmel AMR microprocessors running : Bootload.c

* 2. Verify HEX files via serial port are same as FLASH

* 3. Upload HEX files via serial port to program EEPROM (n/a for MegasquirtAVR)

* 4. Verify HEX files via serial port are same as EEPROM (n/a for MegasquirtAVR)

* 5. Upload TEXT files via serial port (can send config.mtt etc.)

* 6. Function as VT100 Terminal Emulator

* 7. Log Received data to file (can receive config and table data)

* 8. Supports additional AVR Mega devices.

Usage: megaloader [fileword] [flagword] [speedword] [port]

* [fileword]

*: [filename.ext] optional - download Hex flash file

*: [-d filename.ext] optional - download text file via emulator

*: [-e filename.ext] optional - download Hex eeprom file (N/A)

*: [-l filename.ext] optional - log file for terminal emulator

* [flagword] optional (case sensitive)

*: [-w] : write flash (otherwise only verify). This implies 'E'

*: [-t] : talk to msavr (application) first,

*:: issuing the menucommand to drive it to bootloader

*: [-E] : exit bootloader at the end (try to start msavr app.)

*: [-T] : Time Tag received terminal emulator messages on CRLF

*: [-V] : Verbose messages

*: [-v] : MEGALOADER version number

* [speedword] optional

*: [-r 19200, 38400, 57600, 115200] optional -

*:: (use after -t) download baud rate (default 19200)

*: [-b rate] optional - terminal emulator baud rate (default 9600)

* [port] optional

*: [-c COM1], [-c /dev/ttyS0]\r\n

Terminal Mode Commands:

* Commands are single control characters.

*: ^A (control-a) : Toggle display mode

*:: Display Modes are:

*:: VT100 mode : interpret VT100 screen control sequences

*:: ascii hex : dumb terminal with control chars printed as <hex>

*:: hex : all chars printed as 2 char hex bytes

*: ^B (control-b) : clear the screen

*: ^C (control-c) : Control-C Exit

*: ^F (control-f) : Prompt for text file to send

*: ^D (control-d) : Send text file

*: ^R (control-r) : Toggle RTS high (can be used for remote reset)

*: escape : Normal program exit

David Helland

----

Possible Text Data Field Description Language

Purpose: define an intermediate data format for decoupling engine computer code from display / tuning / configuration programs.

I checked into SYLK formats for text language and found that it is not very concise and GNUmeric (Linux spreadsheet) only imports this format (no output). I suppose we could get the GNUmeric sources an customize the program for our own purposes but that is not in my scope of things.

GNUmeric does have a WK1 binary format that is compatable with excel. I still think it would be very handy to prototype a display with calculations in Excel and the export to a file that could be read by other spreadsheets or our own custom programs.

SYLK and WK* formats are located at:

:http://www.wotsit.org/search.asp?page=2&s=database

I found the following C-code spreadsheet for Linux (can be ported to Win32). This supports the WK1 binary format and has its own ASCII text format that is more readable and concise. We could convert this into our own custom programs or just use the parser for other purposes. I loaded and built it on my Linux box. It is simple but powerfull. It will allow referencing cells by name in the text file format and also has a 'Z' axis in the spreadsheet for hiding intermediate calculations and data structures. The functions can easily be expanded to fit our needs.

teapot (Table Editor And Planner, Or: Teapot),a spread sheet program for UNIX.

The current release has the following features:

* curses based user interface with easy to understand menues

* portable sheet file format uses XDR or ASCII format

* tbl, LaTeX, HTML, CSV or formatted text files can be generated *:and simple SC and WK1 sheets can be imported

* typed expression evaluator with the types int, float, string, error, pointer to cell and empty

* iterative expressions

* powerful cell addressing

* three-dimensional sheets

* new expression evaluator functions can be added very easy

* English, Dutch, German or Ukrainian messages

* a user guide, available as troff -mm, PostScript and ASCII

* It is still a small and simple program!

teapot should work on any system which supports the following:

* POSIX

* ANSI C

* XDR library

* SYSV curses or ncurses library

The changes compared to 1.06 are:

* Ukrainian messages

A GNU zipped tar file is available from:

:http://www.moria.de/~michael/teapot/

====Asc file format definition====

*;C: -- parse cell

*:: parse x y and z

*:: parse optional attributes

*: A -- adjustment

*:: 'l': adjust=LEFT;

*:: 'r': adjust=RIGHT;

*:: 'c': adjust=CENTER;

*: L -- label

*: P -- precision

*: S -- shadowed

*: E -- scientific

*: O -- locked

*: T -- transparent

*: I -- ignored

*; : convert remaining string into token sequence

*:: (values, or formulas : see teapot.doc for list)

*:: i.e. @(reference) is a an indirect to x,y,z or label

:W -- column width

:'# -- comment

====Sample Asc input/output file example====

This is a work sheet generated with teapot 1.07.

:C1 5 0 T................................#set x,y,z (1,5,0) to transparent

:C1 3 0 Lcalcdata3 :@(line2data)+32...#at x,y,z (1,3,0) name "calcdata3" with formula: add 32 to line2data

:C0 3 0 :"line three".................#set x,y,z (0,3,0) to string

:C1 2 0 Lline2data :sin(3).........#at x,y,z (1,2,0) name "line2data" with formula: sin(3)

:C0 2 0 :"line two".....................#set x,y,z (0,2,0) to string

:C1 1 0 Lline1data T :123..........#at x,y,z (1,1,0) name "line1data" with value: 123

:C0 1 0 :"this is line1"..............#set x,y,z (0,1,0) to string

:W0 0 25..............................#set col 0 width to 25

----

David Helland

The Sylk format might be sufficient, but it seems to me a lightweight custom language with reverse polish notation for the formulas and simple text-format for display-layout description would be easier, and just as good.

Maybe all this decoupling can be postponed a bit:

in the worst case we will need to maintain the common part in 2 branches for some time:

* the java codebase

* the C codebase

as I expect that we will not have a perl codebase for the tuningprogram.

On the other hand, being compatible with external programs is nice, takes jobs off our shoulder. We also want to support logs for spreadsheets, but the csv is the simplest for it.

I cannot judge how hard would it be to use alien sylk code, and what legal consequences it will have. If we need to implement sylk, we probably want only a subset of sylk: the subset we actually need.

----

I have finished my design of the Mega_Squirt_AVR board. (see photos)

My MSAVR Board with Mega_Stim and LCD

DRH_msavr_megastim.jpg

My MSAVR Board

DRH_msavr_board.jpg

I made a few changes i.e.

# layout in PADS

# more surface mount parts

# size changed to 4" by 6" to fit original MegaSquirt box.

# more trasient voltage protection

# programming header compatible to my cable

# no parts on the bottom

# Misc LED at board edge with transistor driver

other than that I have made the board very faithful to the Mega_Squirt_AVR 2.2 layout

per :

pcb_v2.2small_pads_pdf.tgz

David