1 puntos por GN⁺ 2025-06-19 | 1 comentarios | Compartir por WhatsApp
  • Un iPhone 8 que casi terminaba guardado en un cajón fue convertido en un servidor OCR basado en SwiftUI, y con Apple Vision procesó 83,418 solicitudes y 48GB de imágenes durante más de un año
  • El sistema está compuesto por un iPhone 8, una Mini PC para el servicio web y el enrutamiento de API, una EcoFlow River 2 Pro 768Wh, un panel solar de 220W y una red Tailscale
  • El consumo eléctrico total es de alrededor de 1.2kWh por día, y la entrada solar varía mucho según la estación: desde picos de 150~220W en verano hasta apenas 5~20W en invierno
  • Tras operación continua, la salud de la batería del iPhone quedó en 76%, y en días con alta carga procesó más de 1,000 solicitudes, aunque las restricciones de iOS en segundo plano y la gestión térmica requirieron medidas específicas
  • En lugar de usar OCR en la nube, se eligió procesamiento local para eliminar el costo por solicitud y la subida a servidores externos, además de lograr un ahorro anual de 84~120 CAD en electricidad y reducir residuos electrónicos

Convertir un viejo iPhone 8 en un servidor OCR

  • Un proyecto personal de procesamiento de imágenes clasifica automáticamente cientos de imágenes al día, y originalmente el OCR también podía ejecutarse en una Mac
  • Un iPhone 8 que no se estaba usando y una EcoFlow River 2 Pro comprada para campamento se combinaron para convertirlos en un servidor OCR alimentado por energía solar
  • El procesamiento OCR se usa en un proyecto paralelo separado del blog
  • Los resultados tras más de un año de operación fueron los siguientes
    • 83,418 solicitudes OCR procesadas
    • 48GB de datos de imágenes procesados
    • Más de 1,000 solicitudes en días de mucha actividad
    • Salud de batería del iPhone en 76%
    • Ahorro anual en electricidad de 84~120 CAD

Configuración del sistema y flujo de procesamiento

  • La configuración completa se divide en cuatro dispositivos y la red
    • Mini PC: ejecuta el servidor web, el servicio de procesamiento de imágenes, el servidor Plex y otros servicios
    • iPhone 8: junto a la ventana, ejecuta una app SwiftUI para el OCR y un panel en tiempo real
    • EcoFlow power station: suministra energía off-grid al iPhone y a la Mini PC
    • Tailscale network: conecta los dispositivos entre sí
  • Cuando el servicio de procesamiento de imágenes envía al iPhone una imagen para OCR, el iPhone reconoce el texto con Apple Vision y luego devuelve el resultado
  • El panel del iPhone muestra estadísticas de procesamiento y estado del servidor, y la UI de ejemplo incluye Requests Today, Total Processed, Avg Processing Time, Success Rate, estado de batería y Server running on port 8080
  • También se integró Google Analytics 4, y el panel muestra un total de 139,917 usuarios, 17,643 este mes, una sesión promedio de 6 min 28 s y 11 usuarios activos actualmente

App OCR en iOS basada en Apple Vision

  • Al crear un servidor en iOS, la parte más complicada fue mantener la app ejecutándose continuamente
  • El núcleo del OCR es VNRecognizeTextRequest del framework Vision
    • recognitionLevel = .accurate
    • usesLanguageCorrection = true
    • VNImageRequestHandler recibe un CGImage y ejecuta la solicitud
    • El resultado se devuelve reuniendo las cadenas candidatas principales de VNRecognizedTextObservation
  • Como el OCR se realiza on-device, no hay llamadas API, límites de uso ni envío de imágenes a servidores externos
  • La precisión está a un nivel comparable al de algunos servicios en la nube probados
  • El reconocimiento de texto del framework Vision ha mejorado con el tiempo, y ahora funciona incluso en casos donde antes fallaba, especialmente con escritura a mano y tipografías poco comunes

Configuración de energía solar y operación por estación

  • El equipo eléctrico consiste en una EcoFlow River 2 Pro 768Wh y un panel solar de 220W
  • Según datos reales de TP-Link, el consumo total es de alrededor de 1.2kWh por día
Componente Consumo en reposo Carga de procesamiento Nota
iPhone 8 OCR Server 0.5~1W 2~5W Eficiente
Mini PC 15W 25~30W Incluye Plex, Archive Warriors
Consumo diario total aprox. 1.2kWh Variable Basado en datos de TP-Link
  • El rendimiento solar cambia mucho según la estación
    • Verano: entrada pico de 150~220W, operación sostenida incluso con carga de batería
    • Primavera y otoño: promedio de 20~60W, operación mixta entre solar y batería
    • Invierno: con suerte 5~20W; la mayor parte depende de la batería y la autonomía es de 15~20 horas
  • El sistema de gestión de batería de la River 2 Pro administra la curva de carga; no se trata simplemente de empujar energía al dispositivo
  • En las mañanas frías de Canadá, el tiempo de procesamiento se volvía más lento, y el iPhone procesaba OCR más rápido cuando estaba algo tibio

Cálculo de costos y comparación con OCR en la nube

  • El costo inicial fue el siguiente
    • EcoFlow River 2 Pro: 599 CAD, comprada originalmente para campamento
    • Panel solar de 220W: 180 CAD
    • Cables y hardware de montaje: alrededor de 50 CAD
    • Inversión solar adicional: alrededor de 230 CAD
  • Según datos reales de EcoFlow, el consumo mensual fue de 37.4kWh en mayo y 45.8kWh en abril
  • El ahorro estimado en la factura eléctrica equivale a unos 84~120 CAD al año, y el periodo de recuperación de la inversión es de aproximadamente 2~3 años
  • Los servicios OCR en la nube suelen cobrar 1.00~1.50 CAD por cada 1,000 solicitudes
  • Si las más de 83,000 solicitudes procesadas se hubieran manejado con OCR en la nube, el costo estimado habría sido de 83~125 CAD
  • La configuración solar local no tiene costo por solicitud y no envía imágenes a servidores externos

Estabilidad y limitaciones observadas tras un año de operación

  • El iPhone 8 funcionó de manera continua durante más de un año, y no mostró una degradación de rendimiento evidente pese a la carga constante
  • El procesamiento en segundo plano de iOS funcionó mejor de lo esperado, aunque requirió una configuración adecuada
    • Uso de Background App Refresh
    • Mantener el servidor HTTP respondiendo a solicitudes periódicas
    • Uso mínimo de servicios de ubicación
  • Para responder a la intermitencia de la energía solar, la estación fue configurada para priorizar al iPhone, que es un dispositivo de bajo consumo
    • Cuando la batería baja, la Mini PC se apaga de forma ordenada
    • Si es necesario, el iPhone puede seguir procesando por sí solo solicitudes OCR básicas durante varias horas
  • La luz solar directa y el procesamiento continuo pueden provocar thermal throttling, por lo que se añadieron medidas como sombra, mejor flujo de aire y reducción de solicitudes cuando se detecta alta temperatura
  • Como iOS no quiere que las apps se ejecuten para siempre, hace falta equilibrar el estado siempre activo con la conservación de batería

Procesamiento local primero y reutilización de dispositivos

  • Todas las imágenes permanecen dentro del dispositivo del usuario, sin subida a la nube ni acceso de terceros
  • Aunque el ahorro no cambia la vida, sí demuestra que cargas de trabajo de cómputo con sentido pueden funcionar con energía renovable
  • Un iPhone que iba a terminar en un cajón no se convirtió en residuo electrónico, sino en un servidor OCR
  • No todo el procesamiento tiene que estar en la nube; un dispositivo local alimentado por energía solar puede procesar los datos directamente

Recursos de referencia

1 comentarios

 
GN⁺ 2025-06-19
Opiniones de Hacker News
  • Aunque se ahorren unos 84 a 120 CAD al año, para ejecutar una app propia en el teléfono propio durante más de una semana hay que pagarle a Apple 99 dólares al año, así que probablemente eso compense casi todo el ahorro

    • Esta cuota de desarrollador de Apple está entre las cosas más absurdas que hace Apple. También me pregunto si de verdad cuesta 99 dólares por la infraestructura de hosting de apps y los costos de servidor
      Cuando compro un dispositivo, me gustaría sentir que es mío, pero Apple sigue empujando la narrativa de “te dejamos usar este dispositivo solo de las formas que nosotros permitimos”. Al final, el cliente paga el precio completo y aun así es como si le rentara el dispositivo a Apple
      Soy usuario antiguo de Apple, pero cuesta quitarse de encima esta relación de amor-odio con la empresa
    • El iPhone 8 tiene la vulnerabilidad de bootrom checkm8, imposible de parchar, así que aunque el artículo no lo menciona, el autor podría haber hecho jailbreak y ejecutar el software que quisiera sin pagarle a Apple
      Esta vulnerabilidad fue una gran victoria, y recién llegó a su fin hace poco, cuando el iPad de 7.ª generación, el último dispositivo vulnerable, dejó de recibir la actualización a iPad OS 26
    • Pensé exactamente lo mismo. Si uno mira todo el conjunto de plataformas de desarrollo que se pueden elegir para hacer hacks de dispositivos al estilo maker fuera de su uso oficial, iOS es por lejos la peor
      De hecho, hay electrodomésticos en los que se puede manejar el desarrollo y la distribución de apps con más libertad que en un iPhone
    • Según entiendo, solo hay que pagar cuando se publica en la App Store. Hace tiempo hice una app para iPhone y nunca pagué nada
    • Aunque el iPhone en sí sea viejo y lo consideres gratis, el hardware solar y de batería cuesta alrededor de 1,000 dólares
  • Es una tecnología interesante, pero no hay ninguna explicación del caso de uso, así que todo se siente algo abstracto

    • Me gustaría ver más sobre la parte de “lo realmente difícil fue hacer que siguiera ejecutándose aunque iOS no considerara que mi app fuera lo bastante importante como para mantenerla activa”
    • Los ejemplos de código del framework Vision y los enlaces de la sección “Software Resources” parecen suficientes. Si te da flojera resolverlo por tu cuenta, incluso podrías pasárselo a un LLM para que arme la aplicación completa
  • Pronto Apple agregará la API SpeechAnalyzer, con lo que la conversión de voz a texto también podrá hacerse localmente, y dicen que es más rápida que Whisper
    https://developer.apple.com/videos/play/wwdc2025/277/
    https://www.macrumors.com/2025/06/18/apple-transcription-api...

    • Relacionado con eso, también está https://github.com/finnvoor/yap
      Es una CLI que usa Speech.framework de macOS 26 para hacer transcripción de voz en el dispositivo
      En el artículo de MacStories parecía ser unas 2 veces más rápida que Whisper, y al no haber red ni servidores compartidos, se siente aún más rápida
    • Que sea más rápida está bien, pero me da curiosidad la calidad. Si fuera 10 veces más lenta que Whisper 3 pero la calidad mejorara 5%, elegiría esa opción
  • Es un gran intento hacker y un buen artículo, pero quiero señalar un patrón común de HN sobre qué promocionan implícitamente los técnicos mediante efectos de red hacker
    Cada vez que aparece en HN un post de blog del estilo “logré hacer ___ en una plataforma hostil para hackers, y ahora puedo usar lo que hice, pero quedo totalmente atado a esa plataforma”, siento que el niño Jesús Linus derrama una lágrima
    Este caso es un poco peculiar, porque en la sección “Why This Actually Matters” el autor trata valores hacker y sociales inusualmente buenos

    • Reutilizar dispositivos viejos está bien. Si te molesta una plataforma cerrada, puedes no comprar un iPhone, pero haga uno lo que haga, proyectos como este pueden salvar muchísimos iPhone viejos que terminarían en vertederos
    • Totalmente de acuerdo. Por ejemplo, ahora estoy usando una app de Android instalada desde Play Store que encontré en la portada, y el título era “I developed and didn’t use ”
      Lamentablemente, me interesa más la funcionalidad que el framework, y desde que la instalé no he dejado de preguntarme cuántos de los cientos de personas que la recomendaron realmente ejecutaron en su teléfono algo que yo llamaría la app con más bugs que tengo. La borré varias veces por frustración intentando arreglar problemas, y algunos solo se resolvían con una instalación limpia
      El punto central es que la filosofía que se persigue importa, y evaluarla a escala es muy importante
  • Me confunde qué es lo que están pasando por OCR. Me pregunto qué tipo de procesamiento de imágenes hacen como para necesitar una solución así

    • Supongo que quería probar el framework de OCR de Apple y lo que tenía a mano era ese iPhone. Fui al inicio del blog a buscar un artículo que explicara qué está procesando, pero no encontré nada. Me pregunté si estará escaneando todas sus novelas
  • Todavía uso un iPhone 8, y comparado con un Android de la misma época, Android le pasa por encima al iPhone. Es un teléfono económico de la serie Motorola eX, y con la pantalla apagada, transmitiendo video o audio por Wi-Fi y sacándolo por Bluetooth, consume alrededor de 15% de batería por hora, mientras que el iPhone consume más de 60%
    Ambos tienen la misma edad, pero el iPhone se siente anticuado, mientras que el Motorola económico se siente como una computadora de mediados de la década de 2010. A pesar de los años, el Android aguanta 2 semanas en modo avión

    • Eso más bien significa que la batería del iPhone 8 está más degradada que la del Motorola económico. Si usaste más el iPhone durante su vida útil, eso puede pasar fácilmente, y no es una buena referencia para medir el rendimiento relativo
  • “Lo he tenido funcionando de forma continua durante más de un año y la batería del teléfono seguía bastante bien. Actualmente está al 76% de capacidad”, dijo, pero cuando intenté dejar un iPhone SE enchufado todo el tiempo, la batería se convirtió en una almohada picante tres veces
    Al principio, Apple dijo que no tocaba baterías hinchadas y reemplazó todo el dispositivo; después usé kits de reemplazo de terceros
    Si la batería se mantiene casi siempre al 100%, es difícil que aguante mucho. Lo que más quisiera para reutilizar teléfonos viejos es que funcionen sin tocar la batería, o una función para mantener la batería al 50%
    Los teléfonos Apple más recientes tienen una opción de límite al 80%, lo cual es una mejora, pero no sé qué tanto ayuda. Además, si no es un teléfono reciente, esa opción no aparece ni siquiera con el iOS más nuevo

    • Puedes enchufar el cargador a un enchufe inteligente compatible con HomeKit y crear un atajo que encienda el enchufe cuando la batería llegue al 45% y lo apague cuando llegue al 55%
      Claro, necesitas un hub de HomeKit
    • La mayoría de estos dispositivos no pueden funcionar sin batería porque no pueden entregar los picos instantáneos de corriente que requieren alimentación externa. Si la CPU hace una tarea con un pico repentino, puede apagarse
      He visto hacks que reemplazan la batería por un supercapacitor
    • Cuando a mi MBP de 2017 le salió una almohada picante, Apple arregló el pobre equipo y, ya que estaban, también cambiaron el teclado maldito y pusieron algo como cinta para reforzar los puertos USB-C flojos
      Eso sí, no hicieron lo de la pasta térmica, así que tuve que hacerlo yo, y fue un trabajo que no quiero volver a tocar jamás. Aun así, sí tuvo efecto: bajo carga quedó unos 10 °C más fresco y también más rápido. Todavía lo uso a diario y lo cuido mucho
    • Es frustrante que Apple no ofrezca un modo real de bypass de batería y que tampoco permita configurar límites de carga
  • Es una gran historia. No se reconoce lo suficiente que Apple mantiene con vida estos dispositivos viejos
    Yo también tengo una historia parecida de cómo reutilicé un OG iPhone SE viejo y le di nueva vida
    https://samkhawase.com/blog/dumb-smartphone/

    • No entiendo bien ese comentario. Encontrar un nuevo uso para un iPad viejo sin mucho esfuerzo se siente como algo excesivamente difícil. ¿Eso cambió?
    • No estoy de acuerdo en absoluto. Tuve que dejar un iPhone 7 porque no se podía actualizar iOS y las apps bancarias se negaban a funcionar en la versión antigua
      Apple incluso está dispuesta a limitar el rendimiento de los teléfonos, como se vio con Batterygate
  • Quizá me estoy perdiendo de algo. ¿De dónde salen los miles de usuarios de los que se habla aquí? ¿Hay algún servicio que ofrezca?

    • Sí. El autor opera un sitio web público donde puedes hacer OCR gratis de archivos subidos
  • Frente al iPhone 8, propongo un Motorola MB525 “Defy”, un Motorola MB526 “Defy+” y un Samsung J3. Uso estos dispositivos como cámaras de tráiler con Wi-Fi
    El teléfono proporciona un hotspot Wi-Fi, y a través de él veo la imagen de la cámara. Conecto el tráiler, me conecto a la red Wi-Fi y puedo ver qué pasa en el tráiler de atrás
    El dispositivo más viejo de esta lista es de 2010, y todos corren Cyanogenmod (MB525, MB526) o su sucesor, LineageOS (J3). A los Motorola les cambié la batería y el J3 volvió a usar su batería original
    De todos modos la pantalla ni se ve, y 2 de los 3 la tienen rota, así que todos funcionan sin pantalla. Android corre bien sin pantalla, y usado así consume un poco menos de energía

    • Bastante impresionante. Me gusta darle nueva vida a dispositivos viejos y evitar que se conviertan en residuos electrónicos. Va totalmente con el verdadero espíritu hacker