|
Forum Index : Microcontroller and PC projects : MM Console+ Project
| Author | Message | ||||
| erbp Senior Member Joined: 03/05/2016 Location: AustraliaPosts: 195 |
The following are details of the project I have just completed, which may be of interest to some. It is using one Micromite as the Console for any other Micromite that it is connected to. This project came about as I didn't have a PC located in my workshop, so I found I was spending more time moving MM's, modules, test equipment, power supplies, etc., from the workshop to where the computer is located (and back again) than I was in productive development and testing. I thought - "why not use a Micromite to act as the Console, why do I need a computer, after all it just needs a serial comms link?" So after a small proof of concept project was successful and I got quite excited about the idea of not needing a PC to do many of the tasks related to "doing MM stuff", the MMConsole Plus (MMConsole+) project was born. Although I now have a computer in the workshop, I find I only use it for loading firmware to Mites, major development coding, reading TBS and the occasional Googling to get the answer (or not) to a vexing question. I much prefer to use MMConsole+ to work with other Mites. Below is a screen shot of one of the main screens of MMConsole+ acting as the console for a connected ARMmite F4 and running a few commands, including initiating a program that I had just uploaded to the F4 via MMConsole+. ![]() Below is a slightly reformatted extract (in blue) from the first couple of sections of the MM Console+ User Guide document included in the attached release package. This gives more high level detail on functionality and hardware requirements. If you feel this might be something that you would be interested in, the User Guide provides a lot more details including over 20 screen shots. Introduction MM Console+ is a MMBasic program designed to run on a Micromite Plus device and provide Console and related functionality when connected to any other Micromite device thus replacing the need to connect to a PC to act as the Console. In this document, the Micromite Plus device running the MM Console+ program will be referred to as the Console MM while the Micromite device whose console it is connected to will be referred to as the Target MM. Specifically, it provides the following functions: 1. Basic Console Access - i.e. the ability to enter MMBasic commands at the MMBasic Prompt on the Target MM and to display output messages received from the Console of the Target MM. 2. Console Logging - all console messages can be logged to a log file stored on the SD Card of the Console MM. Logging can be enabled/disabled at any time and new log messages can be appended to an existing log file if desired. 3. Console Log File Viewing - the contents of an existing log file (must be a log file created by MM Console+) can be viewed and scrolled through as well as searching for occurrences of a specific word or text string in the log file. 4. Lite Editor - provides limited editing capability for MMBasic program (.bas) files stored on the SD Card of the Console MM. The editor is intended for small tweaks, corrections and similar maintenance type activities, it is NOT intended to support full-blown program development from scratch (refer to the Lite Editor section in the User Guide document for more details). 5. Program Crunch - provides the ability to "crunch" an existing MMBasic program file stored on the SD Card of the Console MM. The "crunched" file is saved with a different name so it does not overwrite the original source file. Statistics for the crunch process are displayed, including the % of file space saved, the file size of both original source and crunched files (in number of lines and in bytes), as well as the elapsed time taken to perform the crunch process. 6. Program Upload - a MMBasic program file stored on the SD Card of the Console MM can be uploaded to the Target MM. This uses the XMODEM RECEIVE method. Optionally the file may be Crunched as part of the upload process, with the crunched version of the file also being saved, as well as the crunch statistics (as described above) being displayed. Important Notes: 1. MM Console+ is NOT a VT100 Terminal Emulator and as such is incompatible with the MMBasic Built-In Editor function (the EDIT command is not supported and will not be allowed to be sent to the Target MM). However, the Lite Editor within MM Console+ does provide somewhat equivalent functionality with some additional flexibility and features. 2. MM Console+ cannot load the MMBasic firmware to a Target MM device - this still requires a PC with PICkit, Microbridge or 1455 interface module. Hardware Requirements CPU MM Console+ is designed to run on a Micromite Plus (MM+ / MX470) device. Either the 64 or 100 pin variants are acceptable. It will probably run on the more powerful devices (MMX, ARMmite F4, ARMmite H7) but none of these have been tested, and some source code modifications would be necessary. It will NOT run on Micromite MkII (MM2 / MX170) or ARMmite L4 devices. KEYBOARD An external (PS/2) keyboard is required. LCD A screen with a minimum resolution of 800 x 480 is required. Touch is not used by MM Console+, however the screen can support it and it can be configured without any adverse effects. SD CARD Access to an SD Card is required. This may be using the SD Card interface on the back of the LCD or a separate SD Card holder connected to the appropriate pins (e.g. CON10 of the E100 board). BUZZER A Piezo Buzzer (as optionally fitted to the E100) is not required but is HIGHLY recommended. MM Console+ does make use of the beep function to provide audible feedback as to when keys that are not valid in the current scenario are pressed or when certain errors are detected. RTC A RTC Module is not required but is HIGHLY recommended. It allows log file records and file access timestamps to use realistic date/times, and the correct current date/time will be displayed on the Status Bar of the MM Console+ program. COM1 A connection to COM Port 1 (Tx, Rx and Ground) on the Console MM is required. Note: The connection between the Console MM (COM1) and the Target MM (Console) is a straight Serial connection - i.e. no UART/USB modules / Microbridge / 1455 interface modules are required or used. The Target MM must also provide direct access to the Console Tx and Console Rx signals to be able to connect to the Console MM. A pair of HC-12 wireless devices could be used to provide a remote serial connection method. Release Package: MMConsPlus_1_0_69.zip Note that this is the software for this project only. It is designed to run on the Micromite Plus hardware (my setup is using an E100), but the exact details of the hardware platform / setup, etc., is up to you, as long as it meets the Hardware Requirements listed above. It will NOT run on the MX170 or ARMmite L4 devices, and is untested on MMX and the bigger ARMmites. MMX should be OK I guess and the ARMmites might be ok, but would require software mods (they don't support use of the LIBRARY for a start). As I have never followed the Picromite, I have no idea whether that platform would work or not. While not really about the hardware side of things, I have a mini-keyboard (84 keys) and my E100 is cased up and uses a mini-USB connector for power input. I have a USB power-bank (mainly for my phone) that I can plug in to this power connector and the whole thing becomes portable. While in the workshop I can use a mains powered 5v PSU - quite convenient. If you do decide to try this out, please do read through the "MM Console+ Program Installaton and Setup" section starting on page 33 of the User Guide document - it contains important information that will help you through this process. You may also want to print the final page of the User Guide as it is a "cheat sheet" listing which Function Keys are supported and what action they perform for each of the 3 main screens used by the program. While I have made every effort to ensure the program is bug free, I know there will be a few still lurking undiscovered - the good news is that there is NO charge for bugs, they are entirely free. Seriously though, if you do find any bugs please report them via this Forum and I will attempt to resolve them, but can't provide a guarantee as to how fast that might happen!While challenging at times I found this project very interesting and informative. I was constantly surprised at the new ways I found to squeeze more code (and data) into a limited amount of Flash and RAM memory. I certainly ended up with considerably more functionality packed in than I dreamt was possible when I first started - and I did blow the limit several times during development, uploading code that was small enough to fit into the available Flash space, but exceeded the available RAM space where it needed to be buffered during upload and before saving into Flash. But there always seemed to be another way to discover how to reduce essentially the same code by a couple of K Bytes to get going again. Regards, Phil. |
||||
| Tinine Guru Joined: 30/03/2016 Location: United KingdomPosts: 1646 |
Very interesting indeed...Many thanks |
||||
| Geoffg Guru Joined: 06/06/2011 Location: AustraliaPosts: 3308 |
Wow, that is one huge and complex program. Interesting approach and the extensive comments make it easy to follow. Geoff Geoff Graham - http://geoffg.net |
||||
CircuitGizmos![]() Guru Joined: 08/09/2011 Location: United StatesPosts: 1427 |
This is amazing work! Micromites and Maximites! - Beginning Maximite |
||||
| erbp Senior Member Joined: 03/05/2016 Location: AustraliaPosts: 195 |
Attached is an updated version of MMConsole Plus (version 1.0.70). This version fixes a bug that caused certain commands entered via MMConsole+ when the Target MM was an ARMmite F4 (or possibly ARMmite L4 or H7) to not complete properly and the Command Prompt was not re-displayed until a Break (Ctrl-C) was sent to the Target MM. Commands known to be impacted were: most OPTION ... commands, GUI CALIBRATE and possibly others. This has been fixed in the updated version attached. NOTE: this only impacts commands entered via the MMConsole+ program!! The attached zip file contains the full release including the User Guide document. ONLY the MMConsole+.bas and MMConsole+_Crunched.bas files have been modified. If you already have MMConsole+ installed, just load the MMConsole+_Crunched.bas file from this release, all other files can remain unchanged. If you want to install MMConsole+, please read through the "MM Console+ Program Installation and Setup" section starting on page 33 of the User Guide document. Release Package: MMConsPlus_1_0_70.zip Cheers, Phil. |
||||
| The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |