PCB Design  

Page 7 / 8
  RSS

huckOhio
(@huckohio)
Eminent Member
Joined: 7 months ago
Posts: 37
2020-02-03 9:37 pm  

@robo-pi

I just asked for help and paid for the board.  You did all the brain work!  I have no problem with your name on it.

This post was modified 2 months ago by huckOhio

ReplyQuote
codecage
(@codecage)
Member Admin
Joined: 10 months ago
Posts: 516
2020-02-03 10:33 pm  

@robo-pi

Totally agree, I just wasn't thinking (that seems to happen quite often these days ?) along those lines and therefore was wondering what their purpose was.  Again, great work!  Were all going to be looking to you for advice from this day forward!

SteveG


ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer Moderator
Joined: 10 months ago
Posts: 1602
2020-02-04 12:56 am  
Posted by: @codecage

Were all going to be looking to you for advice from this day forward!

If you recall, you're the one who got me started on KiCAd.  I have done some pcb work before using TinyCad and FreePCB.  But only for PCB that I then fabricated myself.   So I never had to you Gerber files.

I'm trying to create some videos here.  I'm working on several different videos but they are coming along painstakingly slow.  In part due to slow computers.  That's probably the biggest factor that's slowing me down.   But I'm also just now learning how to use video editors, etc.   I also need to learn how to do fancy video tricks the "hard way". ?   In other words, because of the lack of processing power I need to use unorthodox tricks to accomplish effects that would otherwise be a piece of cake on a full-blown video editing computer.

One trick I just learned tonight was how to extract the audio from a video using Audacity.   Before I was trying to record the audio and video simultaneously using a video recording program AND Audacity.  But now I found out that I can just use the video audio track and take it into Audacity to clean up the audio later.  That saved me from having to record separate video and audio simultaneously.

I'm starting a video on KiCad. ?  But don't look for it anytime soon.  At my current video-making rate I'll be lucky to have it completed in a month.   I'm also working on other videos at the same time.  With any luck things might come together to where I can post a bunch of videos close together.

I'm also having a similar problem that Paul McWhorter has been having lately.  I'm sniffling, sneezing, and coughing like crazy lately.   That really messes up the sound on a video. ?  I notice that Paul just lets it all hang out.  Just sniffle and cough through the video.  I'd like to try to avoid that, especially for my first videos.

Since I'll be editing the sound in Audacity I'll be able to edit out some of the unwanted sounds.   But even that takes a lot of editing time.

In any case, I'm working toward making videos.  Whether I'll even achieve that goal is anyone's guess. I just came in from cutting firewood all day today.  I was hoping to do some video work tonight.  But I'm already feeling pretty played out.  Seven decades of life is starting to take its toll. ? 

DroneBot Workshop Robotics Engineer
James


ReplyQuote
frogandtoad
(@frogandtoad)
Reputable Member
Joined: 10 months ago
Posts: 384
2020-02-04 10:21 am  

@codecage

FYI: - Autodesk recently released their electronics engineering CAD capability for Fusion 360!

 


ReplyQuote
codecage
(@codecage)
Member Admin
Joined: 10 months ago
Posts: 516
2020-02-04 12:05 pm  

@robo-pi

I'm getting the popcorn ready for the show to begin! ? 

SteveG


ReplyQuote
codecage
(@codecage)
Member Admin
Joined: 10 months ago
Posts: 516
2020-02-04 12:06 pm  

@frogandtoad

Thanks, I'll have to investigate!

SteveG


ReplyQuote
huckOhio
(@huckohio)
Eminent Member
Joined: 7 months ago
Posts: 37
2020-02-08 3:31 am  

#robo-pi

#codecage

Progress on the PCB

image


ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer Moderator
Joined: 10 months ago
Posts: 1602
2020-02-15 3:19 am  

First,... Many thanks to Mike!   @huckohio   Mike inspired me to create the KiCad drawings for the DB1 Arduino Mega Shield.   He then ordered some boards and was very kind to send me one. 

I just finished assembling the board and tested it to a very superficial degree.  In other words, I didn't test everything on the board.   Only a few components.

Here's a terrible photo of the finished shield plugged into a Mega. 

DB1 Shield (1)

The fit is perfect, and it plugs into the Mega very nicely.  That was good because I forgot to install the 100 uf capacitor and had to remove it from the Mega to solder that capacitor in place.   So it's very easy to plug in and remove from the Mega board so that's nice. 

Steve @codecage, was right about extending the mega pins.  I didn't need to add the extra headers on the top board.  Just use long-legged female headers and that works just fine.

As you can see in the next photo the WiFi adapter fits on the board nicely and so far it powers up the ESP8266.  I haven't tested the WiFi yet, but I'll be doing that very soon.

DB1 Shield (2)

I did make a slight mistake during the build.  Although I actually did this on purpose.  If  you look at the first photo closely you can see that I soldered on female headers on the digital pin side of the board.  This will actually block J2 (I2C Bus0) from being usable.  Although I'm thinking that if I want to use that connector I can probably just bend the pins on the connector and solder it in at an angle so I could still use it.

I didn't have those I2C connectors so I couldn't use them right now anyway.  I hope they fit.  According to the footprints they should.   I also didn't test the memory chip yet.  I'll be testing that very soon.  I cut down a 14 pin DIP socket to 12 pins for the DIP Switch.  I also used a socket for the memory chip.   I didn't  have a 6 gang DIP switch so I plugged in a 4 gang switch for now.  That will give me access to the memory address and write protect pins.   The other two switch positions are for pull-ups for the I2C bus.  If I need to pull those lines up I can just plug jumper wires into the DIP socket.

I also haven't tested the motor control J4, or the SPI J6, or the EXT I/O J5. 

I did test the two optional switches, and the reset switch S3.  So all of that is working.

Anyway, thanks again Mike!  Great idea!  I appreciate that you sent me a board.  This was a fun project. ? 

DroneBot Workshop Robotics Engineer
James


ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer Moderator
Joined: 10 months ago
Posts: 1602
2020-02-15 3:37 am  

Just as a quick update:  I ran an I2C scanner to see if the memory chip would be recognized and it was.  I was also able to change the I2C address using the dip switch.  So the I2C addressing is working for the memory chip.   Now I'll need to learn how to read and write to it. ? 

Maybe I'll wait for Bill @dronebot-workshop to make video on this and let him do all the hard work. It's way easier to just sit back and be taught how to use this stuff. ? 

Again, I can't thank Mike @huckohio enough!   I would have never built Bill's ratsnet prototype board.  That's too much like work.  Instead of being called Robo Pi I should be called Lazy Pi.

But this board is really NICE Mike!  Makes things very neat and clean. ? 

DroneBot Workshop Robotics Engineer
James


ReplyQuote
huckOhio
(@huckohio)
Eminent Member
Joined: 7 months ago
Posts: 37
2020-02-15 5:07 am  

@robo-pi

James, the board looks great?  I received some parts today so I should have mine populated this weekend.  Thank YOU for designing the board!  Excellent work.


ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer Moderator
Joined: 10 months ago
Posts: 1602
2020-02-15 10:40 am  

I just did a quick test on the EEPROM.  It works! ? 

All I did was read the first 10 bytes of the memory chip.  They were all 255.

Then I wrote to them the numbers 0 thru 10.  And just read those newly written values back again.

Works good.

Here's the simple code I used for this test.  It would  be easy to read and write a lot more.  I did this all in the setup using for loops.  Here's the code in case anyone else wants a place to start:

NOTE: I include a "File Signature" at the beginning of setup.  I have my IDE include this code automatically.  You can remove that part of the code if  you'd like to simply it.  Also I'm using 24C64 memory chips because that's what I had in my parts drawers.  I believe Bill was using a larger chip?  256k or 512k?  I put the chip in a socket so it can easily be swapped out at any time.  The size of the chip shouldn't matter in terms of wiring or code.

// For File Signature info: -----
#define __FILENAME__ (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)

// --------- #import statements go here.

#include "Wire.h"
#define EEPROM_I2C_ADDRESS 0x50

void setup() {
// ----- Begin File Signature ----
Serial.begin(9600);
Serial.print("Source filename: ");
Serial.println(__FILENAME__); // Source file name
Serial.print("Compile date: ");
Serial.println(__DATE__);
Serial.print("Compile time: ");
Serial.println(__TIME__);
Serial.print("File Location: ");
Serial.println(__FILE__); // prints the full path
Serial.println("--------- Memory 24C64 Write/Read Test ---------");
Serial.println("");
// ----- END  File Signature ----
  Wire.begin();
 // Serial.begin(9600);

  int address = 0;
  byte val = 110;

  for (int i=0; i<=10; i++){
  writeAddress(i, i); 
  }
  
  for (int i=0; i <= 10; i++){
  byte readVal = readAddress(i);
  Serial.print("The returned value is ");
  Serial.println(readVal);
  delay(5);
  }
}

void loop() 
{
}

void writeAddress(int address, byte val)
{
  Wire.beginTransmission(EEPROM_I2C_ADDRESS);
  Wire.write((int)(address >> 8));   // MSB
  Wire.write((int)(address & 0xFF)); // LSB  
   
  Wire.write(val);
  Wire.endTransmission();

  delay(5);
}

byte readAddress(int address)
{
  byte rData = 0xFF;  
  Wire.beginTransmission(EEPROM_I2C_ADDRESS);  
  Wire.write((int)(address >> 8));   // MSB
  Wire.write((int)(address & 0xFF)); // LSB
  Wire.endTransmission();
  
  Wire.requestFrom(EEPROM_I2C_ADDRESS, 1);
  rData =  Wire.read();
  return rData;
}

DroneBot Workshop Robotics Engineer
James


ReplyQuote
codecage
(@codecage)
Member Admin
Joined: 10 months ago
Posts: 516
2020-02-15 5:25 pm  

@huckohio

@robo-pi

My board showed up last night.  My mail deliveries seem to be getting later and later!

It really looks good and maybe I can get assembly started tomorrow.

I do have some of the I2C connectors that Bill is using, so I'll let you know how they fit.

Thanks Mike!

SteveG


ReplyQuote
NewburyPi
(@dale)
Trusted Member
Joined: 10 months ago
Posts: 88
2020-02-15 5:51 pm  

@robo-pi

Just a quick question... what EEPROM chip are you using? We've been poking at a 28LC256 serial (I2C) chip, and have come across a few things to watch out for. This may not apply to you, if you are doing access over a small memory range. We hit a problem when going over 30 bytes at a time, while doing a page write. 

--
Dale


ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer Moderator
Joined: 10 months ago
Posts: 1602
2020-02-15 6:38 pm  
Posted by: @dale

@robo-pi

Just a quick question... what EEPROM chip are you using? We've been poking at a 28LC256 serial (I2C) chip, and have come across a few things to watch out for. This may not apply to you, if you are doing access over a small memory range. We hit a problem when going over 30 bytes at a time, while doing a page write. 

I'm currently using a 24C64.   Not "LC".    I haven't written large amounts of data yet.  I just wanted to test to see if it was working at all on this board.   I think the idea of this chip is to be able to store start-up information that won't be destroyed when powered down.  I figure that 64K should be more than enough for that purpose.

I was thinking that I could have also added an SD card  reader to this board very easily. There's enough room to stand it up right next to the WiFi board.   An SD card could then be used to store large amounts of navigation data.    Like routines for going from a known point A to a known point B.   Or routines for specific maneuvering operations.   I can still add that capability with an external SD card reader, but it would have been more compact to just have it plug into this card.

I'm already have ideas for REV1 of this board. ? 

Although my ideas aren't necessarily compatible with Bill's DB1 robot.

This has been a lot of fun creating this board.  I can see with using traces only half as wide as I actually used (the standard size traces) I could actually do quite a bit more with this board.   I could even put the level shifting components for the ESP8266 module on the main board and just  have the ESP8266 module plug into the board directly instead of using the adapter module.

Another idea is to start using SMD components to make room for more stuff. ? 

Beware!  Designing a PCB can be ADDICTIVE!

In fact, I'm thinking of making a double-decker.   On the lower deck I'll use a full mega shield board, and on the upper deck I'll use a smaller UNO-size shield.   This way I can have access to the things near the rear of the Mega Shield and on the top shield.  I can put other components, like level shifters, etc, on the mega shield underneath the UNO-size shield.    I'd also like to incorporate an IMU on the board too for an inertial guidance system.   It'll be one powerful little unit when finished.

If I only had more TIME to play!   I'm already cheating on my everyday chores and it shows!

Robotics can become a serious addiction! ? 

DroneBot Workshop Robotics Engineer
James


ReplyQuote
DroneBot Workshop
(@dronebot-workshop)
Workshop Guru Admin
Joined: 10 months ago
Posts: 466
2020-02-15 9:34 pm  
Posted by: @robo-pi

I was thinking that I could have also added an SD card  reader to this board very easily. There's enough room to stand it up right next to the WiFi board.   An SD card could then be used to store large amounts of navigation data.    Like routines for going from a known point A to a known point B.   Or routines for specific maneuvering operations.   I can still add that capability with an external SD card reader, but it would have been more compact to just have it plug into this card.

Above all I want to thank you for designing the board Robo Pi, I have one being sent to me and I'm anxious to give it a try.  The amount of work you've put into this is very impressive.

On the subject of the SD Card reader I wanted to chime in:

I had thought of using an SD (or microSD ) card reader as well but abandoned the plans when I realized how complex this would become considering the Arduino Mega is an SPI Slave to the Raspberry Pi. To work an SD Card it would need to become a master.

Again awesome work on the board!

?

Bill

 

 

"Never trust a computer you can’t throw out a window." — Steve Wozniak


Robo Pi liked
ReplyQuote
Page 7 / 8

Please Login or Register