Review: IchigoJam Single Board Computer

It won’t replace your beloved Rasbperry Pi, but it’s worth saying hello to this “Strawberry Jam”, straight out of Japan. It’s an equally delicious way to get people interested in the basics of coding.

My hackerspace friend Jim is a lucky bloke, for last year he was able to take an extended holiday through a succession of East Asian countries. We were treated to online pictures of beautiful scenery and beaches, city lights, and of course exciting tech destinations such as hardware markets and hackerspaces. On his return he tossed a package on the table in front of me and said “Jenny, you might like to take a look at that, these are big in Japan!” Inside was an electronic kit and a few pieces of documentation, with Japanese text.

A Different Way To Get Kids Coding

The contents of the IchigoJam kit.
The contents of the IchigoJam kit.

What he’d given me was an IchigoJam (Best translation I’ve been given is “Strawberry Jam”), a small single-board computer aimed at young people. In the style of the 8-bit machines of the 1980s, it runs a comprehensive BASIC interpreter and plugs into a TV set, though it brings itself up-to-date with a USB-A socket for a keyboard. At its heart is an NXP LPC1114F102 ARM Cortex-M0 microcontroller with 32KB of Flash and 4KB of SRAM, and though the board Jim passed to me has a surface-mount example it’s clear that it was also designed for the now-obsolete DIP variant of the chip. If you were to think of this as an odd hybrid of a BASIC Stamp, a Raspberry Pi, and one of the smaller MBED boards, you probably wouldn’t be too far from the mark. What follows is my impression of it based on the information at hand. Sadly the IchigoJam website and forum seems only available to Japanese viewers and returns an error code from my European perspective.

Building the Kit Computer

Aside from the pre-installed SMD microcontroller, all the IchigoJam’s components are through-hole. The sockets are a micro-USB for power, a USB-A for keyboard, and a phono for video, otherwise aside from a few passives there is a crystal, a regulator, an LED and a power switch. There is also a small piezoelectric speaker, though this is intended to be plugged directly into the device’s I/O lines. Unexpectedly a DIP socket is included for the processor, no doubt a BoM hangover from the days when a DIP processor could be supplied (ARM DIP packages are no more). Seemingly this is used in the standard build as a carrier for a sticker bearing pin assignments. The English assembly instructions Jim had sourced with the kit were pretty sparse, but fortunately this is in no way a challenging kit to assemble. Resistor values are clearly marked upon the board, capacitors are easy enough to identify, and every other component has an obvious board outline into which it fits. It took me a leisurely quarter hour to build, achieving a tidy result. My tiny portable CRT TV is a UK-market  625-line model so wouldn’t sync to the IchigoJam’s monochrome 525-line video when I powered it up, but every flat-panel TV I tried it with had no problems. I was greeted with a copyright message and a BASIC interpreter prompt, the little board was working.

Some simple BASIC to get things started.
Some simple BASIC to get things started.

The sharp-eyed among you may have noticed that the LPC1114 has no USB capability, and this led to my being caught out when I first powered up my IchigoJam from a USB phone charger. The board only works with USB keyboards with PS/2 backward compatibility, on one hand a clever hack but something that is not always obvious by looking at a keyboard. After shuffling through my makerspace’s pile of spare ‘boards I was able to find one that worked, and set to with a bit of classic BASIC remembered from my youth. 10 PRINT "Hello World", 20 GOTO 10

A teenage me fresh from a Sinclair Spectrum would have gone straight for the IchigoJam’s graphics and sound capabilities, but of more use for Hackaday in 2019 was the LED keyword suggested as a hardware test by the documentation. In no time I was able to flash the onboard LED, and my IchigoJam hardware odyssey had begun.

Imagine Your 8-Bit Micro Had Come With Modern GPIOs

So the IchigoJam can do most of what I could do on my 8-bit home computer back in 1983. The question is then, what can it do that the Spectrum, Commodore 64 and their ilk couldn’t? The most obvious place to start would be with the board’s interface sockets, but before we go down that road it’s worth taking a diversion. A part of 8-bit computing that many people will remember was the use of audio cassettes to store software. The IchigoJam eschews that but doesn’t lack storage, instead it can store code in its internal Flash memory. It can store up to four programs on board, and there is reference to an external EEPROM board probably using the LPC1114’s I²C interface. The lack of ability to see the website means I can’t pursue the EEPROM board any further, but a guess is that it offers the facility to swap code between users.

The IchigoJam's supplied sticker has all the I/O pin assignments.
The IchigoJam’s supplied sticker has all the I/O pin assignments.

To those interfaces then. The IchigoJam sports three single-in-line 0.1″ pitch sockets, two of which replicate directly the pins of the LPC1114 and one of which provides I²C as well as 5V and 3.3V rails. Onboard are a single button and an LED each connected to their own GPIO lines. Four of the remaining GPIO lines are configured as inputs while six are outputs, and there are also a pair of lines configured as a serial port. All pin configurations are clearly marked upon the board, or with the pin assignment sticker if the builder has chosen to use it.

Programming these hardware functions is easy enough, through BASIC keywords for each one. For those of you who had to use PEEK and POKE to access hardware mapped to memory locations in the 8-bit days, this offers unheard-of convenience. LED and BTN are the “Hello World” of IchigoJam hardware because they require no extra wiring, but the rest of the lines are not left behind with both IN and OUT keywords. Analogue functions are not forgotten either, an ANA keyword reads voltages on input pins while PWM as its name suggests provides a PWM output capability. A bit of fun with some LEDs and wires confirmed the potential in these functions.

Then there is that I²C interface, something which I think sets this at the same table as some of the more accomplished boards. Suddenly we’ve moved on from having a fun retrocomputer or a board for kids with a few GPIOs, this interface opens up the IchigoJam to a huge range of devices and breakout boards through the simplest possible of programming. An I2CR and an I2CW command both allow any device to be read and commanded from within BASIC.

Buy One, If You Can Find One

The IchigoJam then is a very simple yet surprisingly capable board from Japan that obviously provides its intended purpose of giving Japanese kids a taste of coding. It’s never going to displace the boards you’re used to, but it should appeal to anyone who appreciates the old 8-bit BASIC machines. It will also have use for anyone who wants a simple but versatile easy-to-program microcontroller board. The use of analogue video and PS/2 capable USB keyboards indicates that it could perhaps use an update of some kind on those interfaces, but neither of those is an unsurmountable issue. I rather like it, and will be sorry when the time comes to hand the review model back to its owner.

Can it read the Hackaday Retro Edition? The MixJuice WiFi card, one of several add-ons for the board.
Can it read the Hackaday Retro Edition? The MixJuice WiFi card, one of several add-ons for the board.

At this point in a review I would normally suggest that you buy one, then give you a price and a local supplier, but sadly the IchigoJam does not seem to be available outside Japan. Happily though you can order one from the PCN, the Japanese equivalent to Code Club, for JPY1890, which comes to $17.38, or £13.25 without any postage or import duties added. They also carry some add-on boards, including multimedia and networking peripherals. Further searches reveal tantalising glimpses of an ecosystem, with a Javascript variant, a minimalist headless version, and a version designed to take an IoT module. For those of you wanting to try without waiting for a parcel from Japan there’s an online emulator into which you can type BASIC listings.

During the research for this article I happened to mention the IchigoJam on Twitter and was contacted by its originator, Taisuke Fukuno. He pointed me to his write-up of its appearance at Maker Faire Bay Area in 2017, but for now these remain Japanese market only products. There seems little prospect of them emerging in the American or European stores you’d expect  such as Adafruit or Pimoroni, and to me that’s a crying shame, because while it might lack the power of a Raspberry Pi or the versatility of an Arduino it’s still a pretty cool board. I appreciate only too well that the support liability for offering a kit internationally is a heavy one for a small company, so it’s possible we’ll never officially see it on our side of the planet. Still, if your travels take you to Japan try to pick one up. You won’t be disappointed.

58 thoughts on “Review: IchigoJam Single Board Computer

    1. Yeah, came here to comment that the C64 had pretty good GPIO-ish features via the User Port. But, the cost of blowing a 6522 VIA chip was prohibitive. Still, there were some neat hardware hacks back in the day – e.g. building a parallel port interface between the C64 and a 1541 to replace / supplement serial IEC for super fast transfers

  1. The website is available outside japan via archive.org. The most interesting page seem to be the download page:
    https://web.archive.org/web/20170628130952/http://ichigojam.net/download.html
    There is the firmware (PAL and NTSC versions) and even the Gerber files for the PCB. They are generated using a EDA package Sprint-6.0 – never heard of that one. But now I am tempted to reverse-engineer the schematic in KiCAD.

    Everything is available to clone the boards. It seems to be under a CC-BY-4.0 licence, so that would be not only possible, but even legal.

    The only thing missing is the source code for the firmware. Or maybe somebody who can read japanese can find it?

  2. We almost stocked it at Pimoroni in 2017, but between low margins, high shipping costs, and the need to make more English language resources so it could be accesible, it didn’t work out. I love it still, and it deserves a wider audience given all the love Fukuno-san puts into it :)

  3. What’s there to order? IT’s just a fairly low-powered ARM MCU with BASIC on board. I’m sure there’s BASIC available for ARM chips that aren’t so limited as this one.

    I loved my various 8-bit computers as a kid, but they all had colour graphics (even the Spectrum!) and some sort of sound chip (except the Spectrum, but except except the Spectrum 128 / +2 / +3!).

    This looks a bit crap. Once you’ve got your LED blinking, what do you do? Knowing myself as a kid, I’d be annoyed by how limited it is. For the same sort of money there’s so many better options available. Is there some foundation or something behind these? Some fad? Were I still a kid I might like this, if it had an LCD display and a joypad and couple of buttons. To program on TV but use the LCD for playing the games I’d write. I can’t even see Japanese kids having this as a fad, and they’ll have ANYTHING as a fad! Are you sure people are buying these? There’s been stuff like this available for years in the West, and they haven’t been immensely popular.

    1. I think my go-to for this sort of thing would be a board that supports MicroPython. You can get a Python ‘REPL’ terminal and everything.

      I think the project supports a variety of STM32s, the ESP32, some NRF/TI/NXP chips, Adafruit has their own fork called CircuitPython for boards that they sell…

      It’s still cool to see more ‘basic computing’ projects, though. Anything that gets people closer to the metal, right?

        1. “Immediate mode” in BASIC, is executing commands as soon as they’re entered. EG, type “PRINT 2 * 4” will result in the computer printing “8”. If you’d typed “10 PRINT 2 * 4” then you would have to type “RUN” to see the result. But typing it with no line number, means it executes straight away, immediately. That’s “immediate mode”.

          Neil was saying that to be able to use the I2C commands in this mode, straight away, without having to enter a program, would be helpful. You’d be able to send and receive I2C interactively. This might be handy when debugging a circuit that has I2C.

          I don’t know, but I suspect this BASIC does have immediate mode, because I never heard of a BASIC that doesn’t. Perhaps a BASIC compiler wouldn’t, but any BASIC interpreter would.

          1. From that same Wikipedia link, the first words are…

            “Direct mode, also known as immediate mode”. Either is correct and “immediate mode” has been used for a long time, certainly during BASIC’s heyday, the 1980s. Myself and Neil both used it here. I grew up writing BASIC programs for fun. I know many Japanese home computers included BASIC too, so perhaps you did yourself.

            It’s easy to be right after someone’s given you the answer. You went from not knowing what “immediate mode” meant, to correcting me on it’s proper usage, after I’d explained it’s meaning to you.

    1. It’s an entirely appropriate match in the context I was doing it, they both fill the same niche of bringing coding to kids. Obviously hardware and OS wise they’re chalk and cheese, but oddly enough in their core market they do the same thing. Remember we aren’t the intended market for the Raspberry Pi.

  4. Funny, looks similar to the old Parallax Propeller Demo board that had 2 P/S2, VGA, and Composite out. Nowadays, you can program the Propeller with PropBASIC or C, so you could do much of the same.

          1. That site is well accessible from Switzerland here.
            Shall I now tell the brits to hurry up with yer Brexit and step out of Europe? I mean, we don’t even have a Channel here in .ch ….

  5. The Japanese Ministry of Education has started a push to teach elementary school kids “basic programming skills”.

    This is definitely a cheap way to teach them BASIC, anyway, and the website shows quite a lot of input from children.

  6. The English version of the website seems to be missing the link to the page with the firmware and Gerber file download, but it is on the Japanese site here and Google translate handles it well: https://ichigojam.net/download.html

    The latest version of the board seems to contain a footprint for the SMD part, so the lack of a DIP version is no longer a concern.
    The Gerber files are be available under a CC 4.0 Attribution International license.
    The firmware seems to be available under a “Royalty Free Program”, but the agreement is a pretty hefty block of Japanese legal text. I think it says that you are free to use it for whatever, but must link back to the original source and can’t transfer those rights to others? I am not a lawyer, and especially not a Japanese lawyer, so probably ask before making a ton of them and putting them for sale on Tindie…

  7. Is exposing kids to BASIC these days really doing them any favors?

    I’m not trying to be mean or anything I am only trying to start the conversation. It’s been about 30 years since I first started programming and yes, it was in BASIC. At this point it might be hard for me to relate to a beginner. Still, I wonder if starting with a more modern language, perhaps Python wouidn’t be equally beginner friendly. Any thoughts from people who more recently were beginners?

    Line numbers, GOTOs and GOSUBs are fairly removed from today’s classes and method calls. I wonder if any advantage BASIC might offer in being easier to learn might be more than offset by how much must be un-learned when switching to something more modern and practical.

    1. It’s very common to teach introductory languages to kids. Whenever switching to a new language, some things must be unlearned or relearned. But the general way of thinking (data structures, program flow, function calls) usually builds on lessons across all languages. Basic is simple but you can still do some neat things with it. Everyone should give it a try at some point!

    2. An analogy might be that you learn to drive with a bike as a child – not with a beetle or a Porsche. As you have to start from zero it does not matter – more important is that you understand it easily at low entry cost. IF you then understand how programming works and you want more – the choice is yours – and Javascript you can flash onto the same board then called IchigoLatte.
      We are talking about teaching and learning here at a low price. At zero cost use your RPI and a Min 2GB sd card.

      And a small low cost 5″ monitor fits onto any desk at $25 and the PS2 keyboard plus the PS2 to USB changer is another $25 max – yes it is a different approach to Arduino and RPI but seems to be quite successful in Japan where it was invented. The major issue is English documentation. There will be an IchigoJam BASIC reference book soon, you will find it as part of my bookshelf at https://www.amazon.co.uk/Juergen-Pintaske/e/B00N8HVEZM in a couple of weeks.
      And if you still have an LPC1114 in DIL somewhere, why not just grab a 40 pin DIL Socket,add the crystal, caps resistors for example, use Flashmagic and your board is there … for example headless via the serial interface, You push the button on the board to change from local with Video and PS2 keyboard to the USBtoTTL and your favourate Terminal Program . I tried it with Termite.

  8. I may have been the one that convinced Jim to buy it (?) I remember giving someone a tour this summer and introducing it.
    Did he tell you about the “ltrading card” box with some manga art on the outside, and inside is a sheet or card with a code program on it.?
    Gotta catch em all!

    Also, I gotta say, the quality of books here in support of it are really good. There is a good variety of variants including a rocket ship or Christmas tree shaped PCB (IIRC).

  9. The BASIC doesn’t seem to have floating point and string functions. It’s not at all competitive with MS/GW or ZX BASIC or MicroPython. It’s a smart idea to connect USB keyboards as PS/2 to have less code, but how many USB keyboards support PS/2 today? Is this a color computer?

    1. Initial IchigoJam adopt PS/2. It was later changed to USB.

      Already IchigoJam BASIC has reached the limit of LPC1114. We need to consider other processors in order to increase the function, but it will raise the price. It has already been commercialized in Japan as IchigoCake:
      http://ichigocake.shizentai.jp/

      There is a color screen on this screen. This can be realized with PanCake in the case of IchigoJam:
      http://pancake.shizentai.jp/

  10. NO Video – NO PS2 Keyboard – no worry, after switch on just push the button and it starts headless – wotks fine via TERMITE and probably many other terminal programs – or just gest started on your RPI – mine works now with video output on an old one and HDMI on a later RPI.

  11. I still have sonme LPC1114 DILs – and they are just waiting for the 12MHz crystals – solder it onto a 40 pin socket together with the rest – and flash via Flashmagic – there are not many systems left nowadays where you can do this.
    And it is just for the fun
    – and as a STEM AMBASSADOR I till try to have kids play with it – let’s see what happens.

    The whole Ichigo series of boards seems to be quite successful in Japan – and there must be a reason – probably the simple structure of BASIC.

  12. I have tried many things with my kid. Scratch and friends. He liked none.

    This some how clicked. He loves is. From someone who hates coding, he loves this one. We made a simple game of a competition between two figures to reach a strawberry place random on the screen. The first to collect 5 strawberries wins.

    I guess its because everything is very straight forward. Zero magic.

    Next: Snake.

    We are using the RPi version.

Leave a Reply to MRECancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.