![]() |
Forum Index : Microcontroller and PC projects : New Version: Colour Maximite 2 Ver 5.05.04
Page 1 of 2 ![]() ![]() |
|||||
Author | Message | ||||
Geoffg![]() Guru ![]() Joined: 06/06/2011 Location: AustraliaPosts: 3272 |
There is a new version of the Colour Maximite 2's firmware and documentation available for download from https://geoffg.net/maximite.html (scroll to the bottom of the page). This is Ver 5.05.04 and is a significant release which wraps up all the changes made in the recent run of beta versions that Peter has posted. It is recommended that you upgrade, even if you are running the latest beta version. The source code at http://mmbasic.com has been updated and if you have downloaded the V5.05.03 source you can use the same link to download this version. Congratulations to Peter, this version represents another monumental effort. Geoff Geoff Graham - http://geoffg.net |
||||
realmnm![]() Newbie ![]() Joined: 07/07/2020 Location: AustraliaPosts: 34 |
Thanks to Peter for all the hard work, it is much appreciated. Also to Geoff for the manuals. ![]() ![]() This signature intentionally left blank. |
||||
thwill![]() Guru ![]() Joined: 16/09/2019 Location: United KingdomPosts: 4251 |
Thank you for all the hard work ... ... and I'm really sorry about this, and I'm just going to workaround it, but for the record BUG: DIR$ and MM.INFO(FILESIZE, f$) don't handle '..' in path > ls "src/sptrans/../common/map.inc" A:/MBT/src/common 14:14 28-07-2020 1911 map.inc 0 directories, 1 file > Print Mm.Info(FileSize "src/sptrans/../common/map.inc") -1 > Print Dir$("src/sptrans/../common/map.inc", All) Error: Could not find the path I very much doubt this is a new bug in this release. Sorry, sorry, sorry, Tom MMBasic for Linux, Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
JoOngle Regular Member ![]() Joined: 25/07/2020 Location: SwedenPosts: 82 |
There's another party pooper bug I discovered yesterday, I'm trying to reproduce the error but it didn't re-occur yet. I was messing around with the sprite command manually in prompt, first to get copies of the screen text "as sprites" (the last number when set to 0 makes it copy the source from the sprite from the screen to the sprite), then I set it to one without having a sprite file, which displayed a garbled sprite (pretty much like it does on a commodore 64, because it takes it from memory then, which is okay ...or so I thought). Then I wrote a small sprite program with it, and after running it - it would not let me run it as it said "line to long error" or something similar (I've erased the file on the SD card because the file sprite.bas became corrupted and suddenly exploded in size from 1kb to 29kb on the CMM2 itself. I couldn't even F4 (edit) it, as it would give me the same error message, line too long, so I took it to the PC to study where it went wrong, but it just looked like ASCII code gibberish. What went wrong, I have no real concept of, but what I did was exactly as I described above. The program worked fine until I made one small change like adding a variable to the sprite code. sprite 1,1,dx+40,400,40,40,1 The variable before that was only dx=dx+1 the above sprite command in the program was sprite 1,1,40,400,40,40,1 before that, and ran just fine, albeit static ofc. I tried reproducing the scenario today, but couldn't. Since then, I've written this as a small test, but it works fine: init: cls cx=-40 cx5=800 dx5=800 dx2=800 sk=1 start: print " test " box 1,20,796,40,1 box 1,60,100,60,1 box 1+233,60,100,60,1 box 1+466,60,100,60,1 box 1+696,60,100,60,1 box 1,300,796,30,1 box 1,500,796,30,1 game: do cx=cx+1 cx1=cx1+1.2 cx2=cx2+1.3 cx3=cx3+1.1 cx4=cx4+.60 cx5=cx5-.50 dx=dx+0.4 dx1=dx1+0.7 dx2=dx2-1 dx3=dx3+1.4 dx4=dx4+.80 dx5=dx5-.45 if cx>800 then cx=0 if cx1>800 then cx1=0 if cx2<-40 then cx2=800 if cx3>800 then cx3=0 if cx4>800 then cx4=0 if cx5<-40 then cx5=800 if dx>800 then dx=0 if dx1>800 then dx1=0 if dx2>800 then dx2=0 if dx3>800 then dx3=0 if dx4>800 then dx4=0 if dx5<-40 then dx5=800 sprite 1,1,cx,400,40,12,0 sprite 1,1,cx1,440,40,12,0 sprite 1,1,cx2,450,40,12,0 sprite 1,1,cx3,470,40,12,0 sprite 1,1,cx4,470,40,12,0 sprite 1,1,cx5,370,42,12,0 sprite 1,1,dx,130,40,12,0 sprite 1,1,dx1,145,40,12,0 sprite 1,1,dx2,160,40,12,0 sprite 1,1,dx3,175,40,12,0 sprite 1,1,dx4,190,40,12,0 sprite 1,1,dx5,220,42,12,0 pause 5 loop Which runs just fine: ![]() |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10078 |
I could either: 1: fix it in the next release 2: decide it is such a silly thing to type that if found the firmware will overwrite itself and then wind up the CPU clock fast enough that the chip overheats and dies. Without a reproducible sequence there is nothing I can do |
||||
Shadamus Newbie ![]() Joined: 26/07/2020 Location: United StatesPosts: 17 |
Can someone point me to the "How To" for updating the firmware? I've found TassyJim's old post that references to using the UPDATE FIRMWARE at the console, followed by plugging in the USB A-to-USB A cable. But Can't seem to find what executable to run on my computer (Windows 10) to actually push the .bin file through the USB cable to the CMM2... Thanks for helping a noob out! |
||||
Sasquatch![]() Guru ![]() Joined: 08/05/2020 Location: United StatesPosts: 376 |
The information you seek has been cleverly hidden in Appendix G of the user manual. Currently starting on page 118 of the latest manual revision Note that if you don't have the elusive USB A-A cable, you can also upload the firmware over a virtual serial port using a standard USB A-B cable (plugged into the console port) This method is about 7X slower than the A-A cable using the keyboard port. Edited 2020-07-29 04:22 by Sasquatch -Carl |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10078 |
Appendix G in the user manual - exactly the same as loading for the first time |
||||
twofingers Guru ![]() Joined: 02/06/2014 Location: GermanyPosts: 1535 |
Hi Shadamus, please read the manual. ![]() Regards Michael causality ≠correlation ≠coincidence |
||||
Shadamus Newbie ![]() Joined: 26/07/2020 Location: United StatesPosts: 17 |
Thanks guys. I knew it was around somewhere. I'll be more persistent in searching next time. Update accomplished. |
||||
mkopack73 Senior Member ![]() Joined: 03/07/2020 Location: United StatesPosts: 261 |
Awesome Peter!!! I’m really going to need to install a switch for the program/run pins if you keep cranking out firmware at this rate! Getting to be a pain having to keep opening the case up to swap the jumper around. :) |
||||
Sasquatch![]() Guru ![]() Joined: 08/05/2020 Location: United StatesPosts: 376 |
All kidding aside, I know that reading documentation isn't much fun but if you haven't skimmed through the entire User Manual a couple of times I recommend that you do. You might just find a few hidden gems in there that you weren't aware of. Oh, and use the link above at the start of this thread to download the latest version of the User Manual. Edited 2020-07-29 05:26 by Sasquatch -Carl |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10078 |
You don't need to - check out the UPDATE FIRMWARE command |
||||
mkopack73 Senior Member ![]() Joined: 03/07/2020 Location: United StatesPosts: 261 |
Ok I’m curious then, how do you all have your CMm2 hooked up?im using an Ac-usb power adaptor and then the usb keyboard into the USB port. How are you all set up so you can develop on the Pc and push over code and firmware to the cmm2 without swapping the sd card. Are you just Powering the cmm2 directly from the pc so you can transfer the Files across that usb link? Something was mentioned about transferring from the keyboard but then how do you have the keyboard plugged in? Just trying to optimize my development setup to make things easier /faster. I currently do most of my big coding on MMEdit and then copying the files to the SD card and swapping it over, testing and making big fixes on the cmm2. Then popping out and copying back over to the laptop and so on. |
||||
Sasquatch![]() Guru ![]() Joined: 08/05/2020 Location: United StatesPosts: 376 |
If you have the USB A-A cable available, you can simply type the Update Firmware command (from the keyboard or serial console) and then switch the USB A-A cable for the keyboard cable. I usually switch the keyboard back before a reset. You can also update over the USB console port (virtual serial port) you will want to type the Update Firmware command and then close any console connection (i.e TerraTerm or MMEdit) so that the CubeProgrammer software can connect via the USB "serial port" (called UART in CubeProgrammer) note that updating via serial connection is about 7X slower than straight USB Edited 2020-07-29 07:07 by Sasquatch -Carl |
||||
lizby Guru ![]() Joined: 17/05/2016 Location: United StatesPosts: 3319 |
I have the CMM2 connected via Teraterm with USB-A (PC) to USB-B (CMM2) and mostly develop on the PC using Notepad++, and then transfer to the CMM2 for debugging with XMODEM RECEIVE "filename" (and then XMODEM SEND it back). For firmware, I use the USB-A to usb-A cable, flip the switch from "Flash" to "System", and flash the firmware with STM32CubeProgrammer. I haven't had the top on my case in weeks. If I've downloaded other's code to the PC from the shed, I usually swap the SD card. PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
Andrew_G Guru ![]() Joined: 18/10/2016 Location: AustraliaPosts: 868 |
Hi all, Just yesterday I installed a little slide switch (Jaycar, SS0834 but RS do them too). A 3mm hole in the base allows me to slide it with a jeweler's screwdriver. I'll now check out Peter's new approach. (Edit: I've easily updated the firmware and am starting to play with Peter's changes - incredibly comprehensive. Many thanks to you all - A) Cheers, Andrew Edited 2020-07-29 12:11 by Andrew_G |
||||
thwill![]() Guru ![]() Joined: 16/09/2019 Location: United KingdomPosts: 4251 |
Hi Peter, That would be nice. You could do that, but I think people would complain and ultimately it would just create more work for yourself. It's only a "silly thing" to do when it is written as a literal, it's rather different when it is the result of a calculation as you might require when you have a relative path that you wish to resolve from somewhere other than Cwd$, e.g.: Print Dir$($absolutePath + "/" + $relativePath, All) I'm working round it by writing a function to canonicalise a path, but unless I'm making particularly heavy weather of it, it isn't a completely trivial algorithm. Regards, Tom MMBasic for Linux, Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10078 |
Correct!!!! Try this CMM2V5.05.05b1.zip |
||||
mclout999 Guru ![]() Joined: 05/07/2020 Location: United StatesPosts: 483 |
Keep in mind that Anyone that gets a preassembled version may never have installed an image. |
||||
Page 1 of 2 ![]() ![]() |
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |