Skip to main content

New Firmwares With New Features

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

Comments

  1. Hi,

    I 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

    ReplyDelete
    Replies
    1. Only just found out about this comment, Sorry.

      MaxDuino is not supported by myself and is created by others using our code as the basis for it.

      Delete
  2. Hello,
    I'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

    ReplyDelete
    Replies
    1. 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.

      https://arduitape.blogspot.com/2020/04/firmware-updates-and-dragon-cas-file.html

      Delete
  3. Hi again,
    how 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.

    ReplyDelete
    Replies
    1. I'm not sure if this would work but at the beginning you could add
      char 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.

      Delete
  4. > Buleste:
    thanks a lot, works like a charm! :)

    ReplyDelete
  5. Buleste, one more question:
    - 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! :)

    ReplyDelete
    Replies
    1. 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.

      If 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.

      Delete
    2. Well,
      I 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?

      Delete
    3. There is no simple way to do it and there is a reason as to why that font is used, it uses minimal memory.
      The only way to make the font bolder is to change the font used.

      Delete
    4. Ok,
      I 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?

      Delete
    5. You can get the source for fonts from u8glib on Github.
      Unfortunately they are in decimal but the should still work.

      https://github.com/olikraus/u8glib/tree/master/fntsrc

      Delete
  6. Just to be clear:
    1. 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...

    ReplyDelete
    Replies
    1. Don't add u8g.h

      I 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.

      Delete
  7. This method seems to doesn't work.
    If 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... :(

    ReplyDelete
  8. Ok,
    I'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?

    ReplyDelete
    Replies
    1. As I told you it was not recommended because it is difficult.

      The 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.

      Delete
  9. This comment has been removed by a blog administrator.

    ReplyDelete
  10. "You will need to adjust the code to display the full font".
    Ok, and could You tell me how can I do it, please?

    ReplyDelete

Post a Comment

Popular posts from this blog

TZXDuino Firmware 1.16, 1.17, and an updated TZXDuino Instruction Manual

  TZXDuino 1.16 In TZXDuino 1.15.3 I added a bug that lowered the volume of some Spectrum TZX files and all ZX80/81 TZX, O, and P files so they didn't work for many people. I fixed this for 1.16. You can download TZXDuino 1.16 from here.   TZXDuino 1.17 The MAXDuino team added ORIC TAP playback functionality to their firmware which I have adapted to TZXDuino. I don't have an Oric Atmos to test it on so I have been recording the playback and loading on Oricutron and everything I have tried has worked. Obviously things may be different on a real machine. Team MAXDuino have also added a speed up function for Oric TAP files which I will add to TZXDuino 1.18 but so far I have been unable to get it to work correctly. You can download TZXDuino 1.17 from here.   And finally there is the updated instruction manual which now tells you how to access Turbo mode for the Electron, ZX80, and ZX81. It also says for Oric but that has not been implemented yet. You can download the pdf of v1.2 fo

And Now For Something Completely Amazing.

 When Andrew Beer and I came up with this idea the intention was for people to build their own and many people have but once in a while someone comes up with something so amazing it really needs to be shared. JamHamster came up with the idea of fitting a TZXDuino in a cassette. Originally it was powered by USB and had a 3.5mm Ear socket but it looked amazing. Then he added a battery so that it was self powered. Then he added a head from a CD to cassette adapter. Then he added a switch under that head so that when you press play on the Cassette Recorder it plays the file you've selected. And the TZXCassette was born Because he is a great guy he's also uploaded the instructions on how to build one to Github and you can download the instructions and build your own. Now at the moment there is no REM control it may not work as well with a CPC 464 as it does with with a Spectrum +2 but it is a stunning piece of electrical engineering and a work of art in my opinion.

New CAS/TZXDuino firmware

New firmware . TZXDuino 1.15.3 Adapted the MAXDuino ID19 code and TurboMode for ZX80/81. To access Turbo Mode for ZX80/81 and Electron please switch Turbo Mode On in the menu Also added UEF Chunk 117 which allows for differing baudrates in BBC UEFs. Added a Spectrum Font for OLED 1306 users converted by Brendan Alford. Option added to userconfig.h Added File scrolling by holding up or down buttons. By Brendan Alford. Download from here. CASDuino 1.24 Added a Spectrum Font for OLED 1306 users converted by Brendan Alford. Option added to userconfig.h Added File scrolling by holding up or down buttons. By Brendan Alford. Download from here.