Jump to content

MOEBIUS 2001 1/8 scale Space Pod


Recommended Posts

Hello Everyone,

I have bought the MOEBIUS  1/8 scale space pod. Injection mounded. I also obtained from the US company  Tenacontrols (not the pants!), their lighting kit. the total cost of kit and lights around er,eum.  about £350 for both after import taxes etc. so I have to do a good job for  such a wad.

 

I have  checked basic fit of pod parts and they are very good. taking  stills from the movie 2001, the interior  is ls pretty near the movie prop. 

I have begun masking off the interior  to prevent light bleed from the LED lighting kit. I also have an ARDUINO to be used for lighting the 6 displays and flickering them as per movie.

 

Has anybody stared or  completed  the kit yet? cooments please....

 

 

  • Like 3
Link to comment
Share on other sites

  • 4 weeks later...

Has anybody attempted to build  the MOEBIUS 1/8 Space Pod??

I find the parts fit very good, and it is not too far off the prop. the soft plastic is easy to work, the  front window,  is perhaps too thick. 

 

I am attempting to light the interior, and do it realistically. there are problems;

  • lighting behind the displays  and using the kit display transfers: they are  opaque. the display clear part is too thick and not like the prop. using thin transparent plastic film cut from a cheap document holder. instead 
  • The supplied transfers are so thin they collapse when trying to slide them in place?  impossible to fit properly. serious problem. it would be best to slide them on to very thin black plastic material ,then glue that in place. 
  • Light bleed from the leds. Using the TENA lighting kit, every part has to be covered in kitchen foil to prevent light bleed. even the external spherical pod.  works OK.
  • Individual switches lit by fibre-glass leads, otherwise i am using the LED strips soldered  to a wiring loom. 

 

I also want to animate four of the screens to make it  look busy.

' I have used the AZDelivery .96 in sq,   display programmed from an ARDUINO NANO , to make the moving images. This is starting to look pretty good! but means one NANO per display!, they are only $20 each, so this is fesble.  The displays can be re-addressed but it is tricky to implement.  I am a programmer, so the 'C' programming is not a problem. the ARDUINO documentation and examples  makes this easy to learn. 

Doing the interior is taking a massive amount of time, what else can we do in lockdown...

 

If you are making this model,lighting the interior,  please let me know how you  doing it?

Martin

  • Like 2
Link to comment
Share on other sites

Hello all, I assume you are familiar iwith the MOBIEUS 1-8 Space Pod from 2001.

here are the differences I have done from the instruction sheet build.

first: this is the cockpit console assembled,  shown upsidown to show the foil light blocking materil fitted. 

Pod5.jpg

 

Next, the interior was sprayed black, then the black paint wa rubbed off the switch covers 

spacer.png

 

Next

spacer.png

 

Next, theTENA lighting strips were  fitted underneath and connected up to a 9V battery.  strips glued on mainly with sticky tape of various kinds. 

 

spacer.png

 

spacer.png

Cut-outs for button lighting shown here as well as where 

LED strips glued behind plastic card boxes tro stand-off an give a better light spread. 

spacer.png

 

This is the AZ Delivery .96 monchrome display, powered by an ARDUINO, to be fitted in 3 or 4 windows. 

 

continuing...

  • Like 7
Link to comment
Share on other sites

The Kit from MOEBIEUS is close to the 2001 prop, could be made as is, but i wnted to light the interior, and bought the TENA kit for lights, but this has a remote switch that turns off/on some sections, nothing special that you couldn't do with some LED's anyway, and really needs another kit of light pipes to work proprtly, hence I made the light boxes as seen above.    The  external part go togehter well, as fitting the cockpit sections, all well done.

 

The screens supplied as decals to stick on the glass are too  opaque and thick. the screens are a smooth fit on the prop pod, smooth bezels, even lighting, (actually 16mm back projections) . I am taking screen shots off the Bly-Ray copy of the movie to get the details right, recommend this as a method for  researching the pod details.

 

I have experimented with the AZDelivery screens to emulate  the 16mm projections, this requires installing ARDUINO software on your computer, learning some code to drive the ARDUINO board outputs. the Screen uses a library U8g2 of functions that can draw cicles, lines filled shapres. The screen is too big really,  only for use for the front two and back two at the sides, and mechanically overlap the square aperture. Using the reamining part to light up some buttons.   Just learning the 'C' needed to drive it took a while, 

The very large transfers are too thin to  use in the normal method, they break up under their weight and size, and collapse. I suggest sliding them on to  black thin plastic card and gluing that in place. cutting out all the apertures, + 0.5 to allow the buttons to fit. Or: cut out the paper backing and glue that in place. To do that I also ran a black felt tip on all the edges to hide the paper outline. this works really well.
Considering how much the kit costs, Its worthwhile taking loads of lockdown time over it!

 

  • Like 1
Link to comment
Share on other sites

If you are building the1/8 pod, the transfers are impossible to work. Here is a possible solution...

I cut out the paper they were on,  0.5mm smaller  then carefully cut out all the light switch squares,

trimmed the pointed bits,

then carefully used a  Black STEAEDTLER  permanent lumocolor  Medium felt tip to blacken the paper edges, including the inside edge of all the switch square holes,  so that  the paper is invisible, without this step it looks tatty.

spacer.png

 

Here the edges are blackened to make the paper invisible. you cn see the belled to the other side.

 

spacer.png

Result

spacer.png

  • Like 2
Link to comment
Share on other sites

Hi oldmodeler (snap!!)

 

The decals for the instrument panel are hard work.....I used the vinyl kit console kit from YayMonsters to act as a light block for proposed lighting then applied the decals onto that.  I had hoped that decal softener solution would sort out the issue of the decal film around the switches but it wasn't as successful as I'd hoped.

Also the decals are large and a lot of care is needed to get them lined up.

 

f7ca71e7-8c82-4c3b-9ffe-07d26270ea35.jpg

 

Here's part of the console, not glued yet, and after a few applications of decal solution with long drying times between each. I used cotton buds and a paint brush to work the decals into position.

You can see where the decals haven't settled around and between the switches because of the excess carrier film. To be honest I doubt that I could have trimmed the film around the apertures beforehand.

The next step is more decal solution after making some pin holes at appropriate locations.

 

I'm hoping that a final coat of satin varnish will dull the wayward shiny decal film and that the overall dimness in the cabin combined with the brightness of the switch lighting will detract from the dodgy decals!!

Edited by Scaley
Edit image
  • Like 6
Link to comment
Share on other sites

Hello Scaley,

Unable to see the picture, but I guess you are trying to use the decals and slide them on to the panels. I gave up on this  after  trying the smaller ones, they fell apart. I am not steady enough to hold in place. Instead I have now cut out the paper mounting as well, and have had success in sliding and gluing  these in place. another modeller "aztec' has cut only the relevant lines and  texts  out, ignoring all the black, and overcame the same problem that way.  He has heard Adam Savage of Mythbuster fame is looking for a quality build to buy. AS perhaps is not a builder.  The good news it when the when the  complete console is put inside, it will be difficult to see mistakes.

 

Now the displays, the front  ones I intend to use two miniature  .96in sq displays powered by an Arduino, (u8g2 software),  to show mono graphics, this seems to work well enough, with a thin colour film over then.  The update speed is too slow to make it look exactly the same.

The four side displays are different. the clear plastic bezels are too thick and heavy. In the movie, the display is a flat fit on the panel, without any indentation.  so I am trying to do that.  The graphic is white lines shwoing through background red/blue etc. and the transfers are too dark, I have tested one, and it is too small for the true size of the  square display, to look realistic. I am making a 'light defusing box"  behind each display that will have a led that flickers, as per Arduino output.

 

display, under a blue filter , this flashes abt 1 second,  alternates with "NAV" graphic

spacer.png

 

Work so far, paper side panels in place, blue clear display fronts slipped between plastic panel and paper cover, seems to  work out  well,

tested lighting the switches, but not yet the  side displays.  notice the shelf side transfers are part missing, these are the ones I damaged trying to slide in place.

spacer.png

 

not yet sprayed with matt varnish.

 

 

  • Like 5
Link to comment
Share on other sites

7 hours ago, Scaley said:

Hi oldmodeler, I can't see your images, just a broken image icon and 'spacer.png'

 

Not sure why you can't see my image, I can see it.............I'll try loading it again.

 

I'm having the exact same problem as you.

Interestingly enough I can see your pix just fine.

 

Hmmm

Link to comment
Share on other sites

Good to see somebody in here tackling this beast of a kit ("beast" in the sense of it being bit, not poor!). Can't see any pics, though (except Scaley's.)

 

For those interested, here's a good resource with a review, info on the many many aftermarket items available (the aftermarket rabbit hole for this kit is very deep, and expensive...) etc.: https://sites.google.com/site/theageofplastic3d/moebius-models-2001-a-space-odyssey-eva-pod

 

Also, the FB group "Building the 2001 Discovery EVA Pod model building Tips N Tricks ONLY" has actually proven quite useful, although I'm not a great fan of FB for modelling.

 

As for the panel decals, I first got the YayMonsters vinyl set, but have since purchased the Paragrafix etch set instead. It's easier to apply the decals to a uniform, flat surface that does not bend when applying it over the kit part. If you really want to go all out, Paragrafix has a decal set for the button faces as well. I've got it, and it will probably be as fun as applying stencils to a modern jet fighter...

 

Arild :)

 

PS 

17 hours ago, oldmodeler said:

He has heard Adam Savage of Mythbuster fame is looking for a quality build to buy. AS perhaps is not a builder. 

 

Oh, after having seen a few of Adam Savage's builds on YouTube, I'm sure it is not for lack of skill or not being a builder, but lack of time, probably. My impression is that Mr Savage can build just about anything he puts his mind to do.

Link to comment
Share on other sites

1 hour ago, Arild Moland said:

As for the panel decals, I first got the YayMonsters vinyl set, but have since purchased the Paragrafix etch set instead. It's easier to apply the decals to a uniform, flat surface that does not bend when applying it over the kit part. If you really want to go all out, Paragrafix has a decal set for the button faces as well. I've got it, and it will probably be as fun as applying stencils to a modern jet fighter...

 

With hindsight the etch set would have been the better option as the excess carrier film in the apertures would be easier to trim when dried.

As for the button decals my sanity is fragile enough as it is...................

  • Haha 1
Link to comment
Share on other sites

  • 5 weeks later...

It may be you cannot see my pics if you have restricted non https URL's.

 

Rather than buy light tubes and masks, I made my own,, the led-strips have been glued to boxes standing them off from the panels , to light as many switches as possible.  Cutting the paper transfer paper  and using it still  on the paper backing was VERY  successful compare to  trying to slide them off: == the fall apart!

 

I eventually did not use the Light kit controller, as it is no t much use, just cut up the led strips and fitted as best I could.

 

I haven't bought  other after market parts , they look great, but any good modeller should be able to make them.

 

Then I got diverted by the displays.   arrrggh!   -days writing graphics. weeks.

After seeing others trying to make actual display work . I just had to try. Continued recently on the software to show the 4 HAL  colour displays  either side.

I have used two AZ delivery 1.8 in OLED 1.8 in displays breakouts, and two 0.96 AZ displays and  four ARDUINO UNO's they are cheap about £9 on Amazon,

0.96in   display no longer marketed , similar is:

https://www.amazon.co.uk/MakerHawk-Display-Internal-Controller-interface/dp/B07BDMG2DK/ref=sr_1_17?dchild=1&keywords=azdelivery+0.96&qid=1613831560&sr=8-17

1.8 display.  I haven't tried to fit this in place yet, it means cutting away a lot of the panels, I may have to go to a smaller 1.5in in that case, but the software would be similar.

ahttps://www.amazon.co.uk/AZDelivery-Display-Pixels-Arduino-Raspberry/dp/B078J5TS2G/ref=sr_1_1?dchild=1&keywords=azdelivery+1.8&qid=1613831475&sr=8-1

 

So for the 1.8in display program, include 

#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
// Be sure to install Adafruit seesaw library!
#include <Adafruit_seesaw.h>     //
#include <Adafruit_TFTShield18.h>

 

and   the 0.96  include

#include <U8g2lib.h>
#include <SPI.h>
#include <Wire.h>
#endif

 

follow the instructions to  wire the displays  directly to ARDUINO UNO pins.  (no controller needed).

 

One UNO powering each front .96in   monochrome display, and  UNO  each side  showing two colour displays each.

This has take ages to program a random set of graphics looking like the  screens being sent from HAL,

I have written  C for the ARDUINO UNO   using the ADAFRUIT  and U8G2 software graphics  libraries.

I wrote to begin using an ARDUINO MEGA, which has a lo tmore memory, then found out it would not fit, and had to optimize my code techniques to show sufficient graphics.

 

I have included the C programs for the 0.96  and 1.8 displays in the next two entries.

 

please let me know if you cannot see the pictures, as they are on my website  and just linked from there, if you cannot  copy the link and paste into a new browser page ?

 

next = display images

 

 

Link to comment
Share on other sites

DISPLAYS flicker, animate, show names, scroll and sequence roughly like the HAL screens, but there is no graphic for an oval orbit, hence have to do circular orbits in the last picture.  Tex its just a rows of random dots, as it cannot be read at that scale anyway.  Screens sequences as per movie.  this leaves about 800 byts left if you want to add any more screens.

Doing another set for the other side (colour).  loop() at bottom can be changes to give different screens,

uncomment //cycle_scrrens(): to loop all the names.

 

C programs for ARDUINO UNO

//BREAKOUT ST7735 version for NANO M MC. 2021  
//  adjust  to fit at top of panel
#include <SPI.h>
#include <SD.h>
//#include <TFT.h>
//#include <string.h>
#include <String.h>

#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
//#include <Adafruit_seesaw.h>   
//#include <Adafruit_TFTShield18.h>
#include <Adafruit_TFTLCD.h>  
#include <Fonts/FreeSansBold9pt7b.h>  
//Adafruit_TFTShield18 ss;

//#define SD_CS    4  // Chip select line for SD card on Shield

#if defined(ARDUINO_FEATHER_ESP32) // Feather Huzzah32
  #define TFT_CS         14
  #define TFT_RST        15
  #define TFT_DC         32

#elif defined(ESP8266)
  #define TFT_CS         4
  #define TFT_RST        16                                            
  #define TFT_DC         5

#else
  // For the breakout board, you can use any 2 or 3 pins.
  // These pins will also work for the 1.8" TFT shield.
  #define TFT_CS        10
  #define TFT_RST        8   // Or set to -1 and connect to Arduino RESET pin  was 9
  #define TFT_DC         9   //   was 8
#endif

// OPTION 1 (recommended) is to use the HARDWARE SPI pins, which are unique
// to each board and not reassignable. For Arduino Uno: MOSI = pin 11 and
// SCLK = pin 13. This is the fastest mode of operation and is required if
// using the breakout board's microSD card.

// For 1.44" and 1.8" TFT with ST7735 use:
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

    // Color definitions
#define BLACK    0x0000
#define BLUE     0x001F
#define RED      0xF800
#define GREEN    0x08F0   
#define CYAN     0x07FF
#define MAGENTA  0xF81F
#define YELLOW   0xFFE0
#define WHITE    0xFFFF

#define DKBLU   0x08F0
#define VLBLU   0x07FF   
#define LTBLU   0x3333

#define DKRED     0xE800    
#define DKREDC     0xB800  
#define DK2_RED     0xD800  


// In global declarations:
//GFXcanvas1 canvas(128, 64);

//screen centers starts
static int  S1_ctr_x  = 40;  int S1_ctr_y = 50;
static int  S2_ctr_x  = 120; int S2_ctr_y =  S1_ctr_y ;

//screen top left starts
static int S1_x = 0;  int S1_y = 0;
static int S2_x = 81; int S2_y = 0;  

static int OS_x = S2_x;
static int OS_y = S2_y;

static int C_OS1_x = S1_ctr_x;
static int C_OS1_y = S1_ctr_y;

static int C_OS2_x = S2_ctr_x;
static int C_OS2_y = S2_ctr_y;
static int S_COLOUR = 0x000c;
int   stopp = 0;

//function called by screen 2 refresh
int Screen_2(int S_COLOUR)
{
  tft.fillRoundRect(S2_x, S2_y, 79, 90,1,  S_COLOUR ); // Screen 2  
}

// function called by screen 1 refresh.
int Screen_1(int S_COLOUR)
{
  tft.fillRoundRect(S1_x, S1_y, 79, 90,1, S_COLOUR ); // Screen 1
}

//#define MAXLINE 4

char *screen_colour(int n)
{  //
  static char *name[] = {
  // BLUE
  0x000c, 0x0019,0x001f,0x633f,0x9cdf,0x0019,0x001f,0x3333,0x9cdf,
  // RED
  0x6000,  0xf800 , 0xfb2c , 0xfcd3, 0x6000,  0xf800 , 0xd800 , 0xfcd3, 0x6000,
  // GREEN
  0x31a0, 0x3320, 0x4cc0, 0x0640, 0x0fe0, 0x04c0, 0xfcd3, 0x31a0, 0x3320         
 };
   return (  name[n] );
}


// this loops through screen names
char *hal_func(int n)
{
  static char *name[] = {
    "MEM", "NUC","HIB","DMG", "NAV", "FLX", "CNT", "GDE", "DMG", "VEH", "MEM", "NUC","HIB","CNT", "NAV", "COM", "CNT", "HIB", "DMG", "VEH",
    "MEM", "VED","HIB","FLX", "GDE", "COM", "FLX", "GDE", "DMG", "VEH"
  };
  //return ( n < 1 || n > 27 ) ? name[0] :  name[n];
   return (  name[n] );
}


static String NAME =  String(hal_func(2));

//this function refreshes screen 1
int SCN1(String NAME, int S_COLOUR){
Screen_1(S_COLOUR );
 tft.setTextSize(1);
 tft.setTextColor(WHITE);
 tft.setCursor( S1_x + 25 ,S1_y + 50  );
 tft.print( NAME);
 tft.drawLine(20, S1_y + 34,  35, S1_y + 34,  WHITE   );
 tft.drawLine(37, S1_y + 34,  40, S1_y + 34,  WHITE   );
}

int SCN2(String  NAME, int S_COLOUR){
Screen_2(S_COLOUR);
  tft.setTextSize(1);
  tft.setTextColor(WHITE);
  tft.setCursor( S2_x + 25 ,S2_y + 50  );
  tft.print(NAME);
  tft.drawLine(105, S1_y + 34,  114, S1_y + 34,WHITE   );
  tft.drawLine(130, S1_y + 34,  133, S1_y + 34,WHITE   );
}

void circles1(){  
NAME =  String(hal_func(9));
S_COLOUR = 0; //0x000c;
SCN1(NAME,screen_colour(S_COLOUR));
// C_OS_x C_OS_x
OS_x = S1_x;
OS_y = S1_y;
delay(5000);

  S_COLOUR = 0x000c ;  
  Screen_1(S_COLOUR);
  int i;
 
  for  ( i = 0;  i  < 27 ; i = i + 3 )  {

  tft.drawCircle(C_OS1_x , C_OS1_y , 8 + i, LTBLU );
  }
int x  = C_OS1_x ; // 40;
int y =  C_OS1_y  ; // 60;
  tft.drawLine(x + 2 , y , 52, 30, LTBLU );
int xx = 5;
  tft.drawLine(xx,y, x + 35, y, LTBLU);  // 1 hz
 
  tft.drawLine(x,20, x,90, LTBLU );  // 2  vrt
 
  tft.drawLine(x,y,x +30,y +30,LTBLU);
  tft.drawLine(x,y,x +30,y -30,LTBLU);
  tft.drawLine(x,y,x +30,y -30,LTBLU);
  tft.drawLine(x,y,x -30,y -30,LTBLU);
  tft.drawLine(x,y,x -30,y +30,LTBLU);
  tft.drawLine(x,y,x -30,y +10,LTBLU);   
  tft.drawLine(x,y,x +30,y -10,LTBLU);   
  tft.drawLine(x,y,x +10,y -30,LTBLU);    
  tft.drawLine(x,y,x -10,y +30,LTBLU);
  tft.drawLine(x,y,x +10,y +30,LTBLU);
  tft.drawLine(x,y,x -10,y -30,LTBLU);   
  tft.drawLine(x,y,x +10,y -30,LTBLU);    
  tft.drawLine(x,y,x -10,y +30,LTBLU);
  tft.drawLine(x,y,x +30,y +10,LTBLU);
  tft.drawLine(x,y,x -30,y -10,LTBLU);
 
  tft.fillCircle(x,y,4, S_COLOUR);  // infill the centre.
  tft.drawCircle(x,y,4, LTBLU );
  int z = 5;
  tft.fillRect(57, 16, 15,28,S_COLOUR)  ;  
  for  ( x = 0;  x  < 7; x = x + 2 ) {// a row of dots top of Screen 1
   // a row of dots top of Screen 1
    tft.drawPixel(x + 60, 19 + z, LTBLU );
    tft.drawPixel(x + 60, 21 + z, LTBLU );
    tft.drawPixel(x + 60, 23 + z, LTBLU );
    tft.drawPixel(x + 60, 26 + z, LTBLU );
    tft.drawPixel(x + 60, 29 + z, LTBLU );
    tft.drawPixel(x + 60, 32 + z, LTBLU );
    tft.drawPixel(x + 60, 35 + z, LTBLU );
    delay(500);  
  }
}

void red_orbit2(){   // screen 2 only
NAME =  String(hal_func(4));
S_COLOUR = 10 ;
SCN2(NAME,screen_colour(S_COLOUR));
   Serial.print(S_COLOUR);
    Serial.print("\n");
   int x;
   int y;
   delay(5000);
    for  ( x = 0;  x  < 50; x = x + 2 )
  {
    //NAME =  String(hal_func(4));
    Screen_2(0xf800);
    tft.drawCircle(S2_ctr_x  ,     S2_ctr_y,30 ,  0xfb2c  );  //a  circle
    tft.drawLine(S2_ctr_x +2 , S2_ctr_y, S2_ctr_x + 30 , S2_ctr_y,  0xfb2c  );
    tft.drawCircle(S2_ctr_x +5  ,  S2_ctr_y + 5, 20 ,  0xfb2c  );  
    tft.drawCircle(S2_ctr_x + 4 , S2_ctr_y, 28 ,  0xfb2c  );
    tft.drawCircle(S2_ctr_x - 4 , S2_ctr_y, 35 ,  0xfb2c  );  
    tft.fillCircle(S2_ctr_x + 4,  S2_ctr_y + 20, 5, 0xfb2c );  
    tft.fillCircle(S2_ctr_x + 24,  S2_ctr_y - 22, 2, 0xfb2c );   
    tft.drawLine(S2_x +10, S2_y +10, S2_x + 30, S2_y +10,0xfb2c );
    tft.drawLine(S2_x +45, S2_y +10, S2_x + 60, S2_y +10,0xfb2c );
  }
    for  ( x = 0;  x  < 20; x = x + 2 ) {
    tft.drawPixel(S2_x +50 + x, S2_y +40 ,ST77XX_WHITE);
    }
    for  ( x = 0;  x  < 20; x = x + 2 ) {
    tft.drawPixel(S2_x +50 + x, S2_y +43 ,ST77XX_WHITE);
    }
circles1();  // flash circles in 1    
}

void dot_square2() {
NAME =  String(hal_func(9));
S_COLOUR = 14; // 0xf800;
SCN2(NAME,screen_colour(S_COLOUR));
     S_COLOUR = 0xf800;
     delay(5000);
     Screen_2(S_COLOUR);
     int x = 0;
     int y = 0;
     for (y = 2;   y < 89 ; y = y +  2 ) {
          for  ( x = 1;  x  < 77; x = x + 2 ) {
          tft.drawPixel(S2_x + x + 1, S2_y + y ,WHITE);
          }
     }     
          tft.drawLine(S2_x + 1 ,  S2_ctr_y , S2_x + 89,  S2_ctr_y ,WHITE);  // hz
          tft.drawLine(S2_x +40,   S2_y + 2 ,  S2_x + 40 , S2_y + 88, WHITE);           // ver
          
          tft.fillRect(S2_x + 10, S2_y + 5, 22, 5,WHITE );
          tft.fillRect(S2_x + 44, S2_y + 5, 10, 5,WHITE );
          tft.fillRect(S2_x + 58, S2_y + 5, 10, 5,WHITE );        
          tft.fillCircle(S2_ctr_x ,  S2_ctr_y  ,5,WHITE);  
          delay(200);
          
          for  ( x = 0;  x  < 10; x = x + 1 ) {
          tft.fillRect(S2_x + 10, S2_y + 80, 22, 5,BLACK);
          delay(100);
          tft.fillRect(S2_x + 10, S2_y + 80, 22, 5,WHITE);
          delay(100);      
          }
}

void cba_ob1(void){  // a red screen of rectangles and text.

String NAME =  String(hal_func(5));
S_COLOUR = 15;
SCN1(NAME,screen_colour(S_COLOUR));
S_COLOUR = screen_colour(S_COLOUR);
delay(2000);
// blank colour screen

Screen_1(S_COLOUR );
  tft.setFont();
  tft.fillRoundRect(S1_x + 10,   S1_y + 10 , 55, 10, 1,WHITE );  

  tft.drawLine(S1_x + 35,  S1_y + 15 , S1_x + 49, S1_y + 15 , S_COLOUR);  
  tft.drawLine(S1_x + 35,  S1_y + 18 , S1_x + 49, S1_y + 18 , S_COLOUR);  
  tft.fillRoundRect(S1_x + 10,   S1_y + 25 , 10, 10, 1, WHITE ); // row of 3 rectangles  
  tft.fillRoundRect(S1_x + 24,   S1_y + 25 , 20, 10, 1, WHITE ); // Screen 1
  tft.fillRoundRect(S1_x + 50,   S1_y + 25 , 20, 10, 1, WHITE ); // Screen 1
  tft.drawLine(S1_x + 12,  S1_y + 28 , S1_x + 15,  S1_y + 28 , S_COLOUR); // little line  on 1st side box
  tft.drawLine(S1_x + 12,  S1_y + 31 , S1_x + 15,  S1_y + 31, S_COLOUR); // little line  on 1st side  box
  tft.fillRoundRect(S1_x + 10,   S1_y + 40 , 10, 15, 1, WHITE ); // Screen 1 next row of 3 rectangles
  tft.fillRoundRect(S1_x + 24,   S1_y + 40 , 20, 15, 1, WHITE ); // Screen 1
  tft.fillRoundRect(S1_x + 50,   S1_y + 40 , 20, 15, 1, WHITE ); // Screen 1
  tft.drawLine(S1_x + 12,  S1_y + 44 , S1_x + 15,  S1_y + 44 , S_COLOUR); // little line  on 1st side box
  tft.drawLine(S1_x + 12,  S1_y + 48 , S1_x + 15,  S1_y + 48, S_COLOUR); // little line  on 1st side  box
  tft.fillRoundRect(S1_x + 10,   S1_y + 60 , 55, 16, 1, WHITE ); // Screen 1

   tft.setTextSize(1);
   tft.setTextColor(S_COLOUR);
   tft.setCursor( S1_x + 15 ,S1_y +65  );
   tft.print( "DB");
   tft.setTextSize(0);
   tft.setTextColor(S_COLOUR);
   tft.setCursor( S1_x + 15 ,S1_y +12  );
   tft.print( "CBA");

   tft.setFont(&FreeSansBold9pt7b);
}

void lines1() {
int i = 1;
int x = 1;
int z = 1;

 for  ( i = 0;  i  < 40 ; i = i + 3 )     // adds dots within horizontal lines
  {
     tft.drawLine(OS_x +  10, OS_y + 30 + i ,OS_x +  12, OS_y + 30 + i, LTBLU   );
     tft.drawLine(OS_x +  20, OS_y + 30 + i, OS_x +  70, OS_y + 30 + i, LTBLU   );
     delay(2);
  }
delay(1000);
 
x = 1;

 for  ( x = 0;  x  < 40; x = x + 2 )
  {
   // a row of dots top of Screen 1
    tft.drawPixel(OS_x + 14 + x , 19, LTBLU );  // a row of dots top of Screen 1
    tft.drawPixel(OS_x + 14 + x , 21, LTBLU );  // a row of dots top of Screen 1
  }

 for  ( x = 0;  x  < 3; x = x + 1 )
  {
  tft.drawRect(OS_x + 12, OS_y + 15,50,10, LTBLU );    // Screen 1 flashing clear white line rectangle at top of screen.
  delay(100);
  tft.drawRect(OS_x + 12, OS_y + 15,50,10, VLBLU );   // a lighter blue   );
  delay(100);

  }
z = 1;
  for  ( z = 0;  z  < 20; z = z + 1 )
  {
   tft.fillRect(OS_x + 24,OS_y + 80,12 + z,4 ,  LTBLU );
   delay(20);
  }

// add  random   dots among hz lines
  for  ( z = 0;  z  < 300; z = z + 1 )
  {
   int ra1 = random(20,70);
   int ra2 = random(30,60);
   tft.drawPixel(OS_x + ra1, OS_y + ra2,    LTBLU );
   tft.drawPixel(OS_x + ra1, OS_y + ra2+1,  LTBLU );
  }


  for  ( z = 0;  z  < 12; z = z + 1 )
  {  
  tft.fillRect(OS_x + 24,OS_y + 72, 32,4 ,  ST77XX_BLUE);   
  delay(100);
  tft.fillRect(OS_x + 24,OS_y + 72, 32,4 ,  LTBLU);
  delay(100);
  }
delay(500);
     for  ( z = 0;  z  < 10; z = z + 1 )
  {  
  tft.fillRect(OS_x + 24,OS_y + 77, 32,4 ,  ST77XX_BLUE);  
  delay(100);
  tft.fillRect(OS_x + 24,OS_y + 77, 32,4 ,  LTBLU);
  delay(100);
  }
}

void lines_move1() {          //  LINES MOVE  
NAME =  String(hal_func(1));  // DMG
S_COLOUR =   4 ; // 0x9cdf;
SCN1(NAME,screen_colour(S_COLOUR));
// C_OS_x C_OS_x
OS_x = S1_x;
OS_y = S1_y;
S_COLOUR = screen_colour(S_COLOUR);
delay(6000);
// blank colour screen
Screen_1(S_COLOUR );
int z;
int k;
int n = 0;
int y_off = 75;
int z_off = 75;
int x_rand1 = random(5,78);
int x_rand2 = random(5,78);
int x_rand3 = random(5,15);

  for  ( k = 0;  k  < 120; k = k + 4 ) {  // loop to scrool text up screen I hope
       //Screen_1(S_COLOUR );
       tft.drawPixel(OS_x +  z, OS_y + 70,   ST77XX_WHITE );  // l 1beginning of line pixels
       tft.drawPixel(OS_x + 5 +  z, OS_y + 70,   ST77XX_WHITE );  // l1

      for  ( z = 0;  z  < 22; z = z + 2 ) {
       tft.drawPixel(OS_x + 20 +  z, OS_y + 70,   ST77XX_WHITE );  // l1
      }

       tft.drawLine(OS_x + 27 +  z, OS_y + 70  , OS_x + 37 +  z , OS_y + 70,  ST77XX_WHITE );  //  l1 lines       
       tft.drawLine(OS_x + 39 +  z, OS_y + 70, OS_x + 47 +  z, OS_y + 70,  ST77XX_WHITE );     // l1  
       tft.drawPixel(x_rand1, OS_y + 70,   ST77XX_WHITE );     
       tft.drawPixel(x_rand2, OS_y + 70,   ST77XX_WHITE );
       x_rand3 = random(8,70);
       tft.drawPixel(x_rand3, OS_y + 70,   ST77XX_WHITE );    // draws dots all  over text lines    
       tft.drawPixel(x_rand3 + 1 , OS_y + 70,   ST77XX_WHITE );    // draws dot to the right of the one above
       tft.drawPixel(x_rand3 + 2 , OS_y + 70,   ST77XX_WHITE );    // draws dot two spaces to the right
       tft.drawPixel(x_rand3 + 3 , OS_y + 70,   ST77XX_BLUE);    // draws dot two spaces to the right
       tft.drawPixel(x_rand3 + 4 , OS_y + 70,   ST77XX_BLUE);    // draws dot two spaces to the right
       delay(50);
        OS_y = OS_y  -2 ;
  }

  tft.drawRect(S1_x + 5, S2_y + 10, S1_x + 5, 60, ST77XX_WHITE );  // left rectangle
   
   tft.drawLine(S1_x + 27 +  z, S1_y + 10,   S1_x + 37,   S1_y + 10,  ST77XX_WHITE );  //  l1 lines
   tft.drawLine(S1_x + 39 +  z, S1_y + 50,   S1_x + 47,   S1_y + 50,  ST77XX_WHITE );     // l1
   delay(100);
   
    for  ( k = 0;  k  < 25; k = k + 1 ) {
   tft.fillRect(S1_x + 24,S1_y + 5, 32,4 ,  ST77XX_BLUE);  
    delay(50);
    tft.fillRect(S1_x + 24,S1_y + 5, 32,4 , ST77XX_WHITE  );     // flashes the whie box at top
    delay(100);  
    }
    
   tft.drawRect(S1_x + 5, S1_y +75, 20, 3 , ST77XX_WHITE  );   // three small rectangles at bottom
   delay(1000);
   tft.drawRect(S1_x + 25, S1_y +75, 20,3 , ST77XX_WHITE  );
   delay(100);
   tft.drawRect(S1_x + 50, S1_y +75, 20,3 , ST77XX_WHITE  );
   tft.drawRect(S1_x + 5,  S1_y + 75 +6, 20,3 , ST77XX_WHITE  );   // three small rectangles at bottom
   tft.drawRect(S1_x + 25, S1_y + 75 + 6, 20,3 ,LTBLU );
   tft.drawRect(S1_x + 50, S1_y + 75 + 6, 20,3 , VLBLU );
delay(1000);
    int x = 0;
    int y = 0;
}

void non_func1_2(){
  int n;
  S_COLOUR = 1;
  Screen_1(0xF800);
  Screen_2(0xF800);
  tft.setFont();
 tft.setTextSize(1);
 tft.setTextColor(WHITE);
  tft.setCursor( S1_x + 20,S1_y + 40  );
 tft.print( "NON");
 tft.setCursor( S1_x + 20,S1_y + 50  );
 tft.print( "FUNCTION");
  tft.setCursor( S2_x + 20,S1_y + 40  );
 tft.print( "NON");
 tft.setCursor( S2_x + 20,S1_y + 50  );
 tft.print( "FUNCTION");
 
 for  ( n = 1;  n  < 50; n = n + 1 ) {
 Screen_1(0xF800);
 tft.setCursor( S1_x + 20,S1_y + 40  );
 tft.print( "NON");
 tft.setCursor( S1_x + 20,S1_y + 50  );
 tft.print( "FUNCTION");
 delay(60);
 Screen_2(0xF800);
 tft.setCursor( S2_x + 20,S1_y + 40  );
 tft.print( "NON");
 tft.setCursor( S2_x + 20,S1_y + 50  );
 tft.print( "FUNCTION");
 delay(60);
 }
 tft.setFont(&FreeSansBold9pt7b);
}

void cycle_screens(){
OS_x = S2_x;
OS_y = S2_y;
int z = 0;
  for  ( z = 0;  z  < 27; z = z + 2 )
{
  NAME =  String(hal_func(z));
  SCN1(NAME,screen_colour(z));

  NAME = String(hal_func(z + 1));
  SCN2(NAME,screen_colour(z +1));
delay(5000);
}
 
}

void squares2(void) {  // a few small squares
NAME =  String(hal_func(0));  // DMG
S_COLOUR =   4 ; // 0x9cdf;
SCN2(NAME,screen_colour(S_COLOUR));
int x = S1_x;
int y = S1_y;
delay(1000);
S_COLOUR = screen_colour(S_COLOUR);
Screen_2(S_COLOUR );
tft.setFont();
 
x = 1;
int r1 = random(1,50);
 for  ( x = 0;  x  < 55; x = x + 1 )  // row of dots
  { r1 = random(1,100);
      if (r1 > 50) {
      tft.drawPixel(S2_x + 14 + x , S2_y  + 11, WHITE );  
    }
    r1 = random(1,100);
      if (r1 > 50) {
      tft.drawPixel(S2_x + 14 + x , S2_y + 13, WHITE);
    }
 
  }

int h = 38;
 for  ( x = 0;  x  < 20; x = x + 1 )  // row of dots
  { r1 = random(1,100);
      if (r1 > 50) {
      tft.drawPixel(S2_x + 15 + x , h , WHITE );  
    }
    r1 = random(1,100);
      if (r1 > 50) {
      tft.drawPixel(S2_x + 22 + x , h + 2 , WHITE);
    }
    r1 = random(1,100);
      if (r1 > 50) {
      tft.drawPixel(S2_x + 22 + x , h + 4, WHITE);
    }

     r1 = random(1,100);
      if (r1 > 50) {
      tft.drawPixel(S2_x + 22 + x , h + 6, WHITE);
    }

     r1 = random(1,100);
      if (r1 > 50) {
      tft.drawPixel(S2_x + 15 + x , h + 8, WHITE);
    }

  }

for  ( x = 0;  x  < 7; x = x + 1 ){
  delay(100);
  tft.fillRect(S2_x + 60, S2_y + 25,  10, 10,S_COLOUR);  // 1
  delay(100);
  tft.fillRect(S2_x + 60,   S2_y + 25,  10, 10,ST77XX_WHITE );
  tft.setCursor( S2_x + 63, S2_y + 27  );
  tft.setTextColor(BLUE);
  tft.setTextSize(1);
  tft.print( "E");
}
delay(200);

for  ( x = 0;  x  < 7; x = x + 1 ){
  delay(100);
  tft.fillRect(S2_x + 60, S2_y + 38,  10, 10,S_COLOUR);  // 2
  delay(100);
tft.fillRect(S2_x + 60, S2_y + 38,  10, 10,ST77XX_WHITE);
tft.setCursor( S2_x + 63, S2_y + 40  );
tft.setTextColor(RED);
tft.print( "K");
}
delay(200);

for  ( x = 0;  x  < 7; x = x + 1 ){
  delay(100);
  tft.fillRect(S2_x + 60, S2_y + 51,  10, 10,S_COLOUR);  // 3
  delay(100);
  tft.fillRect(S2_x + 60, S2_y + 51,  10, 10,ST77XX_WHITE);
tft.setCursor( S2_x + 63,S2_y + 53  );
tft.setTextColor(GREEN);
tft.print( "G");
}

for  ( x = 0;  x  < 10; x = x + 1 ){
  delay(100);
  tft.fillRect(S2_x + 25, S2_y + 66,  36, 12,S_COLOUR);  // 3
  delay(100);
  tft.fillRect(S2_x + 25, S2_y + 66,  36, 12,  0x4cc0);   //   0x3320, 0x4cc0, 0x0640, 0x0fe0,
tft.setCursor( S2_x + 27,S2_y + 69  );
tft.setTextColor(BLACK);
tft.print( "CHECK");
}

tft.setFont(&FreeSansBold9pt7b);
tft.setTextSize(2);
delay(200);
}

void light0(){
tft.fillRect(0, 94, 160,30,  WHITE);  // 3
}

void dark1(){
tft.fillRect(0, 94, 80,30,BLACK);  // 3
}

void light1(){
tft.fillRect(0, 94, 80,30,  WHITE);  // 3
}

void dark2(){
tft.fillRect(80, 94, 80,30,BLACK);  // 3
}

void light2(){
tft.fillRect(80, 94, 80,30,  WHITE);  // 3
}

void setup(void) {
  // put your setup code here, to run once:
// Use this initializer if using a 1.8" TFT screen:
tft.initR(INITR_BLACKTAB);      // Init ST7735S chip, black tab

tft.setFont(&FreeSansBold9pt7b);
  tft.fillScreen(ST77XX_BLACK);
  // 0  portrait, 1 and 2   3 and 4 are landscape
  uint8_t rotation = 3;
  tft.setRotation(rotation);  
   light0();
}

void loop() {

non_func1_2();
delay(20);

cba_ob1();
delay(5000);

squares2();
delay(5000);

lines_move1();
delay(5000);

dot_square2();
delay(1000);

circles1();
delay(1000);

dot_square2();
delay(1000);

circles1();

lines_move1();
dark1();
delay(5000);

dot_square2();
delay(5000);

squares2();
light1();
delay(5000);

red_orbit2();
delay(2000);

circles1();
delay(5000);
//cycle_screens();

red_orbit2();
delay(5000);
dark2();

int z = 0;

cba_ob1();
light2();
delay(1000);

Screen_1(S_COLOUR);
OS_x = S1_x;
OS_y = S1_y;
cba_ob1();
delay(5000);

S_COLOUR = DKBLU ;
Screen_2(S_COLOUR);
OS_x = S2_x;
OS_y = S2_y;
lines1();
delay(1000);
}

 

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Hi folks!

Are you having problems  seeing   oldmodelers pictures?

they are at

http://www.cjdeng.co.uk/space_pod/DISP6.jpg

 http://www.cjdeng.co.uk/space_pod/DISP7.jpg

http://www.cjdeng.co.uk/space_pod/DISP8.jpg

http://www.cjdeng.co.uk/space_pod/DISP9.jpg

 

 

try pasting link  into  new web page?

let me know if it works?

M

 

Link to comment
Share on other sites

4 minutes ago, oldmodeler said:

Hi folks!

Are you having problems  seeing   oldmodelers pictures?

they are at

http://www.cjdeng.co.uk/space_pod/DISP6.jpg

 http://www.cjdeng.co.uk/space_pod/DISP7.jpg

http://www.cjdeng.co.uk/space_pod/DISP8.jpg

http://www.cjdeng.co.uk/space_pod/DISP9.jpg

 

 

try pasting link  into  new web page?

let me know if it works?

M

 

When you click on the links, no pictures show and you get a message " page deleted. compromised data taken from website ".

Link to comment
Share on other sites

sorry about that, the link message , ignore,  only happens if you don't have the correct link

please past link as per, into  your URL address ,

not  where you type to do searches?

 that should work.

sorry again, used to work  just fine, can you see any other of my pictures  in blogs written above by me??

M

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...