Steps covered: Define, Build, Refine.
Buoy A: A buoy on a trap has to keep its release timer and report where it is.
The fuller of our two buoy boards: ESP32, LoRa, GPS, a motor driver and a cellular module on one PCB.
How I work
Whether it is a race car, a robot or a buoy, I work through the same five steps. Here is one example of each, from five different fields.
Requirements for a bicycle tail light, set before choosing a single part.
HELIOS REN →Consumer electronicsA Simulink model showed that per-panel converters keep one higher power peak under partial shading.
MultiMPPT →Power electronicsDashboard, steering-wheel display and fuel-level modules sharing one CAN bus in a Baja SAE car.
Baja SAE →VehiclesA cable rig we built at home so the vision code could practise before the official course existed.
E-wanna →RoboticsThree earlier boards merged into one, aiming for lower cost, smaller size and built-in battery charging.
EJA M →Marine IoTThe five lights under each project below show which of these steps its page covers.
Selected work
carried into the next projectcame next
A ropeless pop‑up buoy: vertical fishing lines entangle whales and leave ghost gear on the seabed.
Steps covered: Define, Build, Refine.
The fuller of our two buoy boards: ESP32, LoRa, GPS, a motor driver and a cellular module on one PCB.
Steps covered: Define, Build, Test, Refine.
Buoy B drops the cellular module and keeps the ESP32, LoRa, GPS and motor driver, with a web GUI for setting its release timer.
Steps covered: Define, Build, Test, Refine.
A LoRa gateway with a Li‑ion charger and a web GUI: from a phone, the crew sees a buoy’s position and sets its release timer.
Steps covered: Define, Build, Test.
GPS, LoRa and FTDI development boards, one module each, tested on the bench.
Steps covered: Define, Simulate, Build, Test, Refine.
I designed EJA M to replace Buoy A, Buoy B and the Onboard Gateway, with the GPS and LoRa modules tested on the dev boards.
Four PIC projects in one year, each simulated in Proteus.
Steps covered: Define, Simulate, Build.
We set its requirements first, then chose the parts and simulated the circuit in Proteus.
Steps covered: Define, Simulate, Build, Refine.
Our six-person team built it around a PIC16F1768 and validated the circuit in Proteus.
Steps covered: Define, Simulate, Build, Refine.
I let the PIC16F1717's own peripherals build the waveform, so the CPU spends no cycles on it.
Steps covered: Define, Simulate, Build, Refine.
Written in C with Mauricio Marcano for a course, and simulated in Proteus.
Computer vision and ECG formats, brought together in our thesis.
Steps covered: Define, Build, Refine.
An Android sandbox I built while learning the OpenCV SDK, with edge detection and a document scanner.
Steps covered: Define, Build, Test, Refine.
A short Python and OpenCV script that places non-overlapping coloured dots sampled from the photo.
Steps covered: Define, Build, Refine.
A small Python module that exports 12-lead ECG recordings to that HL7 aECG format.
Steps covered: Define, Build, Test, Refine.
Our thesis turned a phone photo of the strip into a digital signal, with an API and an Android app.
Motor drivers and an infrared scanner, then the robots: E‑wanna rides a power line, ATLAS pushes opponents out of a sumo ring, and a Pioneer P3‑DX is driven through ROS in simulation.
Steps covered: Build, Test.
Perfboard drivers built on H-bridges such as the L297 and L298, tested with DC and stepper motors.
Steps covered: Build, Test.
Perfboard drivers built on ULN2003 Darlington arrays, run from an Arduino Uno or a PIC16F877A.
Steps covered: Define, Simulate, Build, Test, Refine.
Our team built a robot that rides the cable, finds hot spots and clears vegetation.
Steps covered: Define, Build, Test.
A servo pans the sensors through a full circle while an HCS08 microcontroller streams a radar sweep to the PC.
Steps covered: Define, Simulate, Build, Test, Refine.
Our autonomous sumo robot took 2nd place at USB BOTS 2016, Venezuela's national robotics competition.
Steps covered: Define, Simulate, Build.
I wrote a Python bridge node, then drove a simulated Pioneer P3-DX from an Android phone while gmapping built the map.
Modules on one CAN bus in our Baja SAE car and the tools for working on it, then the motor interface for the USB Solar car and a web map.
Steps covered: Define, Build.
A graphic LCD and four thumb-reach buttons on the wheel hub, fed by one power-and-CAN cable.
Steps covered: Define, Build.
One ColdFire board reads the sensors and the CAN bus, and drives both gauges and every lamp.
Steps covered: Define, Build, Test.
Six Hall switches track a float magnet through the tank wall and report the level on the CAN bus.
Steps covered: Define, Simulate, Build, Test, Refine.
An accelerometer reads camber and ultrasonic sensors read toe, shown on a handheld display.
Steps covered: Define, Simulate, Build, Test.
A self-contained logger that bolts to the wheel hub and records 3-axis acceleration to an SD card.
Steps covered: Define, Simulate, Build, Test.
A dashboard, a steering‑wheel display and a fuel sender sharing one CAN bus in our car, plus alignment and brake‑test tools for the workshop.
Steps covered: Define, Build, Test, Refine.
An Arduino interface that sets speed and direction over serial, bench-tested before going on the USB Solar car.
Steps covered: Define, Build.
Built with the open-source OpenLayers library, centred on the Arc de Triomphe.
Steps covered: Define, Simulate, Build.
I modelled a per-panel converter that only handles the difference, then designed a test board for one cell.
Steps covered: Define, Build.
A 3D-printed map with 99 RGB LEDs, at least one per state, driven by a Raspberry Pi that other apps control over the network.
Steps covered: Simulate, Build.
Two MATLAB GUIs that animate an RRR arm and a PUMA 560 through forward and inverse kinematics.
Steps covered: Define, Build.
A browser game where you steer charged particles past fixed charges, built with two teammates as a community-service project.