Thanks to the help of Rafael Molina Chasserot some new features have been added to the TZXDuino and CASDuino firmwares which has freed up some memory as well, which may lead to more features being added in the future.
A percentage counter and a timer counter have been added to all screens so that you know how much is left of a file to play and how long it has taken to load.
The OLED1306 and PCD8544 use completely new routines for the firmwares saving a lot of memory.
Folder navigation is now different. Rather than using the Menu button on TZXDuino or the Stop button on CASDuino to return to the ROOT directory, if you press the stop button when no file is playing you will go up one folder only making it easier to navigate.
TZXDuino
The TZXDuino has had a menu added so that MSX users can set the Baud rate of TSX files so that they can load faster than normal.
A few more emulator only IDs have been fixed so that they are skipped by TZXDuino.
CASDuino
CASduino has had a Baud Rate of 3675 added to its menu, which is the maximum speed an MSX can load from cassette.
CAS files should now run automatically on CoCo computers.
Here are some videos of the new firmwares in action.
1602LCD
OLED1306
PCD8544
DOWNLOADS
TZXDuino 1.9 Here
CASDuino 1.17 Here
Libraries Here
A percentage counter and a timer counter have been added to all screens so that you know how much is left of a file to play and how long it has taken to load.
The OLED1306 and PCD8544 use completely new routines for the firmwares saving a lot of memory.
Folder navigation is now different. Rather than using the Menu button on TZXDuino or the Stop button on CASDuino to return to the ROOT directory, if you press the stop button when no file is playing you will go up one folder only making it easier to navigate.
TZXDuino
The TZXDuino has had a menu added so that MSX users can set the Baud rate of TSX files so that they can load faster than normal.
A few more emulator only IDs have been fixed so that they are skipped by TZXDuino.
CASDuino
CASduino has had a Baud Rate of 3675 added to its menu, which is the maximum speed an MSX can load from cassette.
CAS files should now run automatically on CoCo computers.
Here are some videos of the new firmwares in action.
1602LCD
OLED1306
DOWNLOADS
TZXDuino 1.9 Here
CASDuino 1.17 Here
Libraries Here
Hi,
ReplyDeleteI have a question about the MaxDuino firmware which combines both TZXduino and CASduino features. Is it possible to program it? I have tried but alway get an error while sketch compiling.
Thanks
Rick
Only just found out about this comment, Sorry.
DeleteMaxDuino is not supported by myself and is created by others using our code as the basis for it.
Hello,
ReplyDeleteI've uploaded this 1.9 firmware and everything is fine except my OLED1306 contrast.
After update t is too low for me comparing to what I've had in previous firmware versions.
Is there a way to set the contrast higher?
If yes - which command / setting is responsible for this?
Thanks a lot,
Greg
1.9 TZXDuino is a very old firmware. You should download the latest which is 1.15.1. You can find links to it on the latest post on this blog.
Deletehttps://arduitape.blogspot.com/2020/04/firmware-updates-and-dragon-cas-file.html
Hi again,
ReplyDeletehow can I add one line (line spacing) in OLED1306 display?
I mean, after "Select File.." line I would like to have second line empty (line spacing) and then third line with name of the file to load.
Default setting is: "Select File.." in first line and name of the file to load in second line - no line spacing between...
Thanks a lot.
I'm not sure if this would work but at the beginning you could add
Deletechar line2[17];
to the following
#ifdef OLED1306
#include
char line0[17];
char line1[17];
char lineclr[17];
char indicators[] = {'|', '/', '-',92};
#endif
and then in the printtextF function change
#ifdef OLED1306
char* space = PSTR(" ");
strncpy_P(lineclr, space, 16);
if ( l == 0 ) {
strncpy_P(line0, text, 16);
sendStrXY(lineclr,0,0);
} else {
strncpy_P(line1, text, 16);
sendStrXY(lineclr,0,1);
}
sendStrXY(line0,0,0);
sendStrXY(line1,0,1);
#endif
to
#ifdef OLED1306
char* space = PSTR(" ");
strncpy_P(lineclr, space, 16);
if ( l == 0 ) {
strncpy_P(line0, text, 16);
sendStrXY(lineclr,0,0);
} else {
strncpy_P(line2, text, 16);
sendStrXY(lineclr,0,2);
}
sendStrXY(line0,0,0);
sendStrXY(line2,0,2);
#endif
There may be issues with the printtext function though but as far as I know that is only used in the scrolltext function
all you would need to do then is find the #IFDEF OLED1306 and scroll down to
printtext(outtext,1);
to
printtext(outtext,2);
Like I say
I'm not sure if that would work but in theory it should.
> Buleste:
ReplyDeletethanks a lot, works like a charm! :)
Buleste, one more question:
ReplyDelete- is there possibility to make the default font bold (or itallic)?
Or maybe even to use completly different font?
If yes - how to do it?
Thank You! :)
It is possible to change the font and add a new font but it is not easy and bigger fonts take up more memory and may mess up how the display shows things.
DeleteIf you look in the display tab you will see
// Small 8x8 font
const unsigned char myFont[][8] PROGMEM = {
Followed by Hex code. You can find similar such listings in U8glib and others.
As I say though, they will take up more precious memory.
Well,
DeleteI really don't know how to do it, too difficult for me...
Where exactly can I find such hex font strings to make easy copy-paste?
Is there any simplier way, maybe just to make deafualt fonts bolder?
There is no simple way to do it and there is a reason as to why that font is used, it uses minimal memory.
DeleteThe only way to make the font bolder is to change the font used.
Ok,
DeleteI understand,
but where can I find ready to copy proper HEX strings of different fonts, so I could paste them into TZXDuino sketch?
Or do I need to use any converter?
You can get the source for fonts from u8glib on Github.
DeleteUnfortunately they are in decimal but the should still work.
https://github.com/olikraus/u8glib/tree/master/fntsrc
Just to be clear:
ReplyDelete1. I must add u8g.h file to sketch.
2. Add #include "u8g.h" line to sketch
3. Then copy all lines from (i.e) "u8g_font_04b_03.c" and paste it instead of original hex code after "// Small 8x8 font" description.
If yes - it didn't work...
Ok, I am complete noob, need short step-by-step guide, please...
Don't add u8g.h
DeleteI would leave small 8x8 font alone and call your font something.
e.g.
const unsigned char geloFont[][8] PROGMEM = {
and then using the find tool replace myFont with geloFont. That way it's easy to correct any mistakes.
After the const unsigned char geloFont[][8] PROGMEM = { you copy and paste the numbers.
This method seems to doesn't work.
ReplyDeleteIf I just copy and paste the numbers, instead of any fonts I got strange glitches / dots / pixels on the display...
Maybe those numbers must be grouped somehow?
It's a pitty, that they are not in HEX... :(
Ok,
ReplyDeleteI've managed to:
1. copy "ssd1306xled_font8x16" HEX text I found in "Google",
2. changed the line "const unsigned char myFont[][8] PROGMEM = {"
to
"const unsigned char myFont[][16] PROGMEM = {"
The icons are now bigger, nicer, but there is only one half of their height visible…
Do I need to make some more changes in the sketch to make them entire visible?
As I told you it was not recommended because it is difficult.
DeleteThe display is set to display 16 columns and 8 rows and at the moment your font is only being displayed on one row but needs 2. You will need to adjust the code to display the full font.
The library used for the 1306 is a common small library that is used by many projects. You should ask these questions on an Arduino or programming forum.
This comment has been removed by a blog administrator.
ReplyDelete"You will need to adjust the code to display the full font".
ReplyDeleteOk, and could You tell me how can I do it, please?