3D Drucker – 12 und 24 Volt Komponenten gemeinsam betreiben

1.4 3D Drucker Controller
MKS 1.4 3D Drucker Controller

Warum es besser ist 12 Volt und 24 Volt Komponenten nicht zu mixen

Ich hatte einen Drucker mit einem 24 Volt fähigen MKS Controller und einem 12/24V Volt  MK3 Alu Heizbett aufgebaut.
Extruder Heizung und Lüfter lagen nur in der 12 Volt Version vor und sollten per PWM eine halbierte Spannung/Leistung bekommen.
Beides erwies sich als nicht besonders praktikabel und ich möchte erläutern warum. “3D Drucker – 12 und 24 Volt Komponenten gemeinsam betreiben” weiterlesen

fischertechnik für echte Kerle – fischertechnik mit Arduino, Pi und Fahrtregler

fischertechnik® für echte Kerle ist das erste Buch, welches sich mit dem Thema Ansteuerung von fischertechnik Modellen mit Arduino oder Raspberry Pi beschäftigt.
Fischertechnik bietet zwar eigene Controller an, aber eine Steuermöglichkeit mit Arduino und Raspberry mit entsprechenden Treiberendstufen drängt sich förmlich auf. “fischertechnik für echte Kerle – fischertechnik mit Arduino, Pi und Fahrtregler” weiterlesen

Vergleich 3D Drucker Controller

MKS 1.4 Controller
MKS 1.4 Controller

Vergleich häufig verwendeter 3D Drucker Controller

Ich versuche in diesem Artikel einen Überblick über häufig verwendete Mainboards von 3D Druckern zu gegeben. Die aufgeführten Controller decken einen großen Teil der am Markt angebotenen Drucker Kits ab.
Alle aufgeführten Modelle sind oder waren bei uns im Einsatz.

Historie

Der Urvater diverser 3D Drucker Controller ist der Ramps 1.4. Der Ramps ist eine Huckepackplatine für den Arduino Mega. Er wirkt optisch etwas altbacken, ist unschlagbar günstig und akzeptiert diverse Stepper Treiber. Alle weiteren betrachteten Controller sind quasi Weiterentwicklungen des Ramps 1.4. mit integriertem Arduino Mega  und zum Teil mit integrierten Stepper Treibern.

Ramps 1.4 MKS 1.4 MKS Base Anet A6, A8
Preisbeispiel (Aliexpress) 3€ Ramps 1.4 + 8€ Arduino Mega = 11€ 19€ 17€ (inkl. Stepper Treiber) 22€ (inkl. Stepper Treiber)
Betriebsspannung 12 Volt 12 – 24 Volt 12 – 24 Volt 12 Volt
Sicherung Polyfuse 5 bzw. 10A Intern Intern ?
Anschluss Endschalter Stiftleisten Steckbuchsen Steckbuchsen Steckbuchsen
Anschluss Stepper Stiftleisten Steckbuchsen Steckbuchsen Steckbuchsen
Anschluss Thermistor Stiftleisten Steckbuchsen Steckbuchsen Steckbuchsen
Platinen Maße 102X60mm 142x85mm 110x90mm 100x95mm
Einbauhöhe mit Treiber >= 40mm >= 20mm >= 28mm >= 20mm
Stepper Treiber Nur Sockel Nur Sockel Integriert (A4982) Integriert (A4982)
Stepper Strom einstellbar Ja Ja Ja Nur die Z-Achse
Anzahl Motoren/Stepper Treiber 5 5 5 4 (2x Anschluss Z)
Anzahl Endstop 6 6 6 3
Baudrate 115200 250000 250000 115200
Unterstützung 2004 LCD (zweizeilig) Ja Ja Ja Ja
Unterstützung 12864 LCD (Grafik) Ja Ja Ja Ja
Stepping einstellbar Ja Ja Nein Nein
Extruder 2 2 2 1
Anschluss Touch TFT Nein Nein Ja Nein
Micro SD on board Nein Nein Nein Ja

Ramps 1.4 Controller

“Vergleich 3D Drucker Controller” weiterlesen

Der Anet A6 im Test – unerwartet gute 3D-Drucke

Der Anet A6 – ein günstiger 3D-Drucker Bausatz

Wir bekamen das Angebot einen Anet A6 zu testen. Da ich gerade die CT Make 2018-01 mit dem Test des Anet A8 in der Hand hatte, war ich sehr gespannt sich wie der A6 bei uns in der Praxis schlägt.

Der Anet A6 ist ein typischer Druckerbausatz nach dem Prusa Prinzip.
Der 220 x 220 x 250 cm Bauraum, beheiztes Druckbett, großes Display und ein attraktiver Preis wecken Interesse.

Anet A6 – Lieferung und Bestandteile

Unser Anet A6 wurde aus Tschechien geliefert. Das gut 10 kg schwere Paket war innerlich und äußerlich unversehrt und machte einen sehr ordentlichen Eindruck.
Der Lieferumfang war vollständig. Es gab allerdings keine gedruckte Packliste zum Vergleichen. Auch keine sonstigen gedruckten Dokumente.
Anfangs fehlten eine Madenschraube der 5×8 Kupplung und eine Klemmschraube vom Controller. Diese fanden sich dann in der Verpackung.
Die Einzelteile waren sehr ordentlich verpackt. Selbst Schrauben und Muttern waren alle nach Größe getrennt. Mein Folgertech Drucker war mal mit 500 Teilen in einer Tüte gekommen, das weiß man so etwas zu schätzen.
Einzig die beiden 5×8 Koppler sahen etwas oxydiert aus. Die Gewindestangen des Rahmens sind wiederum aus Edelstahl.

Der Anet A6 - ein aufgeräumtes Paket
Der Anet A6 – ein aufgeräumtes Paket

Der Extruder und die beiden Z-Führungen kommen komplett vormontiert.
Neben den eigentlichen Druckerbauteilen werden etwas Werkzeug, 500g Filament und ein USB Adapter für Micro SD Karten inkl. Karte mitgeliefert. Die SD Karte enthält Dokumentation und Treiber.

Der Anet A6 - ein aufgeräumtes Paket 2
Der Anet A6 – ein aufgeräumtes Paket 2

Design

Einen Designpreis wird der Anet A6 nicht gewinnen. Das Gerät ist auf Effizienz in der Fertigung und Entwicklung getrimmt. Die eckigen Z-Schlitten wirken etwas grobschlächtig und passen so gar nicht zum Design der darunter liegenden abgerundeten Motorhalterungen. Das Acryl ist herstellungsbedingt etwas scharfkantig.

 

Dokumentation

Wie man es schon gewohnt ist, lag keine gedruckte Bauanleitung bei. Allerdings hatten meine Drucker aus den USA und Spanien auch darauf verzichtet.
Stattdessen lag die übliche SD-Karte nebst Adapter bei. In der Regel sind die beigefügten Dokumente veraltet und wenig hilfreich. Der Anet A6 hat mich diesmal sehr positiv überrascht. Das  PDF mit der Aufbauanleitung war sehr eindeutig und leicht zu verstehen.
Auf der SD Karte finden sich noch weitere Anleitungen zur Inbetriebnahme, Cura-Installation und ein Troubleshooting Guide.

Anet A6 Aufbau

Mechanik

Man nehme sich einen sehr großen Tisch, ein Notebook und in meinem Fall 6h Zeit. Die ersten 20 Minuten ist man damit beschäftigt das Schutzpapier von den Acryl-Teilen zu ziehen. Der Lasercut ist sauber, die Ränder sind dieser Technik geschuldet auch etwas scharfkantig. Der Laser hat einige Öffnungen etwas zu groß geschnitten. Aber dazu später mehr.
Die Verbindung der Acrylteile ist echt unkompliziert. Ich möchte aber immer noch die Schrauben etwas fester ziehen. Aber aus Sorge um ausreißendes Acryl halte ich mich zurück.

Der Alu-Drucktisch wird für mich zur blutigen Angelegenheit. Ich schneide mich an dem scharfen Grat an der Unterseite. Ich vermute es sind Stanzteile. Als so instabil wie beim Make Test des A8 habe ich ihn nicht empfunden.
Der Einbau der der Linearführungen wird zum Problem. Diese rasseln schon im Handbetrieb so laut, dass ich da abbreche und meine eigenen einbaue. Diese sind auch nur ein Euro Teile, aber um Klassen besser.

Beim Schneiden der Zahnriemen dachte ich erst der mitgelieferte Zahnriemen schneidet nicht. Es handelte sich aber um Zahnriemen mit Stahleinlage. Diese nicht zu knapp kürzen, sonst lassen sie sich schlecht spannen.

Endstops

Für die Endstops sind Holzschrauben vorgesehen. Leider sind sie zu kurz. Ich ersetzte sie durch M2x20 Schrauben und Muttern.
Der Z-Endstop ist leider nicht verstellbar. Hier kann man nur mit dem Druckbett regulieren. Einfacher wäre eine zentrale Z-Justierung.
Für den Einbau einer Glasplatte müsste man den Z-Endschalter um ca. 3 bis 5mm nach oben versetzten (Löcher bohren).

Von einem Acrylrahmen darf man natürlich nicht die gleiche Stabilität wie bei einem Aluframe erwarten. Notfall muss man die Geschwindigkeit reduzieren oder den gesamten Drucker mit einer Grundplatte verschrauben.

Elektronik

Bis auf die Anschlüsse der Düsenheizung sind alle anderen mit Steckern vorkonfektioniert. Da auch alle Kabel vorbildlich beschriftet sind, ist die Verdrahtung ein Kinderspiel. Der Controller ist sowohl auf der Verpackung als auch auf der Platine beschriftet.
Das Netzteil (12V, 20A) verfügt über keine aktive Kühlung. Es verfügt über ein CE Zeichen.
Leider sind die 230 Volt Anschlüsse auch nach dem Einbau des Netzteils frei zugänglich. Der Zugang von Kindern oder unbedarften Personen zu diesem Gerät muss verhindert werden. Aber auch als Besitzer besteht die Gefahr, dass man ungewollt an die Anschlüsse geraten kann. Auch verfügt das Gerät weder über Sicherung noch Netzschalter.
Ich empfehle unbedingt Netzschalter (mit Sicherung) und Abdeckung nachzurüsten. Beispiele dafür gibt es bei Thingiverse.

Anet A 6 Inbetriebnahme

Mechanik

Den Soforttausch der Linearlager hatte ich bereits erwähnt. Ich vermute das Anet Standardkomponenten von wechselnden Lieferanten kauft und man mit einer anderen Lieferung mehr Glück haben kann.

Anet A6 - getauschte Linearlager und etwas Spiel bei den Führungen
Anet A6 – getauschte Linearlager und etwas Spiel bei den Führungen

Ein anderes Problem kann ich leider nicht so schnell korrigieren. Der Laser hat recht großzügig geschnitten. Unter anderem sind die Löcher der Führungsstangen recht groß geworden. Ich befürchte Toleranzen beim Druck.
Bei der X-Achse macht das rechte Gegenlager des Zahnriemens beim Rechtslauf  Geräusche.  Es hat etwas gedauert die Geräuschquelle unter den anderen Druckgeräuschen zu orten. Auch diese Lager habe ich noch vom meinem Prusa in der Kiste. Also habe ich den Käfig im eingebauten Zustand oben geöffnet. Jedenfalls war die Halteschraube des Lagers etwas locker und hat wohl diese Klackergeräusche verursacht. Die Lager habe ich sicherheitshalber trotzdem getauscht.

Anet A6 - das Problemlager
Anet A6 – das Problemlager

Apropos Krach, der Extruder Fan ist recht aut. Das ist aber keine Eigenheit des Anet. Ich habe bisher bei jedem meiner Drucker den Originallüfter gegen ein leiseres Modell  getauscht.

Das Alu-Druckbett wird leider ohne Glasplatte geliefert. Beklebt wurde es mit etwas Kreppband.  Alternativ geht auch die Spiegelfliese von Ikea.

Die Z-Trapezspindel laufen erstaunlicherweise absolut rund, ohne zu pendeln.

Elektronik

Die komplette Elektronik hat auf Anhieb funktioniert. Extruder und Bett heizen sehr schnell auf. Das Make Magazin hat empfohlen alle  Anschlüsse des Heizbettes mit dem Kabel zu verbinden um eine Überlastung des Steckers zu verhindern. Das Kabel selber hat einen ordentlichen Querschnitt.  Auch könnte man bei eigener Firmware die PWM Leistung des Heizbettes etwas reduzieren.
Der Geräuschpegel der Schrittmotoren liegt im üblichen Rahmen.

Anet A6 Controller

Im Anet A6 und A8 werkelt der gleiche Controller. Es ist im Prinzip ein Arduino Mega /Ramps 1.4 Klone. Dieser integriert alles auf einer Platine mit komfortablen Steckanschlüssen. Allerdings lassen sich damit auch nicht die Stepper Treiber tauschen um z.B. ein Microstepping zu integrieren.
Freundlicherweise gibt es in der Firmware Marlin schon einen Boardtyp „#define MOTHERBOARD BOARD_ANET_10“  für den A6/8 Controller.
Allerdings bringt der A6/A8 Controller von Haus aus keinen dafür notwendigen Arduino Bootloader mit. Dafür muss man ihn mit Hilfe eines zusätzlichen  Arduino’s  flashen.

https://www.bastelbunker.de/anet-v1-x-board-a8-a6-a2-via-isp-programer-wiederbeleben/

Anet A6  Inbetriebnahme

Um die Stepper und Heizungen zu testen greife ich schnell zu Repetier Host. Die Baudrate des verwendeten Boards liegt bei 115200 Baud.
Der Arduino Klon auf dem Controller benötigt einen CH340 Treiber am PC. Falls der Controller nicht erkannt wird kann es daran liegen.
Die Verbindung bereitet unter Cura 3., Repetier Host und von SD Karte ohne Probleme. Der SD Slot ist sehr schlecht zu erreichen. Der SD Extender ist bei Aliexpress schon geordert (2€).
Zum Druck wechsele ich auf Cura 3.X.

Temperaturprobleme mangels Kühlung traten weder bei den Stepper Treibern, noch beim Netzteil auf (PLA Druck 200/60°C). Es wäre auch durchaus sinnvoll das Netzteil mit Abstandshaltern zu befestigen. Die Wärmeabgabe an die Umgebungsluft wäre um einiges effizienter.
Möchte man Energie sparen oder ABS drucken sollte man dem Heizbett eine Korkisolierung gönnen.

Das Homing erscheint mit etwas zu schnell. Leider kann man dies nur per Firmware und nicht per GCode anpassen.

Druckqualität

Ich hatte wegen des Lagers und des Spiels bei den Führungsstangen schon Arges befürchtet und muss zugeben, ich bin total überrascht.

Anet A6 - Test Cube
Anet A6 – Test Cube

Die Druckqualität ist absolut in Ordnung. Der Testwürfel weicht nur im Promillebereich vom Idealwert ab, die Oberflächen sind sauber. Bei Cura 3.2 kam das 0,2mm Standardprofil zum Einsatz. Ein Tuning der Maschine oder des Slicers ist bisher nicht erfolgt. Der Druck haftet bombenfest an dem werkseitigen Kreppband. Das Druckbild sieht schon aus dem Stand heraus etwas besser aus als bei meinem Prusa I3 Hephestos.
Insbesondere Überhänge geraten sehr gut. Der Anet scheint im Vergleich zum Prusa Druckbett und Extruder schneller beschleunigen zu können.
Ich frage mich wie der Anet drucken würde wenn Lager und Wellen optimal wären.
Düse und Heizbett sind recht schnell auf Solltemperatur und halten diese ohne größere Schwankungen. Das Alu-Druckbett ist außen 2 Grad kälter als im Zentrum. Dafür, da es nicht isoliert ist, ein guter Wert.

Der zweite Druck ist dann wegen einer Kleinigkeit voll danebengegangen – das Extruderritzel war nicht fest angezogen. Zerlegung und Zusammenbau des Extruders gingen schnell und unkompliziert von der Hand.

Anet A6 - loses Extruder Ritzel
Anet A6 – loses Extruder Ritzel

Auch der beliebte 3D-Benchy ist ohne Tuning entstanden und sieht super aus. Man beachte die sauberen Überhänge.
Die Testdrucke sind mit PLA Filament von www.dasfilment.de entstanden.

Anet A6 - 3DBenchy
Anet A6 – 3DBenchy

Anet A6 Support

Die Support Seiten von Anet findet man hier:

http://www.anet3d.com/English/Technical_Support/

Fazit Anet A6

Postiv

  • Gute Dokumentation
  • Großer Bauraum
  • Großes LCD Display
  • Günstiger Preis, insbesondere für diesen Bauraum
  • (Unerwartet) Gute Druckqualität

Negativ

  • Kein Netzschalter, offen liegende Anschlüsse
  • Rasselnde Lager
  • Führungsstangen ZY mit Spiel im Acrylrahmen
  • Keine Riemenspanner

Die Anet A6/A8 Drucker haben eine recht große Verbreitung gefunden. Bei Thingivers gibt es eine Vielzahl von Verbesserungen für diese Geräte. Das kann man sowohl positiv als auch negativ sehen. Auf jeden Fall existiert eine breite Anwenderbasis.
Preis/Leitungsverhältnis und Druckqualität des A6 ist gut. Lager und Lüfter sind etwas laut.
Wenn man gewillt ist, ab und zu zum Schraubenzieher zu greifen, bekommt einen preiswerten Drucker mit guter Druckqualität. Für die persönliche Sicherheit sollte man den Netzanschluss des Anet nachbessern.

Die Firma Gearbest hatte uns freundlicherweise den Bausatz des Anet A6 zur Verfügung gestellt.

Vergleich Anet A6 und Anet A8

Beide Drucker sind sehr ähnlich.
Der A6 verfügt über ein größeres LCD Display welches auch von der Bedienung her viel komfortabler ist. Die restliche Elektronik, insbesondere die Controller sind identisch.
Während der A6 komplett aus Acryl besteht, kommen beim A8 einige 3D-gedruckte Teile zum Einsatz. Ich würde dem A6 den Vorzug geben.

Den Anet A6 kaufen

Den Anet A6 gibt es bei diversen Shoppingseiten. Unserer Exemplar stammte von Gearbest. Der Versand erfolgte aus Tschechien, also keine Verzollung etc. Beim Einkauf nicht nur auf den Preis sondern auch Lieferumfang, Netzanschluss und Versand checken.

Wenn ihr wollte, könnt Ihr gerne auf meinen folgenden Afiliate Link klicken, um zum Anet A6 bei Gearbest zu kommen.
Anet A6 3D Drucker
Ihr müsst es natürlich nicht.

Preis mit Gutschein: derzeit bei €157.53
Gutscheincode: Aneta6jk
Warehouse: G-W-5

Das Produkt ist im EU Lager, die Lieferzeit beträgt nur 3 bis 5 Tagen.

 

Weitere Details zum Anet A6

Technischen Daten des Anet A6

Firmware Repetier
Druck per USB Ja
Druck per SD Ja
Beheiztes Druckbett Ja
Druckplatte Aluminium
Düse 0,4mm
Bauvolumen 220x220x250
Max. Temperatur Düse 260
Max. Temperatur Bett 110
LCD Rep Rap Full Grafik
Extruder Direkt
Controller Anet A6/A8, Arduino Mega/Ramps 1.4 kompatibel
Stepper Treiber Integriert
Gesamtgröße 48 x 40 x 40 cm

 

Firmware Einstellungen Anet A6

Dieses lassen sich einfach mit dem GCode M501 abrufen.

Steps per unit: M92 X100.00 Y100.00 Z400.00 E95.00
Maximum feedrates (mm/s): M203 X400.00 Y400.00 Z4.00 E25.00
Maximum Acceleration (mm/s2): M201 X9000 Y5000 Z50 E10000
Acceleration: S=acceleration, T=retract acceleration M204 S1000.00 T1000.00
Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s) M205 S0.00 T0.00 B20000 X20.00 Z0.30 E10.00
Home offset (mm): M206 X0.00 Y0.00 Z0.00
PID settings: M301 P22.20 I1.08 D114.00

Die geänderten Einstellungen lassen mit M500 im EEPROM Speichern.

Mögliche Verbesserungen beim Anet A6

Bis auf die sicherheitsrelevanten Punkte wie Netzteil und Heizbett sind es optionale Maßnahmen, welche Qualität und Komfort verbessern. Es gibt auch Leute die ihren Anet ins Unendliche tunen. Zum Schluss ist es kein Anet mehr. Ich frage mich, weshalb sie nicht gleich Einzelteile oder einen andern Drucker ordern.

Anet A6 - Netzteilabdeckung und Schalter
Anet A6 – Netzteilabdeckung und Schalter

 

Bauteil Verbesserungsmöglichkeit
Netzteil Netzschalter, Sicherung, Abdeckung, (Lüfter)
Zahnriemen Riemenspanner nachrüsten
Micro SD Slot Expander für bessere Zugang
Wellen Im Acrylrahmen stabilisieren
Stepper Treiber Lüfter nachrüsten
Z-Achse Stabilisierung (Rundlager) Trapezspindel nachrüsten
Linearlager, Rundlager Gegen leisere Modelle ersetzen
Glasplatte Nachrüsten
Grundplatte Drucker fest verschrauben
Heizbett Isolieren, Zusätzliche Anschlüsse verlöten
Controller Mit Arduino Bootloader versehen um eigene Firmware einzusetzen
Z-Endschalter Auf verstellbare Version umbauen.

China Post – PCA9685 16-Channel 12-bit PWM Servo Motor Driver

PCA9685 16-Channel 12-bit PWM Servo Motor Driver
PCA9685 16-Channel 12-bit PWM Servo Motor Driver

PCA9685 – 16 Servo Motoren am Arduino

Der 16 Kanal Servo Treiber basiert auf dem Entwurf von Adafruit. In der China Variante ist er etwas günstiger. Die Platine hat 6 I2C  Adresspins. Damit wären 62 Treiber mit insgesamt 992 Ausgängen adressierbar. Das sollte reichen. Die Platinen kaskadiert man einfach mit einem 6-poligen Kabel hintereinander. Die Basisadresse des Boards ist 0x40 . Eine Lötbrücke bei A0 würde 0x41 ergeben.
Pegel und Betriebsspannung können 3,3 Volt als auch 5 Volt betragen.
Die Betriebsspannung setzt man am besten auf die des Mikrocontrollers. Damit hat man keine Pegel Probleme am I2C-Bus.
Die Servos sollte man auf jeden Fall über eine externe Spannungsquelle betreiben. Ein kleiner Stütz-Elko kann nachträglich eingelötet werden.
Die Ausgänge verfügen über 330 Ohm Widerstände um LED´s direkt zu treiben. Bei manchen Boards sind es 220 Ohm.

Der Arduino Uno wird wie folgt angeschlossen:

  • +5v -> VCC
  • GND -> GND
  • Analog 4 -> SDA
  • Analog 5 -> SCL

 



/*************************************************** 
  This is an example for our Adafruit 16-channel PWM & Servo driver
  Servo test - this will drive 16 servos, one after the other
  Pick one up today in the adafruit shop!
  ------> http://www.adafruit.com/products/815
  These displays use I2C to communicate, 2 pins are required to  
  interface. For Arduino UNOs, thats SCL -> Analog 5, SDA -> Analog 4
  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!
  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

// called this way, it uses the default address 0x40
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
// you can also call it with a different address you want
//Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x41);

// Depending on your servo make, the pulse width min and max may vary, you 
// want these to be as small/large as possible without hitting the hard stop
// for max range. You'll have to tweak them as necessary to match the servos you
// have!
#define SERVOMIN  150 // this is the 'minimum' pulse length count (out of 4096)
#define SERVOMAX  600 // this is the 'maximum' pulse length count (out of 4096)

// our servo # counter
uint8_t servonum = 0;

void setup() {
  Serial.begin(9600);
  Serial.println("16 channel Servo test!");

  pwm.begin();
  
  pwm.setPWMFreq(60);  // Analog servos run at ~60 Hz updates

  yield();
}

// you can use this function if you'd like to set the pulse length in seconds
// e.g. setServoPulse(0, 0.001) is a ~1 millisecond pulse width. its not precise!
void setServoPulse(uint8_t n, double pulse) {
  double pulselength;
  
  pulselength = 1000000;   // 1,000,000 us per second
  pulselength /= 60;   // 60 Hz
  Serial.print(pulselength); Serial.println(" us per period"); 
  pulselength /= 4096;  // 12 bits of resolution
  Serial.print(pulselength); Serial.println(" us per bit"); 
  pulse *= 1000;
  pulse /= pulselength;
  Serial.println(pulse);
  pwm.setPWM(n, 0, pulse);
}

void loop() {
  // Drive each servo one at a time
  Serial.println(servonum);
  for (uint16_t pulselen = SERVOMIN; pulselen < SERVOMAX; pulselen++) { pwm.setPWM(servonum, 0, pulselen); } delay(500); for (uint16_t pulselen = SERVOMAX; pulselen > SERVOMIN; pulselen--) {
    pwm.setPWM(servonum, 0, pulselen);
  }

  delay(500);

  servonum ++;
  if (servonum > 7) servonum = 0;
}