[속보] 케빈 워시 연준 의장 지명과 원자재 대폭락: 금, 은 가격 추락의 배경
트럼프 대통령의 케빈 워시 신임 연준 의장 지명 소식에 국제 금, 은 가격이 급락했습니다. 시장의 충격과 향후 전망을 분석합니다.

[Picture 1] MULTIIO
ODROID-M1S와 결합할 수 있는 보드 입니다.
/boot/config.ini 에서 필요한 인터페이스를 선택해서 작성하고,
핀 위치를 확인해서 사용하는 부분을 개선하기 위해 만들어 졌습니다.
한번에 모든 인터페이스를 사용하고, multiio 보드에 인터페이스를 명시했습니다.
다음은 MULTIIO 사용 방법 및 설명입니다.
먼저 ODROID-M1S와 MULTIIO 보드를 준비합니다.
전원을 연결하지 않은 채로 M1S 보드와 MULTIIO 보드를 결합합니다.

[Picture 2] m1s and multiio
공식 사이트에서 M1S의 우분투 이미지를 다운로드 한 후,
M1S의 emmc에 flash 하고 부팅합니다.
M1S의 /boot/config.ini 을 아래와 같이 수정합니다.
[generic]
#default_console=ttyFIQ0
overlay_resize=16384
overlay_profile=
overlays="board_multiio"
[overlay_custom]
overlays="i2c0 i2c1"
[overlay_hktft32]
overlays="hktft32 ads7846"
reboot 합니다.
multiio 보드는 canfd , gpio , i2c 등 다양한 인터페이스를 제공합니다.

[Picture 3] multiio gpio
간단하게 gpio로 제어할 수 있는 센서나 디바이스들을 테스트할 수 있습니다.
sys 번호는 14번이며, root 권한으로 제어할 수 있습니다.
$ echo 14 | sudo tee /sys/class/gpio/export
INPUT
$ echo in | sudo tee /sys/class/gpio/gpio14/direction
$ cat /sys/class/gpio/gpio14/value
OUTPUT
$ echo out | sudo tee /sys/class/gpio/gpio14/direction
$ echo [1|0] | sudo tee /sys/class/gpio/gpio14/value
i2c는 간단하기도 하고, 다른 예제가 Wiki에서 제공 되고 있습니다.
Wiki를 참고하는 것이 좋을 것 같습니다.

[Picture 4] multiio keypad
multiio 보드는 키패드를 지원합니다.
이 키패드를 사용해서 여러 응용프로그램을 만들 수 있을 것입니다.
evtest 를 통해서 키패드를 동작시켜 보겠습니다.
evtest 설치합니다.
$ sudo apt install evtest
keypad 가 어떤 디바이스인지 확인합니다.
$ ls -l /dev/input/by-path/platform-key_pad-event
lrwxrwxrwx 1 root root 9 Nov 10 01:09 /dev/input/by-path/platform-key_pad-event -> ../event2
event2 에서 evtest 를 진행합니다.
$ sudo evtest --grab /dev/input/event2
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "key_pad"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 28 (KEY_ENTER)
Event code 103 (KEY_UP)
Event code 105 (KEY_LEFT)
Event code 106 (KEY_RIGHT)
Event code 108 (KEY_DOWN)
Key repeat handling:
Repeat type 20 (EV_REP)
Repeat code 0 (REP_DELAY)
Value 250
Repeat code 1 (REP_PERIOD)
Value 33
Properties:
Testing ... (interrupt to exit)
키패드를 누를 때마다 이벤트가 출력되는지 확인합니다.

[Picture 5] multiio rtc
rtc는 M1S에 내장되어 있지만, multiio도 지원합니다.
그래서 multiio의 rtc를 사용하려면, 기본으로 사용되고 있는 rtc에서 multiio의 rtc로 스위칭 해야 합니다.
코인은 별도 구매입니다.
다른 여러 방법이 있겠지만, 저는 systemd 를 사용해서 부팅할 때마다 rtc를 선택하고 자동으로 실행하게 만들겠습니다.
먼저 udev rules를 작성합니다.
$ echo "KERNEL==\"rtc1\", TAG+=\"systemd\"" | sudo tee /etc/udev/rules.d/50-rtc.rules
서비스를 정의해 줍니다.
$ sudo vi /lib/systemd/system/hwrtc.service
[Unit]
Description=Synchronise System clock to hardware RTC
DefaultDependencies=no
Wants=dev-rtc1.device
After=dev-rtc1.device
Before=systemd-journald.service time-sync.target sysinit.target shutdown.target
Conflicts=shutdown.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/hwclock --hctosys --rtc=/dev/rtc1 -v --utc --noadjfile
RestrictRealtime=yes
[Install]
WantedBy=sysinit.target
Unit 파트에서 dev-rtc1.device 는 디바이스 노드 /dev/rtc1 을 뜻합니다.
서비스를 활성화 합니다.
$ sudo systemctl enable hwrtc
$ sudo reboot
리부팅 후, 서비스 상태를 확인합니다.
$ sudo service hwrtc status
_ hwrtc.service - Synchronise System clock to hardware RTC
Loaded: loaded (/lib/systemd/system/hwrtc.service; enabled; vendor preset: enabled)
Active: active (exited) since Fri 2023-11-10 01:39:26 UTC; 2min 4s ago
Process: 316 ExecStart=/sbin/hwclock --hctosys --rtc=/dev/rtc1 -v --utc --noadjfile (code=exited, st>
Main PID: 316 (code=exited, status=0/SUCCESS)
Nov 10 01:39:26 server hwclock[316]: Using the rtc interface to the clock.
Nov 10 01:39:26 server hwclock[316]: Assuming hardware clock is kept in UTC time.
Nov 10 01:39:26 server hwclock[316]: Waiting for clock tick...
Nov 10 01:39:26 server hwclock[316]: ...got clock tick
Nov 10 01:39:26 server hwclock[316]: Time read from Hardware Clock: 2023/11/10 01:39:26
Nov 10 01:39:26 server hwclock[316]: Hw clock time : 2023/11/10 01:39:26 = 1699580366 seconds since 1969
Nov 10 01:39:26 server hwclock[316]: Time since last adjustment is 1699580366 seconds
Nov 10 01:39:26 server hwclock[316]: Calculated Hardware Clock drift is 0.000000 seconds
Nov 10 01:39:26 server hwclock[316]: Calling settimeofday(NULL, 0) to lock the warp_clock function.
Nov 10 01:39:26 server hwclock[316]: Calling settimeofday(1699580366.000000, NULL) to set the System tim>
lines 1-16/16 (END)...skipping...
rtc는 다음의 명령어를 사용할 수 있습니다.
$ sudo hwclock -[r|s|w]

[Picture 6] multiio spi
multiio 보드는 spi 인터페이스 역시 제공합니다.
기본으로 spidev를 제공하며, dtb에서 사용하고자 하는 spi 디바이스 드라이버로 교체해서 사용할 수 있습니다.
$ ls /dev/spidev0.0
/dev/spidev0.0

[Picture 7-1] multiio pwm
pwm 인터페이스를 지원합니다. pwm의 경우 외부 전원을 사용해야 합니다.
다만 pwm를 사용하는 주변 기기의 경우, 사양에 따라 보드를 손상시킬 수 있습니다.

[Picture 7-2] multiio pwm example
pwm 예제로 모터를 smart power3 와 사용하기는 했지만,
이 사진은 외부 전원을 모터에 공급할 수 있는 간단한 예제 입니다.
실제로 smart power3 를 전원으로 사용 시 주의해야 합니다.
높은 출력의 모터를 사용할 경우에는 반드시 스펙에 맞는 모터드라이버를 따로 사용해 주어야 합니다.
외부 전원 역할을 한 smart power3 도 적절하지 않습니다.
고스펙의 모터를 사용할때에는 외부 전원으로 높은 출력을 가진 SMPS나 리튬 배터리, power supply등 을 사용하시기 바랍니다.

[Picture 8] multiio rs232
컴퓨터의 USB-to-Serial Cable 과 연결 가능 합니다.
hardware flow control 역시 지원합니다.
cts-rts 라인을 끊었다가 연결하면서 hardware flow control 테스트가 가능합니다.
디바이스 노드를 확인합니다.
$ ls /dev/ttyS?
/dev/ttyS0
rs232 동작 명령어 입니다.
$ sudo stty -F /dev/ttyS0 9600 -cstopb -parenb
# receive
$ cat /dev/ttyS0
# transmit
$ echo "123" | sudo tee /dev/ttyS0

[Picture 9] multiio canfd
보시다 시피, canfd 모듈을 추가로 사용해야 합니다.
그리고 multiio에서 canfd를 사용하기 위해서는 /boot/config.ini 를 아래와 같이 수정해야 합니다.
[generic]
#default_console=ttyFIQ0
overlay_resize=16384
overlay_profile=
overlays="board_multiio board_multiio_canfd"
[overlay_custom]
overlays="i2c0 i2c1"
[overlay_hktft32]
overlays="hktft32 ads7846"
can device를 확인합니다.
$ lsmod
mcp251xfd 32768 0
can_dev 24576 1 mcp251xfd
눈치 빠른 사람들은 알거 같습니다만, M1S에는 native canfd가 있습니다.
multiio는 mcp2517 칩이 on-board 되어있는 canfd-module을 사용합니다.
그 이유는, 개발 단계에서 어떤 문제가 발생했었던게 첫번째 이유입니다.
두번째는 canfd-module이 호환되게끔 만들고 싶었습니다.
그리고 세번째는 핀 위치상 CAN 채널을 2개까지 가져갈 수 있는 이점이 있습니다.
다만 문제가 해결되는 대로, 그리고 CAN 2채널의 이점이 없다고 판단이 되면, 원가 절감을 통한 가격 경쟁력 강화를 위해 다음 릴리즈에는 CAN-FD가 native can으로 대체 될 수도 있습니다.

[Picture 10-1] multiio oled
multiio에서 oled모듈을 사용하기 위해서는 /boot/config.ini 를 아래와 같이 수정해야 합니다.
[generic]
#default_console=ttyFIQ0
overlay_resize=16384
overlay_profile=
overlays="board_multiio board_multiio_oled"
[overlay_custom]
overlays="i2c0 i2c1"
[overlay_hktft32]
overlays="hktft32 ads7846"
리부팅 합니다.
$ sudo reboot

[Picture 10-2] multiio oled on
부팅 직후의 모습입니다.
MULTIIO는 간단해 보이는 보드지만, 디버깅 하고 테스트하는게 쉽지는 않았습니다.
출시되기 이전 릴리즈가 있었습니다.

[Picture 11-1] multiio 20230719
현재 20230810 버전과 모습이 많이 다릅니다.
옆에 두고 비교하면 차이가 확연히 보입니다.

[Picture 11-2] 0719 vs 0810
rtc 코인은 작아지고 canfd는 mcp2517을 사용하면서 option으로 바뀌었습니다.
디버깅을 진행하면서 여러가지 신경을 많이 썼습니다.
아래는 구버전에서 디버깅 하면서 찍은 사진들 입니다.

[Picture 12-1] multiio_debug 1

[Picture 12-2] multiio_debug 2
2번째 사진은 추후에 포스팅할 M1S stepper 보드의 일부 기능을 테스트 하기위해 multiio 일부 회로를 땡겨쓰면서 찍은 사진입니다.
처음에는 호기롭게 한번에 모든 인터페이스를 사용해보자! 로 시작했었습니다.
아이디어 좋았고 시장에도 존재하지 않고 정말 좋다고 생각했고 지금도 좋다고 생각합니다만..
디버깅 하는 과정이랑 출시 직전에 테스트는 어우.. 많기때문에 과정이 너무 험난했습니다
그래도 이렇게 출시 된 모습을 보니까 엄청 뿌듯합니다!?
끝으로.. 많은 구매 부탁드립니다
구매는 여기 입니다.
트럼프 대통령의 케빈 워시 신임 연준 의장 지명 소식에 국제 금, 은 가격이 급락했습니다. 시장의 충격과 향후 전망을 분석합니다.
CES 2026에서 선보인 인공지능, 모빌리티, 스마트 기술의 최신 트렌드를 확인하고, 이러한 기술들이 우리의 미래를 어떻게 바꾸게 될지 전망합니다.
2025년 귀속 연말정산에서 달라지는 결혼세액공제, 자녀세액공제, 주거비 공제 혜택 등 핵심 내용을 정리해 드립니다.
연기금 등판으로 급한 불은 껐지만, 여전히 1,400원대인 환율. 원화 약세의 근본 원인을 해부하고 낙관론과 비관론이 교차하는 2026년 전망을 제시합니다.