-
-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathresume.json
1985 lines (1985 loc) · 110 KB
/
resume.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"basics": {
"name": "Lup Yuen LEE",
"label": "IoT Techie and Educator",
"picture": "https://lupyuen.github.io/images/lupyuen.jpg",
"email": "[email protected]",
"website": "https://lupyuen.org",
"summary": "Hands-on IoT advisor and educator. Passionate about helping everyone create IoT products that will make a difference.",
"location": {
"region": "Singapore",
"countryCode": "SG"
},
"birth": {
"date": "1969"
},
"profiles": [
{
"network": "LinkedIn",
"username": "lupyuen",
"url": "https://www.linkedin.com/in/lupyuen"
},
{
"network": "GitHub",
"username": "lupyuen",
"url": "https://github.com/lupyuen"
},
{
"network": "Twitter",
"username": "mistertechblog",
"url": ""
},
{
"network": "Download PDF",
"username": "Download PDF",
"url": "https://lupyuen.github.io/lupyuen.pdf"
},
{
"network": "JSON",
"username": "JSON",
"url": "https://lupyuen.github.io/resume.json"
}
]
},
"work": [
{
"company": "Apache NuttX RTOS",
"position": "Apache NuttX PMC (Project Management Committee)",
"website": "https://nuttx.apache.org/",
"startDate": "2022-09-22",
"summary": "Promoting IoT Education with Apache NuttX RTOS (Real-Time Operating System)",
"highlights": [
"Ported Apache NuttX RTOS to PINE64 PinePhone (Allwinner A64 SoC / Arm Cortex-A53), PINE64 Star64 64-bit RISC-V Single-Board Computer (StarFive JH7110 SoC) and PINE64 Ox64 64-bit RISC-V Single-Board Computer (BouffaloLab BL808 SoC)"
]
},
{
"company": "Temasek Polytechnic",
"location": {
"region": "Singapore",
"countryCode": "SG"
},
"position": "Adjunct Lecturer",
"website": "http://www.tp.edu.sg",
"startDate": "2015-04-01",
"endDate": "2019-02-28",
"summary": "Responsible for teaching and mentoring the next generation of professionals in IoT technologies. He taught the following courses:",
"highlights": [
"IoT Application Development: He prepared and presented lessons and labs for training working adults with IoT programming skills, based on AWS IoT, Sigfox, Ubidots and Arduino. He created the training platform with various AWS services: AWS IoT, Lambda, API Gateway, S3, DynamoDB, SNS, Elasticsearch, Kibana. His students included IT professionals from Agility, IBM, SAP, Ericsson, Canon and ITE.",
"IoT Project: He supervised the students in creating innovative IoT products (based on AWS IoT and Sigfox) that solve real-world problems like dementia patient tracking, elderly home monitoring, food safety, campus security, AED management, realtime asset tracking."
]
},
{
"company": "UnaBiz",
"location": {
"region": "Singapore",
"countryCode": "SG"
},
"position": "Chief Technology Officer",
"website": "https://unabiz.com",
"startDate": "2016-08-01",
"endDate": "2018-04-01",
"summary": "As former CTO of UnaBiz, he was responsible for creating new tools and systems to help people get onboard with Sigfox the quickest way possible.",
"highlights": [
"(1) UnaLocation - Enhanced Sigfox Geolocation with Machine Learning; (2) UnaRadar - Sigfox Network Finder mobile web app; (3) UnaMap - Sigfox Coverage Web Map; (4) UnaShield - Sigfox Shield for Arduino; (5) UnaBell - Smart Button on Sigfox; (6) sigfox-gcloud - Open Source Sigfox Server for Google Cloud; (7) sigfox-aws - Open Source Sigfox Server for Amazon Web Services"
]
},
{
"company": "Konica Minolta Business Innovation Centre",
"location": {
"region": "Singapore",
"countryCode": "SG"
},
"position": "Principal Consultant",
"website": "https://bic.konicaminolta.asia",
"startDate": "2014-11-01",
"endDate": "2016-09-01",
"summary": "He heads the software development/engineering team that architects, develops and executes proof-of-concept (POC) projects for incubating new businesses for Konica Minolta. He was also consulted for technical due diligence in investment projects and acquisitions.",
"highlights": [
"(1) Straight-Through Food & Beverage Ordering System with iOS and Android mobile apps and Kitchen Display System; (2) Bluetooth Beacon Location Analytics for Android and iOS"
]
},
{
"company": "SingTel L!feLabs",
"location": {
"region": "Singapore",
"countryCode": "SG"
},
"position": "Chief Technology Officer",
"website": "https://singtel.com",
"startDate": "2009-06-01",
"endDate": "2014-11-01",
"summary": "Reports directly to CEO Group Digital L!fe, Mr Allen Lew. Responsible for scanning of innovative ICT technologies worldwide and executing proof-of-concept (POC) projects for the SingTel Group. He was also consulted for technical due diligence in SingTel Innov8 investment projects and SingTel Group Strategy acquisitions.",
"highlights": [
"(1) Internet of Things (IoT); (2) Indoor Positioning; (3) Smart Retail; (4) Social Recommendation based on Facebook profiling; (5) Speech Recognition for Singapore English; (6) Image Recognition for Retail; (7) Motion Gesture User Experience; (8) Augmented Reality; (9) Cloud Gaming; (10) Virtual Reality; (11) Video Streaming and Distribution; (12) Home Automation"
]
},
{
"company": "NCS Pte Ltd",
"location": {
"region": "Singapore",
"countryCode": "SG"
},
"position": "Principal Consultant",
"website": "https://www.ncs.com.sg",
"startDate": "1994-09-01",
"endDate": "2012-09-01",
"summary": "Lead Enterprise Architect for Microsoft .NET technologies in Singapore's largest system integrator",
"highlights": [
"(1) IRAS Inland Revenue Integrated System; (2) Singapore Health Services Outpatient Administrative System; (3) Digital library systems for National Library Board, Singapore Polytechnic, Temasek Polytechnic, Singapore Airlines Engineering, SASCO; (4) Web portals for IDA MyeCitizen Portal, MINDEF NS Portal, MediaCorp MOBTV Portal; (5) YW8, Singapore’s first mobile payment system by NETS, DBS, SingTel, M1, StarHub"
]
}
],
"education": [
{
"institution": "University of Illinois at Urbana-Champaign",
"location": {
"region": "USA",
"countryCode": "US"
},
"area": "Computer Science",
"studyType": "Master of Science,",
"startDate": "1991-01-01",
"endDate": "1992-01-01",
"summary": "Research Assistant for CHOICES Object-Oriented Operating System"
},
{
"institution": "University of Toronto - University College",
"location": {
"region": "Canada",
"countryCode": "CA"
},
"area": "Computer Science",
"studyType": "Bachelor of Science,",
"startDate": "1988-01-01",
"endDate": "1990-01-01",
"courses": []
}
],
"publications": [
{
"name": "Rust Standard Library on Apache NuttX RTOS",
"publisher": "lupyuen.github.io",
"releaseDate": "2025-01-26",
"website": "https://lupyuen.github.io/articles/rust7",
"summary": "Rust Standard Library is now available on Apache NuttX RTOS, thanks to awesome work by Huang Qi! In this article we explain (1) How to build NuttX + Rust Standard Library (2) Handling JSON with the Serde Crate (3) Async Functions with the Tokio Crate (4) Blinking LEDs with the Nix Crate"
},
{
"name": "Fixing a uname bug (Apache NuttX RTOS)",
"publisher": "lupyuen.github.io",
"releaseDate": "2025-01-19",
"website": "https://lupyuen.github.io/articles/uname",
"summary": "Earlier This Week: uname became unusually quieter on Apache NuttX RTOS... The Commit Hash is missing! Watch as we stomp the seemingly simple bug, that turns out to be something seriously sinister! (Spoiler: Static Vars are broken)"
},
{
"name": "Forgejo Git Forge for Apache NuttX RTOS (Experimental)",
"publisher": "lupyuen.github.io",
"releaseDate": "2025-01-12",
"website": "https://lupyuen.github.io/articles/forgejo",
"summary": "Life Without GitHub: What's it like? Today we talk about Forgejo Git Forge, and whether Apache NuttX RTOS could possibly switch from GitHub to our own Git Forge."
},
{
"name": "Git Bisecting a Bug (Apache NuttX RTOS)",
"publisher": "lupyuen.github.io",
"releaseDate": "2025-01-05",
"website": "https://lupyuen.github.io/articles/bisect",
"summary": "Suppose we hit a Runtime Bug in Apache NuttX RTOS. We think that the Breaking Commit (causing the bug) is somewhere inside these hundreds of NuttX Commits. But which one? In this article: We run Git Bisect to discover the Breaking Commit."
},
{
"name": "Mastodon Server for Continuous Integration (Apache NuttX RTOS)",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-12-29",
"website": "https://lupyuen.github.io/articles/mastodon",
"summary": "We're out for a 50 km overnight hike. Our Build Farm for Apache NuttX RTOS runs non-stop all day, all night. Continuously compiling over 1,000 NuttX Targets. Can we be 100% sure that NuttX is OK? Without getting spammed by alert emails all night? In this article: We talk about Mastodon as a fun new way to broadcast NuttX Alerts in real time."
},
{
"name": "Buy a Coffee for Lup Yuen Lee",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-12-28",
"website": "https://lupyuen.github.io/articles/sponsor",
"summary": "Please sponsor my open-source writing and projects. Thank you so much!"
},
{
"name": "Failing a Continuous Integration Test for Apache NuttX RTOS (QEMU RISC-V)",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-12-22",
"website": "https://lupyuen.github.io/articles/ci7",
"summary": "Every Day: Apache NuttX RTOS on QEMU RISC-V Emulator fails our Continuous Integration Test. The Bug Stops Here! In this article, we study the internals of a NuttX CI Test (Continuous Integration) as we fix the bug."
},
{
"name": "Rewinding a Build for Apache NuttX RTOS (Docker)",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-12-15",
"website": "https://lupyuen.github.io/articles/ci6",
"summary": "When something breaks the Daily Build for Apache NuttX RTOS: Our NuttX Maintainers will scramble to identify the Breaking Commit. Not any more! Now we can go back in time and Rewind The Build."
},
{
"name": "macOS Build Farm for Apache NuttX RTOS (Apple Silicon)",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-12-08",
"website": "https://lupyuen.github.io/articles/ci5",
"summary": "Folks on macOS: Compiling Apache NuttX RTOS used to be so tiresome. Not any more! In this article, we explain how to build anything on macOS, by patching the NuttX CI Script. Which also becomes our macOS Build Farm."
},
{
"name": "Continuous Integration Dashboard for Apache NuttX RTOS (Prometheus and Grafana)",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-11-24",
"website": "https://lupyuen.github.io/articles/ci4",
"summary": "Last article we spoke about the (Twice) Daily Builds for Apache NuttX RTOS. Today we talk about Monitoring the Daily Builds (also the NuttX Build Farm) with our new NuttX Dashboard."
},
{
"name": "Optimising the Continuous Integration for Apache NuttX RTOS (GitHub Actions)",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-11-10",
"website": "https://lupyuen.github.io/articles/ci3",
"summary": "Within Two Weeks: We squashed our GitHub Actions spending from $4,900 (weekly) down to $890. Previously: Our developers waited 2.5 Hours for a Pull Request to be checked. Now we wait at most 1.5 Hours! This article explains everything we did in the (Semi-Chaotic) Two Weeks for Apache NuttX RTOS."
},
{
"name": "Your very own Build Farm for Apache NuttX RTOS",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-10-27",
"website": "https://lupyuen.github.io/articles/ci2",
"summary": "Refurbished Ubuntu PCs have become quite affordable. Let's turn them into a (Low-Cost) Build Farm for Apache NuttX RTOS, thanks to the Docker Image provided by NuttX."
},
{
"name": "LLM Bot that reviews Pull Requests for Apache NuttX RTOS",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-09-29",
"website": "https://lupyuen.github.io/articles/llm",
"summary": "We’re experimenting with an LLM Bot (Large Language Model) that will review Pull Requests for Apache NuttX RTOS. This article explains how we created the Bot in One Week... By sheer accident!"
},
{
"name": "Continuous Integration for Apache NuttX RTOS",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-09-11",
"website": "https://lupyuen.github.io/articles/ci",
"summary": "This article explains how Apache NuttX RTOS is running Continuous Integration with GitHub Actions. Every NuttX Pull Request will trigger 1,594 NuttX Builds!"
},
{
"name": "Early Days of Rust Apps on Apache NuttX RTOS",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-08-19",
"website": "https://lupyuen.github.io/articles/rust6",
"summary": "My student Rushabh Gala has just completed his project for Google Summer of Code, on creating Safer Rust Apps for Apache NuttX RTOS. In this article we walk through Rushabh’s contributions, and understand how we’re evolving Rust Apps for NuttX."
},
{
"name": "RISC-V Emulator for Sophgo SG2000 SoC (Pine64 Oz64 / Milk-V Duo S)",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-07-07",
"website": "https://lupyuen.github.io/articles/sg2000b",
"summary": "Earlier this year we made a RISC-V Emulator for Ox64 BL808 SBC, thanks to our customised TinyEMU RISC-V Emulator. (Not the small flightless bird) Now that NuttX supports Sophgo SG2000 SoC: Let's create a similar emulator for Pine64 Oz64 SBC and Milk-V Duo S!"
},
{
"name": "Daily Automated Testing for Milk-V Duo S RISC-V SBC (IKEA TRETAKT / Apache NuttX RTOS)",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-06-23",
"website": "https://lupyuen.github.io/articles/sg2000a",
"summary": "Last week we upstreamed Milk-V Duo S SBC to Apache NuttX RTOS. (Based on Sophgo SG2000 RISC-V SoC) But NuttX Mainline changes every day. Will Milk-V Duo S suffer “Software Bit Rot”? And fail to boot NuttX someday? Let’s do Daily Automated Testing for NuttX on a Milk-V Duo S SBC, controlled by an IKEA Smart Power Plug with Home Assistant API."
},
{
"name": "(Slides) TinyEMU RISC-V Emulator for Apache NuttX RTOS",
"publisher": "NuttX International Workshop 2024",
"releaseDate": "2023-06-13",
"website": "https://lupyuen.github.io/nuttx#tinyemu-risc-v-emulator-for-apache-nuttx-rtos",
"summary": "What if we could boot and test Apache NuttX RTOS inside a Web Browser? This presentation explains how we created a NuttX Emulator in WebAssembly, based on TinyEMU RISC-V Emulator."
},
{
"name": "(Video) TinyEMU RISC-V Emulator for Apache NuttX RTOS",
"publisher": "NuttX International Workshop 2024",
"releaseDate": "2023-06-13",
"website": "https://youtu.be/JlEo3lfi0CU",
"summary": "What if we could boot and test Apache NuttX RTOS inside a Web Browser? This presentation explains how we created a NuttX Emulator in WebAssembly, based on TinyEMU RISC-V Emulator."
},
{
"name": "(Slides) Adventures of Ox64 BL808 RISC-V SBC with Apache NuttX RTOS",
"publisher": "NuttX International Workshop 2024",
"releaseDate": "2023-06-13",
"website": "https://lupyuen.github.io/nuttx#adventures-of-ox64-bl808-risc-v-sbc-with-apache-nuttx-rtos",
"summary": "We ported Apache NuttX RTOS to PINE64’s Ox64 BL808 64-bit Single-Board Computer. And we created an Emulator for Ox64 SBC that runs in the Web Browser, thanks to TinyEMU RISC-V Emulator. Today we run Daily Automated Testing of NuttX on the Ox64 Emulator. In this presentation we explain how we used the Ox64 Emulator in our experiments with WebAssembly and NuttX: (1) Testing the TCC RISC-V Compiler in WebAssembly (2) Porting the QuickJS JavaScript Engine to NuttX (3) Creating a Drag-n-Drop App Builder for NuttX"
},
{
"name": "(Video) Adventures of Ox64 BL808 RISC-V SBC with Apache NuttX RTOS",
"publisher": "NuttX International Workshop 2024",
"releaseDate": "2023-06-13",
"website": "https://youtu.be/Eoy-X4ouuLI",
"summary": "We ported Apache NuttX RTOS to PINE64’s Ox64 BL808 64-bit Single-Board Computer. And we created an Emulator for Ox64 SBC that runs in the Web Browser, thanks to TinyEMU RISC-V Emulator. Today we run Daily Automated Testing of NuttX on the Ox64 Emulator. In this presentation we explain how we used the Ox64 Emulator in our experiments with WebAssembly and NuttX: (1) Testing the TCC RISC-V Compiler in WebAssembly (2) Porting the QuickJS JavaScript Engine to NuttX (3) Creating a Drag-n-Drop App Builder for NuttX"
},
{
"name": "(Slides) Analysis of Real-Time Logs for Apache NuttX RTOS with PureScript",
"publisher": "NuttX International Workshop 2024",
"releaseDate": "2023-06-13",
"website": "https://lupyuen.github.io/nuttx#analysis-of-real-time-logs-for-apache-nuttx-rtos-with-purescript",
"summary": "Today we can get Real-Time NuttX Logs from our RISC-V Devices: Ox64 SBC (Web Serial API) and Ox64 Emulator (Term.js). What if we could analyse the RISC-V Logs in Real-Time? And show the results in the Web Browser? Let’s do it with PureScript, the Functional Language that compiles to JavaScript. We’ll also support Online Scripting of PureScript for Log Parsing. Can we enhance the NuttX Developer Experience with Functional Programming Tools like PureScript? Or newer hardware like PINE64 Ox64 SBC and Sophgo SG2000 / Milk-V Duo S? Let’s chat about this."
},
{
"name": "(Video) Analysis of Real-Time Logs for Apache NuttX RTOS with PureScript",
"publisher": "NuttX International Workshop 2024",
"releaseDate": "2023-06-13",
"website": "https://youtu.be/d09SNQye2tc",
"summary": "Today we can get Real-Time NuttX Logs from our RISC-V Devices: Ox64 SBC (Web Serial API) and Ox64 Emulator (Term.js). What if we could analyse the RISC-V Logs in Real-Time? And show the results in the Web Browser? Let’s do it with PureScript, the Functional Language that compiles to JavaScript. We’ll also support Online Scripting of PureScript for Log Parsing. Can we enhance the NuttX Developer Experience with Functional Programming Tools like PureScript? Or newer hardware like PINE64 Ox64 SBC and Sophgo SG2000 / Milk-V Duo S? Let’s chat about this."
},
{
"name": "Apache NuttX RTOS on Sophgo SG2000 RISC-V SoC (Milk-V Duo S / Oz64 SBC)",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-05-19",
"website": "https://lupyuen.github.io/articles/sg2000",
"summary": "Soon we'll see many new 64-bit RISC-V SBCs based on the Sophgo SG2000 RISC-V SoC. Will they work with Apache NuttX RTOS? Let's find out!"
},
{
"name": "Rust Apps on Ox64 BL808 RISC-V SBC and Apache NuttX RTOS",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-05-05",
"website": "https://lupyuen.github.io/articles/rust5",
"summary": "Will Rust Apps run on a 64-bit RISC-V SBC? Like Ox64 BL808 SBC? Let's find out with Apache NuttX RTOS!"
},
{
"name": "Rust Custom Target for QEMU RISC-V on Apache NuttX RTOS",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-04-21",
"website": "https://lupyuen.github.io/articles/rust4",
"summary": "Our Rust App compiles for Software Floating-Point, but Apache NuttX RTOS expects Hardware Floating-Point... Let's fix this with a Rust Custom Target for QEMU RISC-V"
},
{
"name": "Rust Apps on Apache NuttX RTOS and QEMU RISC-V",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-04-07",
"website": "https://lupyuen.github.io/articles/rust3",
"summary": "Here's how we run Rust Apps on Apache NuttX RTOS and QEMU RISC-V Emulator."
},
{
"name": "Too many Embedded Logs? PureScript might help (Ox64 BL808 SBC / Apache NuttX RTOS)",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-03-03",
"website": "https://lupyuen.github.io/articles/purescript",
"summary": "Troubleshooting Crash Dumps for Apache NuttX RTOS will become a little less painful... Thanks to our new NuttX Log Parser! This is how we created with PureScript, a Real-Time Parser and Explainer for RISC-V Exceptions and Stack Dumps."
},
{
"name": "(Homage to MakeCode) Coding Ox64 BL808 SBC the Drag-n-Drop Way",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-02-25",
"website": "https://lupyuen.github.io/articles/quickjs2",
"summary": "Remember Makecode? BBC micro:bit and its Drag-n-Drop App Builder? Let's give MakeCode a wholesome wholesale makeover... With Blockly, QuickJS JavaScript Engine, Apache NuttX RTOS and Ox64 BL808 64-bit RISC-V SBC"
},
{
"name": "QuickJS JavaScript Engine on a Real-Time Operating System (Apache NuttX RTOS)",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-02-18",
"website": "https://lupyuen.github.io/articles/quickjs",
"summary": "Can we run QuickJS JavaScript Engine on Apache NuttX RTOS? And Blink the LED on Ox64 BL808 RISC-V SBC... In 4 lines of JavaScript? Let’s do it!"
},
{
"name": "Zig runs ROM FS Filesystem in the Web Browser (thanks to Apache NuttX RTOS)",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-02-11",
"website": "https://lupyuen.github.io/articles/romfs",
"summary": "We solve a hefty headache in our port of TCC Compiler to WebAssembly: Missing C Header Files... Thanks to the ROM FS Filesystem and the ROM FS Driver from Apache NuttX RTOS"
},
{
"name": "TCC RISC-V Compiler runs in the Web Browser (thanks to Zig Compiler)",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-02-04",
"website": "https://lupyuen.github.io/articles/tcc",
"summary": "Today we're running Apache NuttX RTOS inside a Web Browser. What if we could compile and test NuttX Apps in the Web Browser? Let's explore with TCC 64-bit RISC-V Compiler, compiled to WebAssembly with Zig Compiler."
},
{
"name": "Automated Testing with Ox64 BL808 Emulator (Apache NuttX RTOS)",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-01-28",
"website": "https://lupyuen.github.io/articles/tinyemu3",
"summary": "Every day we're auto-building Apache NuttX RTOS for Ox64 BL808 SBC... Can we test NuttX on Ox64 Emulator automatically after building? Let's find out!"
},
{
"name": "Emulate Ox64 BL808 in the Web Browser: Experiments with TinyEMU RISC-V Emulator and Apache NuttX RTOS",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-01-21",
"website": "https://lupyuen.github.io/articles/tinyemu2",
"summary": "Let's create a barebones Ox64 BL808 Emulator that runs in the Web Browser... By tweaking TinyEMU RISC-V Emulator and booting Apache NuttX RTOS without any modification"
},
{
"name": "Apache NuttX RTOS in a Web Browser? Adventures with TinyEMU and VirtIO",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-01-14",
"website": "https://lupyuen.github.io/articles/tinyemu",
"summary": "Here's how we boot and run Apache NuttX RTOS in the Web Browser... Thanks to TinyEMU RISC-V Emulator, VirtIO Virtual Devices and OpenAMP Library"
},
{
"name": "Nim on a Real-Time Operating System: Apache NuttX RTOS + Ox64 BL808 SBC",
"publisher": "lupyuen.github.io",
"releaseDate": "2024-01-01",
"website": "https://lupyuen.github.io/articles/nim",
"summary": "Let's blink an LED on Pine64 Ox64 BL808 64-bit RISC-V Single-Board Computer... With Nim Programming Language and Apache NuttX Real-Time Operating System"
},
{
"name": "$8 RISC-V SBC on a Real-Time Operating System: Ox64 + NuttX",
"publisher": "hackster.io",
"releaseDate": "2023-12-17",
"website": "https://www.hackster.io/lupyuen/8-risc-v-sbc-on-a-real-time-operating-system-ox64-nuttx-474358",
"summary": "Bare Metal Experiments with Apache NuttX RTOS (Real-Time Operating System) on the affordable Pine64 Ox64 BL808 64-bit RISC-V SBC"
},
{
"name": "Fixed the UART Interrupt and Platform-Level Interrupt Controller (Ox64 BL808)",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-12-10",
"website": "https://lupyuen.github.io/articles/plic3",
"summary": "Weak Ordering in the Ox64 BL808 Memory Management Unit (T-Head C906)... Causes problems with UART Interrupts and the Platform-Level Interrupt Controller"
},
{
"name": "RISC-V Ox64 BL808 SBC: UART Interrupt and Platform-Level Interrupt Controller (PLIC)",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-12-03",
"website": "https://lupyuen.github.io/articles/plic2",
"summary": "We dive into the Platform-Level Interrupt Controller (PLIC) for the tiny adorable Pine64 Ox64 BL808 64-bit Single-Board Computer... Using Apache NuttX Real-Time Operating System to explain the inner workings of PLIC"
},
{
"name": "RISC-V Ox64 BL808 SBC: NuttX Apps and Initial RAM Disk",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-11-26",
"website": "https://lupyuen.github.io/articles/app",
"summary": "(1) What's inside an Application for Apache NuttX RTOS (2) How it calls the NuttX Kernel (3) How NuttX Apps are bundled into the Initial RAM Disk for Pine64 Ox64 BL808 RISC-V SBC"
},
{
"name": "RISC-V Ox64 BL808 SBC: Sv39 Memory Management Unit",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-11-19",
"website": "https://lupyuen.github.io/articles/mmu",
"summary": "Let's boot Apache NuttX RTOS on Pine64 Ox64 64-bit RISC-V SBC... And figure out how the Sv39 Memory Management Unit works"
},
{
"name": "RISC-V Ox64 BL808 SBC: Starting Apache NuttX Real-Time Operating System",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-11-12",
"website": "https://lupyuen.github.io/articles/ox2",
"summary": "Let's boot a tiny bit of Apache NuttX Real-Time Operating System... On Pine64 Ox64 BL808 RISC-V SBC"
},
{
"name": "Ox64 BL808 RISC-V SBC: Booting Linux and (maybe) Apache NuttX RTOS",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-11-05",
"website": "https://lupyuen.github.io/articles/ox64",
"summary": "Let's boot Linux on Pine64 Ox64 BL808 RISC-V SBC... As we figure out how Apache NuttX RTOS might run on Ox64"
},
{
"name": "Star64 JH7110 RISC-V SBC: Experiments with OpenSBI (Supervisor Binary Interface)",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-10-29",
"website": "https://lupyuen.github.io/articles/sbi",
"summary": "Let's boot Apache NuttX RTOS on the Star64 JH7110 RISC-V SBC (VisionFive5 too)... And experiment with the OpenSBI Supervisor Binary Interface"
},
{
"name": "Strange Workaround for TFTP Timeout in U-Boot Bootloader (Star64 JH7110 RISC-V SBC)",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-10-06",
"website": "https://lupyuen.github.io/articles/tftp2",
"summary": "Here's how we fixed TFTP Timeouts in the Star64 JH7110 U-Boot Bootloader... By sending every TFTP Data Packet twice"
},
{
"name": "(Slides) Apache NuttX RTOS for PINE64 PinePhone",
"publisher": "NuttX International Workshop 2023",
"releaseDate": "2023-09-29",
"website": "https://docs.google.com/presentation/d/15qIBW4hoCwGCX5KGwjjV2Zo_G1M4At64UqztYBf8j08/edit?usp=sharing",
"summary": "Smartphones are incredibly complex gadgets. What if we could learn the internals of smartphones... By booting Apache NuttX RTOS on our phone? Over the past year, we have ported NuttX to PINE64 PinePhone as an Educational Experiment. Today we can run NuttX Touchscreen Apps on PinePhone, based on Allwinner A64 SoC with Arm64 CPUs. NuttX on PinePhone will soon support Phone Calls and Text Messages on the 4G LTE Network. We hope NuttX will become a valuable tool for teaching the inner workings of modern smartphones."
},
{
"name": "(Video) Apache NuttX RTOS for PINE64 PinePhone",
"publisher": "NuttX International Workshop 2023",
"releaseDate": "2023-09-29",
"website": "https://youtu.be/Eiact17m_g8?si=RuBjdPGJdfZ4tGie",
"summary": "Smartphones are incredibly complex gadgets. What if we could learn the internals of smartphones... By booting Apache NuttX RTOS on our phone? Over the past year, we have ported NuttX to PINE64 PinePhone as an Educational Experiment. Today we can run NuttX Touchscreen Apps on PinePhone, based on Allwinner A64 SoC with Arm64 CPUs. NuttX on PinePhone will soon support Phone Calls and Text Messages on the 4G LTE Network. We hope NuttX will become a valuable tool for teaching the inner workings of modern smartphones."
},
{
"name": "(Slides) PinePhone Touchscreen on NuttX: Handling MIPI DSI, Display Engine and I2C Touch Input",
"publisher": "NuttX International Workshop 2023",
"releaseDate": "2023-09-29",
"website": "https://docs.google.com/presentation/d/1FXHqfzEKwaI9ufcZ8x8rJwCfso2N9XoZeDtERRhqeNs/edit?usp=sharing",
"summary": "This presentation explains how we built the NuttX Drivers to support Touchscreen Apps on PINE64 PinePhone: (1) MIPI DSI on Allwinner A64 SoC (2) Allwinner Display Engine (3) Goodix I2C Touch Panel (4) Integration with LVGL Graphics Library. To derisk the development, we prototyped the NuttX Drivers in the Zig Programming Language, before rewriting to C."
},
{
"name": "(Video) PinePhone Touchscreen on NuttX: Handling MIPI DSI, Display Engine and I2C Touch Input",
"publisher": "NuttX International Workshop 2023",
"releaseDate": "2023-09-29",
"website": "https://youtu.be/xpBzokOyvM0?si=MxnxyZK2t7vcLP3V",
"summary": "This presentation explains how we built the NuttX Drivers to support Touchscreen Apps on PINE64 PinePhone: (1) MIPI DSI on Allwinner A64 SoC (2) Allwinner Display Engine (3) Goodix I2C Touch Panel (4) Integration with LVGL Graphics Library. To derisk the development, we prototyped the NuttX Drivers in the Zig Programming Language, before rewriting to C."
},
{
"name": "(Slides) LVGL in WebAssembly: Building NuttX Touchscreen Apps with Zig and testing them in the Web Browser",
"publisher": "NuttX International Workshop 2023",
"releaseDate": "2023-09-29",
"website": "https://docs.google.com/presentation/d/1aXM5JeuoXdGCkumZQL0Oe7ROBkVTgXhGZD7JfIzQGUI/edit?usp=sharing",
"summary": "What if we could prototype and test Touchscreen Apps in the Web Browser, before running on a real device? In this presentation we explain how we compiled the LVGL Graphics Library to WebAssembly with Zig Compiler. We created a NuttX App in the Zig Programming Language that runs in the Web Browser, calling the LVGL Library in WebAssembly. We hope that this will someday enable NuttX Apps to be created and tested easily in the Web Browser."
},
{
"name": "(Video) LVGL in WebAssembly: Building NuttX Touchscreen Apps with Zig and testing them in the Web Browser",
"publisher": "NuttX International Workshop 2023",
"releaseDate": "2023-09-29",
"website": "https://youtu.be/8gnD8pW7Bw8?si=cYf_7MYykx8AUTlf",
"summary": "What if we could prototype and test Touchscreen Apps in the Web Browser, before running on a real device? In this presentation we explain how we compiled the LVGL Graphics Library to WebAssembly with Zig Compiler. We created a NuttX App in the Zig Programming Language that runs in the Web Browser, calling the LVGL Library in WebAssembly. We hope that this will someday enable NuttX Apps to be created and tested easily in the Web Browser."
},
{
"name": "RISC-V Star64 JH7110: Power Up the Display Controller with U-Boot Bootloader",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-09-02",
"website": "https://lupyuen.github.io/articles/display3",
"summary": "Let's power up the DC8200 Display Controller inside Star64 JH7110 RISC-V Single-Board Computer... By running simple commands in the U-Boot Bootloader"
},
{
"name": "RISC-V Star64 JH7110: Inside the Display Controller",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-08-23",
"website": "https://lupyuen.github.io/articles/display2",
"summary": "Let's take a walk inside the Display Controller for Pine64's Star64 JH7110 RISC-V SBC... And find out how we'll create the Display Driver for Apache NuttX RTOS"
},
{
"name": "(Slides) What's inside a Smartphone? Exploring the internals with Apache NuttX Real-Time Operating System",
"publisher": "Apache Conference Asia 2023",
"releaseDate": "2023-08-19",
"website": "https://docs.google.com/presentation/d/1xB0uzIUlzbd5-Lkh9QGaJe5ZPlbgXTTDvDV5EWn3G0E/edit?usp=sharing",
"summary": "Smartphones are incredibly complex gadgets. What if we could learn the internals of smartphones... By booting Apache NuttX RTOS (Real-Time Operating System) on our phone? Over the past year, we have written a series of 24 articles explaining the inner workings of PINE64 PinePhone, and how we implemented the smartphone features with Apache NuttX RTOS. The articles cover the essential (and esoteric) topics on smartphone technology: MIPI DSI LCD Display, I2C Touch Panel, USB Controller, LTE Modem, Accelerometer / Gyroscope, Arm64 Interrupts and many more. We are also experimenting with newer, easier ways to create Smartphone Apps, with LVGL Graphics Library, Zig Programming Language, WebAssembly Simulation and Arm64 Emulation."
},
{
"name": "(Video) What's inside a Smartphone? Exploring the internals with Apache NuttX Real-Time Operating System",
"publisher": "Apache Conference Asia 2023",
"releaseDate": "2023-08-19",
"website": "https://youtu.be/Wnrq9BlNP9o",
"summary": "Smartphones are incredibly complex gadgets. What if we could learn the internals of smartphones... By booting Apache NuttX RTOS (Real-Time Operating System) on our phone? Over the past year, we have written a series of 24 articles explaining the inner workings of PINE64 PinePhone, and how we implemented the smartphone features with Apache NuttX RTOS. The articles cover the essential (and esoteric) topics on smartphone technology: MIPI DSI LCD Display, I2C Touch Panel, USB Controller, LTE Modem, Accelerometer / Gyroscope, Arm64 Interrupts and many more. We are also experimenting with newer, easier ways to create Smartphone Apps, with LVGL Graphics Library, Zig Programming Language, WebAssembly Simulation and Arm64 Emulation."
},
{
"name": "RTOS on a RISC-V SBC: Star64 JH7110 + Apache NuttX",
"publisher": "hackster.io",
"releaseDate": "2023-08-08",
"website": "https://www.hackster.io/lupyuen/rtos-on-a-risc-v-sbc-star64-jh7110-apache-nuttx-2a7429",
"summary": "Here's how we boot a Real-Time Operating System (Apache NuttX) on the Star64 JH7110 64-bit RISC-V Single-Board Computer"
},
{
"name": "Star64 JH7110 + NuttX RTOS: Creating the First Release for the RISC-V SBC",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-08-07",
"website": "https://lupyuen.github.io/articles/release",
"summary": "Pine64's Star64 JH7110 RISC-V SBC is now supported in Apache NuttX RTOS Mainline! Let's review how we created the first release of NuttX for Star64"
},
{
"name": "Star64 JH7110 + NuttX RTOS: RISC-V PLIC Interrupts and Serial I/O",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-08-02",
"website": "https://lupyuen.github.io/articles/plic",
"summary": "Apache NuttX RTOS on Pine64's Star64 JH7110 RISC-V SBC has a problem with Serial I/O Interrupts and the RISC-V Platform-Level Interrupt Controller (PLIC)... Let's fix this!"
},
{
"name": "Star64 JH7110 + NuttX RTOS: RISC-V Semihosting and Initial RAM Disk",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-07-28",
"website": "https://lupyuen.github.io/articles/semihost",
"summary": "Apache NuttX RTOS crashes on Pine64's Star64 JH7110 RISC-V SBC because there's no Semihosting. But no worries! We modified NuttX to boot with an Initial RAM Disk instead (initrd)."
},
{
"name": "Star64 JH7110 + NuttX RTOS: RISC-V Privilege Levels and UART Registers",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-07-19",
"website": "https://lupyuen.github.io/articles/privilege",
"summary": "We're porting Apache NuttX RTOS to Pine64's Star64 JH7110 RISC-V SBC... And we see interesting issues with RISC-V Privilege Levels and 16550 UART Registers"
},
{
"name": "Star64 JH7110 RISC-V SBC: Boot from Network with U-Boot and TFTP",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-07-13",
"website": "https://lupyuen.github.io/articles/tftp",
"summary": "Let's boot Apache NuttX RTOS (or Linux) over the Network with U-Boot Bootloader and TFTP... On Pine64's Star64 JH7110 RISC-V Single-Board Computer"
},
{
"name": "Apache NuttX RTOS on RISC-V: Star64 JH7110 SBC",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-07-09",
"website": "https://lupyuen.github.io/articles/nuttx2",
"summary": "(Partially) Booting Apache NuttX Real-Time Operating System on Pine64's Star64 64-bit RISC-V Single-Board Computer, based on StarFive JH7110 SoC"
},
{
"name": "Booting RISC-V Linux on Star64 JH7110 SBC",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-07-04",
"website": "https://lupyuen.github.io/articles/linux",
"summary": "Watch what happens when we boot Yocto and Armbian Linux on Pine64's Star64 64-bit RISC-V Single-Board Computer, based on StarFive JH7110 SoC"
},
{
"name": "Inspecting the RISC-V Linux Images for Star64 SBC",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-06-30",
"website": "https://lupyuen.github.io/articles/star64",
"summary": "Let's look inside the Linux Images for Pine64's Star64 64-bit RISC-V Single-Board Computer: Armbian and Yocto"
},
{
"name": "64-bit RISC-V with Apache NuttX Real-Time Operating System",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-06-25",
"website": "https://lupyuen.github.io/articles/riscv",
"summary": "Let's boot Apache NuttX Real-Time Operating System on a 64-bit RISC-V Device (QEMU Emulator) and explore the Boot Code inside NuttX"
},
{
"name": "NuttX RTOS for PinePhone: The First Year",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-06-21",
"website": "https://lupyuen.github.io/articles/pinephone2",
"summary": "2023 has been an awesome year for Apache NuttX RTOS on Pine64 PinePhone! Let's review the features that we've implemented... And what we'll do next"
},
{
"name": "NuttX RTOS for PinePhone: Feature Phone UI in LVGL, Zig and WebAssembly",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-06-10",
"website": "https://lupyuen.github.io/articles/lvgl4",
"summary": "How we created the LVGL Feature Phone UI for Pine64 PinePhone on Apache NuttX RTOS... By tweaking and testing in a Web Browser!"
},
{
"name": "(Possibly) LVGL in WebAssembly with Zig Compiler",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-05-31",
"website": "https://lupyuen.github.io/articles/lvgl3",
"summary": "Can we preview an LVGL App in the Web Browser... With WebAssembly and Zig Compiler? Let's find out!"
},
{
"name": "Recipe for Wholemeal Sourdough with Bread Machine",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-05-22",
"website": "https://lupyuen.github.io/articles/sourdough",
"summary": "Yep it's a Sourdough Recipe"
},
{
"name": "Inside a Smartphone Accelerometer: PinePhone with NuttX RTOS",
"publisher": "hackster.io",
"releaseDate": "2023-05-17",
"website": "https://www.hackster.io/lupyuen/inside-a-smartphone-accelerometer-pinephone-with-nuttx-rtos-b92b58",
"summary": "When we tilt our Smartphone from Portrait to Landscape... How does it know that we're tilting our phone? Watch what happens when we snoop the MPU-6050 Accelerometer Data from PinePhone with Apache NuttX RTOS"
},
{
"name": "NuttX RTOS for PinePhone: Phone Calls and Text Messages",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-05-04",
"website": "https://lupyuen.github.io/articles/lte2",
"summary": "Making Phone Calls and Sending SMS Text Messages with PinePhone's Quectel EG25-G 4G LTE Modem... How we'll do it with Apache NuttX RTOS"
},
{
"name": "NuttX RTOS for PinePhone: 4G LTE Modem",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-04-12",
"website": "https://lupyuen.github.io/articles/lte",
"summary": "All about the Quectel EG25-G 4G LTE Modem inside Pine64 PinePhone... And how we'll control it with Apache NuttX RTOS"
},
{
"name": "NuttX RTOS for PinePhone: Simpler USB with EHCI (Enhanced Host Controller Interface)",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-03-24",
"website": "https://lupyuen.github.io/articles/usb3",
"summary": "Porting the Enhanced Host Controller Interface (EHCI) USB Driver... From Apache NuttX RTOS to Pine64 PinePhone"
},
{
"name": "(Clickable) Call Graph for Apache NuttX Real-Time Operating System",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-03-05",
"website": "https://lupyuen.github.io/articles/unicorn2",
"summary": "Here's how Apache NuttX RTOS boots on Pine64 PinePhone... Visualised as a Call Graph with Unicorn Emulator and Rust"
},
{
"name": "(Possibly) Emulate PinePhone with Unicorn Emulator",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-02-24",
"website": "https://lupyuen.github.io/articles/unicorn",
"summary": "To make PinePhone testing easier... Can we emulate Arm64 PinePhone with Unicorn Emulator? Let's find out! We'll call the Unicorn Emulator in Rust"
},
{
"name": "NuttX RTOS for PinePhone: Exploring USB",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-02-20",
"website": "https://lupyuen.github.io/articles/usb2",
"summary": "What's inside the USB Controller of Pine64 PinePhone... And how we'll create a USB Driver for Apache NuttX RTOS"
},
{
"name": "NuttX RTOS for PinePhone: LVGL Terminal for NSH Shell",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-02-03",
"website": "https://lupyuen.github.io/articles/terminal",
"summary": "Let's build a Terminal App for PinePhone... With LVGL and Apache NuttX RTOS"
},
{
"name": "Apache NuttX RTOS trips ChatGPT",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-01-29",
"website": "https://lupyuen.github.io/articles/chatgpt",
"summary": "ChatGPT (the AI chatbot) will gladly answer questions about Apache NuttX RTOS! But the answers aren't always correct. Let's turn this into a learning opportunity, and understand why ChatGPT's answers are incorrect"
},
{
"name": "NuttX RTOS for PinePhone: Boot to LVGL",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-01-22",
"website": "https://lupyuen.github.io/articles/lvgl2",
"summary": "How we configure Apache NuttX RTOS to boot an LVGL Touchscreen App on Pine64 PinePhone"
},
{
"name": "NuttX RTOS for PinePhone: Touch Panel",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-01-12",
"website": "https://lupyuen.github.io/articles/touch2",
"summary": "All about the Capacitive Touch Panel inside Pine64 PinePhone... And how we created the PinePhone Touch Panel Driver for Apache NuttX RTOS"
},
{
"name": "NuttX RTOS for PinePhone: What is it?",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-01-03",
"website": "https://lupyuen.github.io/articles/what",
"summary": "Let's talk about Apache NuttX RTOS for Pine64 PinePhone: What is it? Why are we doing this? How will we use it?"
},
{
"name": "NuttX RTOS for PinePhone: Framebuffer",
"publisher": "lupyuen.github.io",
"releaseDate": "2023-01-01",
"website": "https://lupyuen.github.io/articles/fb",
"summary": "How NuttX Apps call the NuttX Framebuffer Interface to render graphics... And what's inside the Framebuffer Driver for Pine64 PinePhone"
},
{
"name": "NuttX RTOS for PinePhone: LCD Panel",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-12-28",
"website": "https://lupyuen.github.io/articles/lcd",
"summary": "Apache NuttX RTOS now boots with a Test Pattern on Pine64 PinePhone! Let's find out what's inside our new NuttX Driver for PinePhone's LCD Panel."
},
{
"name": "NuttX RTOS for PinePhone: Display Engine",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-12-23",
"website": "https://lupyuen.github.io/articles/de3",
"summary": "Apache NuttX Kernel now supports Allwinner A64 Display Engine on Pine64 PinePhone! Here's how we call it to render graphics on PinePhone's LCD Display"
},
{
"name": "NuttX RTOS for PinePhone: MIPI Display Serial Interface",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-12-15",
"website": "https://lupyuen.github.io/articles/dsi3",
"summary": "Apache NuttX Kernel has a driver for MIPI Display Serial Interface... Here's how it will be called for rendering PinePhone's LCD Display"
},
{
"name": "Preparing a Pull Request for Apache NuttX RTOS",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-11-28",
"website": "https://lupyuen.github.io/articles/pr",
"summary": "Here are the steps to prepare a Pull Request for Apache NuttX RTOS"
},
{
"name": "NuttX RTOS for PinePhone: Render Graphics in Zig",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-11-15",
"website": "https://lupyuen.github.io/articles/de2",
"summary": "How we render graphics directly to PinePhone's Display Hardware... With the Zig Programming Language and Apache NuttX RTOS"
},
{
"name": "Rendering PinePhone's Display (DE and TCON0)",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-10-30",
"website": "https://lupyuen.github.io/articles/de",
"summary": "How does Pine64 PinePhone render graphics on its LCD Display? Let's find out about the Allwinner A64 SoC's Display Engine (DE) and Timing Controller (TCON0)."
},
{
"name": "NuttX RTOS for PinePhone: Display Driver in Zig",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-10-18",
"website": "https://lupyuen.github.io/articles/dsi2",
"summary": "Let's build a PinePhone Display Driver in Zig... That will run on Apache NuttX RTOS"
},
{
"name": "Understanding PinePhone's Display (MIPI DSI)",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-10-02",
"website": "https://lupyuen.github.io/articles/dsi",
"summary": "How does Pine64 PinePhone control its LCD Display over MIPI Display Serial Interface? Let's find out!"
},
{
"name": "NuttX on a RISC-V IoT Gadget: PineDio Stack BL604",
"publisher": "NuttX Online Workshop 2022",
"releaseDate": "2022-09-25",
"website": "https://lupyuen.github.io/nuttx#nuttx-on-a-risc-v-iot-gadget-pinedio-stack-bl604",
"summary": "Pine64’s PineDio Stack BL604 is a RISC-V board that’s packed with IoT features: Touchscreen, LoRa, WiFi, BLE, GPS and more. In this presentation we’ll talk about the porting of NuttX to PineDio Stack, how we simplified the developer onboarding, and our plans to support LoRaWAN and LVGL Apps in Zig."
},
{
"name": "Visual Programming with Zig and NuttX Sensors",
"publisher": "NuttX Online Workshop 2022",
"releaseDate": "2022-09-24",
"website": "https://lupyuen.github.io/nuttx#visual-programming-with-zig-and-nuttx-sensors",
"summary": "What if we could drag-and-drop NuttX Sensors to create IoT Apps? In this presentation we’ll explore Blockly, the web-based toolkit for Visual Programming, and how we might customise Blockly to create NuttX Sensor Apps. We’ll also discuss the Zig Programming Language, and why Blockly will generate NuttX Sensor Apps as Zig programs."
},
{
"name": "Simpler, safer LVGL Touchscreen Apps with Zig and NuttX",
"publisher": "NuttX Online Workshop 2022",
"releaseDate": "2022-09-24",
"website": "https://lupyuen.github.io/nuttx#simpler-safer-lvgl-touchscreen-apps-with-zig-and-nuttx",
"summary": "Is there a simpler and safer way to code Touchscreen Apps with the LVGL Graphics Library? In this presentation we’ll talk about migrating a NuttX LVGL App from C to Zig, and the benefits that it brings."
},
{
"name": "NuttX RTOS for PinePhone: Blinking the LEDs",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-09-22",
"website": "https://lupyuen.github.io/articles/pio",
"summary": "Let's experiment with the GPIO Hardware on Pine64 PinePhone... With a little help from Apache NuttX RTOS"
},
{
"name": "NuttX RTOS for PinePhone: UART Driver",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-09-09",
"website": "https://lupyuen.github.io/articles/serial",
"summary": "Our PinePhone Operating System will be awfully quiet if we don't implement UART Input and Output... Here's how we implemented the UART Driver for Apache NuttX RTOS"
},
{
"name": "NuttX RTOS for PinePhone: Fixing the Interrupts",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-09-01",
"website": "https://lupyuen.github.io/articles/interrupt",
"summary": "How Pine64 PinePhone handles Arm64 Interrupts with the Generic Interrupt Controller... And how we implemented PinePhone Interrupt Handling in Apache NuttX RTOS"
},
{
"name": "PinePhone boots Apache NuttX RTOS",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-08-28",
"website": "https://lupyuen.github.io/articles/uboot",
"summary": "How we ported Apache NuttX RTOS to PinePhone... And what's inside the U-Boot Bootloader"
},
{
"name": "Apache NuttX RTOS on Arm Cortex-A53: How it might run on PinePhone",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-08-25",
"website": "https://lupyuen.github.io/articles/arm",
"summary": "Apache NuttX RTOS now runs on 64-bit Arm Cortex-A53 with Multi-Core Symmetric Multi-Processing... Will it run on PinePhone? Let's find out!"
},
{
"name": "Visual Programming with Zig and NuttX Sensors",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-08-19",
"website": "https://lupyuen.github.io/articles/visual",
"summary": "What if we could drag-and-drop NuttX Sensors... To create IoT Sensor Apps in Zig? Let's find out!"
},
{
"name": "Zig Visual Programming with Blockly",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-08-07",
"website": "https://lupyuen.github.io/articles/blockly",
"summary": "How we create a Zig program visually with Blockly, the drag-n-drop way... And how we might use it to build Sensor IoT Apps for Apache NuttX RTOS"
},
{
"name": "Read NuttX Sensor Data with Zig",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-07-29",
"website": "https://lupyuen.github.io/articles/sensor",
"summary": "Using Zig to read Sensor Data on Apache NuttX RTOS... With Bosch BME280 Temperature / Humidity / Air Pressure Sensor"
},
{
"name": "Build an LVGL Touchscreen App with Zig",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-07-12",
"website": "https://lupyuen.github.io/articles/lvgl",
"summary": "Can we use Zig to build an LVGL Touchscreen App for Apache NuttX RTOS? Also wrap the LVGL API in Zig to build simpler, safer LVGL Apps? Let's find out!"
},
{
"name": "Build a PinePhone App with Zig and zgt",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-06-25",
"website": "https://lupyuen.github.io/articles/pinephone",
"summary": "Can we use Zig to code PinePhone Apps? Maybe make them simpler and safer? Let's find out!"
},
{
"name": "Build an IoT App with Zig and LoRaWAN",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-06-15",
"website": "https://lupyuen.github.io/articles/iot",
"summary": "Let's build a complex IoT App with Zig and LoRaWAN... And run it on RISC-V BL602 with Apache NuttX RTOS"
},
{
"name": "Zig on RISC-V BL602: Quick Peek with Apache NuttX RTOS",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-06-02",
"website": "https://lupyuen.github.io/articles/zig",
"summary": "How we run Zig on the BL602 RISC-V SoC... With Apache NuttX RTOS"
},
{
"name": "(Mostly) Automated Testing of Apache NuttX RTOS on PineDio Stack BL604 RISC-V Board",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-05-22",
"website": "https://lupyuen.github.io/articles/auto2",
"summary": "Pine64 is about to launch the PineDio Stack BL604 RISC-V Board with LoRa and Touch Screen... Here's how we automatically flash and test every new release of Apache NuttX RTOS for PineDio Stack"
},
{
"name": "NuttX GPIO Expander for PineDio Stack BL604",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-05-03",
"website": "https://lupyuen.github.io/articles/expander",
"summary": "PineDio Stack BL604 RISC-V Board has an interesting problem on Apache NuttX RTOS... Too many GPIOs! Let's fix this with a GPIO Expander"
},
{
"name": "NuttX Touch Panel Driver for PineDio Stack BL604",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-04-21",
"website": "https://lupyuen.github.io/articles/touch",
"summary": "How we created the Apache NuttX RTOS Driver for Hynitron CST816S I2C Touch Panel... For PineDio Stack BL604 RISC-V Board"
},
{
"name": "PineDio Stack BL604 runs Apache NuttX RTOS",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-04-12",
"website": "https://lupyuen.github.io/articles/pinedio2",
"summary": "Running Apache NuttX RTOS on PineDio Stack BL604 RISC-V board... With ST7789 Display, LVGL Graphics and LoRaWAN"
},
{
"name": "ST7789 Display with LVGL Graphics on Apache NuttX RTOS",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-04-02",
"website": "https://lupyuen.github.io/articles/st7789",
"summary": "RISC-V BL602 SoC with ST7789 SPI Display and LVGL Graphics Library... Let's make it work on Apache NuttX RTOS!"
},
{
"name": "Rust talks I2C on Apache NuttX RTOS",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-03-22",
"website": "https://lupyuen.github.io/articles/rusti2c",
"summary": "Reading the Bosch BME280 I2C Sensor with Rust Embedded HAL... On BL602 RISC-V SoC and Apache NuttX RTOS"
},
{
"name": "Apache NuttX Driver for BME280 Sensor: Ported from Zephyr OS",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-03-10",
"website": "https://lupyuen.github.io/articles/bme280",
"summary": "Apache NuttX OS talks I2C with Bosch BME280 Sensor on BL602 RISC-V SoC... Thanks to the BME280 Driver ported from Zephyr OS"
},
{
"name": "Connect IKEA Air Quality Sensor to Apache NuttX OS",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-02-12",
"website": "https://lupyuen.github.io/articles/ikea",
"summary": "How we expose the UART Port on IKEA VINDRIKTNING Air Quality Sensor... And read the PM 2.5 data with PineDio Stack BL604 RISC-V Board"
},
{
"name": "BL602 EFlash Loader: Reverse Engineered with Ghidra",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-02-02",
"website": "https://lupyuen.github.io/articles/loader",
"summary": "What's inside the EFlash Loader that flashes all firmware to the BL602 RISC-V SoC"
},
{
"name": "Auto Flash and Test NuttX on RISC-V BL602",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-01-26",
"website": "https://lupyuen.github.io/articles/auto",
"summary": "How we automagically flash and test the daily build of Apache NuttX OS on BL602 RISC-V SoC"
},
{
"name": "Rust on Apache NuttX OS",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-01-12",
"website": "https://lupyuen.github.io/articles/rust2",
"summary": "How we run Rust programs on Apache NuttX OS... And transmit a LoRa Message with Rust"
},
{
"name": "Encode Sensor Data with CBOR on Apache NuttX OS",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-01-10",
"website": "https://lupyuen.github.io/articles/cbor2",
"summary": "Compressing Sensor Data with CBOR on Apache NuttX OS... By calling TinyCBOR Library"
},
{
"name": "LoRaWAN on Apache NuttX OS",
"publisher": "lupyuen.github.io",
"releaseDate": "2022-01-03",
"website": "https://lupyuen.github.io/articles/lorawan3",
"summary": "Porting Semtech's LoRaWAN Stack to Apache NuttX OS... And testing it on PineDio Stack BL604 RISC-V Board"
},
{
"name": "LoRa SX1262 on Apache NuttX OS",
"publisher": "lupyuen.github.io",
"releaseDate": "2021-12-22",
"website": "https://lupyuen.github.io/articles/sx1262",
"summary": "Porting the LoRa Driver for Semtech SX1262 from Linux to Apache NuttX OS... And testing it on PineDio Stack BL604 RISC-V Board"
},
{
"name": "SPI on Apache NuttX OS",
"publisher": "lupyuen.github.io",
"releaseDate": "2021-12-13",
"website": "https://lupyuen.github.io/articles/spi2",
"summary": "How we transmit and receive data over SPI on Apache NuttX OS... By coding a NuttX Device Driver"
},
{
"name": "Apache NuttX OS on RISC-V BL602 and BL604",