Nios II, round 2

Sí, ¿ese error que creía solucionado? No había solucionado NADA.
Bueno, miento, si tenía un error en la compilación, y en la universidad funcionó.
Pero cuando regresé a mi casa, a mi computador… me la pasé todo el día intentando compilar el código, pero CERO.

No, no era la tarjeta. El código que había logrado compilar en la universidad se montó, y ése funcionó. Luego intenté crear un proyecto nuevo, un Hello World, exactamente igual al que ya estaba compilado. Nada. Cambiar parámetros, nada. Volver a cargar Nios II, nada. Reiniciar el computador, abrir el programa en modo administrador, revisar los drivers, hice toooodo eso. Y la respuesta era la de siempre. Ni siquiera intentaba hacer la compilación.

Me queda reinstalar Quartus II. Por suerte, estamos en Semana Santa (y en mi país se lo toman en serio). Así que podré dedicarle un rato.

Anuncios

La FPGA Altera DE1, Quartus II, Nios II, Eclipse y varias palabras extrañas más…

Bueno, en realidad ya había hablado de Altera, y de Quartus II.
Nios II es (por lo que entendí) un procesador. La versión 13 de Quartus II incluye una opción para programar el procesador en la FPGA, de manera que, en lugar de recurrir a VHDL para crear un programa para la tarjeta Altera, puede hacerse en C. Que C es más lindo.

El profe Sistemas nos dio un manual para hacerlo… para la versión 7 de Quartus. Yo tengo los instaladores de 9 (que no incluye Nios) y 13 (que sí lo incluye). Instalé 13 y busqué ayuda en Google.

Así me encontré con este blog. Alguien muy amable puso toda la información que necesitaba para hacer la programación de Nios II, paso por paso. Repito, PASO POR PASO.

La parte de Quartus II, genial, compiló sin problemas y cargó a la tarjeta sin problemas. Luego vino la parte de abrir Eclipse para hacer el código C para programar el Nios II.

Esa parte me causó un tic muscular en mi párpado izquierdo que todavía tengo.

Error, error, error, error, no compila, .ELF no existe, ECLIPSE LÁRGATE CON TODO MI ODIO.

Probé de todo. Primero corregí un error que tenía la parte de Quartus que no había agregado soporte para el JTAG. Pero no era eso. Luego probé con otro proyecto de C. Nada. Repasé el manual de Altera. Cambié de computador. Cambié de tarjeta. Cambié de computador esta vez para hacerlo con Windows 7. Encontré una página que tenía el proyecto compilado que les había funcionado y tenían todos los archivos (la parte de Quartus y la parte de C) disponibles. Sobra decir que nada de eso funcionó.

Llego a la clase casi sin esperanza, esperando que el profe me ayude. Y resultó que mi compañero sí había podido hacerlo. Me sentí peor… y le supliqué ayuda enseguida.

Y finalmente descubrí mi error: Eclipse me generaba dos carpetas al generar el proyecto… y yo compilaba la que no era.

Plagio

Me puse a revisar los primeros informes. Al principio se veían bien, sobre todo los de Física Eléctrica. Pero luego vinieron los de Física 1.
Desde redacción, bibliografía, inglés (para el abstract), gráficos, análisis… todo fue de regular a malo.

Para el segundo informe las cosas en los informes de Física 1 se veían mejor, y luego me fijé en algo. Sí, se veían mejor. Demasiado.

Una búsqueda en Google con un par de comillitas dobles me mostró el informe enterito. Iba a la mitad de las revisiones, así que regresé a revisar todo.
Si, fue algo decepcionante, pero no sé por qué no lo esperé desde un principio. Quizá esperaba copia entre grupos, y por alguna razón no esperé copia de informes anteriores. ¿Quizá es porque apenas empiezo en esto? Pero en mi pregrado vi eso pasar miles de veces. Qué mala memoria tengo.

Desde entonces he visto de todo. Informes que mencionaban partes de la experiencia que no se realizaron (o se cambiaron recientemente por cambio de materiales), informes donde mencionan gráficas pero las gráficas no aparecen, datos iguales entre dos grupos, gente que se presenta por primera vez al tercer laboratorio, gente en prueba académica total que no hacen ni un esfuercito por preparar algo no avergonzante (y justificando al mismo tiempo su prueba académica total), gente que se adelanta en los circuitos eléctricos y quema fusibles de multímetros, etc.

Con mis compañeros, el técnico amo y señor de los laboratorios, y hasta mis propios profesores, nos reímos de esos casos. Todos hemos ido recolectando anécdotas. Seguro que me faltan muchas por delante.

Segundas clases que dicto

Cada grupo es de cuarenta personas, pero se dividen en subgrupos de 20, que asisten alternándose cada quince días.
Así que los subgrupos 1 me tocaron el primer jueves y los 2 el siguiente.

El grupo 1 de física eléctrica tiene dos características interesantes. La primera (que en realidad comparte con el grupo 2) es que la clase es a las 7 de la mañana. Y yo vivo a una hora de la universidad. Y el transporte es horrible. Y tengo que llegar unos minutos antes para organizarme en el salón.

Todo muy caótico.

La segunda característica es que tiene un muchacho al que voy a llamar Kylo Ren, como el personaje de Star Wars. ¿Por qué? Pues porque tiene un cierto parecido a Adam Driver, el actor que lo interpreta. Y el humor de Kylo Ren.

Ok, quizás exagero.

Además parece ser repitente, porque se sabe experiencia. Se la sabía mejor que yo. Y era mi primera clase, así que no fue cómodo tenerlo junto a mi escritorio diciéndome como debía hacer las cosas: Que el preinforme por qué en hojas y no en cuaderno, que el quiz duró poco tiempo, etc.

El preinforme. Cuando yo presentaba preinformes siempre lo hacía en hojas, o al menos siempre tuve la suerte de que me tocaban profesores que me lo pedían en hojas. La ventaja era que el preinforme primero lo hacía en digital (lo guardaba en la nube) y luego lo pasaba a hojas. Ese método me salvó la vida un par de veces, cuando se me quedó el preinforme, y tuve que escribirlo de nuevo en la universidad. El cuaderno tiene la desventaja de que si se queda, se quedó. Es más engorroso comprar un cuaderno nuevo sólo por presentar un preinforme que se te quedó. Así que siempre me gustó ese método.

A Kylo Ren no le gustó.

Y el que yo estuviera ya con nervios de por sí no me ayudó mucho que digamos. Pero la clase, a pesar de eso, salió bien.

El grupo 1 de física 1 tiene las clases por la tarde. Ahí no hay ningún actor. Hay un montón de estudiantes confundidos de segundo semestre, que no saben hacer un preinforme. Y ahora que ya los revisé, tampoco saben hacer un informe. ¿Qué les hizo APA para que lo odien, eh? ¿Dónde está el volumen y la densidad del cilindro? El horror.

Por favor, no escriban unas conclusiones en negrita y mayúsculas. Es una tortura. Para mí, para usted, para todos.

Las segundas clases salieron mejor. Me preparé un poco más, sabía qué me iban a preguntar. Si la máquina de Wimshurt me hubiese funcionado, todo habría sido perfecto. Pero estuvo bien.

La segunda clase de física mecánica fue una preguntadera. La primera también, pero sentí que esta vez fue mayor. Pero no me quejo, digo, entender la lectura del pie de rey la primera vez es complicado. Por eso se inventaron el digital: menos complique, en un mundo que espera resultados inmediatos.

151384_1
Mirar el cero. Mirar la graduación de abajo porque las pulgadas son losers. Mirar qué rayita es la que se acerca más con la de arriba. Fuente.

Y este segundo grupo también tiene otro “actor”. No sé escribir su nombre real, y me da pereza buscarlo en Google ahora, pero es Kevin McCallister, el Mi Pobre Angelito.

Al menos no es un psicópata como Kevin. Pero habla mucho.

Segundas clases que recibo

boardimage-us-dsnbk-42-4904342209-image-40-thumb
Fuente.

 

Altera. Y su mejor amigo, el Quartus II, una versión que salió cuando Windows Vista no estaba ni en proyecto (Si quieren puedo echar toda la historia de Windows Longhorn…).

El profesor Sistemas nos dio a cada uno de los tres estudiantes de la clase una tarjeta Altera. Cómo se la traficó, no tengo idea (en realidad sí). La cosa es que las tarjetas aparecieron: “recórcholis, unas FPGA”, y me traje la mía a mi casa.

Había usado Quartus II hace mucho, pero sinceramente ya no me acordaba como usarlo, así que rebusqué entre las carpetas del pregrado mis viejos archivos de Sistemas Digitales, y a cacharrear se ha dicho.

Para empezar hice un sencillo diargama de dos puertos de entrada, una compuerta AND y un puerto de salida. Los puertos de entrada irían conectados a un pushbutton y el de salida a un led, todo integrado en la tarjeta. Ni siquiera tendría que conectar nada, lo que es una lástima, porque me gusta conectar y armar cosas, pero bueno.
Convertí el diagrama de bloques a lenguaje VHDL porque la idea es hacer esto precisamente en ese lenguaje, pero esto es apenas un Hello World y de VHDL todavía no sé nada.

Luego vino la asignación de pines. Una primera búsqueda en Google, más larga de lo que debió ser, me llevó al manual de la tarjeta. Ahí estaba indicado que pines debía seleccionar y cómo hacerlo. Compila sin problemas y sigo.

Luego fue la programación de la tarjeta. Y dividamos cada paso que seguí para hacerlo (ojalá sólo la primera vez):

  • Había que seleccionar el dispositivo, que se suponía debía ser reconocido automáticamente por Quartus II al estar conectado. Pero no lo encontró.
  • De vuelta a Google. Esta segunda búsqueda me llevó a quitar el Firewall de Windows. No tuvo ningún efecto sobre el reconocimiento de la tarjeta.
  • Una visita al administrador de dispositivos de Windows (algo que debí haber hecho de primero) me mostró que no se había instalado el driver. Bueno, démosle a actualizar drivers y que lo consiga en el Internet. No lo hizo.
  • Google otra vez. La página de Altera (ahora Intel) me hizo buscar el driver en la carpeta de Quartus II en Archivos de Programa. Y lo reconoció… pero no se instaló, por problemas de firmas.
  • ¿Entonces tengo que darle a la opción de que me instale sin firmas? Pues no se puede, porque no te da esa opción. Resulta que las últimas actualizaciones de Windows 10 la quitaron, por seguridad. Es posible obtener la opción de nuevo si escribes unas convenientes líneas por el CMD, abierto como administrador. Ingresé las líneas, reinicié, Windows me mostró una marca de agua que me decía que debía funcionar esta vez… NADA.
  • Se podía hacer un procedimiento similar, vía GUI, y al parecer a alguien le había funcionado de esa forma. Es similar a poner el computador a prueba de errores: Mantienes Shift mientras cliqueas en Reiniciar, entonces aparece una pantalla azul con opciones, y navegas hasta la opción de instalar drivers sin firmas. Reinicio.
  • BINGO. Ahora sí, PROGRAMAR -Oh wait, no lo reconoce todavía.
  • Parece que Windows, aunque lo dejó instalar, no gustó todavía de ese controlador. Una búsqueda larga más me lleva a una Wiki de terasIC (que me parece son los que hacen la tarjeta física o algo así) y me encuentro un controlador actualizado.
  • Instalo el controlador nuevo. ¡Esta vez no me da siquiera problemas de firma! Windows está complacido, y Quartus II también. Finalmente aparece el dispositivo y el botón de “Start” aparece activo. Clic.
  • Error. No consigue el “JTAG chain”, sea lo que eso sea. ¡A Google!
  • Antes de ir a Google, intento PRENDER LA TARJETA. GOD FUCKIN DAMMIT FUNCIONÓ, AHORA SÍ PROGRAMÓ.

Ahora a jugar con el VHDL. Y un detalle: la tarjeta no se queda programada. Se desprograma cada vez que se apaga (y carga un programa que hace que los ledes bailen).

Es por estas huevadas que amo mi carrera. Y lo digo sin pizca de sarcasmo.

Primeras clases (que recibo)

El viernes en la mañana nos dieron una bienvenida. Habíamos como quince estudiantes nuevos en la maestría. Nos ofrecieron un desayuno consistente en omelete con queso y jamón, pancitos y jugo. Todo muy fancy.

Como egresé de la misma universidad, ya sabía como usar los sistemas que empezaron a explicarnos (Virtual de Tareas, Virtual de Notas, sistema de biblioteca, etc). Aunque fue bueno el repaso. De todos modos, Virtual de Tareas ha cambiado mucho desde que yo entré al pregrado.

La primera clase que tenía era Procesamiento Digital de Señales. Lo dicta mi director de tesis, a quien llamaré El Elegante. Pero esa clase se cruzó con la bienvenida. Y El Elegante estaba ahí. Que por cierto, también es mi director de tesis.

La siguiente fue Técnicas de Diseño Digital. Con otro profesor a quien llamaré El Sistemas, porque sus materias parecen del área de Sistemas. Sólo eramos dos en esa materia. Nunca había tenido una situación similar.

La tercera materia, que dimos en la tarde, podemos llamarla Repaso de Ecuaciones, porque es básicamente eso. Y a este profesor lo llamaré El Lento. Porque… habla… muy… lento… y… me… desespera.

Sólo eran las primeras clases, así que poco o nada hay que decir de cada materia. ¿De los profesores? Bueno, con El elegante me llevo bien (afortunadamente), El sistemas es alguien más bien enigmático, y con El lento ésta es mi primera experiencia.

Ya veremos cómo se desenvuelve todo.

Primeras clases (que dicto)

Llegué demasiado temprano el jueves, cuando tenía mi primera clase de Física 2 (Eléctrica) a las 7 de la mañana. La adrenalina se salía a borbotones cada vez que veía llegar a un nuevo estudiante.

Imagen relacionada

Faltando diez minutos entré al laboratorio, me puse la bata, saqué un marcador, y me puse a pasear por el salón, tratando de calmarme. No funcionó mucho. Así que simplemente dejé entrar a los muchachos diciendo la máxima de todo estudiante que entra a un parcial sin haber estudiado mucho: “Que sea lo que Dios quiera”.

¿Qué errores cometí en mi primer día de dar clase? Tenía tantos nervios que olvidé pasar lista. Casi no doy los lineamientos para entregar pre-informe e informe de laboratorio y los dije porque me lo preguntaron. Casi ni me presenté, sólo dije mi nombre y correo electrónico. ¡Y ni siquiera era el institucional, porque no me lo han activado todavía!

Aparte de eso, yo creo que me fue bien. Sentí que tenía el control de la clase. Nadie se puso en plan atrevido (porque usualmente hay un alguien que se pasa), y todos me decían profe. Todos me prestaron atención e hicieron silencio cuando se los pedí, y armaron los grupos sin hablar muy alto, y hacían preguntas constantemente que podía contestar.

Media hora después, se había acabado la clase. Pero se había sentido como si hubiese dado las dos horas completas.

En la tarde, Física 1 (Mecánica) fue bastante similar. Pude corregir los errores de la mañana y me tomé un poco más de tiempo para explicar más, porque estos apenas entran a su primera experiencia de laboratorio “completa” (con pre-informe y quiz).

Todavía no puedo cantar victoria. Apenas es la primera semana de las siguientes dieciséis. Pero creo que fue un buen comienzo. Es más el miedo antes de entrar.

Inducciones

Esta fue la semana de inducciones para los profesores nuevos. Los de Planta, los de Cátedra, y los casos especiales. Junto a otros estudiantes de Maestría (los otros en mi situación), me encuentro en el último grupo.

Los “Asistentes”, para poner un nombre más específico. El nombre exacto es “Asistente graduado”.

Así que esta semana consistió en eso, básicamente. Charlas. Bienvenido a la Universidad, usted cuenta con los siguientes beneficios, téngale amor a su profesión.

De los nuevos ingresos, el que más recuerdo es el de un joven que va a dar las clases de Electrónica 1 y 2. Reemplaza al profesor que me dio clases a mí y que pasa ahora a ocupar el puesto de Director de Programa de la Maestría en la que estoy ahora, y del doctorado en Ingeniería. Y el que estaba antes en ese puesto pasa a ser el Decano de las ingenierías. Del anterior decano no sé mucho.

Sí, hay directores de programa que también dan clases y no se pasan a lo puramente administrativo, pero por lo general sólo dan una o dos materias como mucho, y casi siempre en posgrados. Por ejemplo, el director del pregrado de Electrónica sólo daba una electiva virtual, al menos en el pregrado. Y el anterior a ése daba una materia presencial, que alcancé a ver con él. El semestre después que vi esa materia él se fue a Texas. Ojalá se quede allá. Que no vuelva por acá, por favor.

Segundo y tercer día estuvieron dedicados a aprender los sistemas virtuales de la Universidad. Tenemos varios, pero los principales son dos, a los que llamaré “Virtual de Tareas” y “Virtual de Notas”. Virtual de Tareas es donde se monta todo: tareas, trabajos, links, talleres, quices virtuales, y si uno se lo propone, hasta Skype. Y cuando los links de subida de tareas vencen a las 11:59pm, se convierte también en fuente de lágrimas. Virtual de Notas es fuente de sangre de la Batalla Semestral de las Matrículas, batallas gloriosas donde se define el futuro del semestre y de la vida misma, porque si te toca una clase con un mal profesor puede ser la muerte.

507799.jpg-r_640_360-f_jpg-q_x-xxyxx
TeamÚltimoCupoDeCálculo

Ok, de la sangre, sudor y lágrimas, falta el sudor. ¿De donde lo sacamos?
Pues del calor de 30°C que hace en esta ciudad, cielo santo, que a veces me derrito.

Dar clases

¿Cuál es la cosa más importante que necesita un ser humano? ¿Amor? ¿Amigos? ¿Felicidad?

No, la respuesta correcta es comida. Pan, mucho pan. Arroz, carne, pasta, ese tipo de cosas. Esas materias no se pasan con hambre.

Así que, como extra a la maestría, la universidad me ofrece una ayuda económica por medio de… dar clases. De laboratorio de Física.

En mi Alma Máter las ingenierías dan 3 físicas. Física 1 o mecánica, física 2 o eléctrica, y física 3 o moderna cuántica calor y ondas.

Será mi primera experiencia dando clase. Así que esta semana estuve (estuvimos, porque hay otros compañeros en mi situación) con el decano de las Ciencias Básicas y el técnico amo y señor de los laboratorios de física 3. Explorando las experiencias de laboratorio.

¡Cuánta nostalgia! ¡Por supuesto que recuerdo cuando nos radiamos con cesio-137 para observar el efecto Comptom!
Pero fuera de broma, recuerdo esos laboratorios con cariño.

Una semana para dar todos los temas de física 3. Y la otra semana vienen física 1 y 2 en conjunto. Al menos esas dos físicas son más fáciles, desde mi perspectiva al menos. Mi cerebro ya estaba explotando el jueves.

Maestría

Primera semana de trabajo del año. Y al mismo tiempo, última semana de entrega del proyecto. Sí, este 2019 va a ser un año raro. Digo, estoy empezando una maestría, lo que a mucha gente puede no parecerle raro, pero no inicias una maestría en ingeniería todos los días.

La ingeniería que tomé es Electrónica, que fue la que estudié en el pregrado. Mi rama predilecta viene siendo Bioingeniería, una rama en la que caí por azar, o por el destino, o como quieran llamarlo. Yo no creo en la suerte así que me inclino más por la segunda respuesta, pero no quiero entrar en esa discusión filosófica porque mis notas del bachillerato en esa materia me dicen que terminaré perdiendo esa discusión.

Pero sí, Bioingeniería. Chévere, si te gusta, como todo en la Electrónica. A su vez, esta tiene su montón de subramas: imágenes médicas, medición de bioparámetros, el clásico procesamiento de señales, entre otros. Y suele pasar que en un solo proyecto estas subramas se mezclen entre sí, se crucen, se hagan nudo, y el aparato no funciona, o explota. Y no exagero con esto último.

En el caso de este proyecto (el tercero en el que participo hasta ahora) trabajamos con un bonito aparato: El Emotiv EPOC+.

epoc-three-quarters-view
“El casco”, formalmente conocido como el Emotiv Epoc+. Fuente.

Sólo mírenlo. Es justo como se lo imaginan al ver esa foto: un dolor de cabeza. Literalmente hablando: mi cabeza quizá es un poco grande. Pero también figurativamente hablando: ese software privativo.

Cuando buscas trabajos anteriores te dicen: sí, el resultado que arroja es bueno. Sí, trabajar con él fue fácil. No, no tuve absolutamente ningún problema de comunicación con otros software. Ajá.
Esos trabajos son, sin excepción, de 2017 para atrás. Pero luego el vendedor hizo esto:

Resultado de imagen para dollar eyes

Y bueno, así es la vida del estudiante. No puedo decir que no me ha pasado, y que no me seguirá pasando.