Espruino: Οι προκλήσεις της λειτουργίας μιας εταιρείας ανοικτού κώδικα υλικού και λογισμικού - 💡 Fix My Ideas

Espruino: Οι προκλήσεις της λειτουργίας μιας εταιρείας ανοικτού κώδικα υλικού και λογισμικού

Espruino: Οι προκλήσεις της λειτουργίας μιας εταιρείας ανοικτού κώδικα υλικού και λογισμικού


Συγγραφέας: Ethan Holmes, 2019

Διαβάστε τα άρθρα από το περιοδικό εδώ Φτιαχνω, κανω:. Δεν έχετε ακόμα συνδρομή; Πάρτε ένα σήμερα.

Έχω περάσει τα τελευταία 13 χρόνια ως μηχανικός λογισμικού, που εργάζονται κυρίως σε τρισδιάστατα γραφικά και μεταγλωττιστές. Η ανάπτυξη για τους μικροελεγκτές ήταν πάντα ένα χόμπι, αλλά βρήκα τα εργαλεία ανάπτυξης των μικροελεγκτών ARM να είναι πολύ δύσκολο να εγκατασταθούν και να χρησιμοποιηθούν, ειδικά στο Linux. Η δαπάνη ωρών εργασίας με τα εργαλεία λογισμικού τα βράδια, αφού είχα ήδη περάσει μια ολόκληρη μέρα μπροστά από έναν υπολογιστή, ήταν εξαιρετικά απογοητευτική, οπότε ξεκίνησα να δημιουργώ κάτι που θα έβρισκα ευχάριστα στη χρήση, όχι επώδυνο.

Ήθελα να μεταφέρω όλη την εργαλειομηχανή στον ίδιο τον μικροελεγκτή, επιτρέποντας σε οποιονδήποτε να το προγραμματίσει, από οποιαδήποτε πλατφόρμα, χρησιμοποιώντας JavaScript. Ο στόχος μου ήταν ότι κάποιος με ελάχιστη γνώση προγραμματισμού θα μπορούσε να αρχίσει να αναβοσβήνει ένα φως σε ένα μικροελεγκτή μέσα σε λίγα λεπτά, παρά ώρες. Έχοντας αυτό κατά νου, ξεκίνησα ένα έργο που ονομάζεται Espruino - το όνομα είναι ένα portmanteau του Espresso (δεδομένου ότι οι ενώσεις καφέ Java και JavaScript) και του Arduino (του οποίου το τέλος "uino" έχει πλέον γίνει συνώνυμο με μικροελεγκτές). Είχα γράψει ένα εξαιρετικά βασικό διερμηνέα γλώσσας όπως το TinyJS για ένα άλλο έργο μου και πριν από πέντε χρόνια, μετά από μια μαγκιά που μίλησα ξανά από το μηδέν για να χρησιμοποιήσω μνήμη στατικά, έκανα τον πρώτο κωδικό μου Git αποθετήριο.

Λίγους μήνες αργότερα, σε διακοπές στην Ουαλία με φίλους, πήρα το έργο μου. Θυμάμαι την αίσθηση της ολοκλήρωσης, καθώς είδα το μικρό board ST Discovery να τυπώνει μια γραμμή Fractal Mandelbrot με γραμμή. Ωστόσο, αυτό ήταν μόνο η αρχή ενός μακρινού ταξιδιού, το οποίο έχει πλέον μετατραπεί σε εργασία πλήρους απασχόλησης για μένα.

Φωτογραφίες από τον Hep Svadja

Λογισμικό Freemium

Λίγο αργότερα, αποφάσισα να τοποθετήσω το έργο μου στο διαδίκτυο - όχι ανοικτού κώδικα αρχικά, αλλά δωρεάν για λήψη. Σύντομα βρήκα τον εαυτό μου να ξοδεύω πολύ χρόνο προσπαθώντας να βοηθήσω τους χρήστες μέσω της επίπονης διαδικασίας αναβοσβήνισης του υλικολογισμικού πάνω στους μικροελεγκτές. Συνειδητοποίησα ότι αν ήμουν ποτέ σε θέση να συνεχίσω να εργάζομαι σωστά στο Espruino, χρειάστηκε να περάσω πολύ περισσότερο χρόνο γι 'αυτό, πράγμα που σήμαινε την εύρεση ενός τρόπου να προσφέρω έναν μισθό.

Η πρώτη μου προσπάθεια ήταν να φτιάξω το "freemium" του Espruino. Προστέθηκα την ικανότητα να αποθηκεύω μια εικόνα του τρέχοντος κώδικα στη μνήμη flash και χρεώνω 4 δολάρια γι 'αυτό - δυστυχώς, σε ένα ολόκληρο έτος, έκανα μόνο $ 40 παρά τις εβδομάδες των εβδομάδων που βοηθούσαν τους χρήστες. Είχα σημαντικές λήψεις, αλλά πολύ λίγοι άνθρωποι μπόρεσαν να εγκαταστήσουν το υλικολογισμικό και να πάρουν αρκετά πέρα ​​από το "Hello World" των LED που αναβοσβήνουν για να σώσει ακόμη και αυτό που είχαν κάνει.

Προσπάθησα να έρθω σε επαφή με όλους τους κατασκευαστές του πίνακα STM32 που θα μπορούσα να βρω για την προεγκατάσταση του Espruino, αλλά κανένας δεν ήταν διατεθειμένος να διακινδυνεύσει σε αυτό που ήταν, τότε, ένα σχετικά άγνωστο κομμάτι λογισμικού. Έτσι αποφάσισα να κάνω κάτι και εγώ.

Ξεκινήστε ένα συμβούλιο

Την εποχή εκείνη, ο Kickstarter μόλις άνοιξε τις πόρτες του στους δημιουργούς στην Αγγλία και σκέφτηκα ότι θα το δοκιμάσω κάνοντας το δικό μου συμβούλιο. Αν πήγε καλά, θα ανοίχτηκα τα πάντα και θα μπορούσα να αφιερώσω περισσότερο χρόνο στον Espruino και εάν δεν το έκανα, τότε θα το έβαζα και θα πήγαινα σωστά. Πήγε καλύτερα από ό, τι θα ήθελα ποτέ να ελπίζω, και πήρα πάνω από 100.000 λίρες σε χρηματοδότηση από ένα βίντεο τη γυναίκα μου και είχα χτυπήσει μαζί με μια φτηνή κάμερα και iMovie. Έτσι άρχισα να εργάζομαι σε αυτό με πλήρη απασχόληση.

Δεξιόστροφα από πάνω αριστερά: πρωτότυπο Espruino. Puck.js; Espruino WiFi; Espruino Pico (με και χωρίς καρφίτσες).

Η όλη εμπειρία Kickstarter ήταν καταπληκτική - αλλά ήταν εξαιρετικά αγχωτική και πήρε ένα τεράστιο χρονικό διάστημα. Ήμουν αρκετά νέος στο σχεδιασμό PCBs, οπότε χρησιμοποίησα κάτι που ονομάζεται OPL (Open Parts Library) από το Seeed Studio. Αυτό ήταν ένα πακέτο που θα μπορούσατε να αγοράσετε, το οποίο περιελάμβανε επίσης όλα τα περιγράμματα μέρους για τα εργαλεία σχεδίασης των PCB. Μόλις έβαλα ένα πρωτότυπο εργασίας μαζί, ήμουν σε θέση να δώσω τα σχέδια στο Seeed, ο οποίος θα κατασκευάσει το διοικητικό συμβούλιο με όλα τα μέρη που είχαν ήδη στο απόθεμα. Αυτό σήμαινε ότι παρόλο που όλα είχαν διαρκέσει περισσότερο από το προβλεπόμενο, ήμουν σε θέση να στείλω τα διοικητικά συμβούλια μόλις ένα μήνα μετά την αναμενόμενη ημερομηνία του πλοίου.

Η συσκευασία ανταμείβει την πρώτη εκστρατεία του Espruino Kickstarter.

Seeed απέστειλε ταχυδρομικά τα μεμονωμένα φύλλα Espruino για μένα. παρόλα αυτά, είχα προσφέρει και μερικά πακέτα εκκίνησης σε πελάτες που περιέχουν πολλά διαφορετικά ηλεκτρονικά εξαρτήματα, οπότε έπρεπε να τα συναρμολογήσουμε. Αυτό ήταν λίγο ένα ανοιχτήρι. Όταν φτιάχνω λογισμικό, 500 λήψεις δεν φαίνονται πολύ συχνά - αλλά φαίνεται πολύ διαφορετικό όταν πρέπει να συσκευάσεις πακέτα, να τα επισημάνεις και να σιγουρευτείς ότι παραδίδονται!

Συναρμολογημένα φύλλα Espruino στο Seeed, έτοιμα για προγραμματισμό και δοκιμές.

Τώρα, σχεδόν πέντε χρόνια μετά τη σύνταξη των πρώτων γραμμών κώδικα, έχω μόλις ολοκληρώσει τη μεταφορά αποστολής όλων των ανταμοιβών για μια τρίτη καμπάνια Kickstarter: Puck.js, ένα προγραμματιζόμενο κουμπί Bluetooth. Υπάρχει τώρα μια μεγάλη κοινότητα χρηστών γύρω από το Espruino και ένα φόρουμ με πάνω από 20.000 θέσεις - που τροφοδοτούνται κυρίως από τον ενθουσιασμό των υποστηρικτών μου Kickstarter. Όλα είναι ανοικτού κώδικα (υλικό και λογισμικό) και όμως τελικά είμαι στο στάδιο όπου οι μηνιαίες πωλήσεις των επιτροπών Espruino είναι αρκετές για να μου πληρώσουν ένα μισθό - χωρίς να χρειάζεται να προωθηθούν οι εκστρατείες του Kickstarter.

Η μεταφορά προκαλεί προβλήματα

Επειδή το firmware και τα εργαλεία είναι ανοικτού κώδικα, το Espruino χρησιμοποιείται σε όλο και περισσότερες συσκευές. Η κοινότητα Espruino μετέφερε το Espruino στο ESP8266, και από το τέλος του 2016, περισσότεροι άνθρωποι χρησιμοποιούν το ESP8266 από ό, τι όλα τα διοικητικά συμβούλια που πωλούν μαζί. Στην πραγματικότητα, μόνο το ένα τρίτο των χρηστών του Espruino χρησιμοποιούν στην πραγματικότητα ένα συμβούλιο που είχα φτιάξει.

Αυτό είναι φανταστικό, αλλά οδηγεί σε κάποια προβλήματα. Είχα πάντα την τιμή να προσφέρω πολύ καλή υποστήριξη στους χρήστες στα φόρουμ του Espruino - συχνά ξοδεύοντας δύο ώρες ή περισσότερο καθημερινά βοηθώντας. Καθώς το ποσοστό των ανθρώπων που χρησιμοποιούν τους πίνακες μου έχει πέσει, βρήκα τον εαυτό μου να ξοδεύω όλο και μεγαλύτερο μέρος του χρόνου μου που εργάζεται αποτελεσματικά δωρεάν.

Την πρώτη φορά που η Espruino τρέχει σε πραγματικό υλικό, το 2012 (πίνακας STM32VLDISCOVERY).

Υπάρχουν πολύ σαφή οφέλη από μια επιχείρηση υλικού ανοιχτού κώδικα - για όλους. Το κόστος των μεμονωμένων ηλεκτρονικών εξαρτημάτων και της παραγωγής μειώνεται δραστικά σε υψηλότερες ποσότητες, πράγμα που σημαίνει ότι οι περισσότερες εταιρείες λογισμικού ανοιχτής πηγής μπορούν να αντέξουν οικονομικά να πουλήσουν τα προϊόντα τους με λιγότερα χρήματα, δίνοντάς σας πάντως όλα τα σχέδια ώστε να μπορείτε να δείτε πώς λειτουργούν και να τρέχουν με αυτούς.

Το λογισμικό ανοιχτού κώδικα συνήθως βασίζεται στην προσφορά μιας επιχείρησης παροχής συμβουλών γύρω από ένα προϊόν ανοιχτού κώδικα - όπου μπορείτε να εργαστείτε με το λογισμικό σας πιο αποτελεσματικά από ό, τι μπορούν. Ωστόσο, τα πράγματα γίνονται πολύ πιο θορυβώδη όταν το υλικό και το λογισμικό ανοικτού κώδικα συγκρούονται - κάτι που θα συμβεί όλο και περισσότερο στο μέλλον.

Στην Espruino, ο στόχος ήταν πάντα η αντικατάσταση της πολυπλοκότητας του υλικού με την πολυπλοκότητα του λογισμικού. Το υλικό είναι πολύ απλό, αλλά το λογισμικό είναι εξαιρετικά περίπλοκο και παίρνει τη συντριπτική πλειοψηφία του χρόνου ανάπτυξης (τουλάχιστον 10 φορές περισσότερο). Πρέπει να επισημάνω το κόστος του υλικού μου για να πληρώσω για το χρόνο που χρειάζεται για την ανάπτυξη του λογισμικού. Αυτό κάνει τις δικές μου πλατφόρμες πολύ μη ανταγωνιστικές σε σύγκριση με ένα διοικητικό συμβούλιο των $ 2 ESP8266 που έβγαλε το Espruino για δωρεάν, ή ακόμα και μια άλλη εταιρεία που πωλούσε ένα πινακίδα με προεγκατεστημένο το Espruino.

Το πρώτο πάνελ των 30 πιρούνων Espruino Pico από τη γραμμή παραγωγής.

Αυτό βλάπτει τις πωλήσεις λίγο, αλλά το μεγαλύτερο πρόβλημα είναι στην πραγματικότητα η υποστήριξη. Εάν αντιμετωπίζετε κάποιο πρόβλημα με μια κανονική πλακέτα υλικού ανοιχτού κώδικα, θα μιλήσετε με τον κατασκευαστή.Ωστόσο, εάν έχετε κάποιο πρόβλημα με έναν κλώνο Arduino που αγοράσατε από το eBay, θα πάτε στα φόρουμ Arduino. Το ίδιο ισχύει και για το Espruino και οι χρήστες αυτών των άλλων καρτών γενικά έχουν περισσότερα προβλήματα εξαιτίας της κακής τεκμηρίωσης και του μη ενημερωμένου / buggy υλικολογισμικού. Μπορεί να είναι πολύ απογοητευτικό να παρέχετε ένα κατάλληλο επίπεδο υποστήριξης πελατών και να μην ξοδεύετε πολύ χρόνο σε όλους τους άλλους εκτός από τον εαυτό μου. Αυτό είναι ιδιαίτερα δύσκολο όταν δεν μπορώ ακόμη να καθορίσω ποιος χρησιμοποιεί αυτό το board!

Σε κανονικό λογισμικό ανοιχτού κώδικα, ελπίζετε ότι οι συνεισφορές από την κοινότητα θα προχωρήσουν πολύ προς την κατεύθυνση αυτή, αλλά όταν γράφετε εργαλεία για ενσωματωμένο λογισμικό, αυτό μπορεί να μην συμβεί τόσο πολύ. Η πλειοψηφία των χρηστών μου όπως το Espruino, επειδή προτιμούν να μην γράψουν κώδικα C, είναι πολύ απίθανο να βυθιστούν στον βελτιστοποιημένο πηγαίο κώδικα C του διερμηνέα. Όταν γράφετε λογισμικό για την επιφάνεια εργασίας, μπορείτε να γράψετε δοκιμές για να βεβαιωθείτε ότι λειτουργεί σωστά - και ενώ αυτό γίνεται όσο το δυνατόν περισσότερο με το Espruino, για να δοκιμάσετε πλήρως τα API υλικού, πρέπει να τα εκτελέσετε στο ίδιο το υλικό. Αν και οι περισσότεροι συμμετέχοντες δοκιμάζουν τον κώδικα τους στις δικές τους πλακέτες, είναι πολύ απίθανο να το δοκιμάσουν στους τέσσερις τύπους πινάκων Espruino που φτιάχνω, πόσο μάλλον οι 40 άλλοι τύποι πινάκων που τρέχει το Espruino. Επομένως, ακόμη και η εξέταση των εισφορών μπορεί να χρειαστεί πολύ χρόνο.

Για να το ξεπεράσουμε όλα, το λογισμικό που απαιτεί όλη αυτή την προσπάθεια να διατηρήσει έχει ελάχιστη ή καμία αξία. Δεν είμαι σε θέση να το χορηγήσω άδεια σε οποιαδήποτε ενδιαφερόμενη εταιρεία, επειδή μπορεί να την χρησιμοποιήσει ό, τι θέλει χωρίς να χρειάζεται κάποιος. Αντ 'αυτού, το μόνο που μπορώ να κάνω είναι να χρεώσω για τις υπηρεσίες που προσφέρω στην κορυφή του Espruino, όπως η διατήρηση μιας θύρας ή η προσθήκη κάποιων λειτουργιών.

Έλεγχος σερβοκινητήρα με χρήση του Espruino σε πίνακα αφής STM32 dev.

Αν και είμαι σε θέση να πληρώσω τον εαυτό μου ένα μισθό, είναι καθαρά από τη γενναιοδωρία από την κοινότητα, όχι επειδή έχω ένα μεγάλο επιχειρηματικό μοντέλο. Δεν μπορώ παρά να πιστεύω ότι η έλλειψη σαφούς επιχειρησιακής υπόθεσης για τη χρήση ανοικτών εργαλείων λογισμικού με υλικό ανοικτού κώδικα πλήττει την καινοτομία στον τομέα. Νομίζω ότι λέει ότι τώρα υπάρχουν εκατοντάδες ιστοσελίδες του Ίντερνετ των πραγμάτων που χρηματοδοτούνται με κεφάλαια επιχειρηματικού κινδύνου. Ταυτόχρονα, παρά τα εκατομμύρια των χρηστών, το IDE του Arduino δεν άλλαξε αισθητά από την πρώτη έκδοση του άλφα πριν από 10 χρόνια, ενώ το online IDE του Codebender είχε να κλείσει.

Έχοντας πει όλα αυτά, είμαι στην πολύ τυχερή θέση να πληρώνομαι για να κάνω το δικό μου πράγμα. Το Espruino δεν θα ήταν τόσο δημοφιλές όσο είναι αν δεν ήταν ανοιχτό, και χρησιμοποιούσα σχεδόν αποκλειστικά το λογισμικό ανοιχτού κώδικα. Είχα κάποια φανταστική συνεισφορά στο Espruino από την κοινότητα (για παράδειγμα, τα λιμάνια ESP8266 και nRF52) και ακόμη και οι αναφορές σφαλμάτων από χρήστες άλλων συμβουλίων βελτίωσαν την αξιοπιστία του Espruino για όλους. Όλα τα πράγματα που εξετάζονται, ωφελούνται σίγουρα από λογισμικό ανοιχτού κώδικα, ενώ αισθάνομαι σαν να δίνω κάτι πίσω.



Μπορεί Να Σας Ενδιαφέρει

Ράψτε ένα σύνολο από Groovy τσάντες για φαγητό

Ράψτε ένα σύνολο από Groovy τσάντες για φαγητό


Ο δρόμος για την Faire Maker: Rachel Hospodar

Ο δρόμος για την Faire Maker: Rachel Hospodar


American Journey 2.0: Κρουαζιέρα στο Στάνφορντ

American Journey 2.0: Κρουαζιέρα στο Στάνφορντ


Νέοι κατασκευαστές εξερευνούν το Faire

Νέοι κατασκευαστές εξερευνούν το Faire