New Pop2 problems

@Intega2022: can you please go into more detail with GPU rendering set to off?
What is the difference you found and what platform did you use for the test (a computer with dedicated GPU, or standard on-chip graphics card)?

I also found heating of the cam unit is a big issue. After a while I continue getting disconnects both on WIFI and USB 3.0. Leaving the cam connected to USB but being idle does not show disconnects.

Looks like a 28BYJ-48 with a standard lead. Might there be room for one of those small ULN2008 based stepper drivers and an Arduino? Could leave the PCB untouched and just tap off power and switch.

@onesir that’s correct. Exactly this lowest cost stepper motor is in there.
There is plenty of room for an arduino and an ULN stepper board.

I have been experimenting with a Pro Mini clone. Only odd thing is the 8, 9, 10, 11 connections have to be permuted to drive the stepper. If I get it working in situ I will share.

@onesir have a look at the AccelStepper library. It won’t get any easier.

@jkust here you set the hardware acceleration to off.

These are my Specs

i use also a nvidia quadro RTX 5000

The thing i recognised is, that with hardware rendering activated, i see all the time grey bars in the depth field. its hard to find a setting where the prvodided statue is really clearly visible. it looks something like that only some specific areas on the statue are spotted and ready to scan. With GPU rendering off, everything looks ok.

That is just my Experience.

1 Like

Hi @thrawn,

Could you please try this new version and see if the problem is solved? Thank you.

https://forum.revopoint3d.com/t/mac-usb-wi-fi-beta-revo-scan-v4-0-1/11457

Best Regards
Cassie

Tapping off power and the switch proved harder than expected (as I wanted to leave the original unit pretty much untouched).

In the end I just built my own from parts I had.

I did change the script to meet my needs.

#include <Arduino.h>

#include <AccelStepper.h>

#define HALFSTEP 8

#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
#define ledPin 12
#define switchPin 6 

#define SWITCH_PRESSED 0

#define SHORT_PRESS 50
#define LONG_PRESS 400
#define VERY_LONG_PRESS 1000

#define NUM_SETTINGS (sizeof(RPM) / sizeof(int))

const int RPM[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

int switchVal = 0;
unsigned long switchMillis = 0;

int oldSwitchVal = 0;
unsigned long oldSwitchMillis = 0;

int setting=0;

float speed = 0.0;
float maxspeed = 900.0;

AccelStepper stepper(HALFSTEP, IN1, IN3, IN2, IN4);

void checkBlink(int value)
{
   static boolean LEDon = false;
   static unsigned long blinkMillis = 0;
   static int remaining = 0;

   unsigned long nowMillis;

   nowMillis = millis();
   
   if (value)
   {
       remaining = value;
       LEDon = false;
       blinkMillis = nowMillis;
   }

   if (remaining)
   {
      if (nowMillis >= blinkMillis)
      {
         if (LEDon)
         {
            if      (remaining >= 5)   remaining -= 5;
            else if (remaining >= 1) --remaining;

            if (remaining)
               blinkMillis = nowMillis + 200;
         }
         else // LED was off
         {
            if (remaining >= 5)
               blinkMillis = nowMillis + LONG_PRESS;
            else
               blinkMillis = nowMillis + SHORT_PRESS;
         }
         LEDon = ! LEDon;
         digitalWrite(ledPin, LEDon);
      }
   }
}

void checkUpdate()
{
  static unsigned long updateMillis = 0;

  if (millis() > updateMillis)
  {
    updateMillis = millis() + 4000;
    checkBlink(setting);
  }
  else checkBlink(0);
}

void processEdge(boolean pressed, int edgeLen)
{
   if (pressed)
   {
      if      (edgeLen > VERY_LONG_PRESS) setting = 0;
      else if (edgeLen > LONG_PRESS)    --setting;
      else if (edgeLen > SHORT_PRESS)   ++setting;

      if (setting < 0)
         setting = 0;
      else if (setting >= NUM_SETTINGS)
         setting = NUM_SETTINGS - 1;

      speed = (RPM[setting] * 4096.0) / 60.0;
      
      stepper.setSpeed(speed);
   }
}

void checkSwitch()
{
  static int oldSwitchVal = digitalRead(switchPin);
  static int oldSwitchMillis = millis();
  
  int switchVal, switchMillis;
  
  switchVal = digitalRead(switchPin);
  
  if (switchVal != oldSwitchVal)
  {
     switchMillis = millis();
     
     processEdge(
       oldSwitchVal == SWITCH_PRESSED,
       switchMillis - oldSwitchMillis);     
       
     oldSwitchVal = switchVal;
     oldSwitchMillis = switchMillis;
   }

}

void setup()
{
   pinMode(ledPin,OUTPUT);
   pinMode(switchPin,INPUT_PULLUP);
   stepper.setMaxSpeed(maxspeed);
   stepper.setSpeed(0.0);
}

void loop()
{
   checkSwitch();
   stepper.runSpeed();
   checkUpdate();
}

I outing me to be on more in the boat. I am so disjointed from my POP2. Small things are not really possible to scan I tried now more the 80 times a small sheep. I colored it with 3D scanning spray in addition. But always the same. I get cloud shadows very quick. Did re calibration and tried most of the advises of this tread without real success. I will try to add a video to show what is happening. The problem caused from Faces (frames ) 700. I tried it in dark room, with artificial light only and daylight. Always more or less the same. PLEASE Revopoint fix your software. I bought an not cheep device and it is for me more or less wasted money. I spend so much time in try&error that I could carve the models in the same time.

Video: Test Scan Sheep

I believe there is later software…

There is nothing gained by scanning multiple rotations, less is more

1 Like

In addtion I check also my CPU utilization and was shocked. After starting Revoscan software it increased directly up to 90% in preview mode. acceleration and without. Nearly the same. And my PC is not an old one.


Bild_2022-04-24_160444544

Yes, it is the 4.01 version of RevoScan software. Would you recommend to rollback to the previews one?

I see already from your video where the mistake is , first you overscan your model too much , maximum 300 frames over rotation and that is for one tourn , I just scanned the same size or even smaller fox figure , the preview means nothing until you don’t fuse it then you see the actual point cloud , the preview do not show point cloud fused, it show unfused scan data . Fuse the cloud point by each 300 frames per rotation , change the position and scan again 300 frames and fuse it , that is how you doing , and stay away from windows light , day light has Infrared light that can interfere with scanning so small objects . I scanned objects that has 2mm parts , that is the smallest POP2 can catch up in the volume , the main volume is 20x20x20 mm minimal , your sheep legs are probably around 2-3 mm in diameter so should be no problem .

when not scanning

when scanning

You shutting 10 photos per second with no color and 20 with color , so with 700 frames
your computer trying to save 2,400 photos in color and 1200 without color , this is lots of data to be processed in real time . Don’t wonder your CPU is on full power , how faster it runs how quicker the results , limit your frames to 300 per rotation , it will be easier on your CPU and you get better results .

Some people would say hey I have strong GPU, why not using it , well I have 12000 Cuda cores , but the process is already done in POP2 , what is happening on PC is saving the data to your HD from POP2 in real time . Like copying data from one HD to another . GPU is not solution here , becouse if they changed that , people with dedicated graphic cards and low VRAM would never be able to process the data , not enough VRAM . Same thing that happened on smart phone … bad idea we don’t want VRAM handle it as it will be still depend on highest speed of CPU , unless your Graphic Card can handle 24GB minimum .

@PUTV I tried now to follow your advises. Also put more dots on my turn table (seems to be the case on yours) Tried an other round. Darken my room. But the result is bad and disappointing. maybe the sheep is not the best thing to scan but I would expect that the POP2 is able to catch it.

I put reflective markers I ordered on Amazon to improve the marker mode scanning , but I scanned the fox in feature mode so markers really no matter in this case, you should be able to scan the sheep , try marker mode , I think the back of the sheep is a weak point for the scan to recognize it , I already reported the tracking issues to the Developer team and tomorrow they going to look into it deeper to see if there is a problem with the last software update . However I had no issues with the bust or bigger objects .
My fox and your sheep are objects that are on the edge , the volume should be 20x20x20 mm to be accurate and our little animals with the tiny legs are below the range anyway . I am still surprised I could scan objects bellow 20mm .

I can give you one more tip , if you have so small object try to add something else to it , you can remove it easy after in Revo Studio , anything that has 20x20x20 volume , even a simple cube , it will helps with better tracking , or use the marker mode , but marker mode is only good if you scan one tourn 360 degree of the object at a time not the full object per one session and fuse the parts later in Revo Studio or other software .

I give up for today. I have spend my hole weekend for this shi… as I mentioned … I can faster carve it then scan and print it. Really frustrated.

I spent most of the weekend trying to get a good scan out of my Pop2. I gave up in the end and put it up on Ebay,
I’ve got an Einscan SE which I use on a daily basis and so am very familiar with 3D scanning and how tricky it can be to get a good scan.
First I took a scan of an object (battery for a DJI Air 2S drone) on the Einscan SE to get a baseline. Then I took the same object and tried to scan it with the Pop2. No matter what I did with the Pop2, all I could get was essentially a blob with no definition or detail at all. You could make out roughly what the object was but it was in no way useful for any kind of work or reverse engineering. I tried calibrating the Pop2 but that made it actually worse with more detail but masses of noise in the generated model. Removing the noise resulted in the same blobby model that I got before.
I tried it with 2 difference machines. One, my main PC (i7 8700k, 64GB RAM, 3080ti) and the other my 16" M1 Max MacBook Pro. Both were the same.

After many, many hours. This was the best model I managed to generate. This was made up of 8 scans, cleaned up in Revo Studio and merged.

How does your baseline scan with the Einscan SE look in comparison ?

With the POP 2, did you scan with feature mode to get those results?
Just learning myself, so I am curious what lead to these results.
I looked up the DJI battery

and it took on some rough texture during the scan. Did the scan you took from the Einscan end up smooth?

I’ll post the scan from the Einscan this evening when I get home. I forgot to upload it and so couldn’t post it.
The battery isn’t smooth and has a grain. It’s not reflective and should be easy to scan. The Einscan picked up the grain and even the little dots where the LEDs are around the power button.