:::: MENU ::::

Makerbot, Prusa 그리고 3D 프린팅 시장

최근 메이커봇이 인원을 30% 감원한다는 기사

여기서 Makerbot과 Prusa의 현재 상황과 3D 프린팅 시장을 알 수 있다.

consumers are incapable of 3D design, fixing wonky machines and desire 3D models that aren’t easily found

  • 고객들이 아직은 3D 디자인을 할 수 없고
  • 기기에 문제가 생길 경우 해결이 안되며
  • 원하는 3D 모델을 찾기 여러움

그래서 시장은 아직 일반인 대상이 아니라 DIY community인데, 이쪽을 포커싱하고 있는 Prusa의 경우 90명 정도의 스텝이 월 3천대 이상을 판매한다고 함.


USB 하드웨어 디자인 가이드

USB 하드웨어 디자인 가이드

  • GND, 샤시에 FB
  • 15 Ohm Termination resistor
  • ESD 인증에 문제가 있을 경우 protection device – NXP IP4220CE6
  • Common mode choke – Murata plw3216s900sq2t1
  • 2개의 USB 신호쌍은  parallel 하게하며, 간극은 최대 150 mil을 넘지 않도록
  • 신호선의 최대 길이는 18인치를 넘지 않도록

참고자료


Ultimaker 3 내부 구성

Meet the new Ultimaker 3

Ultimaker 3의 특징 – Ultimaker 3 Spec.

  • 듀얼 노즐:서포트를 쉽게 제거하기 위해 물에 녹는 재질의 필라멘트 사용가능
  • 쉽게 교체 가능한 노즐
  • 향상된 쿨링 시스템
  • 상태를 나타내는 LED
  • Wi-Fi & USB stick 지원: Wi-Fi는 Local에서만 지원된다.
  • 카메라 지원
  • Active bed leveling

Ultimaker 3 내부 구성

A20 LIME2 Linux보드 & ATmega 보드

위 블럭다이어그램에서 보듯이기존 UM2의 경우에는 메인보드에 ATmega2560칩이 있었으나, UM3는 Connectivity를 추가하기 위해 A20 LIME2 Linux보드가 메인이 되고, 기존의 Atmega보드는 실시간 처리가 필요한 모터제어에만 사용이 되었다. 이 보드에 카메라 및 WiFI, Ethernet, USB Host, NFC 리더가 있는데, NFC리더는 필라멘트에 붙어 있는 NFC 테그를 태깅하기 위해 사용이 된다. WiFi의 경우 USB to WiFI 동글이 사용되는데, 앱을 확인해 보니 Local network에서만 사용이 된다.

프린터 헤드 보드

레벨링을 위한 센서 /  쿨링팬 / LED 제어 / 노즐의 온도 컨트롤 및 사용시간 체크를 위한 EEPROM이 있다.

네트웍을 통한 원격제어

REST API를 사용해서 원격 제어가 가능하다. 즉 http://10.180.1.209/api/v1/system/hostname 이런 형태로.. 관련 내용은 https://ultimaker.com/en/community/23283-inside-the-ultimaker-3-day-2-remote-access-part-1 에서 확인할 수 있다.

참고자료


Jlink를 사용한 nRF51 flashing

지난번 nRF51개발 환경 포스팅에 빠진 부분인 flashing 부분

nrfjprog – Programming Tool

nrfjprog는 nRF5x-Command-Line-Tools의 번들 프로그램으로 SWD를 이용해 펌웨어 이미지를 로딩한다.

nrfjprog:

/* Optional: erase target if not already blank */
nrfjprog --family <nRF51/52> -e 
/* Load FW image to target */
nrfjprog --family <nRF51/52> --program _build/<name>.hex
/* Reset and run */    
nrfjprog --family <nRF51/52> -r

JlinkExe:

/* Open Jlink Commander from terminal in _build directory */ 
JLinkExe -device <nRF51/nRF52>
> erase // Optional: erase target if not already blank
> loadfile <name>.hex // loads FW
> r // Reset and halt
> g // Run
> q // Exit

JlinkExe -device nrf51822_xxaa -if swd -speed 4000



Intel Hex 파일 포맷

Intel hex파일 포맷은 다음과 같은 형태이다.

:llaaaatt[dd...]cc
  • : 콜론은 레코드의 시작을 의미
  • ll  데이터의 길이 – 2 바이트
  • aaaa 어드레스
  • tt 레코드의 타입
    00 – data record
    01 – end-of-file record
    02 – extended segment address record
    04 – extended linear address record
    05 – start linear address record (MDK-ARM only)
  • dd 데이터
  • cc 체크섬. 계산은 레코드의 값을 모두 더하고 2의 보수를 취한다.
:020000040000FA

예를 들어 위와 같은 경우

  • 02 데이터 사이즈는 2
  • 0000 어드레스
  • 04  extended linear address record
  • 0000 upper 16 bits of the address.
  • FA 체크섬 01h + NOT(02h + 00h + 00h + 04h).

End of File의 레코드는 다음과 같다.

:00000001FF

참고


J-link 인터페이스

Segger사의 J-link 디버거는 JTAG과 SWD인터페이스를 제공한다.

JTAG  pin-out

SWD를 사용하기위해서는 위 20핀에서 필요한 4핀만 연결하면 된다. 여기서 VTref신호는 디버거에서 타겟보드의 전압을 체크하고 전압레퍼런스로 사용하기 때문에 타겟 보드의 전원을 연결하고, 프로그래밍을 할 MCU의 전압과 연결해야 한다. 그렇지 않을 경우 VTref is 0.xxxxV라고 에러메시지가 나면서 연결이 되지 않는다.

*참고로 J-link와 같은 디버거를 DIY형태로 개발을 해서 OSHW로 판매를 하는 것이 있다.  OSHChip_CMSIS_DAP_V1.0

참고: https://www.segger.com/interface-description.html


Puck.JS 사용법

FEATURES

  • Bluetooth Low Energy
  • Espruino JavaScript interpreter pre-installed
  • nRF52832 SoC – 64MHz Cortex M4, 64kB RAM, 512kB Flash
  • 8 x 0.1″ GPIO (capable of PWM, SPI, I2C, UART, Analog Input)
  • 9 x SMD GPIO (capable of PWM, SPI, I2C, UART)
  • ABS plastic rear case with lanyard mount
  • Silicone cover with tactile button
  • MAG3110 Magnetometer
  • IR Transmitter
  • Built in thermometer, light and battery level sensors
  • Red, Green and Blue LEDs
  • NFC tag programmable from JavaScript
  • Pin capable of capacitive sensing
  • Weight: 14g in plastic case, 20g in packaging
  • Dimensions of cardboard box: 64mm x 62mm x 16mm
  • Dimensions of plastic case: 36mm dia, 12.5mm thick
  • Dimensions of bare PCB: 29mm dia, 9mm thick

회로도 및 PCB Layout Eagle File

ON-BOARD LEDS, BUTTON AND GPIO

LEDs

  • Red LED on: digitalWrite(LED1,1), Off: digitalWrite(LED1,0)
  • LED2 : green, LED3: blue
  • LED1.write(1) or  LED1.write(0)
  • LED1.set(), LED1.reset()
  • 3개의 LED 한꺼번에 제어 digitalWrite([LED3,LED2,LED1], 7)

Button

  • digitalRead(BTN) or BTN.read()
  • 버튼 상태를 Polling 하는 것은 power 소모가 심하므로, setWatch 함수를 사용해서 버튼 상태가 바뀌는 것을 체크함.

    setWatch(function() { console.log(“Pressed”);}, BTN, {edge:”rising”, debounce:50, repeat:true});

GPIO pins

  • GPIO 핀은 D0 부터 D31까지.  digitalWrite/digitalRead 커맨드를 사용할 수 있고 PWM, I2C, SPI and Analog 사용 가능

ON-BOARD PERIPHERALS

  • Magnetometer
  • IR / Infrared
  • NFC – Near Field Communications
  • Light sensor
  • Bluetooth
  • Temperature
  • Battery level
  • Capacitive sense
  • SERIAL CONSOLE

FIRMWARE UPDATES

via nRF Toolbox App (Android & iOS)

  • On your Bluetooth LE capable phone, install the nRF Toolbox app
  • Download the latest espruino_xxx_puckjs.zip file from the binaries folder
  • Reset Puck.js with the button held down – the Green LED should be lit
  • Release the button within 3 seconds of inserting the battery – the Red LED should light instead. If it doesn’t, you’ll need to try again, holding the button down for less time after inserting the battery.
  • Open the nRF Toolbox app
  • Tap the DFU icon
  • Tap Select File, choose Distribution Packet (ZIP), and choose the ZIP file you downloaded
  • Tap Select Device and choose the device called DfuTarg
  • Now tap Upload and wait. The LED should turn blue and the DFU process will start – it will take around 90 seconds to complete

Espruino IDE 사용하기

  • Web Bluetooth 사용 설정: Mac에서 BLE가 지원되는지 확인하는 법은 “이 Mac에 관하여” > 시스템 리포트 > 하드웨어 > Bluetooth 항목아래 ” Bluetooth 저에너지 기술이 지원됨” 이 “예”라고 표시되어 있는지 확인한다.
  • 크롬에서 주소표시줄에 chrome://flags를 입력하고, ” #enable-web-bluetooth” 항목을 사용하도록 설정하고 브라우저를 다시 시작함.
  • https://www.espruino.com/ide/ 에서 Web IDE를 시작한다.
  • Web IDE에서 연결 버튼을 클릭하고, Port설정에서 Web Bluetooth를 선택한다.

참고: https://www.espruino.com/Puck.js+Quick+Start


피지컬 웹 (Physical Web)

IoT 디바이스에 접급을 위해서 앱이 필요한 경우가 있는데, 이럴 경우 디바이스마다 앱이 존재하게 된다. 구글에서는 이걸 웹에서 해결하겠다는 접근이 피지컬 웹(Physical Web)이다. 이렇게 할 때의 장점은 디바이스에는 적은 기능만 넣고, 나머지는 웹쪽에서 구현을 하겠다는 의미이다. 이때 IoT 디바이스(비콘)가 자신의 URL을 주기적으로 Broadcasting하기만 하면 된다.
관련 정보
https://github.com/google/physical-web


전자부품에 대한 기본 지식

ROHM 반도체 사이트에 나와 있는 전자부품에 대한 기본 지식 정보. 전자공학을 전공하면 배우는 내용이지만 다시 한번 리뷰를 할 수 있어서 좋다.

그리고 첨단기술에서 발행하는 주로 일본잡지를 번역한 전자기술의 내용도 실용적인 내용이 있어서 괜찮다. 가령 이런자료 – 반드시 주의해야할 모터/릴레이 파워 설계


Pages:1234567...44